From 7a40ca526f083ad8bc3f1c8aec94424f9d7f0091 Mon Sep 17 00:00:00 2001 From: zhl Date: Wed, 14 Jun 2023 14:04:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0claim=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=90=88=E7=BA=A6=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/contracts/NFTSbt.json | 7928 +++++++++++++--------------- contracts/tokens/erc721/NFTSbt.sol | 10 + out_arbitrum_testnet_dev.json | 4 +- 3 files changed, 3617 insertions(+), 4325 deletions(-) diff --git a/build/contracts/NFTSbt.json b/build/contracts/NFTSbt.json index b253c12..7eb2be7 100644 --- a/build/contracts/NFTSbt.json +++ b/build/contracts/NFTSbt.json @@ -558,25 +558,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], "name": "totalSupply", @@ -645,6 +626,25 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -730,9 +730,9 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_supplyLimt\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"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\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BURN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINTER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"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\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"removeBurnRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"removeMintRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"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\":\"to\",\"type\":\"address\"}],\"name\":\"setBurnRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"setMintRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseTokenURI\",\"type\":\"string\"}],\"name\":\"updateBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"removeBurnRole(address)\":{\"details\":\"Remove burn role to address\"},\"removeMintRole(address)\":{\"details\":\"Remove mint role to address\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"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.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setBurnRole(address)\":{\"details\":\"Grant burn role to address\"},\"setMintRole(address)\":{\"details\":\"Grant mint role to address\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"updateBaseURI(string)\":{\"details\":\"Set token URI\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/tokens/erc721/NFTSbt.sol\":\"NFTSbt\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a\",\"dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x11b84bb56dc112a6590bfe3e0efa118aa1b5891132342200d04c4ef544cb93de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbc4803332d45dff58f865ed21c942fe4668e47cc7196c8dfe84102040b1d70f\",\"dweb:/ipfs/QmXhZLsocznRWCSyhjo3vo66Z1VsuuNptAVb6ASPYsWtGx\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x516a22876c1fab47f49b1bc22b4614491cd05338af8bd2e7b382da090a079990\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a439187f7126d31add4557f82d8aed6be0162007cd7182c48fd934dbab8f3849\",\"dweb:/ipfs/QmRPLguRFvrRJS7r6F1bcLvsx6q1VrgjEpZafyeL8D7xZh\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xd5fa74b4fb323776fa4a8158800fec9d5ac0fec0d6dd046dd93798632ada265f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33017a30a99cc5411a9e376622c31fc4a55cfc6a335e2f57f00cbf24a817ff3f\",\"dweb:/ipfs/QmWNQtWTPhA7Lo8nbxbc8KFMvZwbFYB8fSeEQ3vuapSV4a\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":{\"keccak256\":\"0x0a79511df8151b10b0a0004d6a76ad956582d32824af4c0f4886bdbdfe5746e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afbedcf17f31db719e6fdc56caa8f458799c5fa2eb94cb1e94ef18f89af85768\",\"dweb:/ipfs/QmVmqRdBfbgYThpZSoAJ5o9mnAMjx8mCHHjv3Rh8cQAAg3\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"project:/contracts/tokens/erc721/NFTSbt.sol\":{\"keccak256\":\"0x2058348f1959181bbca610faa997f7ee6bac179f22ec65a8701f88699b5adacd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1084d7c54bf05104ebb93a2faaee0d0b2dd1b0fdc5f0d2d9b2a848d53308db09\",\"dweb:/ipfs/QmaKjobU4fVGNpTDfAN9eqGsjtLhzfvRFho1KFQ1HK6gJG\"]}},\"version\":1}", - "bytecode": "0x60a060405260405180606001604052806027815260200162004b5f60279139600b9080519060200190620000359291906200038e565b503480156200004357600080fd5b5060405162004b8638038062004b86833981810160405281019062000069919062000616565b82828160019080519060200190620000839291906200038e565b5080600290805190602001906200009c9291906200038e565b5050508060808181525050620000dc7fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa226000801b6200019360201b60201c565b620001117f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66000801b6200019360201b60201c565b620001266000801b33620001f660201b60201c565b620001587f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620001f660201b60201c565b6200018a7fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa2233620001f660201b60201c565b50505062000715565b6000620001a6836200020c60201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b6200020882826200022b60201b60201c565b5050565b6000806000838152602001908152602001600020600101549050919050565b6200023d82826200031c60201b60201c565b6200031857600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620002bd6200038660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b8280546200039c90620006df565b90600052602060002090601f016020900481019282620003c057600085556200040c565b82601f10620003db57805160ff19168380011785556200040c565b828001600101855582156200040c579182015b828111156200040b578251825591602001919060010190620003ee565b5b5090506200041b91906200041f565b5090565b5b808211156200043a57600081600090555060010162000420565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004a7826200045c565b810181811067ffffffffffffffff82111715620004c957620004c86200046d565b5b80604052505050565b6000620004de6200043e565b9050620004ec82826200049c565b919050565b600067ffffffffffffffff8211156200050f576200050e6200046d565b5b6200051a826200045c565b9050602081019050919050565b60005b83811015620005475780820151818401526020810190506200052a565b8381111562000557576000848401525b50505050565b6000620005746200056e84620004f1565b620004d2565b90508281526020810184848401111562000593576200059262000457565b5b620005a084828562000527565b509392505050565b600082601f830112620005c057620005bf62000452565b5b8151620005d28482602086016200055d565b91505092915050565b6000819050919050565b620005f081620005db565b8114620005fc57600080fd5b50565b6000815190506200061081620005e5565b92915050565b60008060006060848603121562000632576200063162000448565b5b600084015167ffffffffffffffff8111156200065357620006526200044d565b5b6200066186828701620005a8565b935050602084015167ffffffffffffffff8111156200068557620006846200044d565b5b6200069386828701620005a8565b9250506040620006a686828701620005ff565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620006f857607f821691505b602082108114156200070f576200070e620006b0565b5b50919050565b6080516144206200073f600039600081816108af01528181610da20152610dc901526144206000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063530dd0791161010f578063a217fddf116100a2578063c87b56dd11610071578063c87b56dd146105c5578063d5391393146105f5578063d547741f14610613578063e985e9c51461062f576101f0565b8063a217fddf14610551578063a22cb4651461056f578063b88d4fde1461058b578063b930908f146105a7576101f0565b806391d14854116100de57806391d14854146104cb578063931688cb146104fb57806395d89b4114610517578063965f4c6014610535576101f0565b8063530dd0791461041f5780636352211e1461043b5780636a6278421461046b57806370a082311461049b576101f0565b8063248a9ca31161018757806336568abe1161015657806336568abe1461039b57806342842e0e146103b757806342966c68146103d35780634f6ccce7146103ef576101f0565b8063248a9ca3146103035780632f2ff15d146103335780632f745c591461034f578063327ba6151461037f576101f0565b806318160ddd116101c357806318160ddd1461028f57806319d1997a146102ad5780631cf4e3ee146102cb57806323b872dd146102e7576101f0565b806301ffc9a7146101f557806306fdde0314610225578063081812fc14610243578063095ea7b314610273575b600080fd5b61020f600480360381019061020a9190612cd2565b61065f565b60405161021c9190612d1a565b60405180910390f35b61022d610671565b60405161023a9190612dce565b60405180910390f35b61025d60048036038101906102589190612e26565b610703565b60405161026a9190612e94565b60405180910390f35b61028d60048036038101906102889190612edb565b610788565b005b6102976108a0565b6040516102a49190612f2a565b60405180910390f35b6102b56108ad565b6040516102c29190612f2a565b60405180910390f35b6102e560048036038101906102e09190612f45565b6108d1565b005b61030160048036038101906102fc9190612f72565b6108fe565b005b61031d60048036038101906103189190612ffb565b61095e565b60405161032a9190613037565b60405180910390f35b61034d60048036038101906103489190613052565b61097d565b005b61036960048036038101906103649190612edb565b6109a6565b6040516103769190612f2a565b60405180910390f35b61039960048036038101906103949190612f45565b610a4b565b005b6103b560048036038101906103b09190613052565b610a78565b005b6103d160048036038101906103cc9190612f72565b610afb565b005b6103ed60048036038101906103e89190612e26565b610b1b565b005b61040960048036038101906104049190612e26565b610baa565b6040516104169190612f2a565b60405180910390f35b61043960048036038101906104349190612f45565b610c1b565b005b61045560048036038101906104509190612e26565b610c48565b6040516104629190612e94565b60405180910390f35b61048560048036038101906104809190612f45565b610cfa565b6040516104929190612f2a565b60405180910390f35b6104b560048036038101906104b09190612f45565b610e6a565b6040516104c29190612f2a565b60405180910390f35b6104e560048036038101906104e09190613052565b610f22565b6040516104f29190612d1a565b60405180910390f35b610515600480360381019061051091906130f7565b610f8c565b005b61051f610fb8565b60405161052c9190612dce565b60405180910390f35b61054f600480360381019061054a9190612f45565b61104a565b005b610559611077565b6040516105669190613037565b60405180910390f35b61058960048036038101906105849190613170565b61107e565b005b6105a560048036038101906105a091906132e0565b611094565b005b6105af6110f6565b6040516105bc9190613037565b60405180910390f35b6105df60048036038101906105da9190612e26565b61111a565b6040516105ec9190612dce565b60405180910390f35b6105fd6111c1565b60405161060a9190613037565b60405180910390f35b61062d60048036038101906106289190613052565b6111e5565b005b61064960048036038101906106449190613363565b61120e565b6040516106569190612d1a565b60405180910390f35b600061066a826112a2565b9050919050565b606060018054610680906133d2565b80601f01602080910402602001604051908101604052809291908181526020018280546106ac906133d2565b80156106f95780601f106106ce576101008083540402835291602001916106f9565b820191906000526020600020905b8154815290600101906020018083116106dc57829003601f168201915b5050505050905090565b600061070e8261131c565b61074d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074490613476565b60405180910390fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061079382610c48565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90613508565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610823611388565b73ffffffffffffffffffffffffffffffffffffffff16148061085257506108518161084c611388565b61120e565b5b610891576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108889061359a565b60405180910390fd5b61089b8383611390565b505050565b6000600980549050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6108fb7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6826111e5565b50565b61090f610909611388565b82611449565b61094e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109459061362c565b60405180910390fd5b610959838383611527565b505050565b6000806000838152602001908152602001600020600101549050919050565b6109868261095e565b61099781610992611388565b61178e565b6109a1838361182b565b505050565b60006109b183610e6a565b82106109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e9906136be565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610a757fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa228261097d565b50565b610a80611388565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae490613750565b60405180910390fd5b610af7828261190b565b5050565b610b1683838360405180602001604052806000815250611094565b505050565b7fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa22610b4d81610b48611388565b61178e565b610b5e610b58611388565b83611449565b610b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b94906137bc565b60405180910390fd5b610ba6826119ec565b5050565b6000610bb46108a0565b8210610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec9061384e565b60405180910390fd5b60098281548110610c0957610c0861386e565b5b90600052602060002001549050919050565b610c457f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68261097d565b50565b6000806003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce89061390f565b60405180910390fd5b80915050919050565b60007f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d2e81610d29611388565b61178e565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d959061397b565b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000001115610e3e577f00000000000000000000000000000000000000000000000000000000000000006001610df26108a0565b610dfc91906139ca565b1115610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490613a6c565b60405180910390fd5b5b6000610e4a600c611b09565b9050610e56600c611b17565b610e608482611b2d565b8092505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed290613afe565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b610fa181610f9c611388565b61178e565b8282600b9190610fb2929190612bc3565b50505050565b606060028054610fc7906133d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff3906133d2565b80156110405780601f1061101557610100808354040283529160200191611040565b820191906000526020600020905b81548152906001019060200180831161102357829003601f168201915b5050505050905090565b6110747fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa22826111e5565b50565b6000801b81565b611090611089611388565b8383611b4b565b5050565b6110a561109f611388565b83611449565b6110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db9061362c565b60405180910390fd5b6110f084848484611cb8565b50505050565b7fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa2281565b60606111258261131c565b611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b90613b90565b60405180910390fd5b600061116e611d14565b9050600081511161118e57604051806020016040528060008152506111b9565b8061119884611da6565b6040516020016111a9929190613bec565b6040516020818303038152906040525b915050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6111ee8261095e565b6111ff816111fa611388565b61178e565b611209838361190b565b505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611315575061131482611f07565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661140383610c48565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006114548261131c565b611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a90613c82565b60405180910390fd5b600061149e83610c48565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061150d57508373ffffffffffffffffffffffffffffffffffffffff166114f584610703565b73ffffffffffffffffffffffffffffffffffffffff16145b8061151e575061151d818561120e565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661154782610c48565b73ffffffffffffffffffffffffffffffffffffffff161461159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159490613d14565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490613da6565b60405180910390fd5b611618838383611fe9565b611623600082611390565b6001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116739190613dc6565b925050819055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116ca91906139ca565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461178983838361209f565b505050565b6117988282610f22565b611827576117bd8173ffffffffffffffffffffffffffffffffffffffff1660146120a4565b6117cb8360001c60206120a4565b6040516020016117dc929190613e92565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e9190612dce565b60405180910390fd5b5050565b6118358282610f22565b61190757600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506118ac611388565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6119158282610f22565b156119e857600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061198d611388565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60006119f782610c48565b9050611a0581600084611fe9565b611a10600083611390565b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a609190613dc6565b925050819055506003600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611b058160008461209f565b5050565b600081600001549050919050565b6001816000016000828254019250508190555050565b611b478282604051806020016040528060008152506122e0565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb190613f18565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611cab9190612d1a565b60405180910390a3505050565b611cc3848484611527565b611ccf8484848461233b565b611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0590613faa565b60405180910390fd5b50505050565b6060600b8054611d23906133d2565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4f906133d2565b8015611d9c5780601f10611d7157610100808354040283529160200191611d9c565b820191906000526020600020905b815481529060010190602001808311611d7f57829003601f168201915b5050505050905090565b60606000821415611dee576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611f02565b600082905060005b60008214611e20578080611e0990613fca565b915050600a82611e199190614042565b9150611df6565b60008167ffffffffffffffff811115611e3c57611e3b6131b5565b5b6040519080825280601f01601f191660200182016040528015611e6e5781602001600182028036833780820191505090505b5090505b60008514611efb57600182611e879190613dc6565b9150600a85611e969190614073565b6030611ea291906139ca565b60f81b818381518110611eb857611eb761386e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611ef49190614042565b9450611e72565b8093505050505b919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611fd257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611fe25750611fe1826124c3565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806120505750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b61208f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612086906140f0565b60405180910390fd5b61209a83838361253d565b505050565b505050565b6060600060028360026120b79190614110565b6120c191906139ca565b67ffffffffffffffff8111156120da576120d96131b5565b5b6040519080825280601f01601f19166020018201604052801561210c5781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106121445761214361386e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106121a8576121a761386e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026121e89190614110565b6121f291906139ca565b90505b6001811115612292577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106122345761223361386e565b5b1a60f81b82828151811061224b5761224a61386e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061228b9061416a565b90506121f5565b50600084146122d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cd906141e0565b60405180910390fd5b8091505092915050565b6122ea8383612651565b6122f7600084848461233b565b612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232d90613faa565b60405180910390fd5b505050565b600061235c8473ffffffffffffffffffffffffffffffffffffffff1661282b565b156124b6578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612385611388565b8786866040518563ffffffff1660e01b81526004016123a79493929190614255565b6020604051808303816000875af19250505080156123e357506040513d601f19601f820116820180604052508101906123e091906142b6565b60015b612466573d8060008114612413576040519150601f19603f3d011682016040523d82523d6000602084013e612418565b606091505b5060008151141561245e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245590613faa565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506124bb565b600190505b949350505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061253657506125358261284e565b5b9050919050565b6125488383836128b8565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561258b57612586816128bd565b6125ca565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146125c9576125c88382612906565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561260d5761260881612a73565b61264c565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461264b5761264a8282612b44565b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b89061432f565b60405180910390fd5b6126ca8161131c565b1561270a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127019061439b565b60405180910390fd5b61271660008383611fe9565b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461276691906139ca565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46128276000838361209f565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161291384610e6a565b61291d9190613dc6565b9050600060086000848152602001908152602001600020549050818114612a02576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816008600083815260200190815260200160002081905550505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600980549050612a879190613dc6565b90506000600a6000848152602001908152602001600020549050600060098381548110612ab757612ab661386e565b5b906000526020600020015490508060098381548110612ad957612ad861386e565b5b906000526020600020018190555081600a600083815260200190815260200160002081905550600a6000858152602001908152602001600020600090556009805480612b2857612b276143bb565b5b6001900381819060005260206000200160009055905550505050565b6000612b4f83610e6a565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b828054612bcf906133d2565b90600052602060002090601f016020900481019282612bf15760008555612c38565b82601f10612c0a57803560ff1916838001178555612c38565b82800160010185558215612c38579182015b82811115612c37578235825591602001919060010190612c1c565b5b509050612c459190612c49565b5090565b5b80821115612c62576000816000905550600101612c4a565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612caf81612c7a565b8114612cba57600080fd5b50565b600081359050612ccc81612ca6565b92915050565b600060208284031215612ce857612ce7612c70565b5b6000612cf684828501612cbd565b91505092915050565b60008115159050919050565b612d1481612cff565b82525050565b6000602082019050612d2f6000830184612d0b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d6f578082015181840152602081019050612d54565b83811115612d7e576000848401525b50505050565b6000601f19601f8301169050919050565b6000612da082612d35565b612daa8185612d40565b9350612dba818560208601612d51565b612dc381612d84565b840191505092915050565b60006020820190508181036000830152612de88184612d95565b905092915050565b6000819050919050565b612e0381612df0565b8114612e0e57600080fd5b50565b600081359050612e2081612dfa565b92915050565b600060208284031215612e3c57612e3b612c70565b5b6000612e4a84828501612e11565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e7e82612e53565b9050919050565b612e8e81612e73565b82525050565b6000602082019050612ea96000830184612e85565b92915050565b612eb881612e73565b8114612ec357600080fd5b50565b600081359050612ed581612eaf565b92915050565b60008060408385031215612ef257612ef1612c70565b5b6000612f0085828601612ec6565b9250506020612f1185828601612e11565b9150509250929050565b612f2481612df0565b82525050565b6000602082019050612f3f6000830184612f1b565b92915050565b600060208284031215612f5b57612f5a612c70565b5b6000612f6984828501612ec6565b91505092915050565b600080600060608486031215612f8b57612f8a612c70565b5b6000612f9986828701612ec6565b9350506020612faa86828701612ec6565b9250506040612fbb86828701612e11565b9150509250925092565b6000819050919050565b612fd881612fc5565b8114612fe357600080fd5b50565b600081359050612ff581612fcf565b92915050565b60006020828403121561301157613010612c70565b5b600061301f84828501612fe6565b91505092915050565b61303181612fc5565b82525050565b600060208201905061304c6000830184613028565b92915050565b6000806040838503121561306957613068612c70565b5b600061307785828601612fe6565b925050602061308885828601612ec6565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126130b7576130b6613092565b5b8235905067ffffffffffffffff8111156130d4576130d3613097565b5b6020830191508360018202830111156130f0576130ef61309c565b5b9250929050565b6000806020838503121561310e5761310d612c70565b5b600083013567ffffffffffffffff81111561312c5761312b612c75565b5b613138858286016130a1565b92509250509250929050565b61314d81612cff565b811461315857600080fd5b50565b60008135905061316a81613144565b92915050565b6000806040838503121561318757613186612c70565b5b600061319585828601612ec6565b92505060206131a68582860161315b565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6131ed82612d84565b810181811067ffffffffffffffff8211171561320c5761320b6131b5565b5b80604052505050565b600061321f612c66565b905061322b82826131e4565b919050565b600067ffffffffffffffff82111561324b5761324a6131b5565b5b61325482612d84565b9050602081019050919050565b82818337600083830152505050565b600061328361327e84613230565b613215565b90508281526020810184848401111561329f5761329e6131b0565b5b6132aa848285613261565b509392505050565b600082601f8301126132c7576132c6613092565b5b81356132d7848260208601613270565b91505092915050565b600080600080608085870312156132fa576132f9612c70565b5b600061330887828801612ec6565b945050602061331987828801612ec6565b935050604061332a87828801612e11565b925050606085013567ffffffffffffffff81111561334b5761334a612c75565b5b613357878288016132b2565b91505092959194509250565b6000806040838503121561337a57613379612c70565b5b600061338885828601612ec6565b925050602061339985828601612ec6565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133ea57607f821691505b602082108114156133fe576133fd6133a3565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613460602c83612d40565b915061346b82613404565b604082019050919050565b6000602082019050818103600083015261348f81613453565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006134f2602183612d40565b91506134fd82613496565b604082019050919050565b60006020820190508181036000830152613521816134e5565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000613584603883612d40565b915061358f82613528565b604082019050919050565b600060208201905081810360008301526135b381613577565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000613616603183612d40565b9150613621826135ba565b604082019050919050565b6000602082019050818103600083015261364581613609565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b60006136a8602b83612d40565b91506136b38261364c565b604082019050919050565b600060208201905081810360008301526136d78161369b565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b600061373a602f83612d40565b9150613745826136de565b604082019050919050565b600060208201905081810360008301526137698161372d565b9050919050565b7f43616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564600082015250565b60006137a6602083612d40565b91506137b182613770565b602082019050919050565b600060208201905081810360008301526137d581613799565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000613838602c83612d40565b9150613843826137dc565b604082019050919050565b600060208201905081810360008301526138678161382b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b60006138f9602983612d40565b91506139048261389d565b604082019050919050565b60006020820190508181036000830152613928816138ec565b9050919050565b7f43616e6e6f74206d696e7420746f207a65726f20616464726573730000000000600082015250565b6000613965601b83612d40565b91506139708261392f565b602082019050919050565b6000602082019050818103600083015261399481613958565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139d582612df0565b91506139e083612df0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a1557613a1461399b565b5b828201905092915050565b7f4578636565642074686520746f74616c20737570706c79000000000000000000600082015250565b6000613a56601783612d40565b9150613a6182613a20565b602082019050919050565b60006020820190508181036000830152613a8581613a49565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613ae8602a83612d40565b9150613af382613a8c565b604082019050919050565b60006020820190508181036000830152613b1781613adb565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613b7a602f83612d40565b9150613b8582613b1e565b604082019050919050565b60006020820190508181036000830152613ba981613b6d565b9050919050565b600081905092915050565b6000613bc682612d35565b613bd08185613bb0565b9350613be0818560208601612d51565b80840191505092915050565b6000613bf88285613bbb565b9150613c048284613bbb565b91508190509392505050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613c6c602c83612d40565b9150613c7782613c10565b604082019050919050565b60006020820190508181036000830152613c9b81613c5f565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613cfe602583612d40565b9150613d0982613ca2565b604082019050919050565b60006020820190508181036000830152613d2d81613cf1565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d90602483612d40565b9150613d9b82613d34565b604082019050919050565b60006020820190508181036000830152613dbf81613d83565b9050919050565b6000613dd182612df0565b9150613ddc83612df0565b925082821015613def57613dee61399b565b5b828203905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000613e30601783613bb0565b9150613e3b82613dfa565b601782019050919050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000613e7c601183613bb0565b9150613e8782613e46565b601182019050919050565b6000613e9d82613e23565b9150613ea98285613bbb565b9150613eb482613e6f565b9150613ec08284613bbb565b91508190509392505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613f02601983612d40565b9150613f0d82613ecc565b602082019050919050565b60006020820190508181036000830152613f3181613ef5565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613f94603283612d40565b9150613f9f82613f38565b604082019050919050565b60006020820190508181036000830152613fc381613f87565b9050919050565b6000613fd582612df0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140085761400761399b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061404d82612df0565b915061405883612df0565b92508261406857614067614013565b5b828204905092915050565b600061407e82612df0565b915061408983612df0565b92508261409957614098614013565b5b828206905092915050565b7f546f6b656e206e6f74207472616e7366657261626c6500000000000000000000600082015250565b60006140da601683612d40565b91506140e5826140a4565b602082019050919050565b60006020820190508181036000830152614109816140cd565b9050919050565b600061411b82612df0565b915061412683612df0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561415f5761415e61399b565b5b828202905092915050565b600061417582612df0565b915060008214156141895761418861399b565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006141ca602083612d40565b91506141d582614194565b602082019050919050565b600060208201905081810360008301526141f9816141bd565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061422782614200565b614231818561420b565b9350614241818560208601612d51565b61424a81612d84565b840191505092915050565b600060808201905061426a6000830187612e85565b6142776020830186612e85565b6142846040830185612f1b565b8181036060830152614296818461421c565b905095945050505050565b6000815190506142b081612ca6565b92915050565b6000602082840312156142cc576142cb612c70565b5b60006142da848285016142a1565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000614319602083612d40565b9150614324826142e3565b602082019050919050565b600060208201905081810360008301526143488161430c565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614385601c83612d40565b91506143908261434f565b602082019050919050565b600060208201905081810360008301526143b481614378565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220801711362676915f1b2b032c7460695b1c9b3ba33ffa5c278122c77d04195c8664736f6c634300080a003368747470733a2f2f6d61726b65742e636562672e67616d65732f6170692f6e66742f696e666f2f", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c8063530dd0791161010f578063a217fddf116100a2578063c87b56dd11610071578063c87b56dd146105c5578063d5391393146105f5578063d547741f14610613578063e985e9c51461062f576101f0565b8063a217fddf14610551578063a22cb4651461056f578063b88d4fde1461058b578063b930908f146105a7576101f0565b806391d14854116100de57806391d14854146104cb578063931688cb146104fb57806395d89b4114610517578063965f4c6014610535576101f0565b8063530dd0791461041f5780636352211e1461043b5780636a6278421461046b57806370a082311461049b576101f0565b8063248a9ca31161018757806336568abe1161015657806336568abe1461039b57806342842e0e146103b757806342966c68146103d35780634f6ccce7146103ef576101f0565b8063248a9ca3146103035780632f2ff15d146103335780632f745c591461034f578063327ba6151461037f576101f0565b806318160ddd116101c357806318160ddd1461028f57806319d1997a146102ad5780631cf4e3ee146102cb57806323b872dd146102e7576101f0565b806301ffc9a7146101f557806306fdde0314610225578063081812fc14610243578063095ea7b314610273575b600080fd5b61020f600480360381019061020a9190612cd2565b61065f565b60405161021c9190612d1a565b60405180910390f35b61022d610671565b60405161023a9190612dce565b60405180910390f35b61025d60048036038101906102589190612e26565b610703565b60405161026a9190612e94565b60405180910390f35b61028d60048036038101906102889190612edb565b610788565b005b6102976108a0565b6040516102a49190612f2a565b60405180910390f35b6102b56108ad565b6040516102c29190612f2a565b60405180910390f35b6102e560048036038101906102e09190612f45565b6108d1565b005b61030160048036038101906102fc9190612f72565b6108fe565b005b61031d60048036038101906103189190612ffb565b61095e565b60405161032a9190613037565b60405180910390f35b61034d60048036038101906103489190613052565b61097d565b005b61036960048036038101906103649190612edb565b6109a6565b6040516103769190612f2a565b60405180910390f35b61039960048036038101906103949190612f45565b610a4b565b005b6103b560048036038101906103b09190613052565b610a78565b005b6103d160048036038101906103cc9190612f72565b610afb565b005b6103ed60048036038101906103e89190612e26565b610b1b565b005b61040960048036038101906104049190612e26565b610baa565b6040516104169190612f2a565b60405180910390f35b61043960048036038101906104349190612f45565b610c1b565b005b61045560048036038101906104509190612e26565b610c48565b6040516104629190612e94565b60405180910390f35b61048560048036038101906104809190612f45565b610cfa565b6040516104929190612f2a565b60405180910390f35b6104b560048036038101906104b09190612f45565b610e6a565b6040516104c29190612f2a565b60405180910390f35b6104e560048036038101906104e09190613052565b610f22565b6040516104f29190612d1a565b60405180910390f35b610515600480360381019061051091906130f7565b610f8c565b005b61051f610fb8565b60405161052c9190612dce565b60405180910390f35b61054f600480360381019061054a9190612f45565b61104a565b005b610559611077565b6040516105669190613037565b60405180910390f35b61058960048036038101906105849190613170565b61107e565b005b6105a560048036038101906105a091906132e0565b611094565b005b6105af6110f6565b6040516105bc9190613037565b60405180910390f35b6105df60048036038101906105da9190612e26565b61111a565b6040516105ec9190612dce565b60405180910390f35b6105fd6111c1565b60405161060a9190613037565b60405180910390f35b61062d60048036038101906106289190613052565b6111e5565b005b61064960048036038101906106449190613363565b61120e565b6040516106569190612d1a565b60405180910390f35b600061066a826112a2565b9050919050565b606060018054610680906133d2565b80601f01602080910402602001604051908101604052809291908181526020018280546106ac906133d2565b80156106f95780601f106106ce576101008083540402835291602001916106f9565b820191906000526020600020905b8154815290600101906020018083116106dc57829003601f168201915b5050505050905090565b600061070e8261131c565b61074d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074490613476565b60405180910390fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061079382610c48565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90613508565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610823611388565b73ffffffffffffffffffffffffffffffffffffffff16148061085257506108518161084c611388565b61120e565b5b610891576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108889061359a565b60405180910390fd5b61089b8383611390565b505050565b6000600980549050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6108fb7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6826111e5565b50565b61090f610909611388565b82611449565b61094e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109459061362c565b60405180910390fd5b610959838383611527565b505050565b6000806000838152602001908152602001600020600101549050919050565b6109868261095e565b61099781610992611388565b61178e565b6109a1838361182b565b505050565b60006109b183610e6a565b82106109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e9906136be565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610a757fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa228261097d565b50565b610a80611388565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae490613750565b60405180910390fd5b610af7828261190b565b5050565b610b1683838360405180602001604052806000815250611094565b505050565b7fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa22610b4d81610b48611388565b61178e565b610b5e610b58611388565b83611449565b610b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b94906137bc565b60405180910390fd5b610ba6826119ec565b5050565b6000610bb46108a0565b8210610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec9061384e565b60405180910390fd5b60098281548110610c0957610c0861386e565b5b90600052602060002001549050919050565b610c457f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68261097d565b50565b6000806003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce89061390f565b60405180910390fd5b80915050919050565b60007f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d2e81610d29611388565b61178e565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d959061397b565b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000001115610e3e577f00000000000000000000000000000000000000000000000000000000000000006001610df26108a0565b610dfc91906139ca565b1115610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490613a6c565b60405180910390fd5b5b6000610e4a600c611b09565b9050610e56600c611b17565b610e608482611b2d565b8092505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed290613afe565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b610fa181610f9c611388565b61178e565b8282600b9190610fb2929190612bc3565b50505050565b606060028054610fc7906133d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff3906133d2565b80156110405780601f1061101557610100808354040283529160200191611040565b820191906000526020600020905b81548152906001019060200180831161102357829003601f168201915b5050505050905090565b6110747fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa22826111e5565b50565b6000801b81565b611090611089611388565b8383611b4b565b5050565b6110a561109f611388565b83611449565b6110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db9061362c565b60405180910390fd5b6110f084848484611cb8565b50505050565b7fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa2281565b60606111258261131c565b611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b90613b90565b60405180910390fd5b600061116e611d14565b9050600081511161118e57604051806020016040528060008152506111b9565b8061119884611da6565b6040516020016111a9929190613bec565b6040516020818303038152906040525b915050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6111ee8261095e565b6111ff816111fa611388565b61178e565b611209838361190b565b505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611315575061131482611f07565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661140383610c48565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006114548261131c565b611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a90613c82565b60405180910390fd5b600061149e83610c48565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061150d57508373ffffffffffffffffffffffffffffffffffffffff166114f584610703565b73ffffffffffffffffffffffffffffffffffffffff16145b8061151e575061151d818561120e565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661154782610c48565b73ffffffffffffffffffffffffffffffffffffffff161461159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159490613d14565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490613da6565b60405180910390fd5b611618838383611fe9565b611623600082611390565b6001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116739190613dc6565b925050819055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116ca91906139ca565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461178983838361209f565b505050565b6117988282610f22565b611827576117bd8173ffffffffffffffffffffffffffffffffffffffff1660146120a4565b6117cb8360001c60206120a4565b6040516020016117dc929190613e92565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e9190612dce565b60405180910390fd5b5050565b6118358282610f22565b61190757600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506118ac611388565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6119158282610f22565b156119e857600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061198d611388565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60006119f782610c48565b9050611a0581600084611fe9565b611a10600083611390565b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a609190613dc6565b925050819055506003600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611b058160008461209f565b5050565b600081600001549050919050565b6001816000016000828254019250508190555050565b611b478282604051806020016040528060008152506122e0565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb190613f18565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611cab9190612d1a565b60405180910390a3505050565b611cc3848484611527565b611ccf8484848461233b565b611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0590613faa565b60405180910390fd5b50505050565b6060600b8054611d23906133d2565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4f906133d2565b8015611d9c5780601f10611d7157610100808354040283529160200191611d9c565b820191906000526020600020905b815481529060010190602001808311611d7f57829003601f168201915b5050505050905090565b60606000821415611dee576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611f02565b600082905060005b60008214611e20578080611e0990613fca565b915050600a82611e199190614042565b9150611df6565b60008167ffffffffffffffff811115611e3c57611e3b6131b5565b5b6040519080825280601f01601f191660200182016040528015611e6e5781602001600182028036833780820191505090505b5090505b60008514611efb57600182611e879190613dc6565b9150600a85611e969190614073565b6030611ea291906139ca565b60f81b818381518110611eb857611eb761386e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611ef49190614042565b9450611e72565b8093505050505b919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611fd257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611fe25750611fe1826124c3565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806120505750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b61208f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612086906140f0565b60405180910390fd5b61209a83838361253d565b505050565b505050565b6060600060028360026120b79190614110565b6120c191906139ca565b67ffffffffffffffff8111156120da576120d96131b5565b5b6040519080825280601f01601f19166020018201604052801561210c5781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106121445761214361386e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106121a8576121a761386e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026121e89190614110565b6121f291906139ca565b90505b6001811115612292577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106122345761223361386e565b5b1a60f81b82828151811061224b5761224a61386e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061228b9061416a565b90506121f5565b50600084146122d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cd906141e0565b60405180910390fd5b8091505092915050565b6122ea8383612651565b6122f7600084848461233b565b612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232d90613faa565b60405180910390fd5b505050565b600061235c8473ffffffffffffffffffffffffffffffffffffffff1661282b565b156124b6578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612385611388565b8786866040518563ffffffff1660e01b81526004016123a79493929190614255565b6020604051808303816000875af19250505080156123e357506040513d601f19601f820116820180604052508101906123e091906142b6565b60015b612466573d8060008114612413576040519150601f19603f3d011682016040523d82523d6000602084013e612418565b606091505b5060008151141561245e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245590613faa565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506124bb565b600190505b949350505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061253657506125358261284e565b5b9050919050565b6125488383836128b8565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561258b57612586816128bd565b6125ca565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146125c9576125c88382612906565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561260d5761260881612a73565b61264c565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461264b5761264a8282612b44565b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b89061432f565b60405180910390fd5b6126ca8161131c565b1561270a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127019061439b565b60405180910390fd5b61271660008383611fe9565b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461276691906139ca565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46128276000838361209f565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161291384610e6a565b61291d9190613dc6565b9050600060086000848152602001908152602001600020549050818114612a02576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816008600083815260200190815260200160002081905550505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600980549050612a879190613dc6565b90506000600a6000848152602001908152602001600020549050600060098381548110612ab757612ab661386e565b5b906000526020600020015490508060098381548110612ad957612ad861386e565b5b906000526020600020018190555081600a600083815260200190815260200160002081905550600a6000858152602001908152602001600020600090556009805480612b2857612b276143bb565b5b6001900381819060005260206000200160009055905550505050565b6000612b4f83610e6a565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b828054612bcf906133d2565b90600052602060002090601f016020900481019282612bf15760008555612c38565b82601f10612c0a57803560ff1916838001178555612c38565b82800160010185558215612c38579182015b82811115612c37578235825591602001919060010190612c1c565b5b509050612c459190612c49565b5090565b5b80821115612c62576000816000905550600101612c4a565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612caf81612c7a565b8114612cba57600080fd5b50565b600081359050612ccc81612ca6565b92915050565b600060208284031215612ce857612ce7612c70565b5b6000612cf684828501612cbd565b91505092915050565b60008115159050919050565b612d1481612cff565b82525050565b6000602082019050612d2f6000830184612d0b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d6f578082015181840152602081019050612d54565b83811115612d7e576000848401525b50505050565b6000601f19601f8301169050919050565b6000612da082612d35565b612daa8185612d40565b9350612dba818560208601612d51565b612dc381612d84565b840191505092915050565b60006020820190508181036000830152612de88184612d95565b905092915050565b6000819050919050565b612e0381612df0565b8114612e0e57600080fd5b50565b600081359050612e2081612dfa565b92915050565b600060208284031215612e3c57612e3b612c70565b5b6000612e4a84828501612e11565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e7e82612e53565b9050919050565b612e8e81612e73565b82525050565b6000602082019050612ea96000830184612e85565b92915050565b612eb881612e73565b8114612ec357600080fd5b50565b600081359050612ed581612eaf565b92915050565b60008060408385031215612ef257612ef1612c70565b5b6000612f0085828601612ec6565b9250506020612f1185828601612e11565b9150509250929050565b612f2481612df0565b82525050565b6000602082019050612f3f6000830184612f1b565b92915050565b600060208284031215612f5b57612f5a612c70565b5b6000612f6984828501612ec6565b91505092915050565b600080600060608486031215612f8b57612f8a612c70565b5b6000612f9986828701612ec6565b9350506020612faa86828701612ec6565b9250506040612fbb86828701612e11565b9150509250925092565b6000819050919050565b612fd881612fc5565b8114612fe357600080fd5b50565b600081359050612ff581612fcf565b92915050565b60006020828403121561301157613010612c70565b5b600061301f84828501612fe6565b91505092915050565b61303181612fc5565b82525050565b600060208201905061304c6000830184613028565b92915050565b6000806040838503121561306957613068612c70565b5b600061307785828601612fe6565b925050602061308885828601612ec6565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126130b7576130b6613092565b5b8235905067ffffffffffffffff8111156130d4576130d3613097565b5b6020830191508360018202830111156130f0576130ef61309c565b5b9250929050565b6000806020838503121561310e5761310d612c70565b5b600083013567ffffffffffffffff81111561312c5761312b612c75565b5b613138858286016130a1565b92509250509250929050565b61314d81612cff565b811461315857600080fd5b50565b60008135905061316a81613144565b92915050565b6000806040838503121561318757613186612c70565b5b600061319585828601612ec6565b92505060206131a68582860161315b565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6131ed82612d84565b810181811067ffffffffffffffff8211171561320c5761320b6131b5565b5b80604052505050565b600061321f612c66565b905061322b82826131e4565b919050565b600067ffffffffffffffff82111561324b5761324a6131b5565b5b61325482612d84565b9050602081019050919050565b82818337600083830152505050565b600061328361327e84613230565b613215565b90508281526020810184848401111561329f5761329e6131b0565b5b6132aa848285613261565b509392505050565b600082601f8301126132c7576132c6613092565b5b81356132d7848260208601613270565b91505092915050565b600080600080608085870312156132fa576132f9612c70565b5b600061330887828801612ec6565b945050602061331987828801612ec6565b935050604061332a87828801612e11565b925050606085013567ffffffffffffffff81111561334b5761334a612c75565b5b613357878288016132b2565b91505092959194509250565b6000806040838503121561337a57613379612c70565b5b600061338885828601612ec6565b925050602061339985828601612ec6565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133ea57607f821691505b602082108114156133fe576133fd6133a3565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613460602c83612d40565b915061346b82613404565b604082019050919050565b6000602082019050818103600083015261348f81613453565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006134f2602183612d40565b91506134fd82613496565b604082019050919050565b60006020820190508181036000830152613521816134e5565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000613584603883612d40565b915061358f82613528565b604082019050919050565b600060208201905081810360008301526135b381613577565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000613616603183612d40565b9150613621826135ba565b604082019050919050565b6000602082019050818103600083015261364581613609565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b60006136a8602b83612d40565b91506136b38261364c565b604082019050919050565b600060208201905081810360008301526136d78161369b565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b600061373a602f83612d40565b9150613745826136de565b604082019050919050565b600060208201905081810360008301526137698161372d565b9050919050565b7f43616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564600082015250565b60006137a6602083612d40565b91506137b182613770565b602082019050919050565b600060208201905081810360008301526137d581613799565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000613838602c83612d40565b9150613843826137dc565b604082019050919050565b600060208201905081810360008301526138678161382b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b60006138f9602983612d40565b91506139048261389d565b604082019050919050565b60006020820190508181036000830152613928816138ec565b9050919050565b7f43616e6e6f74206d696e7420746f207a65726f20616464726573730000000000600082015250565b6000613965601b83612d40565b91506139708261392f565b602082019050919050565b6000602082019050818103600083015261399481613958565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139d582612df0565b91506139e083612df0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a1557613a1461399b565b5b828201905092915050565b7f4578636565642074686520746f74616c20737570706c79000000000000000000600082015250565b6000613a56601783612d40565b9150613a6182613a20565b602082019050919050565b60006020820190508181036000830152613a8581613a49565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613ae8602a83612d40565b9150613af382613a8c565b604082019050919050565b60006020820190508181036000830152613b1781613adb565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613b7a602f83612d40565b9150613b8582613b1e565b604082019050919050565b60006020820190508181036000830152613ba981613b6d565b9050919050565b600081905092915050565b6000613bc682612d35565b613bd08185613bb0565b9350613be0818560208601612d51565b80840191505092915050565b6000613bf88285613bbb565b9150613c048284613bbb565b91508190509392505050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613c6c602c83612d40565b9150613c7782613c10565b604082019050919050565b60006020820190508181036000830152613c9b81613c5f565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613cfe602583612d40565b9150613d0982613ca2565b604082019050919050565b60006020820190508181036000830152613d2d81613cf1565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d90602483612d40565b9150613d9b82613d34565b604082019050919050565b60006020820190508181036000830152613dbf81613d83565b9050919050565b6000613dd182612df0565b9150613ddc83612df0565b925082821015613def57613dee61399b565b5b828203905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000613e30601783613bb0565b9150613e3b82613dfa565b601782019050919050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000613e7c601183613bb0565b9150613e8782613e46565b601182019050919050565b6000613e9d82613e23565b9150613ea98285613bbb565b9150613eb482613e6f565b9150613ec08284613bbb565b91508190509392505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613f02601983612d40565b9150613f0d82613ecc565b602082019050919050565b60006020820190508181036000830152613f3181613ef5565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613f94603283612d40565b9150613f9f82613f38565b604082019050919050565b60006020820190508181036000830152613fc381613f87565b9050919050565b6000613fd582612df0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140085761400761399b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061404d82612df0565b915061405883612df0565b92508261406857614067614013565b5b828204905092915050565b600061407e82612df0565b915061408983612df0565b92508261409957614098614013565b5b828206905092915050565b7f546f6b656e206e6f74207472616e7366657261626c6500000000000000000000600082015250565b60006140da601683612d40565b91506140e5826140a4565b602082019050919050565b60006020820190508181036000830152614109816140cd565b9050919050565b600061411b82612df0565b915061412683612df0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561415f5761415e61399b565b5b828202905092915050565b600061417582612df0565b915060008214156141895761418861399b565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006141ca602083612d40565b91506141d582614194565b602082019050919050565b600060208201905081810360008301526141f9816141bd565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061422782614200565b614231818561420b565b9350614241818560208601612d51565b61424a81612d84565b840191505092915050565b600060808201905061426a6000830187612e85565b6142776020830186612e85565b6142846040830185612f1b565b8181036060830152614296818461421c565b905095945050505050565b6000815190506142b081612ca6565b92915050565b6000602082840312156142cc576142cb612c70565b5b60006142da848285016142a1565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000614319602083612d40565b9150614324826142e3565b602082019050919050565b600060208201905081810360008301526143488161430c565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614385601c83612d40565b91506143908261434f565b602082019050919050565b600060208201905081810360008301526143b481614378565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220801711362676915f1b2b032c7460695b1c9b3ba33ffa5c278122c77d04195c8664736f6c634300080a0033", + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_supplyLimt\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"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\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BURN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINTER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"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\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"removeBurnRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"removeMintRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"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\":\"to\",\"type\":\"address\"}],\"name\":\"setBurnRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"setMintRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseTokenURI\",\"type\":\"string\"}],\"name\":\"updateBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"removeBurnRole(address)\":{\"details\":\"Remove burn role to address\"},\"removeMintRole(address)\":{\"details\":\"Remove mint role to address\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"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.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setBurnRole(address)\":{\"details\":\"Grant burn role to address\"},\"setMintRole(address)\":{\"details\":\"Grant mint role to address\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"one type nft has same tokenURI\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"updateBaseURI(string)\":{\"details\":\"Set token URI\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/tokens/erc721/NFTSbt.sol\":\"NFTSbt\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a\",\"dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x11b84bb56dc112a6590bfe3e0efa118aa1b5891132342200d04c4ef544cb93de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbc4803332d45dff58f865ed21c942fe4668e47cc7196c8dfe84102040b1d70f\",\"dweb:/ipfs/QmXhZLsocznRWCSyhjo3vo66Z1VsuuNptAVb6ASPYsWtGx\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x516a22876c1fab47f49b1bc22b4614491cd05338af8bd2e7b382da090a079990\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a439187f7126d31add4557f82d8aed6be0162007cd7182c48fd934dbab8f3849\",\"dweb:/ipfs/QmRPLguRFvrRJS7r6F1bcLvsx6q1VrgjEpZafyeL8D7xZh\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xd5fa74b4fb323776fa4a8158800fec9d5ac0fec0d6dd046dd93798632ada265f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33017a30a99cc5411a9e376622c31fc4a55cfc6a335e2f57f00cbf24a817ff3f\",\"dweb:/ipfs/QmWNQtWTPhA7Lo8nbxbc8KFMvZwbFYB8fSeEQ3vuapSV4a\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":{\"keccak256\":\"0x0a79511df8151b10b0a0004d6a76ad956582d32824af4c0f4886bdbdfe5746e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afbedcf17f31db719e6fdc56caa8f458799c5fa2eb94cb1e94ef18f89af85768\",\"dweb:/ipfs/QmVmqRdBfbgYThpZSoAJ5o9mnAMjx8mCHHjv3Rh8cQAAg3\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"project:/contracts/tokens/erc721/NFTSbt.sol\":{\"keccak256\":\"0xe0ee62a3d85e580d549c88b38f46c47f3d9a21fc579eea9bfd19cc781cee6fe5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9c057afdf7038ca980b19e5029f49599a49976bd40b2cc1d998cb69eb635b54\",\"dweb:/ipfs/QmP4EsohMBRDR8b7A2Em4BYwU1gkDEGULDhpPMjfDsf9fJ\"]}},\"version\":1}", + "bytecode": "0x60a0604052604051806060016040528060278152602001620047fd60279139600b9080519060200190620000359291906200038e565b503480156200004357600080fd5b506040516200482438038062004824833981810160405281019062000069919062000616565b82828160019080519060200190620000839291906200038e565b5080600290805190602001906200009c9291906200038e565b5050508060808181525050620000dc7fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa226000801b6200019360201b60201c565b620001117f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66000801b6200019360201b60201c565b620001266000801b33620001f660201b60201c565b620001587f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620001f660201b60201c565b6200018a7fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa2233620001f660201b60201c565b50505062000715565b6000620001a6836200020c60201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b6200020882826200022b60201b60201c565b5050565b6000806000838152602001908152602001600020600101549050919050565b6200023d82826200031c60201b60201c565b6200031857600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620002bd6200038660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b8280546200039c90620006df565b90600052602060002090601f016020900481019282620003c057600085556200040c565b82601f10620003db57805160ff19168380011785556200040c565b828001600101855582156200040c579182015b828111156200040b578251825591602001919060010190620003ee565b5b5090506200041b91906200041f565b5090565b5b808211156200043a57600081600090555060010162000420565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004a7826200045c565b810181811067ffffffffffffffff82111715620004c957620004c86200046d565b5b80604052505050565b6000620004de6200043e565b9050620004ec82826200049c565b919050565b600067ffffffffffffffff8211156200050f576200050e6200046d565b5b6200051a826200045c565b9050602081019050919050565b60005b83811015620005475780820151818401526020810190506200052a565b8381111562000557576000848401525b50505050565b6000620005746200056e84620004f1565b620004d2565b90508281526020810184848401111562000593576200059262000457565b5b620005a084828562000527565b509392505050565b600082601f830112620005c057620005bf62000452565b5b8151620005d28482602086016200055d565b91505092915050565b6000819050919050565b620005f081620005db565b8114620005fc57600080fd5b50565b6000815190506200061081620005e5565b92915050565b60008060006060848603121562000632576200063162000448565b5b600084015167ffffffffffffffff8111156200065357620006526200044d565b5b6200066186828701620005a8565b935050602084015167ffffffffffffffff8111156200068557620006846200044d565b5b6200069386828701620005a8565b9250506040620006a686828701620005ff565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620006f857607f821691505b602082108114156200070f576200070e620006b0565b5b50919050565b6080516140be6200073f600039600081816108af01528181610da20152610dc901526140be6000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063530dd0791161010f578063a217fddf116100a2578063c87b56dd11610071578063c87b56dd146105c5578063d5391393146105f5578063d547741f14610613578063e985e9c51461062f576101f0565b8063a217fddf14610551578063a22cb4651461056f578063b88d4fde1461058b578063b930908f146105a7576101f0565b806391d14854116100de57806391d14854146104cb578063931688cb146104fb57806395d89b4114610517578063965f4c6014610535576101f0565b8063530dd0791461041f5780636352211e1461043b5780636a6278421461046b57806370a082311461049b576101f0565b8063248a9ca31161018757806336568abe1161015657806336568abe1461039b57806342842e0e146103b757806342966c68146103d35780634f6ccce7146103ef576101f0565b8063248a9ca3146103035780632f2ff15d146103335780632f745c591461034f578063327ba6151461037f576101f0565b806318160ddd116101c357806318160ddd1461028f57806319d1997a146102ad5780631cf4e3ee146102cb57806323b872dd146102e7576101f0565b806301ffc9a7146101f557806306fdde0314610225578063081812fc14610243578063095ea7b314610273575b600080fd5b61020f600480360381019061020a9190612b00565b61065f565b60405161021c9190612b48565b60405180910390f35b61022d610671565b60405161023a9190612bfc565b60405180910390f35b61025d60048036038101906102589190612c54565b610703565b60405161026a9190612cc2565b60405180910390f35b61028d60048036038101906102889190612d09565b610788565b005b6102976108a0565b6040516102a49190612d58565b60405180910390f35b6102b56108ad565b6040516102c29190612d58565b60405180910390f35b6102e560048036038101906102e09190612d73565b6108d1565b005b61030160048036038101906102fc9190612da0565b6108fe565b005b61031d60048036038101906103189190612e29565b61095e565b60405161032a9190612e65565b60405180910390f35b61034d60048036038101906103489190612e80565b61097d565b005b61036960048036038101906103649190612d09565b6109a6565b6040516103769190612d58565b60405180910390f35b61039960048036038101906103949190612d73565b610a4b565b005b6103b560048036038101906103b09190612e80565b610a78565b005b6103d160048036038101906103cc9190612da0565b610afb565b005b6103ed60048036038101906103e89190612c54565b610b1b565b005b61040960048036038101906104049190612c54565b610baa565b6040516104169190612d58565b60405180910390f35b61043960048036038101906104349190612d73565b610c1b565b005b61045560048036038101906104509190612c54565b610c48565b6040516104629190612cc2565b60405180910390f35b61048560048036038101906104809190612d73565b610cfa565b6040516104929190612d58565b60405180910390f35b6104b560048036038101906104b09190612d73565b610e6a565b6040516104c29190612d58565b60405180910390f35b6104e560048036038101906104e09190612e80565b610f22565b6040516104f29190612b48565b60405180910390f35b61051560048036038101906105109190612f25565b610f8c565b005b61051f610fb8565b60405161052c9190612bfc565b60405180910390f35b61054f600480360381019061054a9190612d73565b61104a565b005b610559611077565b6040516105669190612e65565b60405180910390f35b61058960048036038101906105849190612f9e565b61107e565b005b6105a560048036038101906105a0919061310e565b611094565b005b6105af6110f6565b6040516105bc9190612e65565b60405180910390f35b6105df60048036038101906105da9190612c54565b61111a565b6040516105ec9190612bfc565b60405180910390f35b6105fd611150565b60405161060a9190612e65565b60405180910390f35b61062d60048036038101906106289190612e80565b611174565b005b61064960048036038101906106449190613191565b61119d565b6040516106569190612b48565b60405180910390f35b600061066a82611231565b9050919050565b60606001805461068090613200565b80601f01602080910402602001604051908101604052809291908181526020018280546106ac90613200565b80156106f95780601f106106ce576101008083540402835291602001916106f9565b820191906000526020600020905b8154815290600101906020018083116106dc57829003601f168201915b5050505050905090565b600061070e826112ab565b61074d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610744906132a4565b60405180910390fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061079382610c48565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90613336565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610823611317565b73ffffffffffffffffffffffffffffffffffffffff16148061085257506108518161084c611317565b61119d565b5b610891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610888906133c8565b60405180910390fd5b61089b838361131f565b505050565b6000600980549050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6108fb7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a682611174565b50565b61090f610909611317565b826113d8565b61094e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109459061345a565b60405180910390fd5b6109598383836114b6565b505050565b6000806000838152602001908152602001600020600101549050919050565b6109868261095e565b61099781610992611317565b61171d565b6109a183836117ba565b505050565b60006109b183610e6a565b82106109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e9906134ec565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610a757fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa228261097d565b50565b610a80611317565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae49061357e565b60405180910390fd5b610af7828261189a565b5050565b610b1683838360405180602001604052806000815250611094565b505050565b7fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa22610b4d81610b48611317565b61171d565b610b5e610b58611317565b836113d8565b610b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b94906135ea565b60405180910390fd5b610ba68261197b565b5050565b6000610bb46108a0565b8210610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec9061367c565b60405180910390fd5b60098281548110610c0957610c0861369c565b5b90600052602060002001549050919050565b610c457f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68261097d565b50565b6000806003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce89061373d565b60405180910390fd5b80915050919050565b60007f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d2e81610d29611317565b61171d565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d95906137a9565b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000001115610e3e577f00000000000000000000000000000000000000000000000000000000000000006001610df26108a0565b610dfc91906137f8565b1115610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e349061389a565b60405180910390fd5b5b6000610e4a600c611a98565b9050610e56600c611aa6565b610e608482611abc565b8092505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed29061392c565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b610fa181610f9c611317565b61171d565b8282600b9190610fb29291906129f1565b50505050565b606060028054610fc790613200565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff390613200565b80156110405780601f1061101557610100808354040283529160200191611040565b820191906000526020600020905b81548152906001019060200180831161102357829003601f168201915b5050505050905090565b6110747fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa2282611174565b50565b6000801b81565b611090611089611317565b8383611ada565b5050565b6110a561109f611317565b836113d8565b6110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db9061345a565b60405180910390fd5b6110f084848484611c47565b50505050565b7fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa2281565b60606000611126611ca3565b905060008151116111465760405180602001604052806000815250611148565b805b915050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61117d8261095e565b61118e81611189611317565b61171d565b611198838361189a565b505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806112a457506112a382611d35565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661139283610c48565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006113e3826112ab565b611422576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611419906139be565b60405180910390fd5b600061142d83610c48565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061149c57508373ffffffffffffffffffffffffffffffffffffffff1661148484610703565b73ffffffffffffffffffffffffffffffffffffffff16145b806114ad57506114ac818561119d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166114d682610c48565b73ffffffffffffffffffffffffffffffffffffffff161461152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390613a50565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390613ae2565b60405180910390fd5b6115a7838383611e17565b6115b260008261131f565b6001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116029190613b02565b925050819055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461165991906137f8565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611718838383611ecd565b505050565b6117278282610f22565b6117b65761174c8173ffffffffffffffffffffffffffffffffffffffff166014611ed2565b61175a8360001c6020611ed2565b60405160200161176b929190613c0a565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad9190612bfc565b60405180910390fd5b5050565b6117c48282610f22565b61189657600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061183b611317565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6118a48282610f22565b1561197757600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061191c611317565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600061198682610c48565b905061199481600084611e17565b61199f60008361131f565b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119ef9190613b02565b925050819055506003600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611a9481600084611ecd565b5050565b600081600001549050919050565b6001816000016000828254019250508190555050565b611ad682826040518060200160405280600081525061210e565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090613c90565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c3a9190612b48565b60405180910390a3505050565b611c528484846114b6565b611c5e84848484612169565b611c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9490613d22565b60405180910390fd5b50505050565b6060600b8054611cb290613200565b80601f0160208091040260200160405190810160405280929190818152602001828054611cde90613200565b8015611d2b5780601f10611d0057610100808354040283529160200191611d2b565b820191906000526020600020905b815481529060010190602001808311611d0e57829003601f168201915b5050505050905090565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611e0057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611e105750611e0f826122f1565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611e7e5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb490613d8e565b60405180910390fd5b611ec883838361236b565b505050565b505050565b606060006002836002611ee59190613dae565b611eef91906137f8565b67ffffffffffffffff811115611f0857611f07612fe3565b5b6040519080825280601f01601f191660200182016040528015611f3a5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611f7257611f7161369c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611fd657611fd561369c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026120169190613dae565b61202091906137f8565b90505b60018111156120c0577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106120625761206161369c565b5b1a60f81b8282815181106120795761207861369c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c9450806120b990613e08565b9050612023565b5060008414612104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fb90613e7e565b60405180910390fd5b8091505092915050565b612118838361247f565b6121256000848484612169565b612164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215b90613d22565b60405180910390fd5b505050565b600061218a8473ffffffffffffffffffffffffffffffffffffffff16612659565b156122e4578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026121b3611317565b8786866040518563ffffffff1660e01b81526004016121d59493929190613ef3565b6020604051808303816000875af192505050801561221157506040513d601f19601f8201168201806040525081019061220e9190613f54565b60015b612294573d8060008114612241576040519150601f19603f3d011682016040523d82523d6000602084013e612246565b606091505b5060008151141561228c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228390613d22565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506122e9565b600190505b949350505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061236457506123638261267c565b5b9050919050565b6123768383836126e6565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123b9576123b4816126eb565b6123f8565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146123f7576123f68382612734565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561243b57612436816128a1565b61247a565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612479576124788282612972565b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e690613fcd565b60405180910390fd5b6124f8816112ab565b15612538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252f90614039565b60405180910390fd5b61254460008383611e17565b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461259491906137f8565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461265560008383611ecd565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161274184610e6a565b61274b9190613b02565b9050600060086000848152602001908152602001600020549050818114612830576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816008600083815260200190815260200160002081905550505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016009805490506128b59190613b02565b90506000600a60008481526020019081526020016000205490506000600983815481106128e5576128e461369c565b5b9060005260206000200154905080600983815481106129075761290661369c565b5b906000526020600020018190555081600a600083815260200190815260200160002081905550600a600085815260200190815260200160002060009055600980548061295657612955614059565b5b6001900381819060005260206000200160009055905550505050565b600061297d83610e6a565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b8280546129fd90613200565b90600052602060002090601f016020900481019282612a1f5760008555612a66565b82601f10612a3857803560ff1916838001178555612a66565b82800160010185558215612a66579182015b82811115612a65578235825591602001919060010190612a4a565b5b509050612a739190612a77565b5090565b5b80821115612a90576000816000905550600101612a78565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612add81612aa8565b8114612ae857600080fd5b50565b600081359050612afa81612ad4565b92915050565b600060208284031215612b1657612b15612a9e565b5b6000612b2484828501612aeb565b91505092915050565b60008115159050919050565b612b4281612b2d565b82525050565b6000602082019050612b5d6000830184612b39565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b9d578082015181840152602081019050612b82565b83811115612bac576000848401525b50505050565b6000601f19601f8301169050919050565b6000612bce82612b63565b612bd88185612b6e565b9350612be8818560208601612b7f565b612bf181612bb2565b840191505092915050565b60006020820190508181036000830152612c168184612bc3565b905092915050565b6000819050919050565b612c3181612c1e565b8114612c3c57600080fd5b50565b600081359050612c4e81612c28565b92915050565b600060208284031215612c6a57612c69612a9e565b5b6000612c7884828501612c3f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cac82612c81565b9050919050565b612cbc81612ca1565b82525050565b6000602082019050612cd76000830184612cb3565b92915050565b612ce681612ca1565b8114612cf157600080fd5b50565b600081359050612d0381612cdd565b92915050565b60008060408385031215612d2057612d1f612a9e565b5b6000612d2e85828601612cf4565b9250506020612d3f85828601612c3f565b9150509250929050565b612d5281612c1e565b82525050565b6000602082019050612d6d6000830184612d49565b92915050565b600060208284031215612d8957612d88612a9e565b5b6000612d9784828501612cf4565b91505092915050565b600080600060608486031215612db957612db8612a9e565b5b6000612dc786828701612cf4565b9350506020612dd886828701612cf4565b9250506040612de986828701612c3f565b9150509250925092565b6000819050919050565b612e0681612df3565b8114612e1157600080fd5b50565b600081359050612e2381612dfd565b92915050565b600060208284031215612e3f57612e3e612a9e565b5b6000612e4d84828501612e14565b91505092915050565b612e5f81612df3565b82525050565b6000602082019050612e7a6000830184612e56565b92915050565b60008060408385031215612e9757612e96612a9e565b5b6000612ea585828601612e14565b9250506020612eb685828601612cf4565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112612ee557612ee4612ec0565b5b8235905067ffffffffffffffff811115612f0257612f01612ec5565b5b602083019150836001820283011115612f1e57612f1d612eca565b5b9250929050565b60008060208385031215612f3c57612f3b612a9e565b5b600083013567ffffffffffffffff811115612f5a57612f59612aa3565b5b612f6685828601612ecf565b92509250509250929050565b612f7b81612b2d565b8114612f8657600080fd5b50565b600081359050612f9881612f72565b92915050565b60008060408385031215612fb557612fb4612a9e565b5b6000612fc385828601612cf4565b9250506020612fd485828601612f89565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61301b82612bb2565b810181811067ffffffffffffffff8211171561303a57613039612fe3565b5b80604052505050565b600061304d612a94565b90506130598282613012565b919050565b600067ffffffffffffffff82111561307957613078612fe3565b5b61308282612bb2565b9050602081019050919050565b82818337600083830152505050565b60006130b16130ac8461305e565b613043565b9050828152602081018484840111156130cd576130cc612fde565b5b6130d884828561308f565b509392505050565b600082601f8301126130f5576130f4612ec0565b5b813561310584826020860161309e565b91505092915050565b6000806000806080858703121561312857613127612a9e565b5b600061313687828801612cf4565b945050602061314787828801612cf4565b935050604061315887828801612c3f565b925050606085013567ffffffffffffffff81111561317957613178612aa3565b5b613185878288016130e0565b91505092959194509250565b600080604083850312156131a8576131a7612a9e565b5b60006131b685828601612cf4565b92505060206131c785828601612cf4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061321857607f821691505b6020821081141561322c5761322b6131d1565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b600061328e602c83612b6e565b915061329982613232565b604082019050919050565b600060208201905081810360008301526132bd81613281565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613320602183612b6e565b915061332b826132c4565b604082019050919050565b6000602082019050818103600083015261334f81613313565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b60006133b2603883612b6e565b91506133bd82613356565b604082019050919050565b600060208201905081810360008301526133e1816133a5565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000613444603183612b6e565b915061344f826133e8565b604082019050919050565b6000602082019050818103600083015261347381613437565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b60006134d6602b83612b6e565b91506134e18261347a565b604082019050919050565b60006020820190508181036000830152613505816134c9565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613568602f83612b6e565b91506135738261350c565b604082019050919050565b600060208201905081810360008301526135978161355b565b9050919050565b7f43616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564600082015250565b60006135d4602083612b6e565b91506135df8261359e565b602082019050919050565b60006020820190508181036000830152613603816135c7565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000613666602c83612b6e565b91506136718261360a565b604082019050919050565b6000602082019050818103600083015261369581613659565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000613727602983612b6e565b9150613732826136cb565b604082019050919050565b600060208201905081810360008301526137568161371a565b9050919050565b7f43616e6e6f74206d696e7420746f207a65726f20616464726573730000000000600082015250565b6000613793601b83612b6e565b915061379e8261375d565b602082019050919050565b600060208201905081810360008301526137c281613786565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061380382612c1e565b915061380e83612c1e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613843576138426137c9565b5b828201905092915050565b7f4578636565642074686520746f74616c20737570706c79000000000000000000600082015250565b6000613884601783612b6e565b915061388f8261384e565b602082019050919050565b600060208201905081810360008301526138b381613877565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613916602a83612b6e565b9150613921826138ba565b604082019050919050565b6000602082019050818103600083015261394581613909565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b60006139a8602c83612b6e565b91506139b38261394c565b604082019050919050565b600060208201905081810360008301526139d78161399b565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613a3a602583612b6e565b9150613a45826139de565b604082019050919050565b60006020820190508181036000830152613a6981613a2d565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613acc602483612b6e565b9150613ad782613a70565b604082019050919050565b60006020820190508181036000830152613afb81613abf565b9050919050565b6000613b0d82612c1e565b9150613b1883612c1e565b925082821015613b2b57613b2a6137c9565b5b828203905092915050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000613b77601783613b36565b9150613b8282613b41565b601782019050919050565b6000613b9882612b63565b613ba28185613b36565b9350613bb2818560208601612b7f565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000613bf4601183613b36565b9150613bff82613bbe565b601182019050919050565b6000613c1582613b6a565b9150613c218285613b8d565b9150613c2c82613be7565b9150613c388284613b8d565b91508190509392505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613c7a601983612b6e565b9150613c8582613c44565b602082019050919050565b60006020820190508181036000830152613ca981613c6d565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613d0c603283612b6e565b9150613d1782613cb0565b604082019050919050565b60006020820190508181036000830152613d3b81613cff565b9050919050565b7f546f6b656e206e6f74207472616e7366657261626c6500000000000000000000600082015250565b6000613d78601683612b6e565b9150613d8382613d42565b602082019050919050565b60006020820190508181036000830152613da781613d6b565b9050919050565b6000613db982612c1e565b9150613dc483612c1e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dfd57613dfc6137c9565b5b828202905092915050565b6000613e1382612c1e565b91506000821415613e2757613e266137c9565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000613e68602083612b6e565b9150613e7382613e32565b602082019050919050565b60006020820190508181036000830152613e9781613e5b565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613ec582613e9e565b613ecf8185613ea9565b9350613edf818560208601612b7f565b613ee881612bb2565b840191505092915050565b6000608082019050613f086000830187612cb3565b613f156020830186612cb3565b613f226040830185612d49565b8181036060830152613f348184613eba565b905095945050505050565b600081519050613f4e81612ad4565b92915050565b600060208284031215613f6a57613f69612a9e565b5b6000613f7884828501613f3f565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613fb7602083612b6e565b9150613fc282613f81565b602082019050919050565b60006020820190508181036000830152613fe681613faa565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614023601c83612b6e565b915061402e82613fed565b602082019050919050565b6000602082019050818103600083015261405281614016565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212207d38aed6b65919091cfaa18ee416ec163a1e2f5fc99f5a4a95ec552cfe62592764736f6c634300080a003368747470733a2f2f6d61726b65742e636562672e67616d65732f6170692f6e66742f696e666f2f", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c8063530dd0791161010f578063a217fddf116100a2578063c87b56dd11610071578063c87b56dd146105c5578063d5391393146105f5578063d547741f14610613578063e985e9c51461062f576101f0565b8063a217fddf14610551578063a22cb4651461056f578063b88d4fde1461058b578063b930908f146105a7576101f0565b806391d14854116100de57806391d14854146104cb578063931688cb146104fb57806395d89b4114610517578063965f4c6014610535576101f0565b8063530dd0791461041f5780636352211e1461043b5780636a6278421461046b57806370a082311461049b576101f0565b8063248a9ca31161018757806336568abe1161015657806336568abe1461039b57806342842e0e146103b757806342966c68146103d35780634f6ccce7146103ef576101f0565b8063248a9ca3146103035780632f2ff15d146103335780632f745c591461034f578063327ba6151461037f576101f0565b806318160ddd116101c357806318160ddd1461028f57806319d1997a146102ad5780631cf4e3ee146102cb57806323b872dd146102e7576101f0565b806301ffc9a7146101f557806306fdde0314610225578063081812fc14610243578063095ea7b314610273575b600080fd5b61020f600480360381019061020a9190612b00565b61065f565b60405161021c9190612b48565b60405180910390f35b61022d610671565b60405161023a9190612bfc565b60405180910390f35b61025d60048036038101906102589190612c54565b610703565b60405161026a9190612cc2565b60405180910390f35b61028d60048036038101906102889190612d09565b610788565b005b6102976108a0565b6040516102a49190612d58565b60405180910390f35b6102b56108ad565b6040516102c29190612d58565b60405180910390f35b6102e560048036038101906102e09190612d73565b6108d1565b005b61030160048036038101906102fc9190612da0565b6108fe565b005b61031d60048036038101906103189190612e29565b61095e565b60405161032a9190612e65565b60405180910390f35b61034d60048036038101906103489190612e80565b61097d565b005b61036960048036038101906103649190612d09565b6109a6565b6040516103769190612d58565b60405180910390f35b61039960048036038101906103949190612d73565b610a4b565b005b6103b560048036038101906103b09190612e80565b610a78565b005b6103d160048036038101906103cc9190612da0565b610afb565b005b6103ed60048036038101906103e89190612c54565b610b1b565b005b61040960048036038101906104049190612c54565b610baa565b6040516104169190612d58565b60405180910390f35b61043960048036038101906104349190612d73565b610c1b565b005b61045560048036038101906104509190612c54565b610c48565b6040516104629190612cc2565b60405180910390f35b61048560048036038101906104809190612d73565b610cfa565b6040516104929190612d58565b60405180910390f35b6104b560048036038101906104b09190612d73565b610e6a565b6040516104c29190612d58565b60405180910390f35b6104e560048036038101906104e09190612e80565b610f22565b6040516104f29190612b48565b60405180910390f35b61051560048036038101906105109190612f25565b610f8c565b005b61051f610fb8565b60405161052c9190612bfc565b60405180910390f35b61054f600480360381019061054a9190612d73565b61104a565b005b610559611077565b6040516105669190612e65565b60405180910390f35b61058960048036038101906105849190612f9e565b61107e565b005b6105a560048036038101906105a0919061310e565b611094565b005b6105af6110f6565b6040516105bc9190612e65565b60405180910390f35b6105df60048036038101906105da9190612c54565b61111a565b6040516105ec9190612bfc565b60405180910390f35b6105fd611150565b60405161060a9190612e65565b60405180910390f35b61062d60048036038101906106289190612e80565b611174565b005b61064960048036038101906106449190613191565b61119d565b6040516106569190612b48565b60405180910390f35b600061066a82611231565b9050919050565b60606001805461068090613200565b80601f01602080910402602001604051908101604052809291908181526020018280546106ac90613200565b80156106f95780601f106106ce576101008083540402835291602001916106f9565b820191906000526020600020905b8154815290600101906020018083116106dc57829003601f168201915b5050505050905090565b600061070e826112ab565b61074d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610744906132a4565b60405180910390fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061079382610c48565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90613336565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610823611317565b73ffffffffffffffffffffffffffffffffffffffff16148061085257506108518161084c611317565b61119d565b5b610891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610888906133c8565b60405180910390fd5b61089b838361131f565b505050565b6000600980549050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6108fb7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a682611174565b50565b61090f610909611317565b826113d8565b61094e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109459061345a565b60405180910390fd5b6109598383836114b6565b505050565b6000806000838152602001908152602001600020600101549050919050565b6109868261095e565b61099781610992611317565b61171d565b6109a183836117ba565b505050565b60006109b183610e6a565b82106109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e9906134ec565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610a757fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa228261097d565b50565b610a80611317565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae49061357e565b60405180910390fd5b610af7828261189a565b5050565b610b1683838360405180602001604052806000815250611094565b505050565b7fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa22610b4d81610b48611317565b61171d565b610b5e610b58611317565b836113d8565b610b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b94906135ea565b60405180910390fd5b610ba68261197b565b5050565b6000610bb46108a0565b8210610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec9061367c565b60405180910390fd5b60098281548110610c0957610c0861369c565b5b90600052602060002001549050919050565b610c457f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68261097d565b50565b6000806003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce89061373d565b60405180910390fd5b80915050919050565b60007f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d2e81610d29611317565b61171d565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d95906137a9565b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000001115610e3e577f00000000000000000000000000000000000000000000000000000000000000006001610df26108a0565b610dfc91906137f8565b1115610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e349061389a565b60405180910390fd5b5b6000610e4a600c611a98565b9050610e56600c611aa6565b610e608482611abc565b8092505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed29061392c565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b610fa181610f9c611317565b61171d565b8282600b9190610fb29291906129f1565b50505050565b606060028054610fc790613200565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff390613200565b80156110405780601f1061101557610100808354040283529160200191611040565b820191906000526020600020905b81548152906001019060200180831161102357829003601f168201915b5050505050905090565b6110747fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa2282611174565b50565b6000801b81565b611090611089611317565b8383611ada565b5050565b6110a561109f611317565b836113d8565b6110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db9061345a565b60405180910390fd5b6110f084848484611c47565b50505050565b7fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa2281565b60606000611126611ca3565b905060008151116111465760405180602001604052806000815250611148565b805b915050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61117d8261095e565b61118e81611189611317565b61171d565b611198838361189a565b505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806112a457506112a382611d35565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661139283610c48565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006113e3826112ab565b611422576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611419906139be565b60405180910390fd5b600061142d83610c48565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061149c57508373ffffffffffffffffffffffffffffffffffffffff1661148484610703565b73ffffffffffffffffffffffffffffffffffffffff16145b806114ad57506114ac818561119d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166114d682610c48565b73ffffffffffffffffffffffffffffffffffffffff161461152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390613a50565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390613ae2565b60405180910390fd5b6115a7838383611e17565b6115b260008261131f565b6001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116029190613b02565b925050819055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461165991906137f8565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611718838383611ecd565b505050565b6117278282610f22565b6117b65761174c8173ffffffffffffffffffffffffffffffffffffffff166014611ed2565b61175a8360001c6020611ed2565b60405160200161176b929190613c0a565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad9190612bfc565b60405180910390fd5b5050565b6117c48282610f22565b61189657600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061183b611317565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6118a48282610f22565b1561197757600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061191c611317565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600061198682610c48565b905061199481600084611e17565b61199f60008361131f565b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119ef9190613b02565b925050819055506003600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611a9481600084611ecd565b5050565b600081600001549050919050565b6001816000016000828254019250508190555050565b611ad682826040518060200160405280600081525061210e565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090613c90565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c3a9190612b48565b60405180910390a3505050565b611c528484846114b6565b611c5e84848484612169565b611c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9490613d22565b60405180910390fd5b50505050565b6060600b8054611cb290613200565b80601f0160208091040260200160405190810160405280929190818152602001828054611cde90613200565b8015611d2b5780601f10611d0057610100808354040283529160200191611d2b565b820191906000526020600020905b815481529060010190602001808311611d0e57829003601f168201915b5050505050905090565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611e0057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611e105750611e0f826122f1565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611e7e5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb490613d8e565b60405180910390fd5b611ec883838361236b565b505050565b505050565b606060006002836002611ee59190613dae565b611eef91906137f8565b67ffffffffffffffff811115611f0857611f07612fe3565b5b6040519080825280601f01601f191660200182016040528015611f3a5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611f7257611f7161369c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611fd657611fd561369c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026120169190613dae565b61202091906137f8565b90505b60018111156120c0577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106120625761206161369c565b5b1a60f81b8282815181106120795761207861369c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c9450806120b990613e08565b9050612023565b5060008414612104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fb90613e7e565b60405180910390fd5b8091505092915050565b612118838361247f565b6121256000848484612169565b612164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215b90613d22565b60405180910390fd5b505050565b600061218a8473ffffffffffffffffffffffffffffffffffffffff16612659565b156122e4578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026121b3611317565b8786866040518563ffffffff1660e01b81526004016121d59493929190613ef3565b6020604051808303816000875af192505050801561221157506040513d601f19601f8201168201806040525081019061220e9190613f54565b60015b612294573d8060008114612241576040519150601f19603f3d011682016040523d82523d6000602084013e612246565b606091505b5060008151141561228c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228390613d22565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506122e9565b600190505b949350505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061236457506123638261267c565b5b9050919050565b6123768383836126e6565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123b9576123b4816126eb565b6123f8565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146123f7576123f68382612734565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561243b57612436816128a1565b61247a565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612479576124788282612972565b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e690613fcd565b60405180910390fd5b6124f8816112ab565b15612538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252f90614039565b60405180910390fd5b61254460008383611e17565b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461259491906137f8565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461265560008383611ecd565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161274184610e6a565b61274b9190613b02565b9050600060086000848152602001908152602001600020549050818114612830576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816008600083815260200190815260200160002081905550505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016009805490506128b59190613b02565b90506000600a60008481526020019081526020016000205490506000600983815481106128e5576128e461369c565b5b9060005260206000200154905080600983815481106129075761290661369c565b5b906000526020600020018190555081600a600083815260200190815260200160002081905550600a600085815260200190815260200160002060009055600980548061295657612955614059565b5b6001900381819060005260206000200160009055905550505050565b600061297d83610e6a565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b8280546129fd90613200565b90600052602060002090601f016020900481019282612a1f5760008555612a66565b82601f10612a3857803560ff1916838001178555612a66565b82800160010185558215612a66579182015b82811115612a65578235825591602001919060010190612a4a565b5b509050612a739190612a77565b5090565b5b80821115612a90576000816000905550600101612a78565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612add81612aa8565b8114612ae857600080fd5b50565b600081359050612afa81612ad4565b92915050565b600060208284031215612b1657612b15612a9e565b5b6000612b2484828501612aeb565b91505092915050565b60008115159050919050565b612b4281612b2d565b82525050565b6000602082019050612b5d6000830184612b39565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b9d578082015181840152602081019050612b82565b83811115612bac576000848401525b50505050565b6000601f19601f8301169050919050565b6000612bce82612b63565b612bd88185612b6e565b9350612be8818560208601612b7f565b612bf181612bb2565b840191505092915050565b60006020820190508181036000830152612c168184612bc3565b905092915050565b6000819050919050565b612c3181612c1e565b8114612c3c57600080fd5b50565b600081359050612c4e81612c28565b92915050565b600060208284031215612c6a57612c69612a9e565b5b6000612c7884828501612c3f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cac82612c81565b9050919050565b612cbc81612ca1565b82525050565b6000602082019050612cd76000830184612cb3565b92915050565b612ce681612ca1565b8114612cf157600080fd5b50565b600081359050612d0381612cdd565b92915050565b60008060408385031215612d2057612d1f612a9e565b5b6000612d2e85828601612cf4565b9250506020612d3f85828601612c3f565b9150509250929050565b612d5281612c1e565b82525050565b6000602082019050612d6d6000830184612d49565b92915050565b600060208284031215612d8957612d88612a9e565b5b6000612d9784828501612cf4565b91505092915050565b600080600060608486031215612db957612db8612a9e565b5b6000612dc786828701612cf4565b9350506020612dd886828701612cf4565b9250506040612de986828701612c3f565b9150509250925092565b6000819050919050565b612e0681612df3565b8114612e1157600080fd5b50565b600081359050612e2381612dfd565b92915050565b600060208284031215612e3f57612e3e612a9e565b5b6000612e4d84828501612e14565b91505092915050565b612e5f81612df3565b82525050565b6000602082019050612e7a6000830184612e56565b92915050565b60008060408385031215612e9757612e96612a9e565b5b6000612ea585828601612e14565b9250506020612eb685828601612cf4565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112612ee557612ee4612ec0565b5b8235905067ffffffffffffffff811115612f0257612f01612ec5565b5b602083019150836001820283011115612f1e57612f1d612eca565b5b9250929050565b60008060208385031215612f3c57612f3b612a9e565b5b600083013567ffffffffffffffff811115612f5a57612f59612aa3565b5b612f6685828601612ecf565b92509250509250929050565b612f7b81612b2d565b8114612f8657600080fd5b50565b600081359050612f9881612f72565b92915050565b60008060408385031215612fb557612fb4612a9e565b5b6000612fc385828601612cf4565b9250506020612fd485828601612f89565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61301b82612bb2565b810181811067ffffffffffffffff8211171561303a57613039612fe3565b5b80604052505050565b600061304d612a94565b90506130598282613012565b919050565b600067ffffffffffffffff82111561307957613078612fe3565b5b61308282612bb2565b9050602081019050919050565b82818337600083830152505050565b60006130b16130ac8461305e565b613043565b9050828152602081018484840111156130cd576130cc612fde565b5b6130d884828561308f565b509392505050565b600082601f8301126130f5576130f4612ec0565b5b813561310584826020860161309e565b91505092915050565b6000806000806080858703121561312857613127612a9e565b5b600061313687828801612cf4565b945050602061314787828801612cf4565b935050604061315887828801612c3f565b925050606085013567ffffffffffffffff81111561317957613178612aa3565b5b613185878288016130e0565b91505092959194509250565b600080604083850312156131a8576131a7612a9e565b5b60006131b685828601612cf4565b92505060206131c785828601612cf4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061321857607f821691505b6020821081141561322c5761322b6131d1565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b600061328e602c83612b6e565b915061329982613232565b604082019050919050565b600060208201905081810360008301526132bd81613281565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613320602183612b6e565b915061332b826132c4565b604082019050919050565b6000602082019050818103600083015261334f81613313565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b60006133b2603883612b6e565b91506133bd82613356565b604082019050919050565b600060208201905081810360008301526133e1816133a5565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000613444603183612b6e565b915061344f826133e8565b604082019050919050565b6000602082019050818103600083015261347381613437565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b60006134d6602b83612b6e565b91506134e18261347a565b604082019050919050565b60006020820190508181036000830152613505816134c9565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613568602f83612b6e565b91506135738261350c565b604082019050919050565b600060208201905081810360008301526135978161355b565b9050919050565b7f43616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564600082015250565b60006135d4602083612b6e565b91506135df8261359e565b602082019050919050565b60006020820190508181036000830152613603816135c7565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000613666602c83612b6e565b91506136718261360a565b604082019050919050565b6000602082019050818103600083015261369581613659565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000613727602983612b6e565b9150613732826136cb565b604082019050919050565b600060208201905081810360008301526137568161371a565b9050919050565b7f43616e6e6f74206d696e7420746f207a65726f20616464726573730000000000600082015250565b6000613793601b83612b6e565b915061379e8261375d565b602082019050919050565b600060208201905081810360008301526137c281613786565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061380382612c1e565b915061380e83612c1e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613843576138426137c9565b5b828201905092915050565b7f4578636565642074686520746f74616c20737570706c79000000000000000000600082015250565b6000613884601783612b6e565b915061388f8261384e565b602082019050919050565b600060208201905081810360008301526138b381613877565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613916602a83612b6e565b9150613921826138ba565b604082019050919050565b6000602082019050818103600083015261394581613909565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b60006139a8602c83612b6e565b91506139b38261394c565b604082019050919050565b600060208201905081810360008301526139d78161399b565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613a3a602583612b6e565b9150613a45826139de565b604082019050919050565b60006020820190508181036000830152613a6981613a2d565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613acc602483612b6e565b9150613ad782613a70565b604082019050919050565b60006020820190508181036000830152613afb81613abf565b9050919050565b6000613b0d82612c1e565b9150613b1883612c1e565b925082821015613b2b57613b2a6137c9565b5b828203905092915050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000613b77601783613b36565b9150613b8282613b41565b601782019050919050565b6000613b9882612b63565b613ba28185613b36565b9350613bb2818560208601612b7f565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000613bf4601183613b36565b9150613bff82613bbe565b601182019050919050565b6000613c1582613b6a565b9150613c218285613b8d565b9150613c2c82613be7565b9150613c388284613b8d565b91508190509392505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613c7a601983612b6e565b9150613c8582613c44565b602082019050919050565b60006020820190508181036000830152613ca981613c6d565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613d0c603283612b6e565b9150613d1782613cb0565b604082019050919050565b60006020820190508181036000830152613d3b81613cff565b9050919050565b7f546f6b656e206e6f74207472616e7366657261626c6500000000000000000000600082015250565b6000613d78601683612b6e565b9150613d8382613d42565b602082019050919050565b60006020820190508181036000830152613da781613d6b565b9050919050565b6000613db982612c1e565b9150613dc483612c1e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dfd57613dfc6137c9565b5b828202905092915050565b6000613e1382612c1e565b91506000821415613e2757613e266137c9565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000613e68602083612b6e565b9150613e7382613e32565b602082019050919050565b60006020820190508181036000830152613e9781613e5b565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613ec582613e9e565b613ecf8185613ea9565b9350613edf818560208601612b7f565b613ee881612bb2565b840191505092915050565b6000608082019050613f086000830187612cb3565b613f156020830186612cb3565b613f226040830185612d49565b8181036060830152613f348184613eba565b905095945050505050565b600081519050613f4e81612ad4565b92915050565b600060208284031215613f6a57613f69612a9e565b5b6000613f7884828501613f3f565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613fb7602083612b6e565b9150613fc282613f81565b602082019050919050565b60006020820190508181036000830152613fe681613faa565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614023601c83612b6e565b915061402e82613fed565b602082019050919050565b6000602082019050818103600083015261405281614016565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212207d38aed6b65919091cfaa18ee416ec163a1e2f5fc99f5a4a95ec552cfe62592764736f6c634300080a0033", "immutableReferences": { "2435": [ { @@ -3248,7 +3248,7 @@ { "ast": { "nodeType": "YulBlock", - "src": "0:43524:15", + "src": "0:41248:15", "statements": [ { "body": { @@ -15368,7 +15368,7 @@ { "body": { "nodeType": "YulBlock", - "src": "26942:128:15", + "src": "26942:125:15", "statements": [ { "expression": { @@ -15397,12 +15397,12 @@ "src": "26960:14:15" }, { - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f", + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578", "kind": "string", "nodeType": "YulLiteral", "src": "26976:34:15", "type": "", - "value": "ERC721Metadata: URI query for no" + "value": "ERC721: operator query for nonex" } ], "functionName": { @@ -15443,12 +15443,12 @@ "src": "27028:15:15" }, { - "hexValue": "6e6578697374656e7420746f6b656e", + "hexValue": "697374656e7420746f6b656e", "kind": "string", "nodeType": "YulLiteral", - "src": "27045:17:15", + "src": "27045:14:15", "type": "", - "value": "nexistent token" + "value": "istent token" } ], "functionName": { @@ -15457,724 +15457,10 @@ "src": "27021:6:15" }, "nodeType": "YulFunctionCall", - "src": "27021:42:15" + "src": "27021:39:15" }, "nodeType": "YulExpressionStatement", - "src": "27021:42:15" - } - ] - }, - "name": "store_literal_in_memory_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "26934:6:15", - "type": "" - } - ], - "src": "26836:234:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "27222:220:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "27232:74:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "27298:3:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "27303:2:15", - "type": "", - "value": "47" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "27239:58:15" - }, - "nodeType": "YulFunctionCall", - "src": "27239:67:15" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "27232:3:15" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "27404:3:15" - } - ], - "functionName": { - "name": "store_literal_in_memory_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", - "nodeType": "YulIdentifier", - "src": "27315:88:15" - }, - "nodeType": "YulFunctionCall", - "src": "27315:93:15" - }, - "nodeType": "YulExpressionStatement", - "src": "27315:93:15" - }, - { - "nodeType": "YulAssignment", - "src": "27417:19:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "27428:3:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "27433:2:15", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "27424:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "27424:12:15" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "27417:3:15" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "27210:3:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "27218:3:15", - "type": "" - } - ], - "src": "27076:366:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "27619:248:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "27629:26:15", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "27641:9:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "27652:2:15", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "27637:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "27637:18:15" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "27629:4:15" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "27676:9:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "27687:1:15", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "27672:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "27672:17:15" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "27695:4:15" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "27701:9:15" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "27691:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "27691:20:15" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "27665:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "27665:47:15" - }, - "nodeType": "YulExpressionStatement", - "src": "27665:47:15" - }, - { - "nodeType": "YulAssignment", - "src": "27721:139:15", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "27855:4:15" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "27729:124:15" - }, - "nodeType": "YulFunctionCall", - "src": "27729:131:15" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "27721:4:15" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "27599:9:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "27614:4:15", - "type": "" - } - ], - "src": "27448:419:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "27987:34:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "27997:18:15", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "28012:3:15" - }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "27997:11:15" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "27959:3:15", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "27964:6:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "27975:11:15", - "type": "" - } - ], - "src": "27873:148:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "28137:267:15", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "28147:53:15", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "28194:5:15" - } - ], - "functionName": { - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "28161:32:15" - }, - "nodeType": "YulFunctionCall", - "src": "28161:39:15" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "28151:6:15", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "28209:96:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "28293:3:15" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "28298:6:15" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "28216:76:15" - }, - "nodeType": "YulFunctionCall", - "src": "28216:89:15" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "28209:3:15" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "28340:5:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "28347:4:15", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "28336:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "28336:16:15" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "28354:3:15" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "28359:6:15" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "28314:21:15" - }, - "nodeType": "YulFunctionCall", - "src": "28314:52:15" - }, - "nodeType": "YulExpressionStatement", - "src": "28314:52:15" - }, - { - "nodeType": "YulAssignment", - "src": "28375:23:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "28386:3:15" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "28391:6:15" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "28382:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "28382:16:15" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "28375:3:15" - } - ] - } - ] - }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "28118:5:15", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "28125:3:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "28133:3:15", - "type": "" - } - ], - "src": "28027:377:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "28594:251:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "28605:102:15", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "28694:6:15" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "28703:3:15" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "28612:81:15" - }, - "nodeType": "YulFunctionCall", - "src": "28612:95:15" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "28605:3:15" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "28717:102:15", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "28806:6:15" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "28815:3:15" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "28724:81:15" - }, - "nodeType": "YulFunctionCall", - "src": "28724:95:15" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "28717:3:15" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "28829:10:15", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "28836:3:15" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "28829:3:15" - } - ] - } - ] - }, - "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": "28565:3:15", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "28571:6:15", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "28579:6:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "28590:3:15", - "type": "" - } - ], - "src": "28410:435:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "28957:125:15", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "28979:6:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "28987:1:15", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "28975:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "28975:14:15" - }, - { - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578", - "kind": "string", - "nodeType": "YulLiteral", - "src": "28991:34:15", - "type": "", - "value": "ERC721: operator query for nonex" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "28968:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "28968:58:15" - }, - "nodeType": "YulExpressionStatement", - "src": "28968:58:15" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "29047:6:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "29055:2:15", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "29043:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "29043:15:15" - }, - { - "hexValue": "697374656e7420746f6b656e", - "kind": "string", - "nodeType": "YulLiteral", - "src": "29060:14:15", - "type": "", - "value": "istent token" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "29036:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "29036:39:15" - }, - "nodeType": "YulExpressionStatement", - "src": "29036:39:15" + "src": "27021:39:15" } ] }, @@ -16184,31 +15470,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "28949:6:15", + "src": "26934:6:15", "type": "" } ], - "src": "28851:231:15" + "src": "26836:231:15" }, { "body": { "nodeType": "YulBlock", - "src": "29234:220:15", + "src": "27219:220:15", "statements": [ { "nodeType": "YulAssignment", - "src": "29244:74:15", + "src": "27229:74:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "29310:3:15" + "src": "27295:3:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29315:2:15", + "src": "27300:2:15", "type": "", "value": "44" } @@ -16216,16 +15502,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "29251:58:15" + "src": "27236:58:15" }, "nodeType": "YulFunctionCall", - "src": "29251:67:15" + "src": "27236:67:15" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "29244:3:15" + "src": "27229:3:15" } ] }, @@ -16235,34 +15521,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "29416:3:15" + "src": "27401:3:15" } ], "functionName": { "name": "store_literal_in_memory_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", "nodeType": "YulIdentifier", - "src": "29327:88:15" + "src": "27312:88:15" }, "nodeType": "YulFunctionCall", - "src": "29327:93:15" + "src": "27312:93:15" }, "nodeType": "YulExpressionStatement", - "src": "29327:93:15" + "src": "27312:93:15" }, { "nodeType": "YulAssignment", - "src": "29429:19:15", + "src": "27414:19:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "29440:3:15" + "src": "27425:3:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29445:2:15", + "src": "27430:2:15", "type": "", "value": "64" } @@ -16270,16 +15556,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29436:3:15" + "src": "27421:3:15" }, "nodeType": "YulFunctionCall", - "src": "29436:12:15" + "src": "27421:12:15" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "29429:3:15" + "src": "27414:3:15" } ] } @@ -16291,7 +15577,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "29222:3:15", + "src": "27207:3:15", "type": "" } ], @@ -16299,31 +15585,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "29230:3:15", + "src": "27215:3:15", "type": "" } ], - "src": "29088:366:15" + "src": "27073:366:15" }, { "body": { "nodeType": "YulBlock", - "src": "29631:248:15", + "src": "27616:248:15", "statements": [ { "nodeType": "YulAssignment", - "src": "29641:26:15", + "src": "27626:26:15", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29653:9:15" + "src": "27638:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29664:2:15", + "src": "27649:2:15", "type": "", "value": "32" } @@ -16331,16 +15617,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29649:3:15" + "src": "27634:3:15" }, "nodeType": "YulFunctionCall", - "src": "29649:18:15" + "src": "27634:18:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "29641:4:15" + "src": "27626:4:15" } ] }, @@ -16352,12 +15638,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29688:9:15" + "src": "27673:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29699:1:15", + "src": "27684:1:15", "type": "", "value": "0" } @@ -16365,68 +15651,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29684:3:15" + "src": "27669:3:15" }, "nodeType": "YulFunctionCall", - "src": "29684:17:15" + "src": "27669:17:15" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "29707:4:15" + "src": "27692:4:15" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29713:9:15" + "src": "27698:9:15" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "29703:3:15" + "src": "27688:3:15" }, "nodeType": "YulFunctionCall", - "src": "29703:20:15" + "src": "27688:20:15" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "29677:6:15" + "src": "27662:6:15" }, "nodeType": "YulFunctionCall", - "src": "29677:47:15" + "src": "27662:47:15" }, "nodeType": "YulExpressionStatement", - "src": "29677:47:15" + "src": "27662:47:15" }, { "nodeType": "YulAssignment", - "src": "29733:139:15", + "src": "27718:139:15", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "29867:4:15" + "src": "27852:4:15" } ], "functionName": { "name": "abi_encode_t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "29741:124:15" + "src": "27726:124:15" }, "nodeType": "YulFunctionCall", - "src": "29741:131:15" + "src": "27726:131:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "29733:4:15" + "src": "27718:4:15" } ] } @@ -16438,7 +15724,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "29611:9:15", + "src": "27596:9:15", "type": "" } ], @@ -16446,16 +15732,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "29626:4:15", + "src": "27611:4:15", "type": "" } ], - "src": "29460:419:15" + "src": "27445:419:15" }, { "body": { "nodeType": "YulBlock", - "src": "29991:118:15", + "src": "27976:118:15", "statements": [ { "expression": { @@ -16465,12 +15751,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "30013:6:15" + "src": "27998:6:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30021:1:15", + "src": "28006:1:15", "type": "", "value": "0" } @@ -16478,16 +15764,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30009:3:15" + "src": "27994:3:15" }, "nodeType": "YulFunctionCall", - "src": "30009:14:15" + "src": "27994:14:15" }, { "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f727265637420", "kind": "string", "nodeType": "YulLiteral", - "src": "30025:34:15", + "src": "28010:34:15", "type": "", "value": "ERC721: transfer from incorrect " } @@ -16495,13 +15781,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "30002:6:15" + "src": "27987:6:15" }, "nodeType": "YulFunctionCall", - "src": "30002:58:15" + "src": "27987:58:15" }, "nodeType": "YulExpressionStatement", - "src": "30002:58:15" + "src": "27987:58:15" }, { "expression": { @@ -16511,12 +15797,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "30081:6:15" + "src": "28066:6:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30089:2:15", + "src": "28074:2:15", "type": "", "value": "32" } @@ -16524,16 +15810,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30077:3:15" + "src": "28062:3:15" }, "nodeType": "YulFunctionCall", - "src": "30077:15:15" + "src": "28062:15:15" }, { "hexValue": "6f776e6572", "kind": "string", "nodeType": "YulLiteral", - "src": "30094:7:15", + "src": "28079:7:15", "type": "", "value": "owner" } @@ -16541,13 +15827,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "30070:6:15" + "src": "28055:6:15" }, "nodeType": "YulFunctionCall", - "src": "30070:32:15" + "src": "28055:32:15" }, "nodeType": "YulExpressionStatement", - "src": "30070:32:15" + "src": "28055:32:15" } ] }, @@ -16557,31 +15843,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "29983:6:15", + "src": "27968:6:15", "type": "" } ], - "src": "29885:224:15" + "src": "27870:224:15" }, { "body": { "nodeType": "YulBlock", - "src": "30261:220:15", + "src": "28246:220:15", "statements": [ { "nodeType": "YulAssignment", - "src": "30271:74:15", + "src": "28256:74:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "30337:3:15" + "src": "28322:3:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30342:2:15", + "src": "28327:2:15", "type": "", "value": "37" } @@ -16589,16 +15875,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "30278:58:15" + "src": "28263:58:15" }, "nodeType": "YulFunctionCall", - "src": "30278:67:15" + "src": "28263:67:15" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "30271:3:15" + "src": "28256:3:15" } ] }, @@ -16608,34 +15894,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "30443:3:15" + "src": "28428:3:15" } ], "functionName": { "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", "nodeType": "YulIdentifier", - "src": "30354:88:15" + "src": "28339:88:15" }, "nodeType": "YulFunctionCall", - "src": "30354:93:15" + "src": "28339:93:15" }, "nodeType": "YulExpressionStatement", - "src": "30354:93:15" + "src": "28339:93:15" }, { "nodeType": "YulAssignment", - "src": "30456:19:15", + "src": "28441:19:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "30467:3:15" + "src": "28452:3:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30472:2:15", + "src": "28457:2:15", "type": "", "value": "64" } @@ -16643,16 +15929,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30463:3:15" + "src": "28448:3:15" }, "nodeType": "YulFunctionCall", - "src": "30463:12:15" + "src": "28448:12:15" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "30456:3:15" + "src": "28441:3:15" } ] } @@ -16664,7 +15950,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "30249:3:15", + "src": "28234:3:15", "type": "" } ], @@ -16672,31 +15958,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "30257:3:15", + "src": "28242:3:15", "type": "" } ], - "src": "30115:366:15" + "src": "28100:366:15" }, { "body": { "nodeType": "YulBlock", - "src": "30658:248:15", + "src": "28643:248:15", "statements": [ { "nodeType": "YulAssignment", - "src": "30668:26:15", + "src": "28653:26:15", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30680:9:15" + "src": "28665:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30691:2:15", + "src": "28676:2:15", "type": "", "value": "32" } @@ -16704,16 +15990,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30676:3:15" + "src": "28661:3:15" }, "nodeType": "YulFunctionCall", - "src": "30676:18:15" + "src": "28661:18:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "30668:4:15" + "src": "28653:4:15" } ] }, @@ -16725,12 +16011,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30715:9:15" + "src": "28700:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30726:1:15", + "src": "28711:1:15", "type": "", "value": "0" } @@ -16738,68 +16024,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30711:3:15" + "src": "28696:3:15" }, "nodeType": "YulFunctionCall", - "src": "30711:17:15" + "src": "28696:17:15" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "30734:4:15" + "src": "28719:4:15" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30740:9:15" + "src": "28725:9:15" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "30730:3:15" + "src": "28715:3:15" }, "nodeType": "YulFunctionCall", - "src": "30730:20:15" + "src": "28715:20:15" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "30704:6:15" + "src": "28689:6:15" }, "nodeType": "YulFunctionCall", - "src": "30704:47:15" + "src": "28689:47:15" }, "nodeType": "YulExpressionStatement", - "src": "30704:47:15" + "src": "28689:47:15" }, { "nodeType": "YulAssignment", - "src": "30760:139:15", + "src": "28745:139:15", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "30894:4:15" + "src": "28879:4:15" } ], "functionName": { "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "30768:124:15" + "src": "28753:124:15" }, "nodeType": "YulFunctionCall", - "src": "30768:131:15" + "src": "28753:131:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "30760:4:15" + "src": "28745:4:15" } ] } @@ -16811,7 +16097,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "30638:9:15", + "src": "28623:9:15", "type": "" } ], @@ -16819,16 +16105,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "30653:4:15", + "src": "28638:4:15", "type": "" } ], - "src": "30487:419:15" + "src": "28472:419:15" }, { "body": { "nodeType": "YulBlock", - "src": "31018:117:15", + "src": "29003:117:15", "statements": [ { "expression": { @@ -16838,12 +16124,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "31040:6:15" + "src": "29025:6:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31048:1:15", + "src": "29033:1:15", "type": "", "value": "0" } @@ -16851,16 +16137,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31036:3:15" + "src": "29021:3:15" }, "nodeType": "YulFunctionCall", - "src": "31036:14:15" + "src": "29021:14:15" }, { "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f20616464", "kind": "string", "nodeType": "YulLiteral", - "src": "31052:34:15", + "src": "29037:34:15", "type": "", "value": "ERC721: transfer to the zero add" } @@ -16868,13 +16154,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "31029:6:15" + "src": "29014:6:15" }, "nodeType": "YulFunctionCall", - "src": "31029:58:15" + "src": "29014:58:15" }, "nodeType": "YulExpressionStatement", - "src": "31029:58:15" + "src": "29014:58:15" }, { "expression": { @@ -16884,12 +16170,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "31108:6:15" + "src": "29093:6:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31116:2:15", + "src": "29101:2:15", "type": "", "value": "32" } @@ -16897,16 +16183,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31104:3:15" + "src": "29089:3:15" }, "nodeType": "YulFunctionCall", - "src": "31104:15:15" + "src": "29089:15:15" }, { "hexValue": "72657373", "kind": "string", "nodeType": "YulLiteral", - "src": "31121:6:15", + "src": "29106:6:15", "type": "", "value": "ress" } @@ -16914,13 +16200,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "31097:6:15" + "src": "29082:6:15" }, "nodeType": "YulFunctionCall", - "src": "31097:31:15" + "src": "29082:31:15" }, "nodeType": "YulExpressionStatement", - "src": "31097:31:15" + "src": "29082:31:15" } ] }, @@ -16930,31 +16216,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "31010:6:15", + "src": "28995:6:15", "type": "" } ], - "src": "30912:223:15" + "src": "28897:223:15" }, { "body": { "nodeType": "YulBlock", - "src": "31287:220:15", + "src": "29272:220:15", "statements": [ { "nodeType": "YulAssignment", - "src": "31297:74:15", + "src": "29282:74:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "31363:3:15" + "src": "29348:3:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31368:2:15", + "src": "29353:2:15", "type": "", "value": "36" } @@ -16962,16 +16248,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "31304:58:15" + "src": "29289:58:15" }, "nodeType": "YulFunctionCall", - "src": "31304:67:15" + "src": "29289:67:15" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "31297:3:15" + "src": "29282:3:15" } ] }, @@ -16981,34 +16267,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "31469:3:15" + "src": "29454:3:15" } ], "functionName": { "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", "nodeType": "YulIdentifier", - "src": "31380:88:15" + "src": "29365:88:15" }, "nodeType": "YulFunctionCall", - "src": "31380:93:15" + "src": "29365:93:15" }, "nodeType": "YulExpressionStatement", - "src": "31380:93:15" + "src": "29365:93:15" }, { "nodeType": "YulAssignment", - "src": "31482:19:15", + "src": "29467:19:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "31493:3:15" + "src": "29478:3:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31498:2:15", + "src": "29483:2:15", "type": "", "value": "64" } @@ -17016,16 +16302,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31489:3:15" + "src": "29474:3:15" }, "nodeType": "YulFunctionCall", - "src": "31489:12:15" + "src": "29474:12:15" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "31482:3:15" + "src": "29467:3:15" } ] } @@ -17037,7 +16323,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "31275:3:15", + "src": "29260:3:15", "type": "" } ], @@ -17045,31 +16331,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "31283:3:15", + "src": "29268:3:15", "type": "" } ], - "src": "31141:366:15" + "src": "29126:366:15" }, { "body": { "nodeType": "YulBlock", - "src": "31684:248:15", + "src": "29669:248:15", "statements": [ { "nodeType": "YulAssignment", - "src": "31694:26:15", + "src": "29679:26:15", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31706:9:15" + "src": "29691:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31717:2:15", + "src": "29702:2:15", "type": "", "value": "32" } @@ -17077,16 +16363,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31702:3:15" + "src": "29687:3:15" }, "nodeType": "YulFunctionCall", - "src": "31702:18:15" + "src": "29687:18:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "31694:4:15" + "src": "29679:4:15" } ] }, @@ -17098,12 +16384,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31741:9:15" + "src": "29726:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31752:1:15", + "src": "29737:1:15", "type": "", "value": "0" } @@ -17111,68 +16397,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31737:3:15" + "src": "29722:3:15" }, "nodeType": "YulFunctionCall", - "src": "31737:17:15" + "src": "29722:17:15" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "31760:4:15" + "src": "29745:4:15" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31766:9:15" + "src": "29751:9:15" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "31756:3:15" + "src": "29741:3:15" }, "nodeType": "YulFunctionCall", - "src": "31756:20:15" + "src": "29741:20:15" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "31730:6:15" + "src": "29715:6:15" }, "nodeType": "YulFunctionCall", - "src": "31730:47:15" + "src": "29715:47:15" }, "nodeType": "YulExpressionStatement", - "src": "31730:47:15" + "src": "29715:47:15" }, { "nodeType": "YulAssignment", - "src": "31786:139:15", + "src": "29771:139:15", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "31920:4:15" + "src": "29905:4:15" } ], "functionName": { "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "31794:124:15" + "src": "29779:124:15" }, "nodeType": "YulFunctionCall", - "src": "31794:131:15" + "src": "29779:131:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "31786:4:15" + "src": "29771:4:15" } ] } @@ -17184,7 +16470,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "31664:9:15", + "src": "29649:9:15", "type": "" } ], @@ -17192,75 +16478,75 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "31679:4:15", + "src": "29664:4:15", "type": "" } ], - "src": "31513:419:15" + "src": "29498:419:15" }, { "body": { "nodeType": "YulBlock", - "src": "31983:146:15", + "src": "29968:146:15", "statements": [ { "nodeType": "YulAssignment", - "src": "31993:25:15", + "src": "29978:25:15", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "32016:1:15" + "src": "30001:1:15" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "31998:17:15" + "src": "29983:17:15" }, "nodeType": "YulFunctionCall", - "src": "31998:20:15" + "src": "29983:20:15" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "31993:1:15" + "src": "29978:1:15" } ] }, { "nodeType": "YulAssignment", - "src": "32027:25:15", + "src": "30012:25:15", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "32050:1:15" + "src": "30035:1:15" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "32032:17:15" + "src": "30017:17:15" }, "nodeType": "YulFunctionCall", - "src": "32032:20:15" + "src": "30017:20:15" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "32027:1:15" + "src": "30012:1:15" } ] }, { "body": { "nodeType": "YulBlock", - "src": "32074:22:15", + "src": "30059:22:15", "statements": [ { "expression": { @@ -17268,13 +16554,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "32076:16:15" + "src": "30061:16:15" }, "nodeType": "YulFunctionCall", - "src": "32076:18:15" + "src": "30061:18:15" }, "nodeType": "YulExpressionStatement", - "src": "32076:18:15" + "src": "30061:18:15" } ] }, @@ -17283,54 +16569,54 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "32068:1:15" + "src": "30053:1:15" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "32071:1:15" + "src": "30056:1:15" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "32065:2:15" + "src": "30050:2:15" }, "nodeType": "YulFunctionCall", - "src": "32065:8:15" + "src": "30050:8:15" }, "nodeType": "YulIf", - "src": "32062:34:15" + "src": "30047:34:15" }, { "nodeType": "YulAssignment", - "src": "32106:17:15", + "src": "30091:17:15", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "32118:1:15" + "src": "30103:1:15" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "32121:1:15" + "src": "30106:1:15" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "32114:3:15" + "src": "30099:3:15" }, "nodeType": "YulFunctionCall", - "src": "32114:9:15" + "src": "30099:9:15" }, "variableNames": [ { "name": "diff", "nodeType": "YulIdentifier", - "src": "32106:4:15" + "src": "30091:4:15" } ] } @@ -17342,13 +16628,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "31969:1:15", + "src": "29954:1:15", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "31972:1:15", + "src": "29957:1:15", "type": "" } ], @@ -17356,16 +16642,65 @@ { "name": "diff", "nodeType": "YulTypedName", - "src": "31978:4:15", + "src": "29963:4:15", "type": "" } ], - "src": "31938:191:15" + "src": "29923:191:15" }, { "body": { "nodeType": "YulBlock", - "src": "32241:67:15", + "src": "30234:34:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30244:18:15", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30259:3:15" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "30244:11:15" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30206:3:15", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "30211:6:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "30222:11:15", + "type": "" + } + ], + "src": "30120:148:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30380:67:15", "statements": [ { "expression": { @@ -17375,12 +16710,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "32263:6:15" + "src": "30402:6:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "32271:1:15", + "src": "30410:1:15", "type": "", "value": "0" } @@ -17388,16 +16723,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "32259:3:15" + "src": "30398:3:15" }, "nodeType": "YulFunctionCall", - "src": "32259:14:15" + "src": "30398:14:15" }, { "hexValue": "416363657373436f6e74726f6c3a206163636f756e7420", "kind": "string", "nodeType": "YulLiteral", - "src": "32275:25:15", + "src": "30414:25:15", "type": "", "value": "AccessControl: account " } @@ -17405,13 +16740,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "32252:6:15" + "src": "30391:6:15" }, "nodeType": "YulFunctionCall", - "src": "32252:49:15" + "src": "30391:49:15" }, "nodeType": "YulExpressionStatement", - "src": "32252:49:15" + "src": "30391:49:15" } ] }, @@ -17421,31 +16756,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "32233:6:15", + "src": "30372:6:15", "type": "" } ], - "src": "32135:173:15" + "src": "30274:173:15" }, { "body": { "nodeType": "YulBlock", - "src": "32478:238:15", + "src": "30617:238:15", "statements": [ { "nodeType": "YulAssignment", - "src": "32488:92:15", + "src": "30627:92:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "32572:3:15" + "src": "30711:3:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "32577:2:15", + "src": "30716:2:15", "type": "", "value": "23" } @@ -17453,16 +16788,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "32495:76:15" + "src": "30634:76:15" }, "nodeType": "YulFunctionCall", - "src": "32495:85:15" + "src": "30634:85:15" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "32488:3:15" + "src": "30627:3:15" } ] }, @@ -17472,34 +16807,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "32678:3:15" + "src": "30817:3:15" } ], "functionName": { "name": "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", "nodeType": "YulIdentifier", - "src": "32589:88:15" + "src": "30728:88:15" }, "nodeType": "YulFunctionCall", - "src": "32589:93:15" + "src": "30728:93:15" }, "nodeType": "YulExpressionStatement", - "src": "32589:93:15" + "src": "30728:93:15" }, { "nodeType": "YulAssignment", - "src": "32691:19:15", + "src": "30830:19:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "32702:3:15" + "src": "30841:3:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "32707:2:15", + "src": "30846:2:15", "type": "", "value": "23" } @@ -17507,16 +16842,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "32698:3:15" + "src": "30837:3:15" }, "nodeType": "YulFunctionCall", - "src": "32698:12:15" + "src": "30837:12:15" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "32691:3:15" + "src": "30830:3:15" } ] } @@ -17528,7 +16863,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "32466:3:15", + "src": "30605:3:15", "type": "" } ], @@ -17536,2833 +16871,74 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "32474:3:15", + "src": "30613:3:15", "type": "" } ], - "src": "32314:402:15" + "src": "30453:402:15" }, { "body": { "nodeType": "YulBlock", - "src": "32828:61:15", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "32850:6:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "32858:1:15", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "32846:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "32846:14:15" - }, - { - "hexValue": "206973206d697373696e6720726f6c6520", - "kind": "string", - "nodeType": "YulLiteral", - "src": "32862:19:15", - "type": "", - "value": " is missing role " - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "32839:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "32839:43:15" - }, - "nodeType": "YulExpressionStatement", - "src": "32839:43:15" - } - ] - }, - "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "32820:6:15", - "type": "" - } - ], - "src": "32722:167:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "33059:238:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "33069:92:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "33153:3:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "33158:2:15", - "type": "", - "value": "17" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "33076:76:15" - }, - "nodeType": "YulFunctionCall", - "src": "33076:85:15" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "33069:3:15" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "33259:3:15" - } - ], - "functionName": { - "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", - "nodeType": "YulIdentifier", - "src": "33170:88:15" - }, - "nodeType": "YulFunctionCall", - "src": "33170:93:15" - }, - "nodeType": "YulExpressionStatement", - "src": "33170:93:15" - }, - { - "nodeType": "YulAssignment", - "src": "33272:19:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "33283:3:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "33288:2:15", - "type": "", - "value": "17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "33279:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "33279:12:15" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "33272:3:15" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "33047:3:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "33055:3:15", - "type": "" - } - ], - "src": "32895:402:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "33689:581:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "33700:155:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "33851:3:15" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "33707:142:15" - }, - "nodeType": "YulFunctionCall", - "src": "33707:148:15" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "33700:3:15" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "33865:102:15", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "33954:6:15" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "33963:3:15" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "33872:81:15" - }, - "nodeType": "YulFunctionCall", - "src": "33872:95:15" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "33865:3:15" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "33977:155:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "34128:3:15" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "33984:142:15" - }, - "nodeType": "YulFunctionCall", - "src": "33984:148:15" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "33977:3:15" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "34142:102:15", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "34231:6:15" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "34240:3:15" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "34149:81:15" - }, - "nodeType": "YulFunctionCall", - "src": "34149:95:15" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "34142:3:15" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "34254:10:15", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "34261:3:15" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "34254:3:15" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "33660:3:15", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "33666:6:15", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "33674:6:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "33685:3:15", - "type": "" - } - ], - "src": "33303:967:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "34382:69:15", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "34404:6:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "34412:1:15", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "34400:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "34400:14:15" - }, - { - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "kind": "string", - "nodeType": "YulLiteral", - "src": "34416:27:15", - "type": "", - "value": "ERC721: approve to caller" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "34393:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "34393:51:15" - }, - "nodeType": "YulExpressionStatement", - "src": "34393:51:15" - } - ] - }, - "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "34374:6:15", - "type": "" - } - ], - "src": "34276:175:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "34603:220:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "34613:74:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "34679:3:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "34684:2:15", - "type": "", - "value": "25" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "34620:58:15" - }, - "nodeType": "YulFunctionCall", - "src": "34620:67:15" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "34613:3:15" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "34785:3:15" - } - ], - "functionName": { - "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", - "nodeType": "YulIdentifier", - "src": "34696:88:15" - }, - "nodeType": "YulFunctionCall", - "src": "34696:93:15" - }, - "nodeType": "YulExpressionStatement", - "src": "34696:93:15" - }, - { - "nodeType": "YulAssignment", - "src": "34798:19:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "34809:3:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "34814:2:15", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "34805:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "34805:12:15" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "34798:3:15" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "34591:3:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "34599:3:15", - "type": "" - } - ], - "src": "34457:366:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "35000:248:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "35010:26:15", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "35022:9:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "35033:2:15", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "35018:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "35018:18:15" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "35010:4:15" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "35057:9:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "35068:1:15", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "35053:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "35053:17:15" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "35076:4:15" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "35082:9:15" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "35072:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "35072:20:15" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "35046:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "35046:47:15" - }, - "nodeType": "YulExpressionStatement", - "src": "35046:47:15" - }, - { - "nodeType": "YulAssignment", - "src": "35102:139:15", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "35236:4:15" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "35110:124:15" - }, - "nodeType": "YulFunctionCall", - "src": "35110:131:15" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "35102:4:15" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "34980:9:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "34995:4:15", - "type": "" - } - ], - "src": "34829:419:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "35360:131:15", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "35382:6:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "35390:1:15", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "35378:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "35378:14:15" - }, - { - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e204552433732315265", - "kind": "string", - "nodeType": "YulLiteral", - "src": "35394:34:15", - "type": "", - "value": "ERC721: transfer to non ERC721Re" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "35371:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "35371:58:15" - }, - "nodeType": "YulExpressionStatement", - "src": "35371:58:15" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "35450:6:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "35458:2:15", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "35446:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "35446:15:15" - }, - { - "hexValue": "63656976657220696d706c656d656e746572", - "kind": "string", - "nodeType": "YulLiteral", - "src": "35463:20:15", - "type": "", - "value": "ceiver implementer" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "35439:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "35439:45:15" - }, - "nodeType": "YulExpressionStatement", - "src": "35439:45:15" - } - ] - }, - "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "35352:6:15", - "type": "" - } - ], - "src": "35254:237:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "35643:220:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "35653:74:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "35719:3:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "35724:2:15", - "type": "", - "value": "50" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "35660:58:15" - }, - "nodeType": "YulFunctionCall", - "src": "35660:67:15" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "35653:3:15" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "35825:3:15" - } - ], - "functionName": { - "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", - "nodeType": "YulIdentifier", - "src": "35736:88:15" - }, - "nodeType": "YulFunctionCall", - "src": "35736:93:15" - }, - "nodeType": "YulExpressionStatement", - "src": "35736:93:15" - }, - { - "nodeType": "YulAssignment", - "src": "35838:19:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "35849:3:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "35854:2:15", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "35845:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "35845:12:15" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "35838:3:15" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "35631:3:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "35639:3:15", - "type": "" - } - ], - "src": "35497:366:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "36040:248:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "36050:26:15", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "36062:9:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "36073:2:15", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "36058:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "36058:18:15" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "36050:4:15" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "36097:9:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "36108:1:15", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "36093:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "36093:17:15" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "36116:4:15" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "36122:9:15" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "36112:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "36112:20:15" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "36086:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "36086:47:15" - }, - "nodeType": "YulExpressionStatement", - "src": "36086:47:15" - }, - { - "nodeType": "YulAssignment", - "src": "36142:139:15", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "36276:4:15" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "36150:124:15" - }, - "nodeType": "YulFunctionCall", - "src": "36150:131:15" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "36142:4:15" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "36020:9:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "36035:4:15", - "type": "" - } - ], - "src": "35869:419:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "36337:190:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "36347:33:15", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "36374:5:15" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "36356:17:15" - }, - "nodeType": "YulFunctionCall", - "src": "36356:24:15" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "36347:5:15" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "36470:22:15", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "36472:16:15" - }, - "nodeType": "YulFunctionCall", - "src": "36472:18:15" - }, - "nodeType": "YulExpressionStatement", - "src": "36472:18:15" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "36395:5:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "36402:66:15", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "36392:2:15" - }, - "nodeType": "YulFunctionCall", - "src": "36392:77:15" - }, - "nodeType": "YulIf", - "src": "36389:103:15" - }, - { - "nodeType": "YulAssignment", - "src": "36501:20:15", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "36512:5:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "36519:1:15", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "36508:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "36508:13:15" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "36501:3:15" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "36323:5:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "36333:3:15", - "type": "" - } - ], - "src": "36294:233:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "36561:152:15", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "36578:1:15", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "36581:77:15", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "36571:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "36571:88:15" - }, - "nodeType": "YulExpressionStatement", - "src": "36571:88:15" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "36675:1:15", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "36678:4:15", - "type": "", - "value": "0x12" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "36668:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "36668:15:15" - }, - "nodeType": "YulExpressionStatement", - "src": "36668:15:15" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "36699:1:15", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "36702:4:15", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "36692:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "36692:15:15" - }, - "nodeType": "YulExpressionStatement", - "src": "36692:15:15" - } - ] - }, - "name": "panic_error_0x12", - "nodeType": "YulFunctionDefinition", - "src": "36533:180:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "36761:143:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "36771:25:15", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "36794:1:15" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "36776:17:15" - }, - "nodeType": "YulFunctionCall", - "src": "36776:20:15" - }, - "variableNames": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "36771:1:15" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "36805:25:15", - "value": { - "arguments": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "36828:1:15" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "36810:17:15" - }, - "nodeType": "YulFunctionCall", - "src": "36810:20:15" - }, - "variableNames": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "36805:1:15" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "36852:22:15", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x12", - "nodeType": "YulIdentifier", - "src": "36854:16:15" - }, - "nodeType": "YulFunctionCall", - "src": "36854:18:15" - }, - "nodeType": "YulExpressionStatement", - "src": "36854:18:15" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "36849:1:15" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "36842:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "36842:9:15" - }, - "nodeType": "YulIf", - "src": "36839:35:15" - }, - { - "nodeType": "YulAssignment", - "src": "36884:14:15", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "36893:1:15" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "36896:1:15" - } - ], - "functionName": { - "name": "div", - "nodeType": "YulIdentifier", - "src": "36889:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "36889:9:15" - }, - "variableNames": [ - { - "name": "r", - "nodeType": "YulIdentifier", - "src": "36884:1:15" - } - ] - } - ] - }, - "name": "checked_div_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nodeType": "YulTypedName", - "src": "36750:1:15", - "type": "" - }, - { - "name": "y", - "nodeType": "YulTypedName", - "src": "36753:1:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "r", - "nodeType": "YulTypedName", - "src": "36759:1:15", - "type": "" - } - ], - "src": "36719:185:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "36944:142:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "36954:25:15", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "36977:1:15" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "36959:17:15" - }, - "nodeType": "YulFunctionCall", - "src": "36959:20:15" - }, - "variableNames": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "36954:1:15" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "36988:25:15", - "value": { - "arguments": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "37011:1:15" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "36993:17:15" - }, - "nodeType": "YulFunctionCall", - "src": "36993:20:15" - }, - "variableNames": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "36988:1:15" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "37035:22:15", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x12", - "nodeType": "YulIdentifier", - "src": "37037:16:15" - }, - "nodeType": "YulFunctionCall", - "src": "37037:18:15" - }, - "nodeType": "YulExpressionStatement", - "src": "37037:18:15" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "37032:1:15" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "37025:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "37025:9:15" - }, - "nodeType": "YulIf", - "src": "37022:35:15" - }, - { - "nodeType": "YulAssignment", - "src": "37066:14:15", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "37075:1:15" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "37078:1:15" - } - ], - "functionName": { - "name": "mod", - "nodeType": "YulIdentifier", - "src": "37071:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "37071:9:15" - }, - "variableNames": [ - { - "name": "r", - "nodeType": "YulIdentifier", - "src": "37066:1:15" - } - ] - } - ] - }, - "name": "mod_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nodeType": "YulTypedName", - "src": "36933:1:15", - "type": "" - }, - { - "name": "y", - "nodeType": "YulTypedName", - "src": "36936:1:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "r", - "nodeType": "YulTypedName", - "src": "36942:1:15", - "type": "" - } - ], - "src": "36910:176:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "37198:66:15", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "37220:6:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "37228:1:15", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "37216:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "37216:14:15" - }, - { - "hexValue": "546f6b656e206e6f74207472616e7366657261626c65", - "kind": "string", - "nodeType": "YulLiteral", - "src": "37232:24:15", - "type": "", - "value": "Token not transferable" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "37209:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "37209:48:15" - }, - "nodeType": "YulExpressionStatement", - "src": "37209:48:15" - } - ] - }, - "name": "store_literal_in_memory_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "37190:6:15", - "type": "" - } - ], - "src": "37092:172:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "37416:220:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "37426:74:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "37492:3:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "37497:2:15", - "type": "", - "value": "22" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "37433:58:15" - }, - "nodeType": "YulFunctionCall", - "src": "37433:67:15" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "37426:3:15" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "37598:3:15" - } - ], - "functionName": { - "name": "store_literal_in_memory_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6", - "nodeType": "YulIdentifier", - "src": "37509:88:15" - }, - "nodeType": "YulFunctionCall", - "src": "37509:93:15" - }, - "nodeType": "YulExpressionStatement", - "src": "37509:93:15" - }, - { - "nodeType": "YulAssignment", - "src": "37611:19:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "37622:3:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "37627:2:15", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "37618:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "37618:12:15" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "37611:3:15" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "37404:3:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "37412:3:15", - "type": "" - } - ], - "src": "37270:366:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "37813:248:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "37823:26:15", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "37835:9:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "37846:2:15", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "37831:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "37831:18:15" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "37823:4:15" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "37870:9:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "37881:1:15", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "37866:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "37866:17:15" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "37889:4:15" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "37895:9:15" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "37885:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "37885:20:15" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "37859:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "37859:47:15" - }, - "nodeType": "YulExpressionStatement", - "src": "37859:47:15" - }, - { - "nodeType": "YulAssignment", - "src": "37915:139:15", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "38049:4:15" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "37923:124:15" - }, - "nodeType": "YulFunctionCall", - "src": "37923:131:15" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "37915:4:15" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "37793:9:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "37808:4:15", - "type": "" - } - ], - "src": "37642:419:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "38115:300:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "38125:25:15", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "38148:1:15" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "38130:17:15" - }, - "nodeType": "YulFunctionCall", - "src": "38130:20:15" - }, - "variableNames": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "38125:1:15" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "38159:25:15", - "value": { - "arguments": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "38182:1:15" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "38164:17:15" - }, - "nodeType": "YulFunctionCall", - "src": "38164:20:15" - }, - "variableNames": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "38159:1:15" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "38357:22:15", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "38359:16:15" - }, - "nodeType": "YulFunctionCall", - "src": "38359:18:15" - }, - "nodeType": "YulExpressionStatement", - "src": "38359:18:15" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "38269:1:15" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "38262:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "38262:9:15" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "38255:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "38255:17:15" - }, - { - "arguments": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "38277:1:15" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "38284:66:15", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - }, - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "38352:1:15" - } - ], - "functionName": { - "name": "div", - "nodeType": "YulIdentifier", - "src": "38280:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "38280:74:15" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "38274:2:15" - }, - "nodeType": "YulFunctionCall", - "src": "38274:81:15" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "38251:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "38251:105:15" - }, - "nodeType": "YulIf", - "src": "38248:131:15" - }, - { - "nodeType": "YulAssignment", - "src": "38389:20:15", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "38404:1:15" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "38407:1:15" - } - ], - "functionName": { - "name": "mul", - "nodeType": "YulIdentifier", - "src": "38400:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "38400:9:15" - }, - "variableNames": [ - { - "name": "product", - "nodeType": "YulIdentifier", - "src": "38389:7:15" - } - ] - } - ] - }, - "name": "checked_mul_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nodeType": "YulTypedName", - "src": "38098:1:15", - "type": "" - }, - { - "name": "y", - "nodeType": "YulTypedName", - "src": "38101:1:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "product", - "nodeType": "YulTypedName", - "src": "38107:7:15", - "type": "" - } - ], - "src": "38067:348:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "38464:128:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "38474:33:15", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "38501:5:15" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "38483:17:15" - }, - "nodeType": "YulFunctionCall", - "src": "38483:24:15" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "38474:5:15" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "38535:22:15", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "38537:16:15" - }, - "nodeType": "YulFunctionCall", - "src": "38537:18:15" - }, - "nodeType": "YulExpressionStatement", - "src": "38537:18:15" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "38522:5:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "38529:4:15", - "type": "", - "value": "0x00" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "38519:2:15" - }, - "nodeType": "YulFunctionCall", - "src": "38519:15:15" - }, - "nodeType": "YulIf", - "src": "38516:41:15" - }, - { - "nodeType": "YulAssignment", - "src": "38566:20:15", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "38577:5:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "38584:1:15", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "38573:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "38573:13:15" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "38566:3:15" - } - ] - } - ] - }, - "name": "decrement_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "38450:5:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "38460:3:15", - "type": "" - } - ], - "src": "38421:171:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "38704:76:15", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "38726:6:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "38734:1:15", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "38722:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "38722:14:15" - }, - { - "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", - "kind": "string", - "nodeType": "YulLiteral", - "src": "38738:34:15", - "type": "", - "value": "Strings: hex length insufficient" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "38715:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "38715:58:15" - }, - "nodeType": "YulExpressionStatement", - "src": "38715:58:15" - } - ] - }, - "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "38696:6:15", - "type": "" - } - ], - "src": "38598:182:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "38932:220:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "38942:74:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "39008:3:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "39013:2:15", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "38949:58:15" - }, - "nodeType": "YulFunctionCall", - "src": "38949:67:15" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "38942:3:15" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "39114:3:15" - } - ], - "functionName": { - "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", - "nodeType": "YulIdentifier", - "src": "39025:88:15" - }, - "nodeType": "YulFunctionCall", - "src": "39025:93:15" - }, - "nodeType": "YulExpressionStatement", - "src": "39025:93:15" - }, - { - "nodeType": "YulAssignment", - "src": "39127:19:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "39138:3:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "39143:2:15", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "39134:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "39134:12:15" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "39127:3:15" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "38920:3:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "38928:3:15", - "type": "" - } - ], - "src": "38786:366:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "39329:248:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "39339:26:15", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "39351:9:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "39362:2:15", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "39347:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "39347:18:15" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "39339:4:15" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "39386:9:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "39397:1:15", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "39382:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "39382:17:15" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "39405:4:15" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "39411:9:15" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "39401:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "39401:20:15" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "39375:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "39375:47:15" - }, - "nodeType": "YulExpressionStatement", - "src": "39375:47:15" - }, - { - "nodeType": "YulAssignment", - "src": "39431:139:15", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "39565:4:15" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "39439:124:15" - }, - "nodeType": "YulFunctionCall", - "src": "39439:131:15" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "39431:4:15" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "39309:9:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "39324:4:15", - "type": "" - } - ], - "src": "39158:419:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "39641:40:15", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "39652:22:15", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "39668:5:15" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "39662:5:15" - }, - "nodeType": "YulFunctionCall", - "src": "39662:12:15" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "39652:6:15" - } - ] - } - ] - }, - "name": "array_length_t_bytes_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "39624:5:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "39634:6:15", - "type": "" - } - ], - "src": "39583:98:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "39782:73:15", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "39799:3:15" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "39804:6:15" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "39792:6:15" - }, - "nodeType": "YulFunctionCall", - "src": "39792:19:15" - }, - "nodeType": "YulExpressionStatement", - "src": "39792:19:15" - }, - { - "nodeType": "YulAssignment", - "src": "39820:29:15", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "39839:3:15" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "39844:4:15", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "39835:3:15" - }, - "nodeType": "YulFunctionCall", - "src": "39835:14:15" - }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "39820:11:15" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "39754:3:15", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "39759:6:15", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "39770:11:15", - "type": "" - } - ], - "src": "39687:168:15" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "39951:270:15", + "src": "30971:267:15", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "39961:52:15", + "src": "30981:53:15", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "40007:5:15" + "src": "31028:5:15" } ], "functionName": { - "name": "array_length_t_bytes_memory_ptr", + "name": "array_length_t_string_memory_ptr", "nodeType": "YulIdentifier", - "src": "39975:31:15" + "src": "30995:32:15" }, "nodeType": "YulFunctionCall", - "src": "39975:38:15" + "src": "30995:39:15" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "39965:6:15", + "src": "30985:6:15", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "40022:77:15", + "src": "31043:96:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "40087:3:15" + "src": "31127:3:15" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "40092:6:15" + "src": "31132:6:15" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "40029:57:15" + "src": "31050:76:15" }, "nodeType": "YulFunctionCall", - "src": "40029:70:15" + "src": "31050:89:15" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "40022:3:15" + "src": "31043:3:15" } ] }, @@ -20374,12 +16950,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "40134:5:15" + "src": "31174:5:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "40141:4:15", + "src": "31181:4:15", "type": "", "value": "0x20" } @@ -20387,73 +16963,2454 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "40130:3:15" + "src": "31170:3:15" }, "nodeType": "YulFunctionCall", - "src": "40130:16:15" + "src": "31170:16:15" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "40148:3:15" + "src": "31188:3:15" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "40153:6:15" + "src": "31193:6:15" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", - "src": "40108:21:15" + "src": "31148:21:15" }, "nodeType": "YulFunctionCall", - "src": "40108:52:15" + "src": "31148:52:15" }, "nodeType": "YulExpressionStatement", - "src": "40108:52:15" + "src": "31148:52:15" }, { "nodeType": "YulAssignment", - "src": "40169:46:15", + "src": "31209:23:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "40180:3:15" + "src": "31220:3:15" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "31225:6:15" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31216:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "31216:16:15" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31209:3:15" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "30952:5:15", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30959:3:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30967:3:15", + "type": "" + } + ], + "src": "30861:377:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31350:61:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "31372:6:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31380:1:15", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31368:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "31368:14:15" + }, + { + "hexValue": "206973206d697373696e6720726f6c6520", + "kind": "string", + "nodeType": "YulLiteral", + "src": "31384:19:15", + "type": "", + "value": " is missing role " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31361:6:15" + }, + "nodeType": "YulFunctionCall", + "src": "31361:43:15" + }, + "nodeType": "YulExpressionStatement", + "src": "31361:43:15" + } + ] + }, + "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "31342:6:15", + "type": "" + } + ], + "src": "31244:167:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31581:238:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31591:92:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31675:3:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31680:2:15", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "31598:76:15" + }, + "nodeType": "YulFunctionCall", + "src": "31598:85:15" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31591:3:15" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31781:3:15" + } + ], + "functionName": { + "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", + "nodeType": "YulIdentifier", + "src": "31692:88:15" + }, + "nodeType": "YulFunctionCall", + "src": "31692:93:15" + }, + "nodeType": "YulExpressionStatement", + "src": "31692:93:15" + }, + { + "nodeType": "YulAssignment", + "src": "31794:19:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31805:3:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31810:2:15", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31801:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "31801:12:15" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31794:3:15" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31569:3:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31577:3:15", + "type": "" + } + ], + "src": "31417:402:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32211:581:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32222:155:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32373:3:15" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "32229:142:15" + }, + "nodeType": "YulFunctionCall", + "src": "32229:148:15" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32222:3:15" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "32387:102:15", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "32476:6:15" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32485:3:15" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "32394:81:15" + }, + "nodeType": "YulFunctionCall", + "src": "32394:95:15" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32387:3:15" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "32499:155:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32650:3:15" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "32506:142:15" + }, + "nodeType": "YulFunctionCall", + "src": "32506:148:15" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32499:3:15" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "32664:102:15", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "32753:6:15" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32762:3:15" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "32671:81:15" + }, + "nodeType": "YulFunctionCall", + "src": "32671:95:15" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32664:3:15" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "32776:10:15", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32783:3:15" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "32776:3:15" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32182:3:15", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "32188:6:15", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "32196:6:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "32207:3:15", + "type": "" + } + ], + "src": "31825:967:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32904:69:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "32926:6:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32934:1:15", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32922:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "32922:14:15" + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "32938:27:15", + "type": "", + "value": "ERC721: approve to caller" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32915:6:15" + }, + "nodeType": "YulFunctionCall", + "src": "32915:51:15" + }, + "nodeType": "YulExpressionStatement", + "src": "32915:51:15" + } + ] + }, + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "32896:6:15", + "type": "" + } + ], + "src": "32798:175:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33125:220:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33135:74:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33201:3:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33206:2:15", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33142:58:15" + }, + "nodeType": "YulFunctionCall", + "src": "33142:67:15" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33135:3:15" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33307:3:15" + } + ], + "functionName": { + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulIdentifier", + "src": "33218:88:15" + }, + "nodeType": "YulFunctionCall", + "src": "33218:93:15" + }, + "nodeType": "YulExpressionStatement", + "src": "33218:93:15" + }, + { + "nodeType": "YulAssignment", + "src": "33320:19:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33331:3:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33336:2:15", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33327:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "33327:12:15" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33320:3:15" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "33113:3:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33121:3:15", + "type": "" + } + ], + "src": "32979:366:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33522:248:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33532:26:15", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33544:9:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33555:2:15", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33540:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "33540:18:15" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33532:4:15" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33579:9:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33590:1:15", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33575:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "33575:17:15" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33598:4:15" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33604:9:15" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "33594:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "33594:20:15" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33568:6:15" + }, + "nodeType": "YulFunctionCall", + "src": "33568:47:15" + }, + "nodeType": "YulExpressionStatement", + "src": "33568:47:15" + }, + { + "nodeType": "YulAssignment", + "src": "33624:139:15", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33758:4:15" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33632:124:15" + }, + "nodeType": "YulFunctionCall", + "src": "33632:131:15" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33624:4:15" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "33502:9:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "33517:4:15", + "type": "" + } + ], + "src": "33351:419:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33882:131:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "33904:6:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33912:1:15", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33900:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "33900:14:15" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e204552433732315265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "33916:34:15", + "type": "", + "value": "ERC721: transfer to non ERC721Re" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33893:6:15" + }, + "nodeType": "YulFunctionCall", + "src": "33893:58:15" + }, + "nodeType": "YulExpressionStatement", + "src": "33893:58:15" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "33972:6:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33980:2:15", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33968:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "33968:15:15" + }, + { + "hexValue": "63656976657220696d706c656d656e746572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "33985:20:15", + "type": "", + "value": "ceiver implementer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33961:6:15" + }, + "nodeType": "YulFunctionCall", + "src": "33961:45:15" + }, + "nodeType": "YulExpressionStatement", + "src": "33961:45:15" + } + ] + }, + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "33874:6:15", + "type": "" + } + ], + "src": "33776:237:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34165:220:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34175:74:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34241:3:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34246:2:15", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34182:58:15" + }, + "nodeType": "YulFunctionCall", + "src": "34182:67:15" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34175:3:15" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34347:3:15" + } + ], + "functionName": { + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulIdentifier", + "src": "34258:88:15" + }, + "nodeType": "YulFunctionCall", + "src": "34258:93:15" + }, + "nodeType": "YulExpressionStatement", + "src": "34258:93:15" + }, + { + "nodeType": "YulAssignment", + "src": "34360:19:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34371:3:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34376:2:15", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34367:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "34367:12:15" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "34360:3:15" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34153:3:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34161:3:15", + "type": "" + } + ], + "src": "34019:366:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34562:248:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34572:26:15", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34584:9:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34595:2:15", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34580:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "34580:18:15" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34572:4:15" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34619:9:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34630:1:15", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34615:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "34615:17:15" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34638:4:15" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34644:9:15" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "34634:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "34634:20:15" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34608:6:15" + }, + "nodeType": "YulFunctionCall", + "src": "34608:47:15" + }, + "nodeType": "YulExpressionStatement", + "src": "34608:47:15" + }, + { + "nodeType": "YulAssignment", + "src": "34664:139:15", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34798:4:15" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34672:124:15" + }, + "nodeType": "YulFunctionCall", + "src": "34672:131:15" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34664:4:15" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "34542:9:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "34557:4:15", + "type": "" + } + ], + "src": "34391:419:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34922:66:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "34944:6:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34952:1:15", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34940:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "34940:14:15" + }, + { + "hexValue": "546f6b656e206e6f74207472616e7366657261626c65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "34956:24:15", + "type": "", + "value": "Token not transferable" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34933:6:15" + }, + "nodeType": "YulFunctionCall", + "src": "34933:48:15" + }, + "nodeType": "YulExpressionStatement", + "src": "34933:48:15" + } + ] + }, + "name": "store_literal_in_memory_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "34914:6:15", + "type": "" + } + ], + "src": "34816:172:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35140:220:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35150:74:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35216:3:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35221:2:15", + "type": "", + "value": "22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35157:58:15" + }, + "nodeType": "YulFunctionCall", + "src": "35157:67:15" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35150:3:15" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35322:3:15" + } + ], + "functionName": { + "name": "store_literal_in_memory_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6", + "nodeType": "YulIdentifier", + "src": "35233:88:15" + }, + "nodeType": "YulFunctionCall", + "src": "35233:93:15" + }, + "nodeType": "YulExpressionStatement", + "src": "35233:93:15" + }, + { + "nodeType": "YulAssignment", + "src": "35335:19:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35346:3:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35351:2:15", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35342:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "35342:12:15" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "35335:3:15" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "35128:3:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "35136:3:15", + "type": "" + } + ], + "src": "34994:366:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35537:248:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35547:26:15", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35559:9:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35570:2:15", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35555:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "35555:18:15" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35547:4:15" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35594:9:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35605:1:15", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35590:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "35590:17:15" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35613:4:15" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35619:9:15" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "35609:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "35609:20:15" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35583:6:15" + }, + "nodeType": "YulFunctionCall", + "src": "35583:47:15" + }, + "nodeType": "YulExpressionStatement", + "src": "35583:47:15" + }, + { + "nodeType": "YulAssignment", + "src": "35639:139:15", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35773:4:15" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35647:124:15" + }, + "nodeType": "YulFunctionCall", + "src": "35647:131:15" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35639:4:15" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "35517:9:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "35532:4:15", + "type": "" + } + ], + "src": "35366:419:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35839:300:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35849:25:15", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "35872:1:15" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "35854:17:15" + }, + "nodeType": "YulFunctionCall", + "src": "35854:20:15" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "35849:1:15" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "35883:25:15", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "35906:1:15" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "35888:17:15" + }, + "nodeType": "YulFunctionCall", + "src": "35888:20:15" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "35883:1:15" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36081:22:15", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "36083:16:15" + }, + "nodeType": "YulFunctionCall", + "src": "36083:18:15" + }, + "nodeType": "YulExpressionStatement", + "src": "36083:18:15" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "35993:1:15" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "35986:6:15" + }, + "nodeType": "YulFunctionCall", + "src": "35986:9:15" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "35979:6:15" + }, + "nodeType": "YulFunctionCall", + "src": "35979:17:15" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "36001:1:15" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36008:66:15", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "36076:1:15" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "36004:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "36004:74:15" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "35998:2:15" + }, + "nodeType": "YulFunctionCall", + "src": "35998:81:15" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "35975:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "35975:105:15" + }, + "nodeType": "YulIf", + "src": "35972:131:15" + }, + { + "nodeType": "YulAssignment", + "src": "36113:20:15", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "36128:1:15" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "36131:1:15" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "36124:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "36124:9:15" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "36113:7:15" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "35822:1:15", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "35825:1:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "35831:7:15", + "type": "" + } + ], + "src": "35791:348:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36188:128:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36198:33:15", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36225:5:15" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "36207:17:15" + }, + "nodeType": "YulFunctionCall", + "src": "36207:24:15" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36198:5:15" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36259:22:15", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "36261:16:15" + }, + "nodeType": "YulFunctionCall", + "src": "36261:18:15" + }, + "nodeType": "YulExpressionStatement", + "src": "36261:18:15" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36246:5:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36253:4:15", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "36243:2:15" + }, + "nodeType": "YulFunctionCall", + "src": "36243:15:15" + }, + "nodeType": "YulIf", + "src": "36240:41:15" + }, + { + "nodeType": "YulAssignment", + "src": "36290:20:15", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36301:5:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36308:1:15", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "36297:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "36297:13:15" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "36290:3:15" + } + ] + } + ] + }, + "name": "decrement_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "36174:5:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "36184:3:15", + "type": "" + } + ], + "src": "36145:171:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36428:76:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "36450:6:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36458:1:15", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36446:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "36446:14:15" + }, + { + "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", + "kind": "string", + "nodeType": "YulLiteral", + "src": "36462:34:15", + "type": "", + "value": "Strings: hex length insufficient" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "36439:6:15" + }, + "nodeType": "YulFunctionCall", + "src": "36439:58:15" + }, + "nodeType": "YulExpressionStatement", + "src": "36439:58:15" + } + ] + }, + "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "36420:6:15", + "type": "" + } + ], + "src": "36322:182:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36656:220:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36666:74:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36732:3:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36737:2:15", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "36673:58:15" + }, + "nodeType": "YulFunctionCall", + "src": "36673:67:15" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36666:3:15" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36838:3:15" + } + ], + "functionName": { + "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "nodeType": "YulIdentifier", + "src": "36749:88:15" + }, + "nodeType": "YulFunctionCall", + "src": "36749:93:15" + }, + "nodeType": "YulExpressionStatement", + "src": "36749:93:15" + }, + { + "nodeType": "YulAssignment", + "src": "36851:19:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36862:3:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36867:2:15", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36858:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "36858:12:15" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "36851:3:15" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "36644:3:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "36652:3:15", + "type": "" + } + ], + "src": "36510:366:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37053:248:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37063:26:15", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37075:9:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37086:2:15", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37071:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "37071:18:15" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37063:4:15" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37110:9:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37121:1:15", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37106:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "37106:17:15" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37129:4:15" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37135:9:15" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "37125:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "37125:20:15" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37099:6:15" + }, + "nodeType": "YulFunctionCall", + "src": "37099:47:15" + }, + "nodeType": "YulExpressionStatement", + "src": "37099:47:15" + }, + { + "nodeType": "YulAssignment", + "src": "37155:139:15", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37289:4:15" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37163:124:15" + }, + "nodeType": "YulFunctionCall", + "src": "37163:131:15" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37155:4:15" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "37033:9:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "37048:4:15", + "type": "" + } + ], + "src": "36882:419:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37365:40:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37376:22:15", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37392:5:15" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "37386:5:15" + }, + "nodeType": "YulFunctionCall", + "src": "37386:12:15" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37376:6:15" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "37348:5:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "37358:6:15", + "type": "" + } + ], + "src": "37307:98:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37506:73:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37523:3:15" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37528:6:15" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37516:6:15" + }, + "nodeType": "YulFunctionCall", + "src": "37516:19:15" + }, + "nodeType": "YulExpressionStatement", + "src": "37516:19:15" + }, + { + "nodeType": "YulAssignment", + "src": "37544:29:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37563:3:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37568:4:15", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37559:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "37559:14:15" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "37544:11:15" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "37478:3:15", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "37483:6:15", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "37494:11:15", + "type": "" + } + ], + "src": "37411:168:15" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37675:270:15", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "37685:52:15", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37731:5:15" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "37699:31:15" + }, + "nodeType": "YulFunctionCall", + "src": "37699:38:15" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "37689:6:15", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "37746:77:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37811:3:15" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37816:6:15" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37753:57:15" + }, + "nodeType": "YulFunctionCall", + "src": "37753:70:15" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37746:3:15" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37858:5:15" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37865:4:15", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37854:3:15" + }, + "nodeType": "YulFunctionCall", + "src": "37854:16:15" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37872:3:15" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37877:6:15" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "37832:21:15" + }, + "nodeType": "YulFunctionCall", + "src": "37832:52:15" + }, + "nodeType": "YulExpressionStatement", + "src": "37832:52:15" + }, + { + "nodeType": "YulAssignment", + "src": "37893:46:15", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37904:3:15" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "40207:6:15" + "src": "37931:6:15" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", - "src": "40185:21:15" + "src": "37909:21:15" }, "nodeType": "YulFunctionCall", - "src": "40185:29:15" + "src": "37909:29:15" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "40176:3:15" + "src": "37900:3:15" }, "nodeType": "YulFunctionCall", - "src": "40176:39:15" + "src": "37900:39:15" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "40169:3:15" + "src": "37893:3:15" } ] } @@ -20465,13 +19422,13 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "39932:5:15", + "src": "37656:5:15", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "39939:3:15", + "src": "37663:3:15", "type": "" } ], @@ -20479,31 +19436,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "39947:3:15", + "src": "37671:3:15", "type": "" } ], - "src": "39861:360:15" + "src": "37585:360:15" }, { "body": { "nodeType": "YulBlock", - "src": "40427:440:15", + "src": "38151:440:15", "statements": [ { "nodeType": "YulAssignment", - "src": "40437:27:15", + "src": "38161:27:15", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "40449:9:15" + "src": "38173:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "40460:3:15", + "src": "38184:3:15", "type": "", "value": "128" } @@ -20511,16 +19468,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "40445:3:15" + "src": "38169:3:15" }, "nodeType": "YulFunctionCall", - "src": "40445:19:15" + "src": "38169:19:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "40437:4:15" + "src": "38161:4:15" } ] }, @@ -20530,19 +19487,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "40518:6:15" + "src": "38242:6:15" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "40531:9:15" + "src": "38255:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "40542:1:15", + "src": "38266:1:15", "type": "", "value": "0" } @@ -20550,22 +19507,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "40527:3:15" + "src": "38251:3:15" }, "nodeType": "YulFunctionCall", - "src": "40527:17:15" + "src": "38251:17:15" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "40474:43:15" + "src": "38198:43:15" }, "nodeType": "YulFunctionCall", - "src": "40474:71:15" + "src": "38198:71:15" }, "nodeType": "YulExpressionStatement", - "src": "40474:71:15" + "src": "38198:71:15" }, { "expression": { @@ -20573,19 +19530,19 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "40599:6:15" + "src": "38323:6:15" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "40612:9:15" + "src": "38336:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "40623:2:15", + "src": "38347:2:15", "type": "", "value": "32" } @@ -20593,22 +19550,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "40608:3:15" + "src": "38332:3:15" }, "nodeType": "YulFunctionCall", - "src": "40608:18:15" + "src": "38332:18:15" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "40555:43:15" + "src": "38279:43:15" }, "nodeType": "YulFunctionCall", - "src": "40555:72:15" + "src": "38279:72:15" }, "nodeType": "YulExpressionStatement", - "src": "40555:72:15" + "src": "38279:72:15" }, { "expression": { @@ -20616,19 +19573,19 @@ { "name": "value2", "nodeType": "YulIdentifier", - "src": "40681:6:15" + "src": "38405:6:15" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "40694:9:15" + "src": "38418:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "40705:2:15", + "src": "38429:2:15", "type": "", "value": "64" } @@ -20636,22 +19593,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "40690:3:15" + "src": "38414:3:15" }, "nodeType": "YulFunctionCall", - "src": "40690:18:15" + "src": "38414:18:15" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "40637:43:15" + "src": "38361:43:15" }, "nodeType": "YulFunctionCall", - "src": "40637:72:15" + "src": "38361:72:15" }, "nodeType": "YulExpressionStatement", - "src": "40637:72:15" + "src": "38361:72:15" }, { "expression": { @@ -20661,12 +19618,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "40730:9:15" + "src": "38454:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "40741:2:15", + "src": "38465:2:15", "type": "", "value": "96" } @@ -20674,73 +19631,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "40726:3:15" + "src": "38450:3:15" }, "nodeType": "YulFunctionCall", - "src": "40726:18:15" + "src": "38450:18:15" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "40750:4:15" + "src": "38474:4:15" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "40756:9:15" + "src": "38480:9:15" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "40746:3:15" + "src": "38470:3:15" }, "nodeType": "YulFunctionCall", - "src": "40746:20:15" + "src": "38470:20:15" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "40719:6:15" + "src": "38443:6:15" }, "nodeType": "YulFunctionCall", - "src": "40719:48:15" + "src": "38443:48:15" }, "nodeType": "YulExpressionStatement", - "src": "40719:48:15" + "src": "38443:48:15" }, { "nodeType": "YulAssignment", - "src": "40776:84:15", + "src": "38500:84:15", "value": { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "40846:6:15" + "src": "38570:6:15" }, { "name": "tail", "nodeType": "YulIdentifier", - "src": "40855:4:15" + "src": "38579:4:15" } ], "functionName": { "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "40784:61:15" + "src": "38508:61:15" }, "nodeType": "YulFunctionCall", - "src": "40784:76:15" + "src": "38508:76:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "40776:4:15" + "src": "38500:4:15" } ] } @@ -20752,31 +19709,31 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "40375:9:15", + "src": "38099:9:15", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "40387:6:15", + "src": "38111:6:15", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "40395:6:15", + "src": "38119:6:15", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "40403:6:15", + "src": "38127:6:15", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "40411:6:15", + "src": "38135:6:15", "type": "" } ], @@ -20784,41 +19741,41 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "40422:4:15", + "src": "38146:4:15", "type": "" } ], - "src": "40227:640:15" + "src": "37951:640:15" }, { "body": { "nodeType": "YulBlock", - "src": "40935:79:15", + "src": "38659:79:15", "statements": [ { "nodeType": "YulAssignment", - "src": "40945:22:15", + "src": "38669:22:15", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "40960:6:15" + "src": "38684:6:15" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "40954:5:15" + "src": "38678:5:15" }, "nodeType": "YulFunctionCall", - "src": "40954:13:15" + "src": "38678:13:15" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "40945:5:15" + "src": "38669:5:15" } ] }, @@ -20828,19 +19785,19 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "41002:5:15" + "src": "38726:5:15" } ], "functionName": { "name": "validator_revert_t_bytes4", "nodeType": "YulIdentifier", - "src": "40976:25:15" + "src": "38700:25:15" }, "nodeType": "YulFunctionCall", - "src": "40976:32:15" + "src": "38700:32:15" }, "nodeType": "YulExpressionStatement", - "src": "40976:32:15" + "src": "38700:32:15" } ] }, @@ -20850,13 +19807,13 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "40913:6:15", + "src": "38637:6:15", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "40921:3:15", + "src": "38645:3:15", "type": "" } ], @@ -20864,21 +19821,21 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "40929:5:15", + "src": "38653:5:15", "type": "" } ], - "src": "40873:141:15" + "src": "38597:141:15" }, { "body": { "nodeType": "YulBlock", - "src": "41096:273:15", + "src": "38820:273:15", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "41142:83:15", + "src": "38866:83:15", "statements": [ { "expression": { @@ -20886,13 +19843,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "41144:77:15" + "src": "38868:77:15" }, "nodeType": "YulFunctionCall", - "src": "41144:79:15" + "src": "38868:79:15" }, "nodeType": "YulExpressionStatement", - "src": "41144:79:15" + "src": "38868:79:15" } ] }, @@ -20903,26 +19860,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "41117:7:15" + "src": "38841:7:15" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "41126:9:15" + "src": "38850:9:15" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "41113:3:15" + "src": "38837:3:15" }, "nodeType": "YulFunctionCall", - "src": "41113:23:15" + "src": "38837:23:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "41138:2:15", + "src": "38862:2:15", "type": "", "value": "32" } @@ -20930,25 +19887,25 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "41109:3:15" + "src": "38833:3:15" }, "nodeType": "YulFunctionCall", - "src": "41109:32:15" + "src": "38833:32:15" }, "nodeType": "YulIf", - "src": "41106:119:15" + "src": "38830:119:15" }, { "nodeType": "YulBlock", - "src": "41235:127:15", + "src": "38959:127:15", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "41250:15:15", + "src": "38974:15:15", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "41264:1:15", + "src": "38988:1:15", "type": "", "value": "0" }, @@ -20956,14 +19913,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "41254:6:15", + "src": "38978:6:15", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "41279:73:15", + "src": "39003:73:15", "value": { "arguments": [ { @@ -20971,41 +19928,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "41324:9:15" + "src": "39048:9:15" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "41335:6:15" + "src": "39059:6:15" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "41320:3:15" + "src": "39044:3:15" }, "nodeType": "YulFunctionCall", - "src": "41320:22:15" + "src": "39044:22:15" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "41344:7:15" + "src": "39068:7:15" } ], "functionName": { "name": "abi_decode_t_bytes4_fromMemory", "nodeType": "YulIdentifier", - "src": "41289:30:15" + "src": "39013:30:15" }, "nodeType": "YulFunctionCall", - "src": "41289:63:15" + "src": "39013:63:15" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "41279:6:15" + "src": "39003:6:15" } ] } @@ -21019,13 +19976,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "41066:9:15", + "src": "38790:9:15", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "41077:7:15", + "src": "38801:7:15", "type": "" } ], @@ -21033,16 +19990,16 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "41089:6:15", + "src": "38813:6:15", "type": "" } ], - "src": "41020:349:15" + "src": "38744:349:15" }, { "body": { "nodeType": "YulBlock", - "src": "41481:76:15", + "src": "39205:76:15", "statements": [ { "expression": { @@ -21052,12 +20009,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "41503:6:15" + "src": "39227:6:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "41511:1:15", + "src": "39235:1:15", "type": "", "value": "0" } @@ -21065,16 +20022,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "41499:3:15" + "src": "39223:3:15" }, "nodeType": "YulFunctionCall", - "src": "41499:14:15" + "src": "39223:14:15" }, { "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", "kind": "string", "nodeType": "YulLiteral", - "src": "41515:34:15", + "src": "39239:34:15", "type": "", "value": "ERC721: mint to the zero address" } @@ -21082,13 +20039,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "41492:6:15" + "src": "39216:6:15" }, "nodeType": "YulFunctionCall", - "src": "41492:58:15" + "src": "39216:58:15" }, "nodeType": "YulExpressionStatement", - "src": "41492:58:15" + "src": "39216:58:15" } ] }, @@ -21098,31 +20055,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "41473:6:15", + "src": "39197:6:15", "type": "" } ], - "src": "41375:182:15" + "src": "39099:182:15" }, { "body": { "nodeType": "YulBlock", - "src": "41709:220:15", + "src": "39433:220:15", "statements": [ { "nodeType": "YulAssignment", - "src": "41719:74:15", + "src": "39443:74:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "41785:3:15" + "src": "39509:3:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "41790:2:15", + "src": "39514:2:15", "type": "", "value": "32" } @@ -21130,16 +20087,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "41726:58:15" + "src": "39450:58:15" }, "nodeType": "YulFunctionCall", - "src": "41726:67:15" + "src": "39450:67:15" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "41719:3:15" + "src": "39443:3:15" } ] }, @@ -21149,34 +20106,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "41891:3:15" + "src": "39615:3:15" } ], "functionName": { "name": "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", "nodeType": "YulIdentifier", - "src": "41802:88:15" + "src": "39526:88:15" }, "nodeType": "YulFunctionCall", - "src": "41802:93:15" + "src": "39526:93:15" }, "nodeType": "YulExpressionStatement", - "src": "41802:93:15" + "src": "39526:93:15" }, { "nodeType": "YulAssignment", - "src": "41904:19:15", + "src": "39628:19:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "41915:3:15" + "src": "39639:3:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "41920:2:15", + "src": "39644:2:15", "type": "", "value": "32" } @@ -21184,16 +20141,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "41911:3:15" + "src": "39635:3:15" }, "nodeType": "YulFunctionCall", - "src": "41911:12:15" + "src": "39635:12:15" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "41904:3:15" + "src": "39628:3:15" } ] } @@ -21205,7 +20162,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "41697:3:15", + "src": "39421:3:15", "type": "" } ], @@ -21213,31 +20170,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "41705:3:15", + "src": "39429:3:15", "type": "" } ], - "src": "41563:366:15" + "src": "39287:366:15" }, { "body": { "nodeType": "YulBlock", - "src": "42106:248:15", + "src": "39830:248:15", "statements": [ { "nodeType": "YulAssignment", - "src": "42116:26:15", + "src": "39840:26:15", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "42128:9:15" + "src": "39852:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "42139:2:15", + "src": "39863:2:15", "type": "", "value": "32" } @@ -21245,16 +20202,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "42124:3:15" + "src": "39848:3:15" }, "nodeType": "YulFunctionCall", - "src": "42124:18:15" + "src": "39848:18:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "42116:4:15" + "src": "39840:4:15" } ] }, @@ -21266,12 +20223,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "42163:9:15" + "src": "39887:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "42174:1:15", + "src": "39898:1:15", "type": "", "value": "0" } @@ -21279,68 +20236,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "42159:3:15" + "src": "39883:3:15" }, "nodeType": "YulFunctionCall", - "src": "42159:17:15" + "src": "39883:17:15" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "42182:4:15" + "src": "39906:4:15" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "42188:9:15" + "src": "39912:9:15" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "42178:3:15" + "src": "39902:3:15" }, "nodeType": "YulFunctionCall", - "src": "42178:20:15" + "src": "39902:20:15" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "42152:6:15" + "src": "39876:6:15" }, "nodeType": "YulFunctionCall", - "src": "42152:47:15" + "src": "39876:47:15" }, "nodeType": "YulExpressionStatement", - "src": "42152:47:15" + "src": "39876:47:15" }, { "nodeType": "YulAssignment", - "src": "42208:139:15", + "src": "39932:139:15", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "42342:4:15" + "src": "40066:4:15" } ], "functionName": { "name": "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "42216:124:15" + "src": "39940:124:15" }, "nodeType": "YulFunctionCall", - "src": "42216:131:15" + "src": "39940:131:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "42208:4:15" + "src": "39932:4:15" } ] } @@ -21352,7 +20309,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "42086:9:15", + "src": "39810:9:15", "type": "" } ], @@ -21360,16 +20317,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "42101:4:15", + "src": "39825:4:15", "type": "" } ], - "src": "41935:419:15" + "src": "39659:419:15" }, { "body": { "nodeType": "YulBlock", - "src": "42466:72:15", + "src": "40190:72:15", "statements": [ { "expression": { @@ -21379,12 +20336,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "42488:6:15" + "src": "40212:6:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "42496:1:15", + "src": "40220:1:15", "type": "", "value": "0" } @@ -21392,16 +20349,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "42484:3:15" + "src": "40208:3:15" }, "nodeType": "YulFunctionCall", - "src": "42484:14:15" + "src": "40208:14:15" }, { "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", "kind": "string", "nodeType": "YulLiteral", - "src": "42500:30:15", + "src": "40224:30:15", "type": "", "value": "ERC721: token already minted" } @@ -21409,13 +20366,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "42477:6:15" + "src": "40201:6:15" }, "nodeType": "YulFunctionCall", - "src": "42477:54:15" + "src": "40201:54:15" }, "nodeType": "YulExpressionStatement", - "src": "42477:54:15" + "src": "40201:54:15" } ] }, @@ -21425,31 +20382,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "42458:6:15", + "src": "40182:6:15", "type": "" } ], - "src": "42360:178:15" + "src": "40084:178:15" }, { "body": { "nodeType": "YulBlock", - "src": "42690:220:15", + "src": "40414:220:15", "statements": [ { "nodeType": "YulAssignment", - "src": "42700:74:15", + "src": "40424:74:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "42766:3:15" + "src": "40490:3:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "42771:2:15", + "src": "40495:2:15", "type": "", "value": "28" } @@ -21457,16 +20414,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "42707:58:15" + "src": "40431:58:15" }, "nodeType": "YulFunctionCall", - "src": "42707:67:15" + "src": "40431:67:15" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "42700:3:15" + "src": "40424:3:15" } ] }, @@ -21476,34 +20433,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "42872:3:15" + "src": "40596:3:15" } ], "functionName": { "name": "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", "nodeType": "YulIdentifier", - "src": "42783:88:15" + "src": "40507:88:15" }, "nodeType": "YulFunctionCall", - "src": "42783:93:15" + "src": "40507:93:15" }, "nodeType": "YulExpressionStatement", - "src": "42783:93:15" + "src": "40507:93:15" }, { "nodeType": "YulAssignment", - "src": "42885:19:15", + "src": "40609:19:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "42896:3:15" + "src": "40620:3:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "42901:2:15", + "src": "40625:2:15", "type": "", "value": "32" } @@ -21511,16 +20468,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "42892:3:15" + "src": "40616:3:15" }, "nodeType": "YulFunctionCall", - "src": "42892:12:15" + "src": "40616:12:15" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "42885:3:15" + "src": "40609:3:15" } ] } @@ -21532,7 +20489,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "42678:3:15", + "src": "40402:3:15", "type": "" } ], @@ -21540,31 +20497,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "42686:3:15", + "src": "40410:3:15", "type": "" } ], - "src": "42544:366:15" + "src": "40268:366:15" }, { "body": { "nodeType": "YulBlock", - "src": "43087:248:15", + "src": "40811:248:15", "statements": [ { "nodeType": "YulAssignment", - "src": "43097:26:15", + "src": "40821:26:15", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "43109:9:15" + "src": "40833:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "43120:2:15", + "src": "40844:2:15", "type": "", "value": "32" } @@ -21572,16 +20529,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "43105:3:15" + "src": "40829:3:15" }, "nodeType": "YulFunctionCall", - "src": "43105:18:15" + "src": "40829:18:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "43097:4:15" + "src": "40821:4:15" } ] }, @@ -21593,12 +20550,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "43144:9:15" + "src": "40868:9:15" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "43155:1:15", + "src": "40879:1:15", "type": "", "value": "0" } @@ -21606,68 +20563,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "43140:3:15" + "src": "40864:3:15" }, "nodeType": "YulFunctionCall", - "src": "43140:17:15" + "src": "40864:17:15" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "43163:4:15" + "src": "40887:4:15" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "43169:9:15" + "src": "40893:9:15" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "43159:3:15" + "src": "40883:3:15" }, "nodeType": "YulFunctionCall", - "src": "43159:20:15" + "src": "40883:20:15" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "43133:6:15" + "src": "40857:6:15" }, "nodeType": "YulFunctionCall", - "src": "43133:47:15" + "src": "40857:47:15" }, "nodeType": "YulExpressionStatement", - "src": "43133:47:15" + "src": "40857:47:15" }, { "nodeType": "YulAssignment", - "src": "43189:139:15", + "src": "40913:139:15", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "43323:4:15" + "src": "41047:4:15" } ], "functionName": { "name": "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "43197:124:15" + "src": "40921:124:15" }, "nodeType": "YulFunctionCall", - "src": "43197:131:15" + "src": "40921:131:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "43189:4:15" + "src": "40913:4:15" } ] } @@ -21679,7 +20636,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "43067:9:15", + "src": "40791:9:15", "type": "" } ], @@ -21687,16 +20644,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "43082:4:15", + "src": "40806:4:15", "type": "" } ], - "src": "42916:419:15" + "src": "40640:419:15" }, { "body": { "nodeType": "YulBlock", - "src": "43369:152:15", + "src": "41093:152:15", "statements": [ { "expression": { @@ -21704,14 +20661,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "43386:1:15", + "src": "41110:1:15", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "43389:77:15", + "src": "41113:77:15", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } @@ -21719,13 +20676,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "43379:6:15" + "src": "41103:6:15" }, "nodeType": "YulFunctionCall", - "src": "43379:88:15" + "src": "41103:88:15" }, "nodeType": "YulExpressionStatement", - "src": "43379:88:15" + "src": "41103:88:15" }, { "expression": { @@ -21733,14 +20690,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "43483:1:15", + "src": "41207:1:15", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "43486:4:15", + "src": "41210:4:15", "type": "", "value": "0x31" } @@ -21748,13 +20705,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "43476:6:15" + "src": "41200:6:15" }, "nodeType": "YulFunctionCall", - "src": "43476:15:15" + "src": "41200:15:15" }, "nodeType": "YulExpressionStatement", - "src": "43476:15:15" + "src": "41200:15:15" }, { "expression": { @@ -21762,14 +20719,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "43507:1:15", + "src": "41231:1:15", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "43510:4:15", + "src": "41234:4:15", "type": "", "value": "0x24" } @@ -21777,31 +20734,31 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "43500:6:15" + "src": "41224:6:15" }, "nodeType": "YulFunctionCall", - "src": "43500:15:15" + "src": "41224:15:15" }, "nodeType": "YulExpressionStatement", - "src": "43500:15:15" + "src": "41224:15:15" } ] }, "name": "panic_error_0x31", "nodeType": "YulFunctionDefinition", - "src": "43341:180:15" + "src": "41065:180:15" } ] }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // string\n function abi_decode_t_string_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function store_literal_in_memory_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approved query for nonex\")\n\n mstore(add(memPtr, 32), \"istent token\")\n\n }\n\n function abi_encode_t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n store_literal_in_memory_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approval to current owne\")\n\n mstore(add(memPtr, 32), \"r\")\n\n }\n\n function abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve caller is not ow\")\n\n mstore(add(memPtr, 32), \"ner nor approved for all\")\n\n }\n\n function abi_encode_t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 56)\n store_literal_in_memory_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer caller is not o\")\n\n mstore(add(memPtr, 32), \"wner nor approved\")\n\n }\n\n function abi_encode_t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 49)\n store_literal_in_memory_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Enumerable: owner index ou\")\n\n mstore(add(memPtr, 32), \"t of bounds\")\n\n }\n\n function abi_encode_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: can only renounce\")\n\n mstore(add(memPtr, 32), \" roles for self\")\n\n }\n\n function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c52d8a267cca22510f5a5b23cfd13135d738a215ab145957a8742a2248da059d(memPtr) {\n\n mstore(add(memPtr, 0), \"Caller is not owner nor approved\")\n\n }\n\n function abi_encode_t_stringliteral_c52d8a267cca22510f5a5b23cfd13135d738a215ab145957a8742a2248da059d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_c52d8a267cca22510f5a5b23cfd13135d738a215ab145957a8742a2248da059d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c52d8a267cca22510f5a5b23cfd13135d738a215ab145957a8742a2248da059d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c52d8a267cca22510f5a5b23cfd13135d738a215ab145957a8742a2248da059d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Enumerable: global index o\")\n\n mstore(add(memPtr, 32), \"ut of bounds\")\n\n }\n\n function abi_encode_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n store_literal_in_memory_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: owner query for nonexist\")\n\n mstore(add(memPtr, 32), \"ent token\")\n\n }\n\n function abi_encode_t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_2ee0416c341986fdecc3cbd81cd5d77b44e6537a4f9aa8afff73aa35a7384cb9(memPtr) {\n\n mstore(add(memPtr, 0), \"Cannot mint to zero address\")\n\n }\n\n function abi_encode_t_stringliteral_2ee0416c341986fdecc3cbd81cd5d77b44e6537a4f9aa8afff73aa35a7384cb9_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n store_literal_in_memory_2ee0416c341986fdecc3cbd81cd5d77b44e6537a4f9aa8afff73aa35a7384cb9(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2ee0416c341986fdecc3cbd81cd5d77b44e6537a4f9aa8afff73aa35a7384cb9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2ee0416c341986fdecc3cbd81cd5d77b44e6537a4f9aa8afff73aa35a7384cb9_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function store_literal_in_memory_12d840de55800a407036c108072a110b489a6fba65d56a3541eab87f0f0af5d1(memPtr) {\n\n mstore(add(memPtr, 0), \"Exceed the total supply\")\n\n }\n\n function abi_encode_t_stringliteral_12d840de55800a407036c108072a110b489a6fba65d56a3541eab87f0f0af5d1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_12d840de55800a407036c108072a110b489a6fba65d56a3541eab87f0f0af5d1(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_12d840de55800a407036c108072a110b489a6fba65d56a3541eab87f0f0af5d1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_12d840de55800a407036c108072a110b489a6fba65d56a3541eab87f0f0af5d1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: balance query for the ze\")\n\n mstore(add(memPtr, 32), \"ro address\")\n\n }\n\n function abi_encode_t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n store_literal_in_memory_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Metadata: URI query for no\")\n\n mstore(add(memPtr, 32), \"nexistent token\")\n\n }\n\n function abi_encode_t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\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 pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: operator query for nonex\")\n\n mstore(add(memPtr, 32), \"istent token\")\n\n }\n\n function abi_encode_t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n store_literal_in_memory_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer from incorrect \")\n\n mstore(add(memPtr, 32), \"owner\")\n\n }\n\n function abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: account \")\n\n }\n\n function abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 23)\n store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(pos)\n end := add(pos, 23)\n }\n\n function store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(memPtr) {\n\n mstore(add(memPtr, 0), \" is missing role \")\n\n }\n\n function abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve to caller\")\n\n }\n\n function abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to non ERC721Re\")\n\n mstore(add(memPtr, 32), \"ceiver implementer\")\n\n }\n\n function abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function mod_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n\n function store_literal_in_memory_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6(memPtr) {\n\n mstore(add(memPtr, 0), \"Token not transferable\")\n\n }\n\n function abi_encode_t_stringliteral_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\n }\n\n function store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(memPtr) {\n\n mstore(add(memPtr, 0), \"Strings: hex length insufficient\")\n\n }\n\n function abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: mint to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: token already minted\")\n\n }\n\n function abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x31() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // string\n function abi_decode_t_string_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function store_literal_in_memory_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approved query for nonex\")\n\n mstore(add(memPtr, 32), \"istent token\")\n\n }\n\n function abi_encode_t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n store_literal_in_memory_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approval to current owne\")\n\n mstore(add(memPtr, 32), \"r\")\n\n }\n\n function abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve caller is not ow\")\n\n mstore(add(memPtr, 32), \"ner nor approved for all\")\n\n }\n\n function abi_encode_t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 56)\n store_literal_in_memory_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer caller is not o\")\n\n mstore(add(memPtr, 32), \"wner nor approved\")\n\n }\n\n function abi_encode_t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 49)\n store_literal_in_memory_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Enumerable: owner index ou\")\n\n mstore(add(memPtr, 32), \"t of bounds\")\n\n }\n\n function abi_encode_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: can only renounce\")\n\n mstore(add(memPtr, 32), \" roles for self\")\n\n }\n\n function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c52d8a267cca22510f5a5b23cfd13135d738a215ab145957a8742a2248da059d(memPtr) {\n\n mstore(add(memPtr, 0), \"Caller is not owner nor approved\")\n\n }\n\n function abi_encode_t_stringliteral_c52d8a267cca22510f5a5b23cfd13135d738a215ab145957a8742a2248da059d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_c52d8a267cca22510f5a5b23cfd13135d738a215ab145957a8742a2248da059d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c52d8a267cca22510f5a5b23cfd13135d738a215ab145957a8742a2248da059d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c52d8a267cca22510f5a5b23cfd13135d738a215ab145957a8742a2248da059d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Enumerable: global index o\")\n\n mstore(add(memPtr, 32), \"ut of bounds\")\n\n }\n\n function abi_encode_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n store_literal_in_memory_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: owner query for nonexist\")\n\n mstore(add(memPtr, 32), \"ent token\")\n\n }\n\n function abi_encode_t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_2ee0416c341986fdecc3cbd81cd5d77b44e6537a4f9aa8afff73aa35a7384cb9(memPtr) {\n\n mstore(add(memPtr, 0), \"Cannot mint to zero address\")\n\n }\n\n function abi_encode_t_stringliteral_2ee0416c341986fdecc3cbd81cd5d77b44e6537a4f9aa8afff73aa35a7384cb9_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n store_literal_in_memory_2ee0416c341986fdecc3cbd81cd5d77b44e6537a4f9aa8afff73aa35a7384cb9(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2ee0416c341986fdecc3cbd81cd5d77b44e6537a4f9aa8afff73aa35a7384cb9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2ee0416c341986fdecc3cbd81cd5d77b44e6537a4f9aa8afff73aa35a7384cb9_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function store_literal_in_memory_12d840de55800a407036c108072a110b489a6fba65d56a3541eab87f0f0af5d1(memPtr) {\n\n mstore(add(memPtr, 0), \"Exceed the total supply\")\n\n }\n\n function abi_encode_t_stringliteral_12d840de55800a407036c108072a110b489a6fba65d56a3541eab87f0f0af5d1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_12d840de55800a407036c108072a110b489a6fba65d56a3541eab87f0f0af5d1(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_12d840de55800a407036c108072a110b489a6fba65d56a3541eab87f0f0af5d1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_12d840de55800a407036c108072a110b489a6fba65d56a3541eab87f0f0af5d1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: balance query for the ze\")\n\n mstore(add(memPtr, 32), \"ro address\")\n\n }\n\n function abi_encode_t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n store_literal_in_memory_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: operator query for nonex\")\n\n mstore(add(memPtr, 32), \"istent token\")\n\n }\n\n function abi_encode_t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n store_literal_in_memory_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer from incorrect \")\n\n mstore(add(memPtr, 32), \"owner\")\n\n }\n\n function abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: account \")\n\n }\n\n function abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 23)\n store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(pos)\n end := add(pos, 23)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(memPtr) {\n\n mstore(add(memPtr, 0), \" is missing role \")\n\n }\n\n function abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve to caller\")\n\n }\n\n function abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to non ERC721Re\")\n\n mstore(add(memPtr, 32), \"ceiver implementer\")\n\n }\n\n function abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6(memPtr) {\n\n mstore(add(memPtr, 0), \"Token not transferable\")\n\n }\n\n function abi_encode_t_stringliteral_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_59a1b9ae0c32ca530762c8a17f3a01f674ee00263439ad1ca86e8eef1f0b65d6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\n }\n\n function store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(memPtr) {\n\n mstore(add(memPtr, 0), \"Strings: hex length insufficient\")\n\n }\n\n function abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: mint to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: token already minted\")\n\n }\n\n function abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x31() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n\n}\n", "id": 15, "language": "Yul", "name": "#utility.yul" } ], - "sourceMap": "249:2708:14:-:0;;;343:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;633:383;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;733:5;740:7;1464:5:2;1456;:13;;;;;;;;;;;;:::i;:::-;;1489:7;1479;:17;;;;;;;;;;;;:::i;:::-;;1390:113;;769:11:14::1;755:25;;;;::::0;::::1;786:44;455:22;2072:4:0;811:18:14::0;::::1;786:13;;;:44;;:::i;:::-;836:46;519:24;2072:4:0;863:18:14::0;::::1;836:13;;;:46;;:::i;:::-;889:42;2072:4:0;900:18:14::0;::::1;920:10;889;;;:42;;:::i;:::-;937:35;519:24;961:10;937;;;:35;;:::i;:::-;978:33;455:22;1000:10;978;;;:33;;:::i;:::-;633:383:::0;;;249:2708;;6492:247:0;6575:25;6603:18;6616:4;6603:12;;;:18;;:::i;:::-;6575:46;;6656:9;6631:6;:12;6638:4;6631:12;;;;;;;;;;;:22;;:34;;;;6722:9;6703:17;6697:4;6680:52;;;;;;;;;;6565:174;6492:247;;:::o;6257:110::-;6335:25;6346:4;6352:7;6335:10;;;:25;;:::i;:::-;6257:110;;:::o;4008:129::-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;6861:233::-;6944:22;6952:4;6958:7;6944;;;:22;;:::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;;;:12;;:::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;2909:145::-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;640:96:9:-;693:7;719:10;712:17;;640:96;:::o;249:2708:14:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:15:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:307::-;1678:1;1688:113;1702:6;1699:1;1696:13;1688:113;;;1787:1;1782:3;1778:11;1772:18;1768:1;1763:3;1759:11;1752:39;1724:2;1721:1;1717:10;1712:15;;1688:113;;;1819:6;1816:1;1813:13;1810:101;;;1899:1;1890:6;1885:3;1881:16;1874:27;1810:101;1659:258;1610:307;;;:::o;1923:421::-;2012:5;2037:66;2053:49;2095:6;2053:49;:::i;:::-;2037:66;:::i;:::-;2028:75;;2126:6;2119:5;2112:21;2164:4;2157:5;2153:16;2202:3;2193:6;2188:3;2184:16;2181:25;2178:112;;;2209:79;;:::i;:::-;2178:112;2299:39;2331:6;2326:3;2321;2299:39;:::i;:::-;2018:326;1923:421;;;;;:::o;2364:355::-;2431:5;2480:3;2473:4;2465:6;2461:17;2457:27;2447:122;;2488:79;;:::i;:::-;2447:122;2598:6;2592:13;2623:90;2709:3;2701:6;2694:4;2686:6;2682:17;2623:90;:::i;:::-;2614:99;;2437:282;2364:355;;;;:::o;2725:77::-;2762:7;2791:5;2780:16;;2725:77;;;:::o;2808:122::-;2881:24;2899:5;2881:24;:::i;:::-;2874:5;2871:35;2861:63;;2920:1;2917;2910:12;2861:63;2808:122;:::o;2936:143::-;2993:5;3024:6;3018:13;3009:22;;3040:33;3067:5;3040:33;:::i;:::-;2936:143;;;;:::o;3085:1009::-;3193:6;3201;3209;3258:2;3246:9;3237:7;3233:23;3229:32;3226:119;;;3264:79;;:::i;:::-;3226:119;3405:1;3394:9;3390:17;3384:24;3435:18;3427:6;3424:30;3421:117;;;3457:79;;:::i;:::-;3421:117;3562:74;3628:7;3619:6;3608:9;3604:22;3562:74;:::i;:::-;3552:84;;3355:291;3706:2;3695:9;3691:18;3685:25;3737:18;3729:6;3726:30;3723:117;;;3759:79;;:::i;:::-;3723:117;3864:74;3930:7;3921:6;3910:9;3906:22;3864:74;:::i;:::-;3854:84;;3656:292;3987:2;4013:64;4069:7;4060:6;4049:9;4045:22;4013:64;:::i;:::-;4003:74;;3958:129;3085:1009;;;;;:::o;4100:180::-;4148:77;4145:1;4138:88;4245:4;4242:1;4235:15;4269:4;4266:1;4259:15;4286:320;4330:6;4367:1;4361:4;4357:12;4347:22;;4414:1;4408:4;4404:12;4435:18;4425:81;;4491:4;4483:6;4479:17;4469:27;;4425:81;4553:2;4545:6;4542:14;4522:18;4519:38;4516:84;;;4572:18;;:::i;:::-;4516:84;4337:269;4286:320;;;:::o;249:2708:14:-;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "249:2708:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1075:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2488:98:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3999:217;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3537:401;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1615:111:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;547:36:14;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2607:83;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4726:330:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4008:129:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4387:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1291:253:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2743:77:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5404:214:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5122:179:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2226:195:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1798:230:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2474:79:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2191:235:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1839:383:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1929:205:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:145:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1697:138:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2650:102:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2874:81:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2027:49:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4283:153:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5367:320;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;419:58:14;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2818:329:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;481:62:14;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4766:147:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4502:162:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1075:208:14;1221:4;1242:36;1266:11;1242:23;:36::i;:::-;1235:43;;1075:208;;;:::o;2488:98:2:-;2542:13;2574:5;2567:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2488:98;:::o;3999:217::-;4075:7;4102:16;4110:7;4102;:16::i;:::-;4094:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4185:15;:24;4201:7;4185:24;;;;;;;;;;;;;;;;;;;;;4178:31;;3999:217;;;:::o;3537:401::-;3617:13;3633:23;3648:7;3633:14;:23::i;:::-;3617:39;;3680:5;3674:11;;:2;:11;;;;3666:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3771:5;3755:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;3780:37;3797:5;3804:12;:10;:12::i;:::-;3780:16;:37::i;:::-;3755:62;3734:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;3910:21;3919:2;3923:7;3910:8;:21::i;:::-;3607:331;3537:401;;:::o;1615:111:5:-;1676:7;1702:10;:17;;;;1695:24;;1615:111;:::o;547:36:14:-;;;:::o;2607:83::-;2658:27;519:24;2682:2;2658:10;:27::i;:::-;2607:83;:::o;4726:330:2:-;4915:41;4934:12;:10;:12::i;:::-;4948:7;4915:18;:41::i;:::-;4907:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;5021:28;5031:4;5037:2;5041:7;5021:9;:28::i;:::-;4726:330;;;:::o;4008:129:0:-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;4387:145::-;4470:18;4483:4;4470:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4500:25:::1;4511:4;4517:7;4500:10;:25::i;:::-;4387:145:::0;;;:::o;1291:253:5:-;1388:7;1423:23;1440:5;1423:16;:23::i;:::-;1415:5;:31;1407:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;1511:12;:19;1524:5;1511:19;;;;;;;;;;;;;;;:26;1531:5;1511:26;;;;;;;;;;;;1504:33;;1291:253;;;;:::o;2743:77:14:-;2791:24;455:22;2812:2;2791:9;:24::i;:::-;2743:77;:::o;5404:214:0:-;5510:12;:10;:12::i;:::-;5499:23;;:7;:23;;;5491:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;5585:26;5597:4;5603:7;5585:11;:26::i;:::-;5404:214;;:::o;5122:179:2:-;5255:39;5272:4;5278:2;5282:7;5255:39;;;;;;;;;;;;:16;:39::i;:::-;5122:179;;;:::o;2226:195:14:-;455:22;2505:30:0;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;2307:41:14::1;2326:12;:10;:12::i;:::-;2340:7;2307:18;:41::i;:::-;2292:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;2402:14;2408:7;2402:5;:14::i;:::-;2226:195:::0;;:::o;1798:230:5:-;1873:7;1908:30;:28;:30::i;:::-;1900:5;:38;1892:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;2004:10;2015:5;2004:17;;;;;;;;:::i;:::-;;;;;;;;;;1997:24;;1798:230;;;:::o;2474:79:14:-;2522:26;519:24;2545:2;2522:9;:26::i;:::-;2474:79;:::o;2191:235:2:-;2263:7;2282:13;2298:7;:16;2306:7;2298:16;;;;;;;;;;;;;;;;;;;;;2282:32;;2349:1;2332:19;;:5;:19;;;;2324:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2414:5;2407:12;;;2191:235;;;:::o;1839:383:14:-;1905:7;519:24;2505:30:0;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;1942:1:14::1;1928:16;;:2;:16;;;;1920:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2000:1;1986:11;:15;1982:106;;;2042:11;2036:1;2020:13;:11;:13::i;:::-;:17;;;;:::i;:::-;2019:34;;2011:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;1982:106;2093:15;2111:25;:15;:23;:25::i;:::-;2093:43;;2142:27;:15;:25;:27::i;:::-;2175:22;2185:2;2189:7;2175:9;:22::i;:::-;2210:7;2203:14;;;1839:383:::0;;;;:::o;1929:205:2:-;2001:7;2045:1;2028:19;;:5;:19;;;;2020:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;2111:9;:16;2121:5;2111:16;;;;;;;;;;;;;;;;2104:23;;1929:205;;;:::o;2909:145:0:-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;1697:138:14:-;2072:4:0;1776:18:14;;2505:30:0;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;1818:12:14::1;;1802:13;:28;;;;;;;:::i;:::-;;1697:138:::0;;;:::o;2650:102:2:-;2706:13;2738:7;2731:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2650:102;:::o;2874:81:14:-;2925:25;455:22;2947:2;2925:10;:25::i;:::-;2874:81;:::o;2027:49:0:-;2072:4;2027:49;;;:::o;4283:153:2:-;4377:52;4396:12;:10;:12::i;:::-;4410:8;4420;4377:18;:52::i;:::-;4283:153;;:::o;5367:320::-;5536:41;5555:12;:10;:12::i;:::-;5569:7;5536:18;:41::i;:::-;5528:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;5641:39;5655:4;5661:2;5665:7;5674:5;5641:13;:39::i;:::-;5367:320;;;;:::o;419:58:14:-;455:22;419:58;:::o;2818:329:2:-;2891:13;2924:16;2932:7;2924;:16::i;:::-;2916:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;3003:21;3027:10;:8;:10::i;:::-;3003:34;;3078:1;3060:7;3054:21;:25;:86;;;;;;;;;;;;;;;;;3106:7;3115:18;:7;:16;:18::i;:::-;3089:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3054:86;3047:93;;;2818:329;;;:::o;481:62:14:-;519:24;481:62;:::o;4766:147:0:-;4850:18;4863:4;4850:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4880:26:::1;4892:4;4898:7;4880:11;:26::i;:::-;4766:147:::0;;;:::o;4502:162:2:-;4599:4;4622:18;:25;4641:5;4622:25;;;;;;;;;;;;;;;:35;4648:8;4622:35;;;;;;;;;;;;;;;;;;;;;;;;;4615:42;;4502:162;;;;:::o;990:222:5:-;1092:4;1130:35;1115:50;;;:11;:50;;;;:90;;;;1169:36;1193:11;1169:23;:36::i;:::-;1115:90;1108:97;;990:222;;;:::o;7159:125:2:-;7224:4;7275:1;7247:30;;:7;:16;7255:7;7247:16;;;;;;;;;;;;;;;;;;;;;:30;;;;7240:37;;7159:125;;;:::o;640:96:9:-;693:7;719:10;712:17;;640:96;:::o;11168:171:2:-;11269:2;11242:15;:24;11258:7;11242:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;11324:7;11320:2;11286:46;;11295:23;11310:7;11295:14;:23::i;:::-;11286:46;;;;;;;;;;;;11168:171;;:::o;7442:344::-;7535:4;7559:16;7567:7;7559;:16::i;:::-;7551:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7634:13;7650:23;7665:7;7650:14;:23::i;:::-;7634:39;;7702:5;7691:16;;:7;:16;;;:51;;;;7735:7;7711:31;;:20;7723:7;7711:11;:20::i;:::-;:31;;;7691:51;:87;;;;7746:32;7763:5;7770:7;7746:16;:32::i;:::-;7691:87;7683:96;;;7442:344;;;;:::o;10452:605::-;10606:4;10579:31;;:23;10594:7;10579:14;:23::i;:::-;:31;;;10571:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;10684:1;10670:16;;:2;:16;;;;10662:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10738:39;10759:4;10765:2;10769:7;10738:20;:39::i;:::-;10839:29;10856:1;10860:7;10839:8;:29::i;:::-;10898:1;10879:9;:15;10889:4;10879:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;10926:1;10909:9;:13;10919:2;10909:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;10956:2;10937:7;:16;10945:7;10937:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10993:7;10989:2;10974:27;;10983:4;10974:27;;;;;;;;;;;;11012:38;11032:4;11038:2;11042:7;11012:19;:38::i;:::-;10452:605;;;:::o;3335:492:0:-;3423:22;3431:4;3437:7;3423;:22::i;:::-;3418:403;;3606:41;3634:7;3606:41;;3644:2;3606:19;:41::i;:::-;3718:38;3746:4;3738:13;;3753:2;3718:19;:38::i;:::-;3513:265;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3461:349;;;;;;;;;;;:::i;:::-;;;;;;;;3418:403;3335:492;;:::o;6861:233::-;6944:22;6952:4;6958:7;6944;:22::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;:12::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;7219:234::-;7302:22;7310:4;7316:7;7302;:22::i;:::-;7298:149;;;7372:5;7340:6;:12;7347:4;7340:12;;;;;;;;;;;:20;;:29;7361:7;7340:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;7423:12;:10;:12::i;:::-;7396:40;;7414:7;7396:40;;7408:4;7396:40;;;;;;;;;;7298:149;7219:234;;:::o;9722:406:2:-;9781:13;9797:23;9812:7;9797:14;:23::i;:::-;9781:39;;9831:48;9852:5;9867:1;9871:7;9831:20;:48::i;:::-;9917:29;9934:1;9938:7;9917:8;:29::i;:::-;9977:1;9957:9;:16;9967:5;9957:16;;;;;;;;;;;;;;;;:21;;;;;;;:::i;:::-;;;;;;;;9995:7;:16;10003:7;9995:16;;;;;;;;;;;;9988:23;;;;;;;;;;;10055:7;10051:1;10027:36;;10036:5;10027:36;;;;;;;;;;;;10074:47;10094:5;10109:1;10113:7;10074:19;:47::i;:::-;9771:357;9722:406;:::o;827:112:10:-;892:7;918;:14;;;911:21;;827:112;;;:::o;945:123::-;1050:1;1032:7;:14;;;:19;;;;;;;;;;;945:123;:::o;8116:108:2:-;8191:26;8201:2;8205:7;8191:26;;;;;;;;;;;;:9;:26::i;:::-;8116:108;;:::o;11474:307::-;11624:8;11615:17;;:5;:17;;;;11607:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;11710:8;11672:18;:25;11691:5;11672:25;;;;;;;;;;;;;;;:35;11698:8;11672:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;11755:8;11733:41;;11748:5;11733:41;;;11765:8;11733:41;;;;;;:::i;:::-;;;;;;;;11474:307;;;:::o;6549:::-;6700:28;6710:4;6716:2;6720:7;6700:9;:28::i;:::-;6746:48;6769:4;6775:2;6779:7;6788:5;6746:22;:48::i;:::-;6738:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;6549:307;;;;:::o;1551:106:14:-;1611:13;1639;1632:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1551:106;:::o;328:703:11:-;384:13;610:1;601:5;:10;597:51;;;627:10;;;;;;;;;;;;;;;;;;;;;597:51;657:12;672:5;657:20;;687:14;711:75;726:1;718:4;:9;711:75;;743:8;;;;;:::i;:::-;;;;773:2;765:10;;;;;:::i;:::-;;;711:75;;;795:19;827:6;817:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;795:39;;844:150;860:1;851:5;:10;844:150;;887:1;877:11;;;;;:::i;:::-;;;953:2;945:5;:10;;;;:::i;:::-;932:2;:24;;;;:::i;:::-;919:39;;902:6;909;902:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;981:2;972:11;;;;;:::i;:::-;;;844:150;;;1017:6;1003:21;;;;;328:703;;;;:::o;1570:300:2:-;1672:4;1722:25;1707:40;;;:11;:40;;;;:104;;;;1778:33;1763:48;;;:11;:48;;;;1707:104;:156;;;;1827:36;1851:11;1827:23;:36::i;:::-;1707:156;1688:175;;1570:300;;;:::o;1287:260:14:-;1442:1;1426:18;;:4;:18;;;:38;;;;1462:1;1448:16;;:2;:16;;;1426:38;1418:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1497:45;1524:4;1530:2;1534:7;1497:26;:45::i;:::-;1287:260;;;:::o;14162:121:2:-;;;;:::o;1588:441:11:-;1663:13;1688:19;1733:1;1724:6;1720:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1710:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1688:47;;1745:15;:6;1752:1;1745:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1770;:6;1777:1;1770:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1800:9;1825:1;1816:6;1812:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1800:26;;1795:132;1832:1;1828;:5;1795:132;;;1866:12;1887:3;1879:5;:11;1866:25;;;;;;;:::i;:::-;;;;;1854:6;1861:1;1854:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;1915:1;1905:11;;;;;1835:3;;;;:::i;:::-;;;1795:132;;;;1953:1;1944:5;:10;1936:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2015:6;2001:21;;;1588:441;;;;:::o;8445:311:2:-;8570:18;8576:2;8580:7;8570:5;:18::i;:::-;8619:54;8650:1;8654:2;8658:7;8667:5;8619:22;:54::i;:::-;8598:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;8445:311;;;:::o;12334:778::-;12484:4;12504:15;:2;:13;;;:15::i;:::-;12500:606;;;12555:2;12539:36;;;12576:12;:10;:12::i;:::-;12590:4;12596:7;12605:5;12539:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;12535:519;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12795:1;12778:6;:13;:18;12774:266;;;12820:60;;;;;;;;;;:::i;:::-;;;;;;;;12774:266;12992:6;12986:13;12977:6;12973:2;12969:15;12962:38;12535:519;12671:41;;;12661:51;;;:6;:51;;;;12654:58;;;;;12500:606;13091:4;13084:11;;12334:778;;;;;;;:::o;2620:202:0:-;2705:4;2743:32;2728:47;;;:11;:47;;;;:87;;;;2779:36;2803:11;2779:23;:36::i;:::-;2728:87;2721:94;;2620:202;;;:::o;2624:572:5:-;2763:45;2790:4;2796:2;2800:7;2763:26;:45::i;:::-;2839:1;2823:18;;:4;:18;;;2819:183;;;2857:40;2889:7;2857:31;:40::i;:::-;2819:183;;;2926:2;2918:10;;:4;:10;;;2914:88;;2944:47;2977:4;2983:7;2944:32;:47::i;:::-;2914:88;2819:183;3029:1;3015:16;;:2;:16;;;3011:179;;;3047:45;3084:7;3047:36;:45::i;:::-;3011:179;;;3119:4;3113:10;;:2;:10;;;3109:81;;3139:40;3167:2;3171:7;3139:27;:40::i;:::-;3109:81;3011:179;2624:572;;;:::o;9078:427:2:-;9171:1;9157:16;;:2;:16;;;;9149:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9229:16;9237:7;9229;:16::i;:::-;9228:17;9220:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9289:45;9318:1;9322:2;9326:7;9289:20;:45::i;:::-;9362:1;9345:9;:13;9355:2;9345:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;9392:2;9373:7;:16;9381:7;9373:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9435:7;9431:2;9410:33;;9427:1;9410:33;;;;;;;;;;;;9454:44;9482:1;9486:2;9490:7;9454:19;:44::i;:::-;9078:427;;:::o;1175:320:8:-;1235:4;1487:1;1465:7;:19;;;:23;1458:30;;1175:320;;;:::o;829:155:12:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;13668:122:2:-;;;;:::o;3902:161:5:-;4005:10;:17;;;;3978:15;:24;3994:7;3978:24;;;;;;;;;;;:44;;;;4032:10;4048:7;4032:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3902:161;:::o;4680:970::-;4942:22;4992:1;4967:22;4984:4;4967:16;:22::i;:::-;:26;;;;:::i;:::-;4942:51;;5003:18;5024:17;:26;5042:7;5024:26;;;;;;;;;;;;5003:47;;5168:14;5154:10;:28;5150:323;;5198:19;5220:12;:18;5233:4;5220:18;;;;;;;;;;;;;;;:34;5239:14;5220:34;;;;;;;;;;;;5198:56;;5302:11;5269:12;:18;5282:4;5269:18;;;;;;;;;;;;;;;:30;5288:10;5269:30;;;;;;;;;;;:44;;;;5418:10;5385:17;:30;5403:11;5385:30;;;;;;;;;;;:43;;;;5184:289;5150:323;5566:17;:26;5584:7;5566:26;;;;;;;;;;;5559:33;;;5609:12;:18;5622:4;5609:18;;;;;;;;;;;;;;;:34;5628:14;5609:34;;;;;;;;;;;5602:41;;;4761:889;;4680:970;;:::o;5938:1061::-;6187:22;6232:1;6212:10;:17;;;;:21;;;;:::i;:::-;6187:46;;6243:18;6264:15;:24;6280:7;6264:24;;;;;;;;;;;;6243:45;;6610:19;6632:10;6643:14;6632:26;;;;;;;;:::i;:::-;;;;;;;;;;6610:48;;6694:11;6669:10;6680;6669:22;;;;;;;;:::i;:::-;;;;;;;;;:36;;;;6804:10;6773:15;:28;6789:11;6773:28;;;;;;;;;;;:41;;;;6942:15;:24;6958:7;6942:24;;;;;;;;;;;6935:31;;;6976:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6009:990;;;5938:1061;:::o;3490:217::-;3574:14;3591:20;3608:2;3591:16;:20::i;:::-;3574:37;;3648:7;3621:12;:16;3634:2;3621:16;;;;;;;;;;;;;;;:24;3638:6;3621:24;;;;;;;;;;;:34;;;;3694:6;3665:17;:26;3683:7;3665:26;;;;;;;;;;;:35;;;;3564:143;3490:217;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:15:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:307::-;1866:1;1876:113;1890:6;1887:1;1884:13;1876:113;;;1975:1;1970:3;1966:11;1960:18;1956:1;1951:3;1947:11;1940:39;1912:2;1909:1;1905:10;1900:15;;1876:113;;;2007:6;2004:1;2001:13;1998:101;;;2087:1;2078:6;2073:3;2069:16;2062:27;1998:101;1847:258;1798:307;;;:::o;2111:102::-;2152:6;2203:2;2199:7;2194:2;2187:5;2183:14;2179:28;2169:38;;2111:102;;;:::o;2219:364::-;2307:3;2335:39;2368:5;2335:39;:::i;:::-;2390:71;2454:6;2449:3;2390:71;:::i;:::-;2383:78;;2470:52;2515:6;2510:3;2503:4;2496:5;2492:16;2470:52;:::i;:::-;2547:29;2569:6;2547:29;:::i;:::-;2542:3;2538:39;2531:46;;2311:272;2219:364;;;;:::o;2589:313::-;2702:4;2740:2;2729:9;2725:18;2717:26;;2789:9;2783:4;2779:20;2775:1;2764:9;2760:17;2753:47;2817:78;2890:4;2881:6;2817:78;:::i;:::-;2809:86;;2589:313;;;;:::o;2908:77::-;2945:7;2974:5;2963:16;;2908:77;;;:::o;2991:122::-;3064:24;3082:5;3064:24;:::i;:::-;3057:5;3054:35;3044:63;;3103:1;3100;3093:12;3044:63;2991:122;:::o;3119:139::-;3165:5;3203:6;3190:20;3181:29;;3219:33;3246:5;3219:33;:::i;:::-;3119:139;;;;:::o;3264:329::-;3323:6;3372:2;3360:9;3351:7;3347:23;3343:32;3340:119;;;3378:79;;:::i;:::-;3340:119;3498:1;3523:53;3568:7;3559:6;3548:9;3544:22;3523:53;:::i;:::-;3513:63;;3469:117;3264:329;;;;:::o;3599:126::-;3636:7;3676:42;3669:5;3665:54;3654:65;;3599:126;;;:::o;3731:96::-;3768:7;3797:24;3815:5;3797:24;:::i;:::-;3786:35;;3731:96;;;:::o;3833:118::-;3920:24;3938:5;3920:24;:::i;:::-;3915:3;3908:37;3833:118;;:::o;3957:222::-;4050:4;4088:2;4077:9;4073:18;4065:26;;4101:71;4169:1;4158:9;4154:17;4145:6;4101:71;:::i;:::-;3957:222;;;;:::o;4185:122::-;4258:24;4276:5;4258:24;:::i;:::-;4251:5;4248:35;4238:63;;4297:1;4294;4287:12;4238:63;4185:122;:::o;4313:139::-;4359:5;4397:6;4384:20;4375:29;;4413:33;4440:5;4413:33;:::i;:::-;4313:139;;;;:::o;4458:474::-;4526:6;4534;4583:2;4571:9;4562:7;4558:23;4554:32;4551:119;;;4589:79;;:::i;:::-;4551:119;4709:1;4734:53;4779:7;4770:6;4759:9;4755:22;4734:53;:::i;:::-;4724:63;;4680:117;4836:2;4862:53;4907:7;4898:6;4887:9;4883:22;4862:53;:::i;:::-;4852:63;;4807:118;4458:474;;;;;:::o;4938:118::-;5025:24;5043:5;5025:24;:::i;:::-;5020:3;5013:37;4938:118;;:::o;5062:222::-;5155:4;5193:2;5182:9;5178:18;5170:26;;5206:71;5274:1;5263:9;5259:17;5250:6;5206:71;:::i;:::-;5062:222;;;;:::o;5290:329::-;5349:6;5398:2;5386:9;5377:7;5373:23;5369:32;5366:119;;;5404:79;;:::i;:::-;5366:119;5524:1;5549:53;5594:7;5585:6;5574:9;5570:22;5549:53;:::i;:::-;5539:63;;5495:117;5290:329;;;;:::o;5625:619::-;5702:6;5710;5718;5767:2;5755:9;5746:7;5742:23;5738:32;5735:119;;;5773:79;;:::i;:::-;5735:119;5893:1;5918:53;5963:7;5954:6;5943:9;5939:22;5918:53;:::i;:::-;5908:63;;5864:117;6020:2;6046:53;6091:7;6082:6;6071:9;6067:22;6046:53;:::i;:::-;6036:63;;5991:118;6148:2;6174:53;6219:7;6210:6;6199:9;6195:22;6174:53;:::i;:::-;6164:63;;6119:118;5625:619;;;;;:::o;6250:77::-;6287:7;6316:5;6305:16;;6250:77;;;:::o;6333:122::-;6406:24;6424:5;6406:24;:::i;:::-;6399:5;6396:35;6386:63;;6445:1;6442;6435:12;6386:63;6333:122;:::o;6461:139::-;6507:5;6545:6;6532:20;6523:29;;6561:33;6588:5;6561:33;:::i;:::-;6461:139;;;;:::o;6606:329::-;6665:6;6714:2;6702:9;6693:7;6689:23;6685:32;6682:119;;;6720:79;;:::i;:::-;6682:119;6840:1;6865:53;6910:7;6901:6;6890:9;6886:22;6865:53;:::i;:::-;6855:63;;6811:117;6606:329;;;;:::o;6941:118::-;7028:24;7046:5;7028:24;:::i;:::-;7023:3;7016:37;6941:118;;:::o;7065:222::-;7158:4;7196:2;7185:9;7181:18;7173:26;;7209:71;7277:1;7266:9;7262:17;7253:6;7209:71;:::i;:::-;7065:222;;;;:::o;7293:474::-;7361:6;7369;7418:2;7406:9;7397:7;7393:23;7389:32;7386:119;;;7424:79;;:::i;:::-;7386:119;7544:1;7569:53;7614:7;7605:6;7594:9;7590:22;7569:53;:::i;:::-;7559:63;;7515:117;7671:2;7697:53;7742:7;7733:6;7722:9;7718:22;7697:53;:::i;:::-;7687:63;;7642:118;7293:474;;;;;:::o;7773:117::-;7882:1;7879;7872:12;7896:117;8005:1;8002;7995:12;8019:117;8128:1;8125;8118:12;8156:553;8214:8;8224:6;8274:3;8267:4;8259:6;8255:17;8251:27;8241:122;;8282:79;;:::i;:::-;8241:122;8395:6;8382:20;8372:30;;8425:18;8417:6;8414:30;8411:117;;;8447:79;;:::i;:::-;8411:117;8561:4;8553:6;8549:17;8537:29;;8615:3;8607:4;8599:6;8595:17;8585:8;8581:32;8578:41;8575:128;;;8622:79;;:::i;:::-;8575:128;8156:553;;;;;:::o;8715:529::-;8786:6;8794;8843:2;8831:9;8822:7;8818:23;8814:32;8811:119;;;8849:79;;:::i;:::-;8811:119;8997:1;8986:9;8982:17;8969:31;9027:18;9019:6;9016:30;9013:117;;;9049:79;;:::i;:::-;9013:117;9162:65;9219:7;9210:6;9199:9;9195:22;9162:65;:::i;:::-;9144:83;;;;8940:297;8715:529;;;;;:::o;9250:116::-;9320:21;9335:5;9320:21;:::i;:::-;9313:5;9310:32;9300:60;;9356:1;9353;9346:12;9300:60;9250:116;:::o;9372:133::-;9415:5;9453:6;9440:20;9431:29;;9469:30;9493:5;9469:30;:::i;:::-;9372:133;;;;:::o;9511:468::-;9576:6;9584;9633:2;9621:9;9612:7;9608:23;9604:32;9601:119;;;9639:79;;:::i;:::-;9601:119;9759:1;9784:53;9829:7;9820:6;9809:9;9805:22;9784:53;:::i;:::-;9774:63;;9730:117;9886:2;9912:50;9954:7;9945:6;9934:9;9930:22;9912:50;:::i;:::-;9902:60;;9857:115;9511:468;;;;;:::o;9985:117::-;10094:1;10091;10084:12;10108:180;10156:77;10153:1;10146:88;10253:4;10250:1;10243:15;10277:4;10274:1;10267:15;10294:281;10377:27;10399:4;10377:27;:::i;:::-;10369:6;10365:40;10507:6;10495:10;10492:22;10471:18;10459:10;10456:34;10453:62;10450:88;;;10518:18;;:::i;:::-;10450:88;10558:10;10554:2;10547:22;10337:238;10294:281;;:::o;10581:129::-;10615:6;10642:20;;:::i;:::-;10632:30;;10671:33;10699:4;10691:6;10671:33;:::i;:::-;10581:129;;;:::o;10716:307::-;10777:4;10867:18;10859:6;10856:30;10853:56;;;10889:18;;:::i;:::-;10853:56;10927:29;10949:6;10927:29;:::i;:::-;10919:37;;11011:4;11005;11001:15;10993:23;;10716:307;;;:::o;11029:154::-;11113:6;11108:3;11103;11090:30;11175:1;11166:6;11161:3;11157:16;11150:27;11029:154;;;:::o;11189:410::-;11266:5;11291:65;11307:48;11348:6;11307:48;:::i;:::-;11291:65;:::i;:::-;11282:74;;11379:6;11372:5;11365:21;11417:4;11410:5;11406:16;11455:3;11446:6;11441:3;11437:16;11434:25;11431:112;;;11462:79;;:::i;:::-;11431:112;11552:41;11586:6;11581:3;11576;11552:41;:::i;:::-;11272:327;11189:410;;;;;:::o;11618:338::-;11673:5;11722:3;11715:4;11707:6;11703:17;11699:27;11689:122;;11730:79;;:::i;:::-;11689:122;11847:6;11834:20;11872:78;11946:3;11938:6;11931:4;11923:6;11919:17;11872:78;:::i;:::-;11863:87;;11679:277;11618:338;;;;:::o;11962:943::-;12057:6;12065;12073;12081;12130:3;12118:9;12109:7;12105:23;12101:33;12098:120;;;12137:79;;:::i;:::-;12098:120;12257:1;12282:53;12327:7;12318:6;12307:9;12303:22;12282:53;:::i;:::-;12272:63;;12228:117;12384:2;12410:53;12455:7;12446:6;12435:9;12431:22;12410:53;:::i;:::-;12400:63;;12355:118;12512:2;12538:53;12583:7;12574:6;12563:9;12559:22;12538:53;:::i;:::-;12528:63;;12483:118;12668:2;12657:9;12653:18;12640:32;12699:18;12691:6;12688:30;12685:117;;;12721:79;;:::i;:::-;12685:117;12826:62;12880:7;12871:6;12860:9;12856:22;12826:62;:::i;:::-;12816:72;;12611:287;11962:943;;;;;;;:::o;12911:474::-;12979:6;12987;13036:2;13024:9;13015:7;13011:23;13007:32;13004:119;;;13042:79;;:::i;:::-;13004:119;13162:1;13187:53;13232:7;13223:6;13212:9;13208:22;13187:53;:::i;:::-;13177:63;;13133:117;13289:2;13315:53;13360:7;13351:6;13340:9;13336:22;13315:53;:::i;:::-;13305:63;;13260:118;12911:474;;;;;:::o;13391:180::-;13439:77;13436:1;13429:88;13536:4;13533:1;13526:15;13560:4;13557:1;13550:15;13577:320;13621:6;13658:1;13652:4;13648:12;13638:22;;13705:1;13699:4;13695:12;13726:18;13716:81;;13782:4;13774:6;13770:17;13760:27;;13716:81;13844:2;13836:6;13833:14;13813:18;13810:38;13807:84;;;13863:18;;:::i;:::-;13807:84;13628:269;13577:320;;;:::o;13903:231::-;14043:34;14039:1;14031:6;14027:14;14020:58;14112:14;14107:2;14099:6;14095:15;14088:39;13903:231;:::o;14140:366::-;14282:3;14303:67;14367:2;14362:3;14303:67;:::i;:::-;14296:74;;14379:93;14468:3;14379:93;:::i;:::-;14497:2;14492:3;14488:12;14481:19;;14140:366;;;:::o;14512:419::-;14678:4;14716:2;14705:9;14701:18;14693:26;;14765:9;14759:4;14755:20;14751:1;14740:9;14736:17;14729:47;14793:131;14919:4;14793:131;:::i;:::-;14785:139;;14512:419;;;:::o;14937:220::-;15077:34;15073:1;15065:6;15061:14;15054:58;15146:3;15141:2;15133:6;15129:15;15122:28;14937:220;:::o;15163:366::-;15305:3;15326:67;15390:2;15385:3;15326:67;:::i;:::-;15319:74;;15402:93;15491:3;15402:93;:::i;:::-;15520:2;15515:3;15511:12;15504:19;;15163:366;;;:::o;15535:419::-;15701:4;15739:2;15728:9;15724:18;15716:26;;15788:9;15782:4;15778:20;15774:1;15763:9;15759:17;15752:47;15816:131;15942:4;15816:131;:::i;:::-;15808:139;;15535:419;;;:::o;15960:243::-;16100:34;16096:1;16088:6;16084:14;16077:58;16169:26;16164:2;16156:6;16152:15;16145:51;15960:243;:::o;16209:366::-;16351:3;16372:67;16436:2;16431:3;16372:67;:::i;:::-;16365:74;;16448:93;16537:3;16448:93;:::i;:::-;16566:2;16561:3;16557:12;16550:19;;16209:366;;;:::o;16581:419::-;16747:4;16785:2;16774:9;16770:18;16762:26;;16834:9;16828:4;16824:20;16820:1;16809:9;16805:17;16798:47;16862:131;16988:4;16862:131;:::i;:::-;16854:139;;16581:419;;;:::o;17006:236::-;17146:34;17142:1;17134:6;17130:14;17123:58;17215:19;17210:2;17202:6;17198:15;17191:44;17006:236;:::o;17248:366::-;17390:3;17411:67;17475:2;17470:3;17411:67;:::i;:::-;17404:74;;17487:93;17576:3;17487:93;:::i;:::-;17605:2;17600:3;17596:12;17589:19;;17248:366;;;:::o;17620:419::-;17786:4;17824:2;17813:9;17809:18;17801:26;;17873:9;17867:4;17863:20;17859:1;17848:9;17844:17;17837:47;17901:131;18027:4;17901:131;:::i;:::-;17893:139;;17620:419;;;:::o;18045:230::-;18185:34;18181:1;18173:6;18169:14;18162:58;18254:13;18249:2;18241:6;18237:15;18230:38;18045:230;:::o;18281:366::-;18423:3;18444:67;18508:2;18503:3;18444:67;:::i;:::-;18437:74;;18520:93;18609:3;18520:93;:::i;:::-;18638:2;18633:3;18629:12;18622:19;;18281:366;;;:::o;18653:419::-;18819:4;18857:2;18846:9;18842:18;18834:26;;18906:9;18900:4;18896:20;18892:1;18881:9;18877:17;18870:47;18934:131;19060:4;18934:131;:::i;:::-;18926:139;;18653:419;;;:::o;19078:234::-;19218:34;19214:1;19206:6;19202:14;19195:58;19287:17;19282:2;19274:6;19270:15;19263:42;19078:234;:::o;19318:366::-;19460:3;19481:67;19545:2;19540:3;19481:67;:::i;:::-;19474:74;;19557:93;19646:3;19557:93;:::i;:::-;19675:2;19670:3;19666:12;19659:19;;19318:366;;;:::o;19690:419::-;19856:4;19894:2;19883:9;19879:18;19871:26;;19943:9;19937:4;19933:20;19929:1;19918:9;19914:17;19907:47;19971:131;20097:4;19971:131;:::i;:::-;19963:139;;19690:419;;;:::o;20115:182::-;20255:34;20251:1;20243:6;20239:14;20232:58;20115:182;:::o;20303:366::-;20445:3;20466:67;20530:2;20525:3;20466:67;:::i;:::-;20459:74;;20542:93;20631:3;20542:93;:::i;:::-;20660:2;20655:3;20651:12;20644:19;;20303:366;;;:::o;20675:419::-;20841:4;20879:2;20868:9;20864:18;20856:26;;20928:9;20922:4;20918:20;20914:1;20903:9;20899:17;20892:47;20956:131;21082:4;20956:131;:::i;:::-;20948:139;;20675:419;;;:::o;21100:231::-;21240:34;21236:1;21228:6;21224:14;21217:58;21309:14;21304:2;21296:6;21292:15;21285:39;21100:231;:::o;21337:366::-;21479:3;21500:67;21564:2;21559:3;21500:67;:::i;:::-;21493:74;;21576:93;21665:3;21576:93;:::i;:::-;21694:2;21689:3;21685:12;21678:19;;21337:366;;;:::o;21709:419::-;21875:4;21913:2;21902:9;21898:18;21890:26;;21962:9;21956:4;21952:20;21948:1;21937:9;21933:17;21926:47;21990:131;22116:4;21990:131;:::i;:::-;21982:139;;21709:419;;;:::o;22134:180::-;22182:77;22179:1;22172:88;22279:4;22276:1;22269:15;22303:4;22300:1;22293:15;22320:228;22460:34;22456:1;22448:6;22444:14;22437:58;22529:11;22524:2;22516:6;22512:15;22505:36;22320:228;:::o;22554:366::-;22696:3;22717:67;22781:2;22776:3;22717:67;:::i;:::-;22710:74;;22793:93;22882:3;22793:93;:::i;:::-;22911:2;22906:3;22902:12;22895:19;;22554:366;;;:::o;22926:419::-;23092:4;23130:2;23119:9;23115:18;23107:26;;23179:9;23173:4;23169:20;23165:1;23154:9;23150:17;23143:47;23207:131;23333:4;23207:131;:::i;:::-;23199:139;;22926:419;;;:::o;23351:177::-;23491:29;23487:1;23479:6;23475:14;23468:53;23351:177;:::o;23534:366::-;23676:3;23697:67;23761:2;23756:3;23697:67;:::i;:::-;23690:74;;23773:93;23862:3;23773:93;:::i;:::-;23891:2;23886:3;23882:12;23875:19;;23534:366;;;:::o;23906:419::-;24072:4;24110:2;24099:9;24095:18;24087:26;;24159:9;24153:4;24149:20;24145:1;24134:9;24130:17;24123:47;24187:131;24313:4;24187:131;:::i;:::-;24179:139;;23906:419;;;:::o;24331:180::-;24379:77;24376:1;24369:88;24476:4;24473:1;24466:15;24500:4;24497:1;24490:15;24517:305;24557:3;24576:20;24594:1;24576:20;:::i;:::-;24571:25;;24610:20;24628:1;24610:20;:::i;:::-;24605:25;;24764:1;24696:66;24692:74;24689:1;24686:81;24683:107;;;24770:18;;:::i;:::-;24683:107;24814:1;24811;24807:9;24800:16;;24517:305;;;;:::o;24828:173::-;24968:25;24964:1;24956:6;24952:14;24945:49;24828:173;:::o;25007:366::-;25149:3;25170:67;25234:2;25229:3;25170:67;:::i;:::-;25163:74;;25246:93;25335:3;25246:93;:::i;:::-;25364:2;25359:3;25355:12;25348:19;;25007:366;;;:::o;25379:419::-;25545:4;25583:2;25572:9;25568:18;25560:26;;25632:9;25626:4;25622:20;25618:1;25607:9;25603:17;25596:47;25660:131;25786:4;25660:131;:::i;:::-;25652:139;;25379:419;;;:::o;25804:229::-;25944:34;25940:1;25932:6;25928:14;25921:58;26013:12;26008:2;26000:6;25996:15;25989:37;25804:229;:::o;26039:366::-;26181:3;26202:67;26266:2;26261:3;26202:67;:::i;:::-;26195:74;;26278:93;26367:3;26278:93;:::i;:::-;26396:2;26391:3;26387:12;26380:19;;26039:366;;;:::o;26411:419::-;26577:4;26615:2;26604:9;26600:18;26592:26;;26664:9;26658:4;26654:20;26650:1;26639:9;26635:17;26628:47;26692:131;26818:4;26692:131;:::i;:::-;26684:139;;26411:419;;;:::o;26836:234::-;26976:34;26972:1;26964:6;26960:14;26953:58;27045:17;27040:2;27032:6;27028:15;27021:42;26836:234;:::o;27076:366::-;27218:3;27239:67;27303:2;27298:3;27239:67;:::i;:::-;27232:74;;27315:93;27404:3;27315:93;:::i;:::-;27433:2;27428:3;27424:12;27417:19;;27076:366;;;:::o;27448:419::-;27614:4;27652:2;27641:9;27637:18;27629:26;;27701:9;27695:4;27691:20;27687:1;27676:9;27672:17;27665:47;27729:131;27855:4;27729:131;:::i;:::-;27721:139;;27448:419;;;:::o;27873:148::-;27975:11;28012:3;27997:18;;27873:148;;;;:::o;28027:377::-;28133:3;28161:39;28194:5;28161:39;:::i;:::-;28216:89;28298:6;28293:3;28216:89;:::i;:::-;28209:96;;28314:52;28359:6;28354:3;28347:4;28340:5;28336:16;28314:52;:::i;:::-;28391:6;28386:3;28382:16;28375:23;;28137:267;28027:377;;;;:::o;28410:435::-;28590:3;28612:95;28703:3;28694:6;28612:95;:::i;:::-;28605:102;;28724:95;28815:3;28806:6;28724:95;:::i;:::-;28717:102;;28836:3;28829:10;;28410:435;;;;;:::o;28851:231::-;28991:34;28987:1;28979:6;28975:14;28968:58;29060:14;29055:2;29047:6;29043:15;29036:39;28851:231;:::o;29088:366::-;29230:3;29251:67;29315:2;29310:3;29251:67;:::i;:::-;29244:74;;29327:93;29416:3;29327:93;:::i;:::-;29445:2;29440:3;29436:12;29429:19;;29088:366;;;:::o;29460:419::-;29626:4;29664:2;29653:9;29649:18;29641:26;;29713:9;29707:4;29703:20;29699:1;29688:9;29684:17;29677:47;29741:131;29867:4;29741:131;:::i;:::-;29733:139;;29460:419;;;:::o;29885:224::-;30025:34;30021:1;30013:6;30009:14;30002:58;30094:7;30089:2;30081:6;30077:15;30070:32;29885:224;:::o;30115:366::-;30257:3;30278:67;30342:2;30337:3;30278:67;:::i;:::-;30271:74;;30354:93;30443:3;30354:93;:::i;:::-;30472:2;30467:3;30463:12;30456:19;;30115:366;;;:::o;30487:419::-;30653:4;30691:2;30680:9;30676:18;30668:26;;30740:9;30734:4;30730:20;30726:1;30715:9;30711:17;30704:47;30768:131;30894:4;30768:131;:::i;:::-;30760:139;;30487:419;;;:::o;30912:223::-;31052:34;31048:1;31040:6;31036:14;31029:58;31121:6;31116:2;31108:6;31104:15;31097:31;30912:223;:::o;31141:366::-;31283:3;31304:67;31368:2;31363:3;31304:67;:::i;:::-;31297:74;;31380:93;31469:3;31380:93;:::i;:::-;31498:2;31493:3;31489:12;31482:19;;31141:366;;;:::o;31513:419::-;31679:4;31717:2;31706:9;31702:18;31694:26;;31766:9;31760:4;31756:20;31752:1;31741:9;31737:17;31730:47;31794:131;31920:4;31794:131;:::i;:::-;31786:139;;31513:419;;;:::o;31938:191::-;31978:4;31998:20;32016:1;31998:20;:::i;:::-;31993:25;;32032:20;32050:1;32032:20;:::i;:::-;32027:25;;32071:1;32068;32065:8;32062:34;;;32076:18;;:::i;:::-;32062:34;32121:1;32118;32114:9;32106:17;;31938:191;;;;:::o;32135:173::-;32275:25;32271:1;32263:6;32259:14;32252:49;32135:173;:::o;32314:402::-;32474:3;32495:85;32577:2;32572:3;32495:85;:::i;:::-;32488:92;;32589:93;32678:3;32589:93;:::i;:::-;32707:2;32702:3;32698:12;32691:19;;32314:402;;;:::o;32722:167::-;32862:19;32858:1;32850:6;32846:14;32839:43;32722:167;:::o;32895:402::-;33055:3;33076:85;33158:2;33153:3;33076:85;:::i;:::-;33069:92;;33170:93;33259:3;33170:93;:::i;:::-;33288:2;33283:3;33279:12;33272:19;;32895:402;;;:::o;33303:967::-;33685:3;33707:148;33851:3;33707:148;:::i;:::-;33700:155;;33872:95;33963:3;33954:6;33872:95;:::i;:::-;33865:102;;33984:148;34128:3;33984:148;:::i;:::-;33977:155;;34149:95;34240:3;34231:6;34149:95;:::i;:::-;34142:102;;34261:3;34254:10;;33303:967;;;;;:::o;34276:175::-;34416:27;34412:1;34404:6;34400:14;34393:51;34276:175;:::o;34457:366::-;34599:3;34620:67;34684:2;34679:3;34620:67;:::i;:::-;34613:74;;34696:93;34785:3;34696:93;:::i;:::-;34814:2;34809:3;34805:12;34798:19;;34457:366;;;:::o;34829:419::-;34995:4;35033:2;35022:9;35018:18;35010:26;;35082:9;35076:4;35072:20;35068:1;35057:9;35053:17;35046:47;35110:131;35236:4;35110:131;:::i;:::-;35102:139;;34829:419;;;:::o;35254:237::-;35394:34;35390:1;35382:6;35378:14;35371:58;35463:20;35458:2;35450:6;35446:15;35439:45;35254:237;:::o;35497:366::-;35639:3;35660:67;35724:2;35719:3;35660:67;:::i;:::-;35653:74;;35736:93;35825:3;35736:93;:::i;:::-;35854:2;35849:3;35845:12;35838:19;;35497:366;;;:::o;35869:419::-;36035:4;36073:2;36062:9;36058:18;36050:26;;36122:9;36116:4;36112:20;36108:1;36097:9;36093:17;36086:47;36150:131;36276:4;36150:131;:::i;:::-;36142:139;;35869:419;;;:::o;36294:233::-;36333:3;36356:24;36374:5;36356:24;:::i;:::-;36347:33;;36402:66;36395:5;36392:77;36389:103;;;36472:18;;:::i;:::-;36389:103;36519:1;36512:5;36508:13;36501:20;;36294:233;;;:::o;36533:180::-;36581:77;36578:1;36571:88;36678:4;36675:1;36668:15;36702:4;36699:1;36692:15;36719:185;36759:1;36776:20;36794:1;36776:20;:::i;:::-;36771:25;;36810:20;36828:1;36810:20;:::i;:::-;36805:25;;36849:1;36839:35;;36854:18;;:::i;:::-;36839:35;36896:1;36893;36889:9;36884:14;;36719:185;;;;:::o;36910:176::-;36942:1;36959:20;36977:1;36959:20;:::i;:::-;36954:25;;36993:20;37011:1;36993:20;:::i;:::-;36988:25;;37032:1;37022:35;;37037:18;;:::i;:::-;37022:35;37078:1;37075;37071:9;37066:14;;36910:176;;;;:::o;37092:172::-;37232:24;37228:1;37220:6;37216:14;37209:48;37092:172;:::o;37270:366::-;37412:3;37433:67;37497:2;37492:3;37433:67;:::i;:::-;37426:74;;37509:93;37598:3;37509:93;:::i;:::-;37627:2;37622:3;37618:12;37611:19;;37270:366;;;:::o;37642:419::-;37808:4;37846:2;37835:9;37831:18;37823:26;;37895:9;37889:4;37885:20;37881:1;37870:9;37866:17;37859:47;37923:131;38049:4;37923:131;:::i;:::-;37915:139;;37642:419;;;:::o;38067:348::-;38107:7;38130:20;38148:1;38130:20;:::i;:::-;38125:25;;38164:20;38182:1;38164:20;:::i;:::-;38159:25;;38352:1;38284:66;38280:74;38277:1;38274:81;38269:1;38262:9;38255:17;38251:105;38248:131;;;38359:18;;:::i;:::-;38248:131;38407:1;38404;38400:9;38389:20;;38067:348;;;;:::o;38421:171::-;38460:3;38483:24;38501:5;38483:24;:::i;:::-;38474:33;;38529:4;38522:5;38519:15;38516:41;;;38537:18;;:::i;:::-;38516:41;38584:1;38577:5;38573:13;38566:20;;38421:171;;;:::o;38598:182::-;38738:34;38734:1;38726:6;38722:14;38715:58;38598:182;:::o;38786:366::-;38928:3;38949:67;39013:2;39008:3;38949:67;:::i;:::-;38942:74;;39025:93;39114:3;39025:93;:::i;:::-;39143:2;39138:3;39134:12;39127:19;;38786:366;;;:::o;39158:419::-;39324:4;39362:2;39351:9;39347:18;39339:26;;39411:9;39405:4;39401:20;39397:1;39386:9;39382:17;39375:47;39439:131;39565:4;39439:131;:::i;:::-;39431:139;;39158:419;;;:::o;39583:98::-;39634:6;39668:5;39662:12;39652:22;;39583:98;;;:::o;39687:168::-;39770:11;39804:6;39799:3;39792:19;39844:4;39839:3;39835:14;39820:29;;39687:168;;;;:::o;39861:360::-;39947:3;39975:38;40007:5;39975:38;:::i;:::-;40029:70;40092:6;40087:3;40029:70;:::i;:::-;40022:77;;40108:52;40153:6;40148:3;40141:4;40134:5;40130:16;40108:52;:::i;:::-;40185:29;40207:6;40185:29;:::i;:::-;40180:3;40176:39;40169:46;;39951:270;39861:360;;;;:::o;40227:640::-;40422:4;40460:3;40449:9;40445:19;40437:27;;40474:71;40542:1;40531:9;40527:17;40518:6;40474:71;:::i;:::-;40555:72;40623:2;40612:9;40608:18;40599:6;40555:72;:::i;:::-;40637;40705:2;40694:9;40690:18;40681:6;40637:72;:::i;:::-;40756:9;40750:4;40746:20;40741:2;40730:9;40726:18;40719:48;40784:76;40855:4;40846:6;40784:76;:::i;:::-;40776:84;;40227:640;;;;;;;:::o;40873:141::-;40929:5;40960:6;40954:13;40945:22;;40976:32;41002:5;40976:32;:::i;:::-;40873:141;;;;:::o;41020:349::-;41089:6;41138:2;41126:9;41117:7;41113:23;41109:32;41106:119;;;41144:79;;:::i;:::-;41106:119;41264:1;41289:63;41344:7;41335:6;41324:9;41320:22;41289:63;:::i;:::-;41279:73;;41235:127;41020:349;;;;:::o;41375:182::-;41515:34;41511:1;41503:6;41499:14;41492:58;41375:182;:::o;41563:366::-;41705:3;41726:67;41790:2;41785:3;41726:67;:::i;:::-;41719:74;;41802:93;41891:3;41802:93;:::i;:::-;41920:2;41915:3;41911:12;41904:19;;41563:366;;;:::o;41935:419::-;42101:4;42139:2;42128:9;42124:18;42116:26;;42188:9;42182:4;42178:20;42174:1;42163:9;42159:17;42152:47;42216:131;42342:4;42216:131;:::i;:::-;42208:139;;41935:419;;;:::o;42360:178::-;42500:30;42496:1;42488:6;42484:14;42477:54;42360:178;:::o;42544:366::-;42686:3;42707:67;42771:2;42766:3;42707:67;:::i;:::-;42700:74;;42783:93;42872:3;42783:93;:::i;:::-;42901:2;42896:3;42892:12;42885:19;;42544:366;;;:::o;42916:419::-;43082:4;43120:2;43109:9;43105:18;43097:26;;43169:9;43163:4;43159:20;43155:1;43144:9;43140:17;43133:47;43197:131;43323:4;43197:131;:::i;:::-;43189:139;;42916:419;;;:::o;43341:180::-;43389:77;43386:1;43379:88;43486:4;43483:1;43476:15;43510:4;43507:1;43500:15", - "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\n\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\";\nimport \"@openzeppelin/contracts/utils/Counters.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\n\ncontract NFTSbt is AccessControl, ERC721Enumerable {\n using Counters for Counters.Counter;\n string private _baseTokenURI = \"https://market.cebg.games/api/nft/info/\";\n bytes32 public constant BURN_ROLE = keccak256(\"BURN_ROLE\");\n bytes32 public constant MINTER_ROLE = keccak256(\"MINTER_ROLE\");\n uint256 public immutable supplyLimit;\n\n Counters.Counter private _tokenIdCounter;\n\n constructor(\n string memory _name,\n string memory _symbol,\n uint256 _supplyLimt\n ) ERC721(_name, _symbol) {\n supplyLimit = _supplyLimt;\n _setRoleAdmin(BURN_ROLE, DEFAULT_ADMIN_ROLE);\n _setRoleAdmin(MINTER_ROLE, DEFAULT_ADMIN_ROLE);\n\n _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\n _setupRole(MINTER_ROLE, msg.sender);\n _setupRole(BURN_ROLE, msg.sender);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(\n bytes4 interfaceId\n )\n public\n view\n virtual\n override(AccessControl, ERC721Enumerable)\n returns (bool)\n {\n return super.supportsInterface(interfaceId);\n }\n\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 tokenId\n ) internal override(ERC721Enumerable) {\n require(from == address(0) || to == address(0), \"Token not transferable\");\n super._beforeTokenTransfer(from, to, tokenId);\n }\n\n function _baseURI() internal view virtual override returns (string memory) {\n return _baseTokenURI;\n }\n\n /**\n * @dev Set token URI\n */\n function updateBaseURI(\n string calldata baseTokenURI\n ) external onlyRole(DEFAULT_ADMIN_ROLE) {\n _baseTokenURI = baseTokenURI;\n }\n\n function mint(address to) external onlyRole(MINTER_ROLE) returns (uint256) {\n require(to != address(0), \"Cannot mint to zero address\");\n if (supplyLimit > 0) {\n require((totalSupply() + 1) <= supplyLimit, \"Exceed the total supply\");\n }\n uint256 tokenId = _tokenIdCounter.current();\n _tokenIdCounter.increment();\n _safeMint(to, tokenId);\n return tokenId;\n }\n\n function burn(uint256 tokenId) external onlyRole(BURN_ROLE) {\n require(\n _isApprovedOrOwner(_msgSender(), tokenId),\n \"Caller is not owner nor approved\"\n );\n _burn(tokenId);\n }\n\n /**\n * @dev Grant mint role to address\n */\n function setMintRole(address to) external {\n grantRole(MINTER_ROLE, to);\n }\n\n /**\n * @dev Remove mint role to address\n */\n function removeMintRole(address to) external {\n revokeRole(MINTER_ROLE, to);\n }\n\n /**\n * @dev Grant burn role to address\n */\n function setBurnRole(address to) external {\n grantRole(BURN_ROLE, to);\n }\n\n /**\n * @dev Remove burn role to address\n */\n function removeBurnRole(address to) external {\n revokeRole(BURN_ROLE, to);\n }\n}\n", + "sourceMap": "249:2959:14:-:0;;;343:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;633:383;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;733:5;740:7;1464:5:2;1456;:13;;;;;;;;;;;;:::i;:::-;;1489:7;1479;:17;;;;;;;;;;;;:::i;:::-;;1390:113;;769:11:14::1;755:25;;;;::::0;::::1;786:44;455:22;2072:4:0;811:18:14::0;::::1;786:13;;;:44;;:::i;:::-;836:46;519:24;2072:4:0;863:18:14::0;::::1;836:13;;;:46;;:::i;:::-;889:42;2072:4:0;900:18:14::0;::::1;920:10;889;;;:42;;:::i;:::-;937:35;519:24;961:10;937;;;:35;;:::i;:::-;978:33;455:22;1000:10;978;;;:33;;:::i;:::-;633:383:::0;;;249:2959;;6492:247:0;6575:25;6603:18;6616:4;6603:12;;;:18;;:::i;:::-;6575:46;;6656:9;6631:6;:12;6638:4;6631:12;;;;;;;;;;;:22;;:34;;;;6722:9;6703:17;6697:4;6680:52;;;;;;;;;;6565:174;6492:247;;:::o;6257:110::-;6335:25;6346:4;6352:7;6335:10;;;:25;;:::i;:::-;6257:110;;:::o;4008:129::-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;6861:233::-;6944:22;6952:4;6958:7;6944;;;:22;;:::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;;;:12;;:::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;2909:145::-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;640:96:9:-;693:7;719:10;712:17;;640:96;:::o;249:2959:14:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:15:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:307::-;1678:1;1688:113;1702:6;1699:1;1696:13;1688:113;;;1787:1;1782:3;1778:11;1772:18;1768:1;1763:3;1759:11;1752:39;1724:2;1721:1;1717:10;1712:15;;1688:113;;;1819:6;1816:1;1813:13;1810:101;;;1899:1;1890:6;1885:3;1881:16;1874:27;1810:101;1659:258;1610:307;;;:::o;1923:421::-;2012:5;2037:66;2053:49;2095:6;2053:49;:::i;:::-;2037:66;:::i;:::-;2028:75;;2126:6;2119:5;2112:21;2164:4;2157:5;2153:16;2202:3;2193:6;2188:3;2184:16;2181:25;2178:112;;;2209:79;;:::i;:::-;2178:112;2299:39;2331:6;2326:3;2321;2299:39;:::i;:::-;2018:326;1923:421;;;;;:::o;2364:355::-;2431:5;2480:3;2473:4;2465:6;2461:17;2457:27;2447:122;;2488:79;;:::i;:::-;2447:122;2598:6;2592:13;2623:90;2709:3;2701:6;2694:4;2686:6;2682:17;2623:90;:::i;:::-;2614:99;;2437:282;2364:355;;;;:::o;2725:77::-;2762:7;2791:5;2780:16;;2725:77;;;:::o;2808:122::-;2881:24;2899:5;2881:24;:::i;:::-;2874:5;2871:35;2861:63;;2920:1;2917;2910:12;2861:63;2808:122;:::o;2936:143::-;2993:5;3024:6;3018:13;3009:22;;3040:33;3067:5;3040:33;:::i;:::-;2936:143;;;;:::o;3085:1009::-;3193:6;3201;3209;3258:2;3246:9;3237:7;3233:23;3229:32;3226:119;;;3264:79;;:::i;:::-;3226:119;3405:1;3394:9;3390:17;3384:24;3435:18;3427:6;3424:30;3421:117;;;3457:79;;:::i;:::-;3421:117;3562:74;3628:7;3619:6;3608:9;3604:22;3562:74;:::i;:::-;3552:84;;3355:291;3706:2;3695:9;3691:18;3685:25;3737:18;3729:6;3726:30;3723:117;;;3759:79;;:::i;:::-;3723:117;3864:74;3930:7;3921:6;3910:9;3906:22;3864:74;:::i;:::-;3854:84;;3656:292;3987:2;4013:64;4069:7;4060:6;4049:9;4045:22;4013:64;:::i;:::-;4003:74;;3958:129;3085:1009;;;;;:::o;4100:180::-;4148:77;4145:1;4138:88;4245:4;4242:1;4235:15;4269:4;4266:1;4259:15;4286:320;4330:6;4367:1;4361:4;4357:12;4347:22;;4414:1;4408:4;4404:12;4435:18;4425:81;;4491:4;4483:6;4479:17;4469:27;;4425:81;4553:2;4545:6;4542:14;4522:18;4519:38;4516:84;;;4572:18;;:::i;:::-;4516:84;4337:269;4286:320;;;:::o;249:2959:14:-;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "249:2959:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1075:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2488:98:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3999:217;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3537:401;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1615:111:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;547:36:14;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2858:83;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4726:330:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4008:129:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4387:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1291:253:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2994:77:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5404:214:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5122:179:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2477:195:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1798:230:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2725:79:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2191:235:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2090:383:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1929:205:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:145:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1697:138:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2650:102:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3125:81:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2027:49:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4283:153:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5367:320;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;419:58:14;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1892:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;481:62;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4766:147:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4502:162:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1075:208:14;1221:4;1242:36;1266:11;1242:23;:36::i;:::-;1235:43;;1075:208;;;:::o;2488:98:2:-;2542:13;2574:5;2567:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2488:98;:::o;3999:217::-;4075:7;4102:16;4110:7;4102;:16::i;:::-;4094:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4185:15;:24;4201:7;4185:24;;;;;;;;;;;;;;;;;;;;;4178:31;;3999:217;;;:::o;3537:401::-;3617:13;3633:23;3648:7;3633:14;:23::i;:::-;3617:39;;3680:5;3674:11;;:2;:11;;;;3666:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3771:5;3755:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;3780:37;3797:5;3804:12;:10;:12::i;:::-;3780:16;:37::i;:::-;3755:62;3734:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;3910:21;3919:2;3923:7;3910:8;:21::i;:::-;3607:331;3537:401;;:::o;1615:111:5:-;1676:7;1702:10;:17;;;;1695:24;;1615:111;:::o;547:36:14:-;;;:::o;2858:83::-;2909:27;519:24;2933:2;2909:10;:27::i;:::-;2858:83;:::o;4726:330:2:-;4915:41;4934:12;:10;:12::i;:::-;4948:7;4915:18;:41::i;:::-;4907:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;5021:28;5031:4;5037:2;5041:7;5021:9;:28::i;:::-;4726:330;;;:::o;4008:129:0:-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;4387:145::-;4470:18;4483:4;4470:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4500:25:::1;4511:4;4517:7;4500:10;:25::i;:::-;4387:145:::0;;;:::o;1291:253:5:-;1388:7;1423:23;1440:5;1423:16;:23::i;:::-;1415:5;:31;1407:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;1511:12;:19;1524:5;1511:19;;;;;;;;;;;;;;;:26;1531:5;1511:26;;;;;;;;;;;;1504:33;;1291:253;;;;:::o;2994:77:14:-;3042:24;455:22;3063:2;3042:9;:24::i;:::-;2994:77;:::o;5404:214:0:-;5510:12;:10;:12::i;:::-;5499:23;;:7;:23;;;5491:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;5585:26;5597:4;5603:7;5585:11;:26::i;:::-;5404:214;;:::o;5122:179:2:-;5255:39;5272:4;5278:2;5282:7;5255:39;;;;;;;;;;;;:16;:39::i;:::-;5122:179;;;:::o;2477:195:14:-;455:22;2505:30:0;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;2558:41:14::1;2577:12;:10;:12::i;:::-;2591:7;2558:18;:41::i;:::-;2543:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;2653:14;2659:7;2653:5;:14::i;:::-;2477:195:::0;;:::o;1798:230:5:-;1873:7;1908:30;:28;:30::i;:::-;1900:5;:38;1892:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;2004:10;2015:5;2004:17;;;;;;;;:::i;:::-;;;;;;;;;;1997:24;;1798:230;;;:::o;2725:79:14:-;2773:26;519:24;2796:2;2773:9;:26::i;:::-;2725:79;:::o;2191:235:2:-;2263:7;2282:13;2298:7;:16;2306:7;2298:16;;;;;;;;;;;;;;;;;;;;;2282:32;;2349:1;2332:19;;:5;:19;;;;2324:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2414:5;2407:12;;;2191:235;;;:::o;2090:383:14:-;2156:7;519:24;2505:30:0;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;2193:1:14::1;2179:16;;:2;:16;;;;2171:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2251:1;2237:11;:15;2233:106;;;2293:11;2287:1;2271:13;:11;:13::i;:::-;:17;;;;:::i;:::-;2270:34;;2262:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;2233:106;2344:15;2362:25;:15;:23;:25::i;:::-;2344:43;;2393:27;:15;:25;:27::i;:::-;2426:22;2436:2;2440:7;2426:9;:22::i;:::-;2461:7;2454:14;;;2090:383:::0;;;;:::o;1929:205:2:-;2001:7;2045:1;2028:19;;:5;:19;;;;2020:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;2111:9;:16;2121:5;2111:16;;;;;;;;;;;;;;;;2104:23;;1929:205;;;:::o;2909:145:0:-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;1697:138:14:-;2072:4:0;1776:18:14;;2505:30:0;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;1818:12:14::1;;1802:13;:28;;;;;;;:::i;:::-;;1697:138:::0;;;:::o;2650:102:2:-;2706:13;2738:7;2731:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2650:102;:::o;3125:81:14:-;3176:25;455:22;3198:2;3176:10;:25::i;:::-;3125:81;:::o;2027:49:0:-;2072:4;2027:49;;;:::o;4283:153:2:-;4377:52;4396:12;:10;:12::i;:::-;4410:8;4420;4377:18;:52::i;:::-;4283:153;;:::o;5367:320::-;5536:41;5555:12;:10;:12::i;:::-;5569:7;5536:18;:41::i;:::-;5528:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;5641:39;5655:4;5661:2;5665:7;5674:5;5641:13;:39::i;:::-;5367:320;;;;:::o;419:58:14:-;455:22;419:58;:::o;1892:194::-;1973:13;1994:21;2018:10;:8;:10::i;:::-;1994:34;;2065:1;2047:7;2041:21;:25;:40;;;;;;;;;;;;;;;;;2069:7;2041:40;2034:47;;;1892:194;;;:::o;481:62::-;519:24;481:62;:::o;4766:147:0:-;4850:18;4863:4;4850:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4880:26:::1;4892:4;4898:7;4880:11;:26::i;:::-;4766:147:::0;;;:::o;4502:162:2:-;4599:4;4622:18;:25;4641:5;4622:25;;;;;;;;;;;;;;;:35;4648:8;4622:35;;;;;;;;;;;;;;;;;;;;;;;;;4615:42;;4502:162;;;;:::o;990:222:5:-;1092:4;1130:35;1115:50;;;:11;:50;;;;:90;;;;1169:36;1193:11;1169:23;:36::i;:::-;1115:90;1108:97;;990:222;;;:::o;7159:125:2:-;7224:4;7275:1;7247:30;;:7;:16;7255:7;7247:16;;;;;;;;;;;;;;;;;;;;;:30;;;;7240:37;;7159:125;;;:::o;640:96:9:-;693:7;719:10;712:17;;640:96;:::o;11168:171:2:-;11269:2;11242:15;:24;11258:7;11242:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;11324:7;11320:2;11286:46;;11295:23;11310:7;11295:14;:23::i;:::-;11286:46;;;;;;;;;;;;11168:171;;:::o;7442:344::-;7535:4;7559:16;7567:7;7559;:16::i;:::-;7551:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7634:13;7650:23;7665:7;7650:14;:23::i;:::-;7634:39;;7702:5;7691:16;;:7;:16;;;:51;;;;7735:7;7711:31;;:20;7723:7;7711:11;:20::i;:::-;:31;;;7691:51;:87;;;;7746:32;7763:5;7770:7;7746:16;:32::i;:::-;7691:87;7683:96;;;7442:344;;;;:::o;10452:605::-;10606:4;10579:31;;:23;10594:7;10579:14;:23::i;:::-;:31;;;10571:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;10684:1;10670:16;;:2;:16;;;;10662:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10738:39;10759:4;10765:2;10769:7;10738:20;:39::i;:::-;10839:29;10856:1;10860:7;10839:8;:29::i;:::-;10898:1;10879:9;:15;10889:4;10879:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;10926:1;10909:9;:13;10919:2;10909:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;10956:2;10937:7;:16;10945:7;10937:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10993:7;10989:2;10974:27;;10983:4;10974:27;;;;;;;;;;;;11012:38;11032:4;11038:2;11042:7;11012:19;:38::i;:::-;10452:605;;;:::o;3335:492:0:-;3423:22;3431:4;3437:7;3423;:22::i;:::-;3418:403;;3606:41;3634:7;3606:41;;3644:2;3606:19;:41::i;:::-;3718:38;3746:4;3738:13;;3753:2;3718:19;:38::i;:::-;3513:265;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3461:349;;;;;;;;;;;:::i;:::-;;;;;;;;3418:403;3335:492;;:::o;6861:233::-;6944:22;6952:4;6958:7;6944;:22::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;:12::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;7219:234::-;7302:22;7310:4;7316:7;7302;:22::i;:::-;7298:149;;;7372:5;7340:6;:12;7347:4;7340:12;;;;;;;;;;;:20;;:29;7361:7;7340:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;7423:12;:10;:12::i;:::-;7396:40;;7414:7;7396:40;;7408:4;7396:40;;;;;;;;;;7298:149;7219:234;;:::o;9722:406:2:-;9781:13;9797:23;9812:7;9797:14;:23::i;:::-;9781:39;;9831:48;9852:5;9867:1;9871:7;9831:20;:48::i;:::-;9917:29;9934:1;9938:7;9917:8;:29::i;:::-;9977:1;9957:9;:16;9967:5;9957:16;;;;;;;;;;;;;;;;:21;;;;;;;:::i;:::-;;;;;;;;9995:7;:16;10003:7;9995:16;;;;;;;;;;;;9988:23;;;;;;;;;;;10055:7;10051:1;10027:36;;10036:5;10027:36;;;;;;;;;;;;10074:47;10094:5;10109:1;10113:7;10074:19;:47::i;:::-;9771:357;9722:406;:::o;827:112:10:-;892:7;918;:14;;;911:21;;827:112;;;:::o;945:123::-;1050:1;1032:7;:14;;;:19;;;;;;;;;;;945:123;:::o;8116:108:2:-;8191:26;8201:2;8205:7;8191:26;;;;;;;;;;;;:9;:26::i;:::-;8116:108;;:::o;11474:307::-;11624:8;11615:17;;:5;:17;;;;11607:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;11710:8;11672:18;:25;11691:5;11672:25;;;;;;;;;;;;;;;:35;11698:8;11672:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;11755:8;11733:41;;11748:5;11733:41;;;11765:8;11733:41;;;;;;:::i;:::-;;;;;;;;11474:307;;;:::o;6549:::-;6700:28;6710:4;6716:2;6720:7;6700:9;:28::i;:::-;6746:48;6769:4;6775:2;6779:7;6788:5;6746:22;:48::i;:::-;6738:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;6549:307;;;;:::o;1551:106:14:-;1611:13;1639;1632:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1551:106;:::o;1570:300:2:-;1672:4;1722:25;1707:40;;;:11;:40;;;;:104;;;;1778:33;1763:48;;;:11;:48;;;;1707:104;:156;;;;1827:36;1851:11;1827:23;:36::i;:::-;1707:156;1688:175;;1570:300;;;:::o;1287:260:14:-;1442:1;1426:18;;:4;:18;;;:38;;;;1462:1;1448:16;;:2;:16;;;1426:38;1418:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1497:45;1524:4;1530:2;1534:7;1497:26;:45::i;:::-;1287:260;;;:::o;14162:121:2:-;;;;:::o;1588:441:11:-;1663:13;1688:19;1733:1;1724:6;1720:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1710:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1688:47;;1745:15;:6;1752:1;1745:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1770;:6;1777:1;1770:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1800:9;1825:1;1816:6;1812:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1800:26;;1795:132;1832:1;1828;:5;1795:132;;;1866:12;1887:3;1879:5;:11;1866:25;;;;;;;:::i;:::-;;;;;1854:6;1861:1;1854:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;1915:1;1905:11;;;;;1835:3;;;;:::i;:::-;;;1795:132;;;;1953:1;1944:5;:10;1936:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2015:6;2001:21;;;1588:441;;;;:::o;8445:311:2:-;8570:18;8576:2;8580:7;8570:5;:18::i;:::-;8619:54;8650:1;8654:2;8658:7;8667:5;8619:22;:54::i;:::-;8598:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;8445:311;;;:::o;12334:778::-;12484:4;12504:15;:2;:13;;;:15::i;:::-;12500:606;;;12555:2;12539:36;;;12576:12;:10;:12::i;:::-;12590:4;12596:7;12605:5;12539:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;12535:519;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12795:1;12778:6;:13;:18;12774:266;;;12820:60;;;;;;;;;;:::i;:::-;;;;;;;;12774:266;12992:6;12986:13;12977:6;12973:2;12969:15;12962:38;12535:519;12671:41;;;12661:51;;;:6;:51;;;;12654:58;;;;;12500:606;13091:4;13084:11;;12334:778;;;;;;;:::o;2620:202:0:-;2705:4;2743:32;2728:47;;;:11;:47;;;;:87;;;;2779:36;2803:11;2779:23;:36::i;:::-;2728:87;2721:94;;2620:202;;;:::o;2624:572:5:-;2763:45;2790:4;2796:2;2800:7;2763:26;:45::i;:::-;2839:1;2823:18;;:4;:18;;;2819:183;;;2857:40;2889:7;2857:31;:40::i;:::-;2819:183;;;2926:2;2918:10;;:4;:10;;;2914:88;;2944:47;2977:4;2983:7;2944:32;:47::i;:::-;2914:88;2819:183;3029:1;3015:16;;:2;:16;;;3011:179;;;3047:45;3084:7;3047:36;:45::i;:::-;3011:179;;;3119:4;3113:10;;:2;:10;;;3109:81;;3139:40;3167:2;3171:7;3139:27;:40::i;:::-;3109:81;3011:179;2624:572;;;:::o;9078:427:2:-;9171:1;9157:16;;:2;:16;;;;9149:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9229:16;9237:7;9229;:16::i;:::-;9228:17;9220:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9289:45;9318:1;9322:2;9326:7;9289:20;:45::i;:::-;9362:1;9345:9;:13;9355:2;9345:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;9392:2;9373:7;:16;9381:7;9373:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9435:7;9431:2;9410:33;;9427:1;9410:33;;;;;;;;;;;;9454:44;9482:1;9486:2;9490:7;9454:19;:44::i;:::-;9078:427;;:::o;1175:320:8:-;1235:4;1487:1;1465:7;:19;;;:23;1458:30;;1175:320;;;:::o;829:155:12:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;13668:122:2:-;;;;:::o;3902:161:5:-;4005:10;:17;;;;3978:15;:24;3994:7;3978:24;;;;;;;;;;;:44;;;;4032:10;4048:7;4032:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3902:161;:::o;4680:970::-;4942:22;4992:1;4967:22;4984:4;4967:16;:22::i;:::-;:26;;;;:::i;:::-;4942:51;;5003:18;5024:17;:26;5042:7;5024:26;;;;;;;;;;;;5003:47;;5168:14;5154:10;:28;5150:323;;5198:19;5220:12;:18;5233:4;5220:18;;;;;;;;;;;;;;;:34;5239:14;5220:34;;;;;;;;;;;;5198:56;;5302:11;5269:12;:18;5282:4;5269:18;;;;;;;;;;;;;;;:30;5288:10;5269:30;;;;;;;;;;;:44;;;;5418:10;5385:17;:30;5403:11;5385:30;;;;;;;;;;;:43;;;;5184:289;5150:323;5566:17;:26;5584:7;5566:26;;;;;;;;;;;5559:33;;;5609:12;:18;5622:4;5609:18;;;;;;;;;;;;;;;:34;5628:14;5609:34;;;;;;;;;;;5602:41;;;4761:889;;4680:970;;:::o;5938:1061::-;6187:22;6232:1;6212:10;:17;;;;:21;;;;:::i;:::-;6187:46;;6243:18;6264:15;:24;6280:7;6264:24;;;;;;;;;;;;6243:45;;6610:19;6632:10;6643:14;6632:26;;;;;;;;:::i;:::-;;;;;;;;;;6610:48;;6694:11;6669:10;6680;6669:22;;;;;;;;:::i;:::-;;;;;;;;;:36;;;;6804:10;6773:15;:28;6789:11;6773:28;;;;;;;;;;;:41;;;;6942:15;:24;6958:7;6942:24;;;;;;;;;;;6935:31;;;6976:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6009:990;;;5938:1061;:::o;3490:217::-;3574:14;3591:20;3608:2;3591:16;:20::i;:::-;3574:37;;3648:7;3621:12;:16;3634:2;3621:16;;;;;;;;;;;;;;;:24;3638:6;3621:24;;;;;;;;;;;:34;;;;3694:6;3665:17;:26;3683:7;3665:26;;;;;;;;;;;:35;;;;3564:143;3490:217;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:15:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:307::-;1866:1;1876:113;1890:6;1887:1;1884:13;1876:113;;;1975:1;1970:3;1966:11;1960:18;1956:1;1951:3;1947:11;1940:39;1912:2;1909:1;1905:10;1900:15;;1876:113;;;2007:6;2004:1;2001:13;1998:101;;;2087:1;2078:6;2073:3;2069:16;2062:27;1998:101;1847:258;1798:307;;;:::o;2111:102::-;2152:6;2203:2;2199:7;2194:2;2187:5;2183:14;2179:28;2169:38;;2111:102;;;:::o;2219:364::-;2307:3;2335:39;2368:5;2335:39;:::i;:::-;2390:71;2454:6;2449:3;2390:71;:::i;:::-;2383:78;;2470:52;2515:6;2510:3;2503:4;2496:5;2492:16;2470:52;:::i;:::-;2547:29;2569:6;2547:29;:::i;:::-;2542:3;2538:39;2531:46;;2311:272;2219:364;;;;:::o;2589:313::-;2702:4;2740:2;2729:9;2725:18;2717:26;;2789:9;2783:4;2779:20;2775:1;2764:9;2760:17;2753:47;2817:78;2890:4;2881:6;2817:78;:::i;:::-;2809:86;;2589:313;;;;:::o;2908:77::-;2945:7;2974:5;2963:16;;2908:77;;;:::o;2991:122::-;3064:24;3082:5;3064:24;:::i;:::-;3057:5;3054:35;3044:63;;3103:1;3100;3093:12;3044:63;2991:122;:::o;3119:139::-;3165:5;3203:6;3190:20;3181:29;;3219:33;3246:5;3219:33;:::i;:::-;3119:139;;;;:::o;3264:329::-;3323:6;3372:2;3360:9;3351:7;3347:23;3343:32;3340:119;;;3378:79;;:::i;:::-;3340:119;3498:1;3523:53;3568:7;3559:6;3548:9;3544:22;3523:53;:::i;:::-;3513:63;;3469:117;3264:329;;;;:::o;3599:126::-;3636:7;3676:42;3669:5;3665:54;3654:65;;3599:126;;;:::o;3731:96::-;3768:7;3797:24;3815:5;3797:24;:::i;:::-;3786:35;;3731:96;;;:::o;3833:118::-;3920:24;3938:5;3920:24;:::i;:::-;3915:3;3908:37;3833:118;;:::o;3957:222::-;4050:4;4088:2;4077:9;4073:18;4065:26;;4101:71;4169:1;4158:9;4154:17;4145:6;4101:71;:::i;:::-;3957:222;;;;:::o;4185:122::-;4258:24;4276:5;4258:24;:::i;:::-;4251:5;4248:35;4238:63;;4297:1;4294;4287:12;4238:63;4185:122;:::o;4313:139::-;4359:5;4397:6;4384:20;4375:29;;4413:33;4440:5;4413:33;:::i;:::-;4313:139;;;;:::o;4458:474::-;4526:6;4534;4583:2;4571:9;4562:7;4558:23;4554:32;4551:119;;;4589:79;;:::i;:::-;4551:119;4709:1;4734:53;4779:7;4770:6;4759:9;4755:22;4734:53;:::i;:::-;4724:63;;4680:117;4836:2;4862:53;4907:7;4898:6;4887:9;4883:22;4862:53;:::i;:::-;4852:63;;4807:118;4458:474;;;;;:::o;4938:118::-;5025:24;5043:5;5025:24;:::i;:::-;5020:3;5013:37;4938:118;;:::o;5062:222::-;5155:4;5193:2;5182:9;5178:18;5170:26;;5206:71;5274:1;5263:9;5259:17;5250:6;5206:71;:::i;:::-;5062:222;;;;:::o;5290:329::-;5349:6;5398:2;5386:9;5377:7;5373:23;5369:32;5366:119;;;5404:79;;:::i;:::-;5366:119;5524:1;5549:53;5594:7;5585:6;5574:9;5570:22;5549:53;:::i;:::-;5539:63;;5495:117;5290:329;;;;:::o;5625:619::-;5702:6;5710;5718;5767:2;5755:9;5746:7;5742:23;5738:32;5735:119;;;5773:79;;:::i;:::-;5735:119;5893:1;5918:53;5963:7;5954:6;5943:9;5939:22;5918:53;:::i;:::-;5908:63;;5864:117;6020:2;6046:53;6091:7;6082:6;6071:9;6067:22;6046:53;:::i;:::-;6036:63;;5991:118;6148:2;6174:53;6219:7;6210:6;6199:9;6195:22;6174:53;:::i;:::-;6164:63;;6119:118;5625:619;;;;;:::o;6250:77::-;6287:7;6316:5;6305:16;;6250:77;;;:::o;6333:122::-;6406:24;6424:5;6406:24;:::i;:::-;6399:5;6396:35;6386:63;;6445:1;6442;6435:12;6386:63;6333:122;:::o;6461:139::-;6507:5;6545:6;6532:20;6523:29;;6561:33;6588:5;6561:33;:::i;:::-;6461:139;;;;:::o;6606:329::-;6665:6;6714:2;6702:9;6693:7;6689:23;6685:32;6682:119;;;6720:79;;:::i;:::-;6682:119;6840:1;6865:53;6910:7;6901:6;6890:9;6886:22;6865:53;:::i;:::-;6855:63;;6811:117;6606:329;;;;:::o;6941:118::-;7028:24;7046:5;7028:24;:::i;:::-;7023:3;7016:37;6941:118;;:::o;7065:222::-;7158:4;7196:2;7185:9;7181:18;7173:26;;7209:71;7277:1;7266:9;7262:17;7253:6;7209:71;:::i;:::-;7065:222;;;;:::o;7293:474::-;7361:6;7369;7418:2;7406:9;7397:7;7393:23;7389:32;7386:119;;;7424:79;;:::i;:::-;7386:119;7544:1;7569:53;7614:7;7605:6;7594:9;7590:22;7569:53;:::i;:::-;7559:63;;7515:117;7671:2;7697:53;7742:7;7733:6;7722:9;7718:22;7697:53;:::i;:::-;7687:63;;7642:118;7293:474;;;;;:::o;7773:117::-;7882:1;7879;7872:12;7896:117;8005:1;8002;7995:12;8019:117;8128:1;8125;8118:12;8156:553;8214:8;8224:6;8274:3;8267:4;8259:6;8255:17;8251:27;8241:122;;8282:79;;:::i;:::-;8241:122;8395:6;8382:20;8372:30;;8425:18;8417:6;8414:30;8411:117;;;8447:79;;:::i;:::-;8411:117;8561:4;8553:6;8549:17;8537:29;;8615:3;8607:4;8599:6;8595:17;8585:8;8581:32;8578:41;8575:128;;;8622:79;;:::i;:::-;8575:128;8156:553;;;;;:::o;8715:529::-;8786:6;8794;8843:2;8831:9;8822:7;8818:23;8814:32;8811:119;;;8849:79;;:::i;:::-;8811:119;8997:1;8986:9;8982:17;8969:31;9027:18;9019:6;9016:30;9013:117;;;9049:79;;:::i;:::-;9013:117;9162:65;9219:7;9210:6;9199:9;9195:22;9162:65;:::i;:::-;9144:83;;;;8940:297;8715:529;;;;;:::o;9250:116::-;9320:21;9335:5;9320:21;:::i;:::-;9313:5;9310:32;9300:60;;9356:1;9353;9346:12;9300:60;9250:116;:::o;9372:133::-;9415:5;9453:6;9440:20;9431:29;;9469:30;9493:5;9469:30;:::i;:::-;9372:133;;;;:::o;9511:468::-;9576:6;9584;9633:2;9621:9;9612:7;9608:23;9604:32;9601:119;;;9639:79;;:::i;:::-;9601:119;9759:1;9784:53;9829:7;9820:6;9809:9;9805:22;9784:53;:::i;:::-;9774:63;;9730:117;9886:2;9912:50;9954:7;9945:6;9934:9;9930:22;9912:50;:::i;:::-;9902:60;;9857:115;9511:468;;;;;:::o;9985:117::-;10094:1;10091;10084:12;10108:180;10156:77;10153:1;10146:88;10253:4;10250:1;10243:15;10277:4;10274:1;10267:15;10294:281;10377:27;10399:4;10377:27;:::i;:::-;10369:6;10365:40;10507:6;10495:10;10492:22;10471:18;10459:10;10456:34;10453:62;10450:88;;;10518:18;;:::i;:::-;10450:88;10558:10;10554:2;10547:22;10337:238;10294:281;;:::o;10581:129::-;10615:6;10642:20;;:::i;:::-;10632:30;;10671:33;10699:4;10691:6;10671:33;:::i;:::-;10581:129;;;:::o;10716:307::-;10777:4;10867:18;10859:6;10856:30;10853:56;;;10889:18;;:::i;:::-;10853:56;10927:29;10949:6;10927:29;:::i;:::-;10919:37;;11011:4;11005;11001:15;10993:23;;10716:307;;;:::o;11029:154::-;11113:6;11108:3;11103;11090:30;11175:1;11166:6;11161:3;11157:16;11150:27;11029:154;;;:::o;11189:410::-;11266:5;11291:65;11307:48;11348:6;11307:48;:::i;:::-;11291:65;:::i;:::-;11282:74;;11379:6;11372:5;11365:21;11417:4;11410:5;11406:16;11455:3;11446:6;11441:3;11437:16;11434:25;11431:112;;;11462:79;;:::i;:::-;11431:112;11552:41;11586:6;11581:3;11576;11552:41;:::i;:::-;11272:327;11189:410;;;;;:::o;11618:338::-;11673:5;11722:3;11715:4;11707:6;11703:17;11699:27;11689:122;;11730:79;;:::i;:::-;11689:122;11847:6;11834:20;11872:78;11946:3;11938:6;11931:4;11923:6;11919:17;11872:78;:::i;:::-;11863:87;;11679:277;11618:338;;;;:::o;11962:943::-;12057:6;12065;12073;12081;12130:3;12118:9;12109:7;12105:23;12101:33;12098:120;;;12137:79;;:::i;:::-;12098:120;12257:1;12282:53;12327:7;12318:6;12307:9;12303:22;12282:53;:::i;:::-;12272:63;;12228:117;12384:2;12410:53;12455:7;12446:6;12435:9;12431:22;12410:53;:::i;:::-;12400:63;;12355:118;12512:2;12538:53;12583:7;12574:6;12563:9;12559:22;12538:53;:::i;:::-;12528:63;;12483:118;12668:2;12657:9;12653:18;12640:32;12699:18;12691:6;12688:30;12685:117;;;12721:79;;:::i;:::-;12685:117;12826:62;12880:7;12871:6;12860:9;12856:22;12826:62;:::i;:::-;12816:72;;12611:287;11962:943;;;;;;;:::o;12911:474::-;12979:6;12987;13036:2;13024:9;13015:7;13011:23;13007:32;13004:119;;;13042:79;;:::i;:::-;13004:119;13162:1;13187:53;13232:7;13223:6;13212:9;13208:22;13187:53;:::i;:::-;13177:63;;13133:117;13289:2;13315:53;13360:7;13351:6;13340:9;13336:22;13315:53;:::i;:::-;13305:63;;13260:118;12911:474;;;;;:::o;13391:180::-;13439:77;13436:1;13429:88;13536:4;13533:1;13526:15;13560:4;13557:1;13550:15;13577:320;13621:6;13658:1;13652:4;13648:12;13638:22;;13705:1;13699:4;13695:12;13726:18;13716:81;;13782:4;13774:6;13770:17;13760:27;;13716:81;13844:2;13836:6;13833:14;13813:18;13810:38;13807:84;;;13863:18;;:::i;:::-;13807:84;13628:269;13577:320;;;:::o;13903:231::-;14043:34;14039:1;14031:6;14027:14;14020:58;14112:14;14107:2;14099:6;14095:15;14088:39;13903:231;:::o;14140:366::-;14282:3;14303:67;14367:2;14362:3;14303:67;:::i;:::-;14296:74;;14379:93;14468:3;14379:93;:::i;:::-;14497:2;14492:3;14488:12;14481:19;;14140:366;;;:::o;14512:419::-;14678:4;14716:2;14705:9;14701:18;14693:26;;14765:9;14759:4;14755:20;14751:1;14740:9;14736:17;14729:47;14793:131;14919:4;14793:131;:::i;:::-;14785:139;;14512:419;;;:::o;14937:220::-;15077:34;15073:1;15065:6;15061:14;15054:58;15146:3;15141:2;15133:6;15129:15;15122:28;14937:220;:::o;15163:366::-;15305:3;15326:67;15390:2;15385:3;15326:67;:::i;:::-;15319:74;;15402:93;15491:3;15402:93;:::i;:::-;15520:2;15515:3;15511:12;15504:19;;15163:366;;;:::o;15535:419::-;15701:4;15739:2;15728:9;15724:18;15716:26;;15788:9;15782:4;15778:20;15774:1;15763:9;15759:17;15752:47;15816:131;15942:4;15816:131;:::i;:::-;15808:139;;15535:419;;;:::o;15960:243::-;16100:34;16096:1;16088:6;16084:14;16077:58;16169:26;16164:2;16156:6;16152:15;16145:51;15960:243;:::o;16209:366::-;16351:3;16372:67;16436:2;16431:3;16372:67;:::i;:::-;16365:74;;16448:93;16537:3;16448:93;:::i;:::-;16566:2;16561:3;16557:12;16550:19;;16209:366;;;:::o;16581:419::-;16747:4;16785:2;16774:9;16770:18;16762:26;;16834:9;16828:4;16824:20;16820:1;16809:9;16805:17;16798:47;16862:131;16988:4;16862:131;:::i;:::-;16854:139;;16581:419;;;:::o;17006:236::-;17146:34;17142:1;17134:6;17130:14;17123:58;17215:19;17210:2;17202:6;17198:15;17191:44;17006:236;:::o;17248:366::-;17390:3;17411:67;17475:2;17470:3;17411:67;:::i;:::-;17404:74;;17487:93;17576:3;17487:93;:::i;:::-;17605:2;17600:3;17596:12;17589:19;;17248:366;;;:::o;17620:419::-;17786:4;17824:2;17813:9;17809:18;17801:26;;17873:9;17867:4;17863:20;17859:1;17848:9;17844:17;17837:47;17901:131;18027:4;17901:131;:::i;:::-;17893:139;;17620:419;;;:::o;18045:230::-;18185:34;18181:1;18173:6;18169:14;18162:58;18254:13;18249:2;18241:6;18237:15;18230:38;18045:230;:::o;18281:366::-;18423:3;18444:67;18508:2;18503:3;18444:67;:::i;:::-;18437:74;;18520:93;18609:3;18520:93;:::i;:::-;18638:2;18633:3;18629:12;18622:19;;18281:366;;;:::o;18653:419::-;18819:4;18857:2;18846:9;18842:18;18834:26;;18906:9;18900:4;18896:20;18892:1;18881:9;18877:17;18870:47;18934:131;19060:4;18934:131;:::i;:::-;18926:139;;18653:419;;;:::o;19078:234::-;19218:34;19214:1;19206:6;19202:14;19195:58;19287:17;19282:2;19274:6;19270:15;19263:42;19078:234;:::o;19318:366::-;19460:3;19481:67;19545:2;19540:3;19481:67;:::i;:::-;19474:74;;19557:93;19646:3;19557:93;:::i;:::-;19675:2;19670:3;19666:12;19659:19;;19318:366;;;:::o;19690:419::-;19856:4;19894:2;19883:9;19879:18;19871:26;;19943:9;19937:4;19933:20;19929:1;19918:9;19914:17;19907:47;19971:131;20097:4;19971:131;:::i;:::-;19963:139;;19690:419;;;:::o;20115:182::-;20255:34;20251:1;20243:6;20239:14;20232:58;20115:182;:::o;20303:366::-;20445:3;20466:67;20530:2;20525:3;20466:67;:::i;:::-;20459:74;;20542:93;20631:3;20542:93;:::i;:::-;20660:2;20655:3;20651:12;20644:19;;20303:366;;;:::o;20675:419::-;20841:4;20879:2;20868:9;20864:18;20856:26;;20928:9;20922:4;20918:20;20914:1;20903:9;20899:17;20892:47;20956:131;21082:4;20956:131;:::i;:::-;20948:139;;20675:419;;;:::o;21100:231::-;21240:34;21236:1;21228:6;21224:14;21217:58;21309:14;21304:2;21296:6;21292:15;21285:39;21100:231;:::o;21337:366::-;21479:3;21500:67;21564:2;21559:3;21500:67;:::i;:::-;21493:74;;21576:93;21665:3;21576:93;:::i;:::-;21694:2;21689:3;21685:12;21678:19;;21337:366;;;:::o;21709:419::-;21875:4;21913:2;21902:9;21898:18;21890:26;;21962:9;21956:4;21952:20;21948:1;21937:9;21933:17;21926:47;21990:131;22116:4;21990:131;:::i;:::-;21982:139;;21709:419;;;:::o;22134:180::-;22182:77;22179:1;22172:88;22279:4;22276:1;22269:15;22303:4;22300:1;22293:15;22320:228;22460:34;22456:1;22448:6;22444:14;22437:58;22529:11;22524:2;22516:6;22512:15;22505:36;22320:228;:::o;22554:366::-;22696:3;22717:67;22781:2;22776:3;22717:67;:::i;:::-;22710:74;;22793:93;22882:3;22793:93;:::i;:::-;22911:2;22906:3;22902:12;22895:19;;22554:366;;;:::o;22926:419::-;23092:4;23130:2;23119:9;23115:18;23107:26;;23179:9;23173:4;23169:20;23165:1;23154:9;23150:17;23143:47;23207:131;23333:4;23207:131;:::i;:::-;23199:139;;22926:419;;;:::o;23351:177::-;23491:29;23487:1;23479:6;23475:14;23468:53;23351:177;:::o;23534:366::-;23676:3;23697:67;23761:2;23756:3;23697:67;:::i;:::-;23690:74;;23773:93;23862:3;23773:93;:::i;:::-;23891:2;23886:3;23882:12;23875:19;;23534:366;;;:::o;23906:419::-;24072:4;24110:2;24099:9;24095:18;24087:26;;24159:9;24153:4;24149:20;24145:1;24134:9;24130:17;24123:47;24187:131;24313:4;24187:131;:::i;:::-;24179:139;;23906:419;;;:::o;24331:180::-;24379:77;24376:1;24369:88;24476:4;24473:1;24466:15;24500:4;24497:1;24490:15;24517:305;24557:3;24576:20;24594:1;24576:20;:::i;:::-;24571:25;;24610:20;24628:1;24610:20;:::i;:::-;24605:25;;24764:1;24696:66;24692:74;24689:1;24686:81;24683:107;;;24770:18;;:::i;:::-;24683:107;24814:1;24811;24807:9;24800:16;;24517:305;;;;:::o;24828:173::-;24968:25;24964:1;24956:6;24952:14;24945:49;24828:173;:::o;25007:366::-;25149:3;25170:67;25234:2;25229:3;25170:67;:::i;:::-;25163:74;;25246:93;25335:3;25246:93;:::i;:::-;25364:2;25359:3;25355:12;25348:19;;25007:366;;;:::o;25379:419::-;25545:4;25583:2;25572:9;25568:18;25560:26;;25632:9;25626:4;25622:20;25618:1;25607:9;25603:17;25596:47;25660:131;25786:4;25660:131;:::i;:::-;25652:139;;25379:419;;;:::o;25804:229::-;25944:34;25940:1;25932:6;25928:14;25921:58;26013:12;26008:2;26000:6;25996:15;25989:37;25804:229;:::o;26039:366::-;26181:3;26202:67;26266:2;26261:3;26202:67;:::i;:::-;26195:74;;26278:93;26367:3;26278:93;:::i;:::-;26396:2;26391:3;26387:12;26380:19;;26039:366;;;:::o;26411:419::-;26577:4;26615:2;26604:9;26600:18;26592:26;;26664:9;26658:4;26654:20;26650:1;26639:9;26635:17;26628:47;26692:131;26818:4;26692:131;:::i;:::-;26684:139;;26411:419;;;:::o;26836:231::-;26976:34;26972:1;26964:6;26960:14;26953:58;27045:14;27040:2;27032:6;27028:15;27021:39;26836:231;:::o;27073:366::-;27215:3;27236:67;27300:2;27295:3;27236:67;:::i;:::-;27229:74;;27312:93;27401:3;27312:93;:::i;:::-;27430:2;27425:3;27421:12;27414:19;;27073:366;;;:::o;27445:419::-;27611:4;27649:2;27638:9;27634:18;27626:26;;27698:9;27692:4;27688:20;27684:1;27673:9;27669:17;27662:47;27726:131;27852:4;27726:131;:::i;:::-;27718:139;;27445:419;;;:::o;27870:224::-;28010:34;28006:1;27998:6;27994:14;27987:58;28079:7;28074:2;28066:6;28062:15;28055:32;27870:224;:::o;28100:366::-;28242:3;28263:67;28327:2;28322:3;28263:67;:::i;:::-;28256:74;;28339:93;28428:3;28339:93;:::i;:::-;28457:2;28452:3;28448:12;28441:19;;28100:366;;;:::o;28472:419::-;28638:4;28676:2;28665:9;28661:18;28653:26;;28725:9;28719:4;28715:20;28711:1;28700:9;28696:17;28689:47;28753:131;28879:4;28753:131;:::i;:::-;28745:139;;28472:419;;;:::o;28897:223::-;29037:34;29033:1;29025:6;29021:14;29014:58;29106:6;29101:2;29093:6;29089:15;29082:31;28897:223;:::o;29126:366::-;29268:3;29289:67;29353:2;29348:3;29289:67;:::i;:::-;29282:74;;29365:93;29454:3;29365:93;:::i;:::-;29483:2;29478:3;29474:12;29467:19;;29126:366;;;:::o;29498:419::-;29664:4;29702:2;29691:9;29687:18;29679:26;;29751:9;29745:4;29741:20;29737:1;29726:9;29722:17;29715:47;29779:131;29905:4;29779:131;:::i;:::-;29771:139;;29498:419;;;:::o;29923:191::-;29963:4;29983:20;30001:1;29983:20;:::i;:::-;29978:25;;30017:20;30035:1;30017:20;:::i;:::-;30012:25;;30056:1;30053;30050:8;30047:34;;;30061:18;;:::i;:::-;30047:34;30106:1;30103;30099:9;30091:17;;29923:191;;;;:::o;30120:148::-;30222:11;30259:3;30244:18;;30120:148;;;;:::o;30274:173::-;30414:25;30410:1;30402:6;30398:14;30391:49;30274:173;:::o;30453:402::-;30613:3;30634:85;30716:2;30711:3;30634:85;:::i;:::-;30627:92;;30728:93;30817:3;30728:93;:::i;:::-;30846:2;30841:3;30837:12;30830:19;;30453:402;;;:::o;30861:377::-;30967:3;30995:39;31028:5;30995:39;:::i;:::-;31050:89;31132:6;31127:3;31050:89;:::i;:::-;31043:96;;31148:52;31193:6;31188:3;31181:4;31174:5;31170:16;31148:52;:::i;:::-;31225:6;31220:3;31216:16;31209:23;;30971:267;30861:377;;;;:::o;31244:167::-;31384:19;31380:1;31372:6;31368:14;31361:43;31244:167;:::o;31417:402::-;31577:3;31598:85;31680:2;31675:3;31598:85;:::i;:::-;31591:92;;31692:93;31781:3;31692:93;:::i;:::-;31810:2;31805:3;31801:12;31794:19;;31417:402;;;:::o;31825:967::-;32207:3;32229:148;32373:3;32229:148;:::i;:::-;32222:155;;32394:95;32485:3;32476:6;32394:95;:::i;:::-;32387:102;;32506:148;32650:3;32506:148;:::i;:::-;32499:155;;32671:95;32762:3;32753:6;32671:95;:::i;:::-;32664:102;;32783:3;32776:10;;31825:967;;;;;:::o;32798:175::-;32938:27;32934:1;32926:6;32922:14;32915:51;32798:175;:::o;32979:366::-;33121:3;33142:67;33206:2;33201:3;33142:67;:::i;:::-;33135:74;;33218:93;33307:3;33218:93;:::i;:::-;33336:2;33331:3;33327:12;33320:19;;32979:366;;;:::o;33351:419::-;33517:4;33555:2;33544:9;33540:18;33532:26;;33604:9;33598:4;33594:20;33590:1;33579:9;33575:17;33568:47;33632:131;33758:4;33632:131;:::i;:::-;33624:139;;33351:419;;;:::o;33776:237::-;33916:34;33912:1;33904:6;33900:14;33893:58;33985:20;33980:2;33972:6;33968:15;33961:45;33776:237;:::o;34019:366::-;34161:3;34182:67;34246:2;34241:3;34182:67;:::i;:::-;34175:74;;34258:93;34347:3;34258:93;:::i;:::-;34376:2;34371:3;34367:12;34360:19;;34019:366;;;:::o;34391:419::-;34557:4;34595:2;34584:9;34580:18;34572:26;;34644:9;34638:4;34634:20;34630:1;34619:9;34615:17;34608:47;34672:131;34798:4;34672:131;:::i;:::-;34664:139;;34391:419;;;:::o;34816:172::-;34956:24;34952:1;34944:6;34940:14;34933:48;34816:172;:::o;34994:366::-;35136:3;35157:67;35221:2;35216:3;35157:67;:::i;:::-;35150:74;;35233:93;35322:3;35233:93;:::i;:::-;35351:2;35346:3;35342:12;35335:19;;34994:366;;;:::o;35366:419::-;35532:4;35570:2;35559:9;35555:18;35547:26;;35619:9;35613:4;35609:20;35605:1;35594:9;35590:17;35583:47;35647:131;35773:4;35647:131;:::i;:::-;35639:139;;35366:419;;;:::o;35791:348::-;35831:7;35854:20;35872:1;35854:20;:::i;:::-;35849:25;;35888:20;35906:1;35888:20;:::i;:::-;35883:25;;36076:1;36008:66;36004:74;36001:1;35998:81;35993:1;35986:9;35979:17;35975:105;35972:131;;;36083:18;;:::i;:::-;35972:131;36131:1;36128;36124:9;36113:20;;35791:348;;;;:::o;36145:171::-;36184:3;36207:24;36225:5;36207:24;:::i;:::-;36198:33;;36253:4;36246:5;36243:15;36240:41;;;36261:18;;:::i;:::-;36240:41;36308:1;36301:5;36297:13;36290:20;;36145:171;;;:::o;36322:182::-;36462:34;36458:1;36450:6;36446:14;36439:58;36322:182;:::o;36510:366::-;36652:3;36673:67;36737:2;36732:3;36673:67;:::i;:::-;36666:74;;36749:93;36838:3;36749:93;:::i;:::-;36867:2;36862:3;36858:12;36851:19;;36510:366;;;:::o;36882:419::-;37048:4;37086:2;37075:9;37071:18;37063:26;;37135:9;37129:4;37125:20;37121:1;37110:9;37106:17;37099:47;37163:131;37289:4;37163:131;:::i;:::-;37155:139;;36882:419;;;:::o;37307:98::-;37358:6;37392:5;37386:12;37376:22;;37307:98;;;:::o;37411:168::-;37494:11;37528:6;37523:3;37516:19;37568:4;37563:3;37559:14;37544:29;;37411:168;;;;:::o;37585:360::-;37671:3;37699:38;37731:5;37699:38;:::i;:::-;37753:70;37816:6;37811:3;37753:70;:::i;:::-;37746:77;;37832:52;37877:6;37872:3;37865:4;37858:5;37854:16;37832:52;:::i;:::-;37909:29;37931:6;37909:29;:::i;:::-;37904:3;37900:39;37893:46;;37675:270;37585:360;;;;:::o;37951:640::-;38146:4;38184:3;38173:9;38169:19;38161:27;;38198:71;38266:1;38255:9;38251:17;38242:6;38198:71;:::i;:::-;38279:72;38347:2;38336:9;38332:18;38323:6;38279:72;:::i;:::-;38361;38429:2;38418:9;38414:18;38405:6;38361:72;:::i;:::-;38480:9;38474:4;38470:20;38465:2;38454:9;38450:18;38443:48;38508:76;38579:4;38570:6;38508:76;:::i;:::-;38500:84;;37951:640;;;;;;;:::o;38597:141::-;38653:5;38684:6;38678:13;38669:22;;38700:32;38726:5;38700:32;:::i;:::-;38597:141;;;;:::o;38744:349::-;38813:6;38862:2;38850:9;38841:7;38837:23;38833:32;38830:119;;;38868:79;;:::i;:::-;38830:119;38988:1;39013:63;39068:7;39059:6;39048:9;39044:22;39013:63;:::i;:::-;39003:73;;38959:127;38744:349;;;;:::o;39099:182::-;39239:34;39235:1;39227:6;39223:14;39216:58;39099:182;:::o;39287:366::-;39429:3;39450:67;39514:2;39509:3;39450:67;:::i;:::-;39443:74;;39526:93;39615:3;39526:93;:::i;:::-;39644:2;39639:3;39635:12;39628:19;;39287:366;;;:::o;39659:419::-;39825:4;39863:2;39852:9;39848:18;39840:26;;39912:9;39906:4;39902:20;39898:1;39887:9;39883:17;39876:47;39940:131;40066:4;39940:131;:::i;:::-;39932:139;;39659:419;;;:::o;40084:178::-;40224:30;40220:1;40212:6;40208:14;40201:54;40084:178;:::o;40268:366::-;40410:3;40431:67;40495:2;40490:3;40431:67;:::i;:::-;40424:74;;40507:93;40596:3;40507:93;:::i;:::-;40625:2;40620:3;40616:12;40609:19;;40268:366;;;:::o;40640:419::-;40806:4;40844:2;40833:9;40829:18;40821:26;;40893:9;40887:4;40883:20;40879:1;40868:9;40864:17;40857:47;40921:131;41047:4;40921:131;:::i;:::-;40913:139;;40640:419;;;:::o;41065:180::-;41113:77;41110:1;41103:88;41210:4;41207:1;41200:15;41234:4;41231:1;41224:15", + "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\n\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\";\nimport \"@openzeppelin/contracts/utils/Counters.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\n\ncontract NFTSbt is AccessControl, ERC721Enumerable {\n using Counters for Counters.Counter;\n string private _baseTokenURI = \"https://market.cebg.games/api/nft/info/\";\n bytes32 public constant BURN_ROLE = keccak256(\"BURN_ROLE\");\n bytes32 public constant MINTER_ROLE = keccak256(\"MINTER_ROLE\");\n uint256 public immutable supplyLimit;\n\n Counters.Counter private _tokenIdCounter;\n\n constructor(\n string memory _name,\n string memory _symbol,\n uint256 _supplyLimt\n ) ERC721(_name, _symbol) {\n supplyLimit = _supplyLimt;\n _setRoleAdmin(BURN_ROLE, DEFAULT_ADMIN_ROLE);\n _setRoleAdmin(MINTER_ROLE, DEFAULT_ADMIN_ROLE);\n\n _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\n _setupRole(MINTER_ROLE, msg.sender);\n _setupRole(BURN_ROLE, msg.sender);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(\n bytes4 interfaceId\n )\n public\n view\n virtual\n override(AccessControl, ERC721Enumerable)\n returns (bool)\n {\n return super.supportsInterface(interfaceId);\n }\n\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 tokenId\n ) internal override(ERC721Enumerable) {\n require(from == address(0) || to == address(0), \"Token not transferable\");\n super._beforeTokenTransfer(from, to, tokenId);\n }\n\n function _baseURI() internal view virtual override returns (string memory) {\n return _baseTokenURI;\n }\n\n /**\n * @dev Set token URI\n */\n function updateBaseURI(\n string calldata baseTokenURI\n ) external onlyRole(DEFAULT_ADMIN_ROLE) {\n _baseTokenURI = baseTokenURI;\n }\n\n /**\n * @dev one type nft has same tokenURI\n */\n function tokenURI(\n uint256 tokenId\n ) public view virtual override returns (string memory) {\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? baseURI : \"\";\n }\n\n function mint(address to) external onlyRole(MINTER_ROLE) returns (uint256) {\n require(to != address(0), \"Cannot mint to zero address\");\n if (supplyLimit > 0) {\n require((totalSupply() + 1) <= supplyLimit, \"Exceed the total supply\");\n }\n uint256 tokenId = _tokenIdCounter.current();\n _tokenIdCounter.increment();\n _safeMint(to, tokenId);\n return tokenId;\n }\n\n function burn(uint256 tokenId) external onlyRole(BURN_ROLE) {\n require(\n _isApprovedOrOwner(_msgSender(), tokenId),\n \"Caller is not owner nor approved\"\n );\n _burn(tokenId);\n }\n\n /**\n * @dev Grant mint role to address\n */\n function setMintRole(address to) external {\n grantRole(MINTER_ROLE, to);\n }\n\n /**\n * @dev Remove mint role to address\n */\n function removeMintRole(address to) external {\n revokeRole(MINTER_ROLE, to);\n }\n\n /**\n * @dev Grant burn role to address\n */\n function setBurnRole(address to) external {\n grantRole(BURN_ROLE, to);\n }\n\n /**\n * @dev Remove burn role to address\n */\n function removeBurnRole(address to) external {\n revokeRole(BURN_ROLE, to);\n }\n}\n", "sourcePath": "/Users/zhl/Documents/workspace/crypto/becrypto/contracts/tokens/erc721/NFTSbt.sol", "ast": { "absolutePath": "project:/contracts/tokens/erc721/NFTSbt.sol", @@ -21846,13 +20803,13 @@ 1381 ], "NFTSbt": [ - 2687 + 2713 ], "Strings": [ 2371 ] }, - "id": 2688, + "id": 2714, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ @@ -21872,7 +20829,7 @@ "id": 2410, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2688, + "scope": 2714, "sourceUnit": 1720, "src": "57:78:14", "symbolAliases": [], @@ -21884,7 +20841,7 @@ "id": 2411, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2688, + "scope": 2714, "sourceUnit": 2169, "src": "136:52:14", "symbolAliases": [], @@ -21896,7 +20853,7 @@ "id": 2412, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2688, + "scope": 2714, "sourceUnit": 309, "src": "189:58:14", "symbolAliases": [], @@ -21934,9 +20891,9 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 2687, + "id": 2713, "linearizedBaseContracts": [ - 2687, + 2713, 1719, 1750, 1247, @@ -21988,7 +20945,7 @@ "name": "_baseTokenURI", "nameLocation": "358:13:14", "nodeType": "VariableDeclaration", - "scope": 2687, + "scope": 2713, "src": "343:72:14", "stateVariable": true, "storageLocation": "default", @@ -22032,7 +20989,7 @@ "name": "BURN_ROLE", "nameLocation": "443:9:14", "nodeType": "VariableDeclaration", - "scope": 2687, + "scope": 2713, "src": "419:58:14", "stateVariable": true, "storageLocation": "default", @@ -22112,7 +21069,7 @@ "name": "MINTER_ROLE", "nameLocation": "505:11:14", "nodeType": "VariableDeclaration", - "scope": 2687, + "scope": 2713, "src": "481:62:14", "stateVariable": true, "storageLocation": "default", @@ -22192,7 +21149,7 @@ "name": "supplyLimit", "nameLocation": "572:11:14", "nodeType": "VariableDeclaration", - "scope": 2687, + "scope": 2713, "src": "547:36:14", "stateVariable": true, "storageLocation": "default", @@ -22219,7 +21176,7 @@ "name": "_tokenIdCounter", "nameLocation": "613:15:14", "nodeType": "VariableDeclaration", - "scope": 2687, + "scope": 2713, "src": "588:40:14", "stateVariable": true, "storageLocation": "default", @@ -22825,7 +21782,7 @@ "parameters": [], "src": "749:0:14" }, - "scope": 2687, + "scope": 2713, "src": "633:383:14", "stateMutability": "nonpayable", "virtual": false, @@ -22872,7 +21829,7 @@ "referencedDeclaration": 4294967271, "src": "1242:5:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_NFTSbt_$2687_$", + "typeIdentifier": "t_type$_t_super$_NFTSbt_$2713_$", "typeString": "type(contract super NFTSbt)" } }, @@ -23015,7 +21972,7 @@ ], "src": "1220:6:14" }, - "scope": 2687, + "scope": 2713, "src": "1075:208:14", "stateMutability": "view", "virtual": true, @@ -23355,7 +22312,7 @@ "referencedDeclaration": 4294967271, "src": "1497:5:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_NFTSbt_$2687_$", + "typeIdentifier": "t_type$_t_super$_NFTSbt_$2713_$", "typeString": "type(contract super NFTSbt)" } }, @@ -23511,7 +22468,7 @@ "parameters": [], "src": "1412:0:14" }, - "scope": 2687, + "scope": 2713, "src": "1287:260:14", "stateMutability": "nonpayable", "virtual": false, @@ -23599,7 +22556,7 @@ ], "src": "1610:15:14" }, - "scope": 2687, + "scope": 2713, "src": "1551:106:14", "stateMutability": "view", "virtual": true, @@ -23738,17 +22695,342 @@ "parameters": [], "src": "1796:0:14" }, - "scope": 2687, + "scope": 2713, "src": "1697:138:14", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { + "baseFunctions": [ + 589 + ], "body": { - "id": 2615, + "id": 2586, "nodeType": "Block", - "src": "1914:308:14", + "src": "1988:98:14", + "statements": [ + { + "assignments": [ + 2571 + ], + "declarations": [ + { + "constant": false, + "id": 2571, + "mutability": "mutable", + "name": "baseURI", + "nameLocation": "2008:7:14", + "nodeType": "VariableDeclaration", + "scope": 2586, + "src": "1994:21:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2570, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1994:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2574, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2572, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2547 + ], + "referencedDeclaration": 2547, + "src": "2018:8:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2018:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1994:34:14" + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2577, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2571, + "src": "2047:7:14", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2041:5:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2575, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2041:5:14", + "typeDescriptions": {} + } + }, + "id": 2578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2041:14:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2041:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2065:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2041:25:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 2583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2079:2:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 2584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2041:40:14", + "trueExpression": { + "id": 2582, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2571, + "src": "2069:7:14", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2569, + "id": 2585, + "nodeType": "Return", + "src": "2034:47:14" + } + ] + }, + "documentation": { + "id": 2562, + "nodeType": "StructuredDocumentation", + "src": "1839:50:14", + "text": " @dev one type nft has same tokenURI" + }, + "functionSelector": "c87b56dd", + "id": 2587, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "1901:8:14", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2566, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1955:8:14" + }, + "parameters": { + "id": 2565, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2564, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1923:7:14", + "nodeType": "VariableDeclaration", + "scope": 2587, + "src": "1915:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1915:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1909:25:14" + }, + "returnParameters": { + "id": 2569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2568, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2587, + "src": "1973:13:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2567, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1973:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1972:15:14" + }, + "scope": 2713, + "src": "1892:194:14", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2641, + "nodeType": "Block", + "src": "2165:308:14", "statements": [ { "expression": { @@ -23758,18 +23040,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2577, + "id": 2603, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2572, + "id": 2598, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2563, - "src": "1928:2:14", + "referencedDeclaration": 2589, + "src": "2179:2:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23781,14 +23063,14 @@ "arguments": [ { "hexValue": "30", - "id": 2575, + "id": 2601, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1942:1:14", + "src": "2193:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -23803,26 +23085,26 @@ "typeString": "int_const 0" } ], - "id": 2574, + "id": 2600, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1934:7:14", + "src": "2185:7:14", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 2573, + "id": 2599, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1934:7:14", + "src": "2185:7:14", "typeDescriptions": {} } }, - "id": 2576, + "id": 2602, "isConstant": false, "isLValue": false, "isPure": true, @@ -23830,14 +23112,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1934:10:14", + "src": "2185:10:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1928:16:14", + "src": "2179:16:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23845,14 +23127,14 @@ }, { "hexValue": "43616e6e6f74206d696e7420746f207a65726f2061646472657373", - "id": 2578, + "id": 2604, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1946:29:14", + "src": "2197:29:14", "typeDescriptions": { "typeIdentifier": "t_stringliteral_2ee0416c341986fdecc3cbd81cd5d77b44e6537a4f9aa8afff73aa35a7384cb9", "typeString": "literal_string \"Cannot mint to zero address\"" @@ -23871,7 +23153,7 @@ "typeString": "literal_string \"Cannot mint to zero address\"" } ], - "id": 2571, + "id": 2597, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -23879,13 +23161,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "1920:7:14", + "src": "2171:7:14", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2579, + "id": 2605, "isConstant": false, "isLValue": false, "isPure": false, @@ -23893,16 +23175,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1920:56:14", + "src": "2171:56:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2580, + "id": 2606, "nodeType": "ExpressionStatement", - "src": "1920:56:14" + "src": "2171:56:14" }, { "condition": { @@ -23910,18 +23192,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2583, + "id": 2609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2581, + "id": 2607, "name": "supplyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2435, - "src": "1986:11:14", + "src": "2237:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23931,33 +23213,33 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2582, + "id": 2608, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2000:1:14", + "src": "2251:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1986:15:14", + "src": "2237:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2596, + "id": 2622, "nodeType": "IfStatement", - "src": "1982:106:14", + "src": "2233:106:14", "trueBody": { - "id": 2595, + "id": 2621, "nodeType": "Block", - "src": "2003:85:14", + "src": "2254:85:14", "statements": [ { "expression": { @@ -23967,7 +23249,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2591, + "id": 2617, "isConstant": false, "isLValue": false, "isPure": false, @@ -23979,7 +23261,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2588, + "id": 2614, "isConstant": false, "isLValue": false, "isPure": false, @@ -23988,18 +23270,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2585, + "id": 2611, "name": "totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1470, - "src": "2020:11:14", + "src": "2271:11:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2586, + "id": 2612, "isConstant": false, "isLValue": false, "isPure": false, @@ -24007,7 +23289,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2020:13:14", + "src": "2271:13:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -24018,35 +23300,35 @@ "operator": "+", "rightExpression": { "hexValue": "31", - "id": 2587, + "id": 2613, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2036:1:14", + "src": "2287:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "2020:17:14", + "src": "2271:17:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2589, + "id": 2615, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2019:19:14", + "src": "2270:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24055,18 +23337,18 @@ "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { - "id": 2590, + "id": 2616, "name": "supplyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2435, - "src": "2042:11:14", + "src": "2293:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2019:34:14", + "src": "2270:34:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24074,14 +23356,14 @@ }, { "hexValue": "4578636565642074686520746f74616c20737570706c79", - "id": 2592, + "id": 2618, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2055:25:14", + "src": "2306:25:14", "typeDescriptions": { "typeIdentifier": "t_stringliteral_12d840de55800a407036c108072a110b489a6fba65d56a3541eab87f0f0af5d1", "typeString": "literal_string \"Exceed the total supply\"" @@ -24100,7 +23382,7 @@ "typeString": "literal_string \"Exceed the total supply\"" } ], - "id": 2584, + "id": 2610, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -24108,13 +23390,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2011:7:14", + "src": "2262:7:14", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2593, + "id": 2619, "isConstant": false, "isLValue": false, "isPure": false, @@ -24122,34 +23404,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2011:70:14", + "src": "2262:70:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2594, + "id": 2620, "nodeType": "ExpressionStatement", - "src": "2011:70:14" + "src": "2262:70:14" } ] } }, { "assignments": [ - 2598 + 2624 ], "declarations": [ { "constant": false, - "id": 2598, + "id": 2624, "mutability": "mutable", "name": "tokenId", - "nameLocation": "2101:7:14", + "nameLocation": "2352:7:14", "nodeType": "VariableDeclaration", - "scope": 2615, - "src": "2093:15:14", + "scope": 2641, + "src": "2344:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24157,10 +23439,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2597, + "id": 2623, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2093:7:14", + "src": "2344:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24169,24 +23451,24 @@ "visibility": "internal" } ], - "id": 2602, + "id": 2628, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 2599, + "id": 2625, "name": "_tokenIdCounter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2438, - "src": "2111:15:14", + "src": "2362:15:14", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$2100_storage", "typeString": "struct Counters.Counter storage ref" } }, - "id": 2600, + "id": 2626, "isConstant": false, "isLValue": true, "isPure": false, @@ -24194,13 +23476,13 @@ "memberName": "current", "nodeType": "MemberAccess", "referencedDeclaration": 2112, - "src": "2111:23:14", + "src": "2362:23:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$2100_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$2100_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, - "id": 2601, + "id": 2627, "isConstant": false, "isLValue": false, "isPure": false, @@ -24208,7 +23490,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2111:25:14", + "src": "2362:25:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -24216,7 +23498,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2093:43:14" + "src": "2344:43:14" }, { "expression": { @@ -24224,18 +23506,18 @@ "expression": { "argumentTypes": [], "expression": { - "id": 2603, + "id": 2629, "name": "_tokenIdCounter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2438, - "src": "2142:15:14", + "src": "2393:15:14", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$2100_storage", "typeString": "struct Counters.Counter storage ref" } }, - "id": 2605, + "id": 2631, "isConstant": false, "isLValue": true, "isPure": false, @@ -24243,13 +23525,13 @@ "memberName": "increment", "nodeType": "MemberAccess", "referencedDeclaration": 2126, - "src": "2142:25:14", + "src": "2393:25:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$2100_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$2100_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer)" } }, - "id": 2606, + "id": 2632, "isConstant": false, "isLValue": false, "isPure": false, @@ -24257,39 +23539,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2142:27:14", + "src": "2393:27:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2607, + "id": 2633, "nodeType": "ExpressionStatement", - "src": "2142:27:14" + "src": "2393:27:14" }, { "expression": { "arguments": [ { - "id": 2609, + "id": 2635, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2563, - "src": "2185:2:14", + "referencedDeclaration": 2589, + "src": "2436:2:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2610, + "id": 2636, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2598, - "src": "2189:7:14", + "referencedDeclaration": 2624, + "src": "2440:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24307,7 +23589,7 @@ "typeString": "uint256" } ], - "id": 2608, + "id": 2634, "name": "_safeMint", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -24315,13 +23597,13 @@ 905 ], "referencedDeclaration": 876, - "src": "2175:9:14", + "src": "2426:9:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2611, + "id": 2637, "isConstant": false, "isLValue": false, "isPure": false, @@ -24329,86 +23611,86 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2175:22:14", + "src": "2426:22:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2612, + "id": 2638, "nodeType": "ExpressionStatement", - "src": "2175:22:14" + "src": "2426:22:14" }, { "expression": { - "id": 2613, + "id": 2639, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2598, - "src": "2210:7:14", + "referencedDeclaration": 2624, + "src": "2461:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2570, - "id": 2614, + "functionReturnParameters": 2596, + "id": 2640, "nodeType": "Return", - "src": "2203:14:14" + "src": "2454:14:14" } ] }, "functionSelector": "6a627842", - "id": 2616, + "id": 2642, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 2566, + "id": 2592, "name": "MINTER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2433, - "src": "1883:11:14", + "src": "2134:11:14", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2567, + "id": 2593, "kind": "modifierInvocation", "modifierName": { - "id": 2565, + "id": 2591, "name": "onlyRole", "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "1874:8:14" + "src": "2125:8:14" }, "nodeType": "ModifierInvocation", - "src": "1874:21:14" + "src": "2125:21:14" } ], "name": "mint", - "nameLocation": "1848:4:14", + "nameLocation": "2099:4:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2564, + "id": 2590, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2563, + "id": 2589, "mutability": "mutable", "name": "to", - "nameLocation": "1861:2:14", + "nameLocation": "2112:2:14", "nodeType": "VariableDeclaration", - "scope": 2616, - "src": "1853:10:14", + "scope": 2642, + "src": "2104:10:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24416,10 +23698,10 @@ "typeString": "address" }, "typeName": { - "id": 2562, + "id": 2588, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1853:7:14", + "src": "2104:7:14", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24429,21 +23711,21 @@ "visibility": "internal" } ], - "src": "1852:12:14" + "src": "2103:12:14" }, "returnParameters": { - "id": 2570, + "id": 2596, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2569, + "id": 2595, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2616, - "src": "1905:7:14", + "scope": 2642, + "src": "2156:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24451,10 +23733,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2568, + "id": 2594, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1905:7:14", + "src": "2156:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24463,19 +23745,19 @@ "visibility": "internal" } ], - "src": "1904:9:14" + "src": "2155:9:14" }, - "scope": 2687, - "src": "1839:383:14", + "scope": 2713, + "src": "2090:383:14", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 2637, + "id": 2663, "nodeType": "Block", - "src": "2286:135:14", + "src": "2537:135:14", "statements": [ { "expression": { @@ -24486,18 +23768,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2626, + "id": 2652, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2084, - "src": "2326:10:14", + "src": "2577:10:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 2627, + "id": 2653, "isConstant": false, "isLValue": false, "isPure": false, @@ -24505,7 +23787,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2326:12:14", + "src": "2577:12:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -24513,12 +23795,12 @@ } }, { - "id": 2628, + "id": 2654, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2618, - "src": "2340:7:14", + "referencedDeclaration": 2644, + "src": "2591:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24536,18 +23818,18 @@ "typeString": "uint256" } ], - "id": 2625, + "id": 2651, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 861, - "src": "2307:18:14", + "src": "2558:18:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, - "id": 2629, + "id": 2655, "isConstant": false, "isLValue": false, "isPure": false, @@ -24555,7 +23837,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2307:41:14", + "src": "2558:41:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -24564,14 +23846,14 @@ }, { "hexValue": "43616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 2630, + "id": 2656, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2356:34:14", + "src": "2607:34:14", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c52d8a267cca22510f5a5b23cfd13135d738a215ab145957a8742a2248da059d", "typeString": "literal_string \"Caller is not owner nor approved\"" @@ -24590,7 +23872,7 @@ "typeString": "literal_string \"Caller is not owner nor approved\"" } ], - "id": 2624, + "id": 2650, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -24598,13 +23880,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2292:7:14", + "src": "2543:7:14", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2631, + "id": 2657, "isConstant": false, "isLValue": false, "isPure": false, @@ -24612,27 +23894,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2292:104:14", + "src": "2543:104:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2632, + "id": 2658, "nodeType": "ExpressionStatement", - "src": "2292:104:14" + "src": "2543:104:14" }, { "expression": { "arguments": [ { - "id": 2634, + "id": 2660, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2618, - "src": "2408:7:14", + "referencedDeclaration": 2644, + "src": "2659:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24646,18 +23928,18 @@ "typeString": "uint256" } ], - "id": 2633, + "id": 2659, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1031, - "src": "2402:5:14", + "src": "2653:5:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 2635, + "id": 2661, "isConstant": false, "isLValue": false, "isPure": false, @@ -24665,68 +23947,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2402:14:14", + "src": "2653:14:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2636, + "id": 2662, "nodeType": "ExpressionStatement", - "src": "2402:14:14" + "src": "2653:14:14" } ] }, "functionSelector": "42966c68", - "id": 2638, + "id": 2664, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 2621, + "id": 2647, "name": "BURN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2428, - "src": "2275:9:14", + "src": "2526:9:14", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2622, + "id": 2648, "kind": "modifierInvocation", "modifierName": { - "id": 2620, + "id": 2646, "name": "onlyRole", "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "2266:8:14" + "src": "2517:8:14" }, "nodeType": "ModifierInvocation", - "src": "2266:19:14" + "src": "2517:19:14" } ], "name": "burn", - "nameLocation": "2235:4:14", + "nameLocation": "2486:4:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2619, + "id": 2645, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2618, + "id": 2644, "mutability": "mutable", "name": "tokenId", - "nameLocation": "2248:7:14", + "nameLocation": "2499:7:14", "nodeType": "VariableDeclaration", - "scope": 2638, - "src": "2240:15:14", + "scope": 2664, + "src": "2491:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24734,10 +24016,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2617, + "id": 2643, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2240:7:14", + "src": "2491:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24746,48 +24028,48 @@ "visibility": "internal" } ], - "src": "2239:17:14" + "src": "2490:17:14" }, "returnParameters": { - "id": 2623, + "id": 2649, "nodeType": "ParameterList", "parameters": [], - "src": "2286:0:14" + "src": "2537:0:14" }, - "scope": 2687, - "src": "2226:195:14", + "scope": 2713, + "src": "2477:195:14", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 2649, + "id": 2675, "nodeType": "Block", - "src": "2516:37:14", + "src": "2767:37:14", "statements": [ { "expression": { "arguments": [ { - "id": 2645, + "id": 2671, "name": "MINTER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2433, - "src": "2532:11:14", + "src": "2783:11:14", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2646, + "id": 2672, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2641, - "src": "2545:2:14", + "referencedDeclaration": 2667, + "src": "2796:2:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24805,18 +24087,18 @@ "typeString": "address" } ], - "id": 2644, + "id": 2670, "name": "grantRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 159, - "src": "2522:9:14", + "src": "2773:9:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 2647, + "id": 2673, "isConstant": false, "isLValue": false, "isPure": false, @@ -24824,46 +24106,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2522:26:14", + "src": "2773:26:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2648, + "id": 2674, "nodeType": "ExpressionStatement", - "src": "2522:26:14" + "src": "2773:26:14" } ] }, "documentation": { - "id": 2639, + "id": 2665, "nodeType": "StructuredDocumentation", - "src": "2425:46:14", + "src": "2676:46:14", "text": " @dev Grant mint role to address" }, "functionSelector": "530dd079", - "id": 2650, + "id": 2676, "implemented": true, "kind": "function", "modifiers": [], "name": "setMintRole", - "nameLocation": "2483:11:14", + "nameLocation": "2734:11:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2642, + "id": 2668, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2641, + "id": 2667, "mutability": "mutable", "name": "to", - "nameLocation": "2503:2:14", + "nameLocation": "2754:2:14", "nodeType": "VariableDeclaration", - "scope": 2650, - "src": "2495:10:14", + "scope": 2676, + "src": "2746:10:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24871,10 +24153,10 @@ "typeString": "address" }, "typeName": { - "id": 2640, + "id": 2666, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2495:7:14", + "src": "2746:7:14", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24884,48 +24166,48 @@ "visibility": "internal" } ], - "src": "2494:12:14" + "src": "2745:12:14" }, "returnParameters": { - "id": 2643, + "id": 2669, "nodeType": "ParameterList", "parameters": [], - "src": "2516:0:14" + "src": "2767:0:14" }, - "scope": 2687, - "src": "2474:79:14", + "scope": 2713, + "src": "2725:79:14", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 2661, + "id": 2687, "nodeType": "Block", - "src": "2652:38:14", + "src": "2903:38:14", "statements": [ { "expression": { "arguments": [ { - "id": 2657, + "id": 2683, "name": "MINTER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2433, - "src": "2669:11:14", + "src": "2920:11:14", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2658, + "id": 2684, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "2682:2:14", + "referencedDeclaration": 2679, + "src": "2933:2:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24943,18 +24225,18 @@ "typeString": "address" } ], - "id": 2656, + "id": 2682, "name": "revokeRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, - "src": "2658:10:14", + "src": "2909:10:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 2659, + "id": 2685, "isConstant": false, "isLValue": false, "isPure": false, @@ -24962,46 +24244,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2658:27:14", + "src": "2909:27:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2660, + "id": 2686, "nodeType": "ExpressionStatement", - "src": "2658:27:14" + "src": "2909:27:14" } ] }, "documentation": { - "id": 2651, + "id": 2677, "nodeType": "StructuredDocumentation", - "src": "2557:47:14", + "src": "2808:47:14", "text": " @dev Remove mint role to address" }, "functionSelector": "1cf4e3ee", - "id": 2662, + "id": 2688, "implemented": true, "kind": "function", "modifiers": [], "name": "removeMintRole", - "nameLocation": "2616:14:14", + "nameLocation": "2867:14:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2654, + "id": 2680, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2653, + "id": 2679, "mutability": "mutable", "name": "to", - "nameLocation": "2639:2:14", + "nameLocation": "2890:2:14", "nodeType": "VariableDeclaration", - "scope": 2662, - "src": "2631:10:14", + "scope": 2688, + "src": "2882:10:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25009,10 +24291,10 @@ "typeString": "address" }, "typeName": { - "id": 2652, + "id": 2678, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2631:7:14", + "src": "2882:7:14", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25022,48 +24304,48 @@ "visibility": "internal" } ], - "src": "2630:12:14" + "src": "2881:12:14" }, "returnParameters": { - "id": 2655, + "id": 2681, "nodeType": "ParameterList", "parameters": [], - "src": "2652:0:14" + "src": "2903:0:14" }, - "scope": 2687, - "src": "2607:83:14", + "scope": 2713, + "src": "2858:83:14", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 2673, + "id": 2699, "nodeType": "Block", - "src": "2785:35:14", + "src": "3036:35:14", "statements": [ { "expression": { "arguments": [ { - "id": 2669, + "id": 2695, "name": "BURN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2428, - "src": "2801:9:14", + "src": "3052:9:14", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2670, + "id": 2696, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2665, - "src": "2812:2:14", + "referencedDeclaration": 2691, + "src": "3063:2:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25081,18 +24363,18 @@ "typeString": "address" } ], - "id": 2668, + "id": 2694, "name": "grantRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 159, - "src": "2791:9:14", + "src": "3042:9:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 2671, + "id": 2697, "isConstant": false, "isLValue": false, "isPure": false, @@ -25100,46 +24382,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2791:24:14", + "src": "3042:24:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2672, + "id": 2698, "nodeType": "ExpressionStatement", - "src": "2791:24:14" + "src": "3042:24:14" } ] }, "documentation": { - "id": 2663, + "id": 2689, "nodeType": "StructuredDocumentation", - "src": "2694:46:14", + "src": "2945:46:14", "text": " @dev Grant burn role to address" }, "functionSelector": "327ba615", - "id": 2674, + "id": 2700, "implemented": true, "kind": "function", "modifiers": [], "name": "setBurnRole", - "nameLocation": "2752:11:14", + "nameLocation": "3003:11:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2666, + "id": 2692, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2665, + "id": 2691, "mutability": "mutable", "name": "to", - "nameLocation": "2772:2:14", + "nameLocation": "3023:2:14", "nodeType": "VariableDeclaration", - "scope": 2674, - "src": "2764:10:14", + "scope": 2700, + "src": "3015:10:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25147,10 +24429,10 @@ "typeString": "address" }, "typeName": { - "id": 2664, + "id": 2690, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2764:7:14", + "src": "3015:7:14", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25160,48 +24442,48 @@ "visibility": "internal" } ], - "src": "2763:12:14" + "src": "3014:12:14" }, "returnParameters": { - "id": 2667, + "id": 2693, "nodeType": "ParameterList", "parameters": [], - "src": "2785:0:14" + "src": "3036:0:14" }, - "scope": 2687, - "src": "2743:77:14", + "scope": 2713, + "src": "2994:77:14", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 2685, + "id": 2711, "nodeType": "Block", - "src": "2919:36:14", + "src": "3170:36:14", "statements": [ { "expression": { "arguments": [ { - "id": 2681, + "id": 2707, "name": "BURN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2428, - "src": "2936:9:14", + "src": "3187:9:14", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2682, + "id": 2708, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2677, - "src": "2947:2:14", + "referencedDeclaration": 2703, + "src": "3198:2:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25219,18 +24501,18 @@ "typeString": "address" } ], - "id": 2680, + "id": 2706, "name": "revokeRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, - "src": "2925:10:14", + "src": "3176:10:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 2683, + "id": 2709, "isConstant": false, "isLValue": false, "isPure": false, @@ -25238,46 +24520,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2925:25:14", + "src": "3176:25:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2684, + "id": 2710, "nodeType": "ExpressionStatement", - "src": "2925:25:14" + "src": "3176:25:14" } ] }, "documentation": { - "id": 2675, + "id": 2701, "nodeType": "StructuredDocumentation", - "src": "2824:47:14", + "src": "3075:47:14", "text": " @dev Remove burn role to address" }, "functionSelector": "965f4c60", - "id": 2686, + "id": 2712, "implemented": true, "kind": "function", "modifiers": [], "name": "removeBurnRole", - "nameLocation": "2883:14:14", + "nameLocation": "3134:14:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2678, + "id": 2704, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2677, + "id": 2703, "mutability": "mutable", "name": "to", - "nameLocation": "2906:2:14", + "nameLocation": "3157:2:14", "nodeType": "VariableDeclaration", - "scope": 2686, - "src": "2898:10:14", + "scope": 2712, + "src": "3149:10:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25285,10 +24567,10 @@ "typeString": "address" }, "typeName": { - "id": 2676, + "id": 2702, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2898:7:14", + "src": "3149:7:14", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25298,27 +24580,27 @@ "visibility": "internal" } ], - "src": "2897:12:14" + "src": "3148:12:14" }, "returnParameters": { - "id": 2679, + "id": 2705, "nodeType": "ParameterList", "parameters": [], - "src": "2919:0:14" + "src": "3170:0:14" }, - "scope": 2687, - "src": "2874:81:14", + "scope": 2713, + "src": "3125:81:14", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 2688, - "src": "249:2708:14", + "scope": 2714, + "src": "249:2959:14", "usedErrors": [] } ], - "src": "32:2926:14" + "src": "32:3177:14" }, "compiler": { "name": "solc", @@ -25326,7 +24608,7 @@ }, "networks": {}, "schemaVersion": "3.4.11", - "updatedAt": "2023-06-14T03:53:50.378Z", + "updatedAt": "2023-06-14T06:00:00.491Z", "devdoc": { "kind": "dev", "methods": { @@ -25397,7 +24679,7 @@ "details": "See {IERC721Enumerable-tokenOfOwnerByIndex}." }, "tokenURI(uint256)": { - "details": "See {IERC721Metadata-tokenURI}." + "details": "one type nft has same tokenURI" }, "totalSupply()": { "details": "See {IERC721Enumerable-totalSupply}." diff --git a/contracts/tokens/erc721/NFTSbt.sol b/contracts/tokens/erc721/NFTSbt.sol index c66fecf..ae13bdc 100644 --- a/contracts/tokens/erc721/NFTSbt.sol +++ b/contracts/tokens/erc721/NFTSbt.sol @@ -65,6 +65,16 @@ contract NFTSbt is AccessControl, ERC721Enumerable { _baseTokenURI = baseTokenURI; } + /** + * @dev one type nft has same tokenURI + */ + function tokenURI( + uint256 tokenId + ) public view virtual override returns (string memory) { + string memory baseURI = _baseURI(); + return bytes(baseURI).length > 0 ? baseURI : ""; + } + function mint(address to) external onlyRole(MINTER_ROLE) returns (uint256) { require(to != address(0), "Cannot mint to zero address"); if (supplyLimit > 0) { diff --git a/out_arbitrum_testnet_dev.json b/out_arbitrum_testnet_dev.json index 51906cd..06d6b1c 100644 --- a/out_arbitrum_testnet_dev.json +++ b/out_arbitrum_testnet_dev.json @@ -57,12 +57,12 @@ "name": "NFTSbt", "type": "erc721", "json": "assets/contracts/NFTSbt.json", - "address": "0xB7C50f87b77C71Fa44a6335715da1d4b618264f2" + "address": "0x46675eecD0Bb2dcdE3f9b76A11EE7f6DfB174EcA" }, { "name": "ClaimBoxFactory", "type": "logic", "json": "assets/contracts/ClaimBoxFactory.json", - "address": "0x47996e02Ff59F69347De718Ac67AD305DdC63F06" + "address": "0xc63ed18feE4C3D62b87DfCE5b5F4DafD8905D9B2" } ]