[ { "inputs": [ { "internalType": "address", "name": "initialOwner", "type": "address" }, { "internalType": "address", "name": "royaltiesContract", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "ERC2981InvalidDefaultRoyalty", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC2981InvalidDefaultRoyaltyReceiver", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "ERC2981InvalidTokenRoyalty", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC2981InvalidTokenRoyaltyReceiver", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [], "name": "InvalidQueryRange", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "NotCompatibleWithSpotMints", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "SequentialMintExceedsLimit", "type": "error" }, { "inputs": [], "name": "SequentialUpToTooSmall", "type": "error" }, { "inputs": [], "name": "SpotMintTokenIdTooSmall", "type": "error" }, { "inputs": [], "name": "TokenAlreadyExists", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "banishID", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "base", "type": "string" }, { "indexed": false, "internalType": "string", "name": "item", "type": "string" }, { "indexed": false, "internalType": "string", "name": "eyes", "type": "string" }, { "indexed": false, "internalType": "string", "name": "wing", "type": "string" }, { "indexed": false, "internalType": "string", "name": "element", "type": "string" }, { "indexed": false, "internalType": "string", "name": "hat", "type": "string" }, { "indexed": false, "internalType": "string", "name": "mouth", "type": "string" }, { "indexed": false, "internalType": "string", "name": "gene", "type": "string" } ], "name": "Hatched", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "banishID", "type": "uint256" } ], "name": "Incubating", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "startBanishID", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "endBanishID", "type": "uint256" } ], "name": "Minted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "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": "explicitOwnershipOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" }, { "internalType": "uint24", "name": "extraData", "type": "uint24" } ], "internalType": "struct IERC721A.TokenOwnership", "name": "ownership", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "explicitOwnershipsOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" }, { "internalType": "uint24", "name": "extraData", "type": "uint24" } ], "internalType": "struct IERC721A.TokenOwnership[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "banishID", "type": "uint256" } ], "name": "getBanishTraits", "outputs": [ { "components": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint8", "name": "percentage", "type": "uint8" } ], "internalType": "struct Weight", "name": "base", "type": "tuple" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint8", "name": "percentage", "type": "uint8" } ], "internalType": "struct Weight", "name": "item", "type": "tuple" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint8", "name": "percentage", "type": "uint8" } ], "internalType": "struct Weight", "name": "eyes", "type": "tuple" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint8", "name": "percentage", "type": "uint8" } ], "internalType": "struct Weight", "name": "wing", "type": "tuple" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint8", "name": "percentage", "type": "uint8" } ], "internalType": "struct Weight", "name": "element", "type": "tuple" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint8", "name": "percentage", "type": "uint8" } ], "internalType": "struct Weight", "name": "hat", "type": "tuple" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint8", "name": "percentage", "type": "uint8" } ], "internalType": "struct Weight", "name": "mouth", "type": "tuple" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint8", "name": "percentage", "type": "uint8" } ], "internalType": "struct Weight", "name": "gene", "type": "tuple" } ], "internalType": "struct BanishTraits", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBaseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "banishID", "type": "uint256" } ], "name": "getFolder", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "isWhitelist", "type": "bool" } ], "name": "getPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "banishID", "type": "uint256" } ], "name": "getStatus", "outputs": [ { "components": [ { "internalType": "bool", "name": "incubating", "type": "bool" }, { "internalType": "bool", "name": "hatched", "type": "bool" } ], "internalType": "struct BanishStatus", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "banishID", "type": "uint256" } ], "name": "hatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "amount", "type": "uint16" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "preMintBanishes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "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": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "index", "type": "uint8" }, { "internalType": "string", "name": "path", "type": "string" } ], "name": "setBanishFolder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "basePATH", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setBases", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "index", "type": "uint8" }, { "internalType": "string", "name": "path", "type": "string" } ], "name": "setEggFolder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setElements", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setEyes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "geneIndex", "type": "uint8" }, { "internalType": "string", "name": "name", "type": "string" } ], "name": "setGene", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setHats", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setItems", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setMouths", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "state", "type": "bool" } ], "name": "setPauseState", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "isWhitelist", "type": "bool" }, { "internalType": "uint256", "name": "newPrice", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "royaltiesContract", "type": "address" } ], "name": "setRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" } ], "name": "setWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "state", "type": "bool" } ], "name": "setWhitelistState", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setWings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "banishID", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "tokensOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "start", "type": "uint256" }, { "internalType": "uint256", "name": "stop", "type": "uint256" } ], "name": "tokensOfOwnerIn", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "result", "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": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "amount", "type": "uint16" } ], "name": "whitelistMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6015805464ffffffffff19166203e801179055666a94d74f4300006016556017805460ff191690556658d15e1762800060185560c0604052601360809081527f68747470733a2f2f617277656176652e6e65740000000000000000000000000060a05260199061006f90826103ba565b50604080518082019091526005815264173539b7b760d91b6020820152601a9061009990826103ba565b503480156100a657600080fd5b506040516164913803806164918339810160408190526100c591610494565b816040518060400160405280600c81526020016b151a194810985b9a5cda195960a21b81525060405180604001604052806006815260200165084829c92a6960d31b815250816002908161011991906103ba565b50600361012682826103ba565b505060008055506001600160a01b03811661015c57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61016581610193565b506009805460ff60a01b191690556001600a556101806101e5565b61018c816101f4610245565b50506104c7565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6101ed6102e8565b6009805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586102283390565b6040516001600160a01b03909116815260200160405180910390a1565b6127106001600160601b03821681101561028457604051636f483d0960e01b81526001600160601b038316600482015260248101829052604401610153565b6001600160a01b0383166102ae57604051635b6cc80560e11b815260006004820152602401610153565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600b55565b6102fb600954600160a01b900460ff1690565b156103195760405163d93c066560e01b815260040160405180910390fd5b565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061034557607f821691505b60208210810361036557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156103b557806000526020600020601f840160051c810160208510156103925750805b601f840160051c820191505b818110156103b2576000815560010161039e565b50505b505050565b81516001600160401b038111156103d3576103d361031b565b6103e7816103e18454610331565b8461036b565b6020601f82116001811461041b57600083156104035750848201515b600019600385901b1c1916600184901b1784556103b2565b600084815260208120601f198516915b8281101561044b578785015182556020948501946001909201910161042b565b50848210156104695786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b80516001600160a01b038116811461048f57600080fd5b919050565b600080604083850312156104a757600080fd5b6104b083610478565b91506104be60208401610478565b90509250929050565b615fbb806104d66000396000f3fe6080604052600436106102ad5760003560e01c8063715018a611610175578063c87b56dd116100dc578063e245b5af11610095578063e62e56881161006f578063e62e56881461082e578063e985e9c514610843578063f2fde38b1461088c578063f4217648146108ac57600080fd5b8063e245b5af146107d9578063e4e767ab146107f9578063e61c95b41461080e57600080fd5b8063c87b56dd14610726578063c8c1884214610746578063cdb88ad114610766578063ced1f41114610786578063d69c8c93146107a6578063e1a2a266146107b957600080fd5b806399a2557a1161012e57806399a2557a1461067c578063a22cb4651461069c578063ae26d3e7146106bc578063b88d4fde146106d1578063c2300719146106e4578063c23dc68f146106f957600080fd5b8063715018a6146105ba5780638462151c146105cf57806386d11681146105fc5780638da5cb5b1461061c57806395d89b411461063a578063978f234f1461064f57600080fd5b80632a6432a4116102195780635bbb2177116101d25780635bbb2177146104da5780635c622a0e146105075780635c975abb146105465780636352211e1461056557806370a0823114610585578063714c5398146105a557600080fd5b80632a6432a41461043d5780633385d06f1461045d5780633ccfd60b1461047257806342842e0e146104875780634bf5390b1461049a57806355f804b3146104ba57600080fd5b806318160ddd1161026b57806318160ddd146103805780631df0bb8a146103a357806323b872dd146103c357806323cf0a22146103d657806329c32413146103e95780632a55205a146103fe57600080fd5b80626d3581146102b257806301ffc9a7146102c957806306fdde03146102fe578063081812fc14610320578063095ea7b3146103585780630b6ea90b1461036b575b600080fd5b3480156102be57600080fd5b506102c76108cc565b005b3480156102d557600080fd5b506102e96102e436600461528b565b610c74565b60405190151581526020015b60405180910390f35b34801561030a57600080fd5b50610313610c94565b6040516102f591906152ff565b34801561032c57600080fd5b5061034061033b366004615312565b610d26565b6040516001600160a01b0390911681526020016102f5565b6102c7610366366004615342565b610d61565b34801561037757600080fd5b506102c7610d6d565b34801561038c57600080fd5b50600154600054035b6040519081526020016102f5565b3480156103af57600080fd5b506102c76103be36600461537c565b611033565b6102c76103d1366004615397565b611060565b6102c76103e43660046153d4565b6111c5565b3480156103f557600080fd5b506102c76112bf565b34801561040a57600080fd5b5061041e6104193660046153f8565b6116c4565b604080516001600160a01b0390931683526020830191909152016102f5565b34801561044957600080fd5b506102c761045836600461541a565b611772565b34801561046957600080fd5b506102c7611786565b34801561047e57600080fd5b506102c76119fb565b6102c7610495366004615397565b611a51565b3480156104a657600080fd5b506102c76104b5366004615446565b611a71565b3480156104c657600080fd5b506102c76104d5366004615577565b611aef565b3480156104e657600080fd5b506104fa6104f53660046155ef565b611b03565b6040516102f5919061566c565b34801561051357600080fd5b50610527610522366004615312565b611b4f565b60408051825115158152602092830151151592810192909252016102f5565b34801561055257600080fd5b50600954600160a01b900460ff166102e9565b34801561057157600080fd5b50610340610580366004615312565b611c19565b34801561059157600080fd5b506103956105a036600461541a565b611c24565b3480156105b157600080fd5b50610313611c69565b3480156105c657600080fd5b506102c7611c78565b3480156105db57600080fd5b506105ef6105ea36600461541a565b611c8a565b6040516102f591906156ba565b34801561060857600080fd5b506102c7610617366004615446565b611cb9565b34801561062857600080fd5b506009546001600160a01b0316610340565b34801561064657600080fd5b50610313611d31565b34801561065b57600080fd5b5061066f61066a366004615312565b611d40565b6040516102f5919061571e565b34801561068857600080fd5b506105ef61069736600461580e565b6124d4565b3480156106a857600080fd5b506102c76106b7366004615841565b6124e1565b3480156106c857600080fd5b506102c761254d565b6102c76106df366004615874565b612986565b3480156106f057600080fd5b506102c76129c1565b34801561070557600080fd5b50610719610714366004615312565b612b54565b6040516102f591906158ef565b34801561073257600080fd5b50610313610741366004615312565b612bae565b34801561075257600080fd5b506102c7610761366004615312565b612c3c565b34801561077257600080fd5b506102c761078136600461537c565b6138b4565b34801561079257600080fd5b506103136107a1366004615312565b6138da565b6102c76107b43660046153d4565b613a2b565b3480156107c557600080fd5b506102c76107d43660046158fd565b613af0565b3480156107e557600080fd5b506103956107f436600461537c565b613b09565b34801561080557600080fd5b506102c7613b20565b34801561081a57600080fd5b506102c7610829366004615919565b613e99565b34801561083a57600080fd5b506102c761404b565b34801561084f57600080fd5b506102e961085e366004615966565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561089857600080fd5b506102c76108a736600461541a565b614159565b3480156108b857600080fd5b506102c76108c73660046155ef565b614194565b6108d461422b565b601254156108fd5760405162461bcd60e51b81526004016108f490615990565b60405180910390fd5b604080516102a081018252600961026082018181526814185c9d1e4812185d60ba1b6102808401526102208301908152600c610240840152825282516080808201855260048286018181526348616c6f60e01b60608581019190915290845260036020858101919091528087019490945286518084018852600781890181815266526f79616c747960c81b8385015282526006828701819052888a019290925288518086018a52808a019788526814d85b9d184812185d60ba1b8185015296875260058787018190528389019790975288518086018a52808a0183815265293ab237b63360d11b8286015281528087018890528589015288518086018a52808a0182815266506c6179626f7960c81b82860152815280870188905260a089015288518086018a52808a018281526621b0b83a30b4b760c91b82860152815280870183905260c089015288518086018a52808a018381526550697261746560d01b82860152815280870183905260e089015288518086018a52808a0183815265496e6d61746560d01b82860152815280870182905261010089015288518086018a52808a01838152652137bbb632b960d11b82860152815280870183905261012089015288518086018a52808a01838152652334b9b432b960d11b828601528152808701919091526101408801528751808501895280890184815263119bdbdb60e21b82850152815280860184905261016088015287518085018952808901938452635361636b60e01b8184015292835282850186905261018087019290925286518084018852808801838152652837b7b832b960d11b8284015281528085018690526101a087015286518084018852808801838152652937b13132b960d11b8284015281528085018390526101c087015286518084018852808801958652644e7572736560d81b818301529485528484018290526101e08601949094528551918201865294810185815265506f6c69636560d01b9382019390935291825281019290925261020081019190915260005b60118160ff161015610c70576012828260ff1660118110610c1057610c106159b5565b6020908102919091015182546001810184556000938452919092208251600290920201908190610c409082615a4c565b50602091909101516001909101805460ff191660ff90921691909117905580610c6881615b20565b915050610bed565b5050565b6000610c7f82614258565b80610c8e5750610c8e826142a6565b92915050565b606060028054610ca3906159cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610ccf906159cb565b8015610d1c5780601f10610cf157610100808354040283529160200191610d1c565b820191906000526020600020905b815481529060010190602001808311610cff57829003601f168201915b5050505050905090565b6000610d31826142db565b610d4557610d456333d1c03960e21b61431e565b506000908152600660205260409020546001600160a01b031690565b610c7082826001614328565b610d7561422b565b600d5415610d955760405162461bcd60e51b81526004016108f490615990565b604080516102008101825260076101c08201818152664e657074756e6560c81b6101e0840152610180830190815260096101a0840181905290835283516080808201865281860184815266253ab834ba32b960c91b606084810191909152908352600b602084810182905280880194909452875180840189526006818a018181526529b0ba3ab93760d11b838601528252818601929092528789015287518084018952808901878152664d65726375727960c81b828501528152600a8186015282880152875180840189526003818a019081526229bab760e91b82850152815260088186018190528489019190915288518085018a526004818b018181526326b7b7b760e11b83870152825281870183905260a08a019190915289518086018b526005818c018181526456656e757360d81b8388015282528188019890985260c08a015289518086018b52808b018881526408ac2e4e8d60db1b82870152815280870183905260e08a015289518086018b52808b01918252634d61727360e01b818601529081528086019190915261010088015287518084018952808901828152655572616e757360d01b82850152815280850182905261012088015287518084018952808901918252654e696269727560d01b81840152908152808401959095526101408601949094528551908101865294850182815264506c75746f60d81b938601939093529184529083015261016081019190915260005b600c8160ff161015610c7057600d828260ff16600c8110610fd357610fd36159b5565b60209081029190910151825460018101845560009384529190922082516002909202019081906110039082615a4c565b50602091909101516001909101805460ff191660ff9092169190911790558061102b81615b20565b915050610fb0565b61103b61422b565b80151560010361104d5761104d6143cb565b6017805460ff1916911515919091179055565b600061106b8261453e565b6001600160a01b0394851694909150811684146110915761109162a1148160e81b61431e565b60008281526006602052604090208054338082146001600160a01b038816909114176110d5576110c1863361085e565b6110d5576110d5632ce44b5f60e11b61431e565b80156110e057600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003611172576001840160008181526004602052604081205490036111705760005481146111705760008181526004602052604090208490555b505b6001600160a01b0385168481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4806000036111bc576111bc633a954ecd60e21b61431e565b50505050505050565b6111cd6145d4565b6111fd816111e560095460ff600160a01b9091041690565b156016548461ffff166111f89190615b3f565b61462d565b601561ffff821611156112455760405162461bcd60e51b815260206004820152601060248201526f115e18d959591cc81b585e081b5a5b9d60821b60448201526064016108f4565b600080545b905061125a338361ffff166147d6565b6112626147f0565b61126c8183614875565b600161127c61ffff841683615b56565b6112869190615b69565b60405182907f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd90600090a3506112bc6001600a55565b50565b6112c761422b565b600f54156112e75760405162461bcd60e51b81526004016108f490615990565b604080516102e08101825260066102a082018181526543727970746f60d01b6102c08401526102608301908152600361028084018190529083528351608080820186526005828701818152644879706e6f60d81b606085810191909152908452600460208581018290528089019590955288518085018a52808a0184815264141a5e195b60da1b828501528152808601849052888a015288518085018a52808a018881526515da5e985c9960d21b8285015281528086018890528289015288518085018a52808a0188815265446976696e6560d01b8285015281528086019690965283880195909552875180840189526009818a0190815268141bdcdcd95cdcd95960ba1b82840152815280850186905260a088015287518084018952808901868152634c6f766560e01b82840152815280850187905260c0880152875180840189526008818a01818152674d6f6e6f636c657360c01b83850152825281860188905260e089019190915288518085018a52808a0187815263090d2ced60e31b82850152815280860184905261010089015288518085018a52808a018281526746656d696e696e6560c01b82850152815280860184905261012089015288518085018a52808a0191825267105a590810985b9960c21b81840152908152808501879052610140880152875180840189528089018781526550697261746560d01b828401528152808501959095526101608701949094528651808301885260078189018181526652657074696c6560c81b8388015282528185018390526101808801919091528751808401895280890191825266476f6f676c657960c81b818701529081528084018690526101a087015286518083018852600a8189018181526953756e676c617373657360b01b8388015282528185018390526101c08801919091528751808401895280890182815269496c6c756d696e61746960b01b8288015281528085018390526101e08801528751808401895280890182815269334420476c617373657360b01b82880152815280850182905261020088015287518084018952808901918252695374617273747275636b60b01b81870152908152808401869052610220870152865191820187529581019586526421b637bbb760d91b928101929092529381529283015261024081019190915260005b60138160ff161015610c7057600f828260ff1660138110611664576116646159b5565b60209081029190910151825460018101845560009384529190922082516002909202019081906116949082615a4c565b50602091909101516001909101805460ff191660ff909216919091179055806116bc81615b20565b915050611641565b6000828152600c602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291611739575060408051808201909152600b546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090611758906001600160601b031687615b3f565b6117629190615b92565b91519350909150505b9250929050565b61177a61422b565b6112bc816101f4614907565b61178e61422b565b601154156117ae5760405162461bcd60e51b81526004016108f490615990565b604080516101c081018252600561018082018181526408ac2e4e8d60db1b6101a08401526101408301908152600a6101608401819052908352835160808082018652818601848152642bb0ba32b960d91b606084810191909152908352602083810185905280870193909352865180830188526004818901818152634669726560e01b838501528252818501869052878901919091528751808401895280890196875264536d6f6b6560d81b81840152958652858401859052818701959095528651808301885260098189019081526814dc1a5c9a5d1d585b60ba1b8284015281528084018590528287015286518083018852808801958652630a8cac6d60e31b8183015294855284830184905260a08601949094528551808201875260038188018181526249636560e81b83880152825281840185905260c087019190915286518083018852600781890190815266111a585b5bdb9960ca1b82880152815280840185905260e0870152865180830188528088019182526247617360e81b8187015290815280830184905261010086015285519081018652600895810195865267456c65637472696360c01b938101939093529382529281019290925261012081019190915260005b600a8160ff161015610c70576011828260ff16600a811061199b5761199b6159b5565b60209081029190910151825460018101845560009384529190922082516002909202019081906119cb9082615a4c565b50602091909101516001909101805460ff191660ff909216919091179055806119f381615b20565b915050611978565b611a0361422b565b611a0b6145d4565b6009546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611a44573d6000803e3d6000fd5b50611a4f6001600a55565b565b611a6c83838360405180602001604052806000815250612986565b505050565b611a7961422b565b60018360ff1610158015611a915750601460ff841611155b611acc5760405162461bcd60e51b815260206004820152600c60248201526b496e76616c69642047656e6560a01b60448201526064016108f4565b60ff83166000908152601d60205260409020611ae9828483615ba6565b50505050565b611af761422b565b6019610c708282615a4c565b60408051828152600583901b8082016020019092526060915b8015611b4757601f1980820191860101356000611b3882612b54565b8484016020015250611b1c9050565b509392505050565b6040805180820190915260008082526020820152611b6c826142db565b611bac5760405162461bcd60e51b815260206004820152601160248201527010985b9a5cda08191bdb9d08195e1a5cdd607a1b60448201526064016108f4565b6000828152601f60209081526040918290208251606081018452815481526001820154928101929092526002015460ff16151581830152815180830190925280519091908190611bfd9060c8615b56565b4311151515815260200182604001511515815250915050919050565b6000610c8e8261453e565b60006001600160a01b038216611c4457611c446323d3ad8160e21b61431e565b506001600160a01b03166000908152600560205260409020546001600160401b031690565b606060198054610ca3906159cb565b611c8061422b565b611a4f60006149aa565b6060600080611c9860005490565b90506060818314611cb157611cae8584846149fc565b90505b949350505050565b611cc161422b565b60018360ff1610158015611cd95750601460ff841611155b611d145760405162461bcd60e51b815260206004820152600c60248201526b496e76616c69642047656e6560a01b60448201526064016108f4565b60ff83166000908152601c60205260409020611ae9828483615ba6565b606060038054610ca3906159cb565b611d4861514d565b6000828152601e602090815260409182902082516101008082018552915460ff808216835283820481169483019490945262010000810484168286019081526301000000820485166060840152640100000000820485166080840152650100000000008204851660a084015266010000000000008204851660c0840152670100000000000000909104841660e083015284519283019094529251600d805492938493919216908110611dfc57611dfc6159b5565b9060005260206000209060020201604051806040016040529081600082018054611e25906159cb565b80601f0160208091040260200160405190810160405280929190818152602001828054611e51906159cb565b8015611e9e5780601f10611e7357610100808354040283529160200191611e9e565b820191906000526020600020905b815481529060010190602001808311611e8157829003601f168201915b50505091835250506001919091015460ff9081166020928301529183526080850151600e80549490920193919216908110611edb57611edb6159b5565b9060005260206000209060020201604051806040016040529081600082018054611f04906159cb565b80601f0160208091040260200160405190810160405280929190818152602001828054611f30906159cb565b8015611f7d5780601f10611f5257610100808354040283529160200191611f7d565b820191906000526020600020905b815481529060010190602001808311611f6057829003601f168201915b50505091835250506001919091015460ff90811660209283015291835284810151600f80549490920193919216908110611fb957611fb96159b5565b9060005260206000209060020201604051806040016040529081600082018054611fe2906159cb565b80601f016020809104026020016040519081016040528092919081815260200182805461200e906159cb565b801561205b5780601f106120305761010080835404028352916020019161205b565b820191906000526020600020905b81548152906001019060200180831161203e57829003601f168201915b50505091835250506001919091015460ff90811660209283015291835260c0850151601080549490920193919216908110612098576120986159b5565b90600052602060002090600202016040518060400160405290816000820180546120c1906159cb565b80601f01602080910402602001604051908101604052809291908181526020018280546120ed906159cb565b801561213a5780601f1061210f5761010080835404028352916020019161213a565b820191906000526020600020905b81548152906001019060200180831161211d57829003601f168201915b50505091835250506001919091015460ff90811660209283015291835260a0850151601180549490920193919216908110612177576121776159b5565b90600052602060002090600202016040518060400160405290816000820180546121a0906159cb565b80601f01602080910402602001604051908101604052809291908181526020018280546121cc906159cb565b80156122195780601f106121ee57610100808354040283529160200191612219565b820191906000526020600020905b8154815290600101906020018083116121fc57829003601f168201915b50505091835250506001919091015460ff9081166020928301529183528451601280549490920193919216908110612253576122536159b5565b906000526020600020906002020160405180604001604052908160008201805461227c906159cb565b80601f01602080910402602001604051908101604052809291908181526020018280546122a8906159cb565b80156122f55780601f106122ca576101008083540402835291602001916122f5565b820191906000526020600020905b8154815290600101906020018083116122d857829003601f168201915b50505091835250506001919091015460ff9081166020928301529183526060850151601380549490920193919216908110612332576123326159b5565b906000526020600020906002020160405180604001604052908160008201805461235b906159cb565b80601f0160208091040260200160405190810160405280929190818152602001828054612387906159cb565b80156123d45780601f106123a9576101008083540402835291602001916123d4565b820191906000526020600020905b8154815290600101906020018083116123b757829003601f168201915b50505091835250506001919091015460ff90811660209283015291835260e0850151601480549490920193919216908110612411576124116159b5565b906000526020600020906002020160405180604001604052908160008201805461243a906159cb565b80601f0160208091040260200160405190810160405280929190818152602001828054612466906159cb565b80156124b35780601f10612488576101008083540402835291602001916124b3565b820191906000526020600020905b81548152906001019060200180831161249657829003601f168201915b50505091835250506001919091015460ff1660209091015290529392505050565b6060611cb18484846149fc565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61255561422b565b600e54156125755760405162461bcd60e51b81526004016108f490615990565b604080516103008101825260076102c082018181526621b930b1b5b2b960c91b6102e0840152610280830190815260026102a08401528252825160808082018552600a828601818152694561737465722045676760b01b60608581019190915290845260036020858101919091528087019490945286518084018852600b8189019081526a2337bab91021b637bb32b960a91b8284015281526004818601819052878901919091528751808501895280890187815266283ab6b835b4b760c91b8285015281528086018290528288015287518085018952600c818a019081526b149858989a5d1cc815185a5b60a21b82850152815280860182905284880152875180850189526006818a0181815265149bd8dad95d60d21b838601528252600582880181905260a08a019290925289518087018b52808b018381526446616e6f7360d81b82870152815280880183905260c08a015289518087018b52808b018481526315d85b9960e21b82870152815280880183905260e08a015289518087018b52808b0189815266115b195b595b9d60ca1b8287015281528088018690526101008a015289518087018b526008818c0181815267486f6d656c65737360c01b8388015282528189018390526101208b01919091528a518088018c52808c018a8152662130b63637b7b760c91b828801528152808901999099526101408a019890985289518087018b52808b019889526704c6f6c6c69706f760c41b8186015297885287870182905261016089019790975288518086018a52808a018581526943616e64792043616e6560b01b82860152815280870182905261018089015288518086018a52808a018281526443726f737360d81b8286015281528087018290526101a089015288518086018a52808a0182815264436865737360d81b8286015281528087018290526101c089015288518086018a52808a01948552690506f6b657220436869760b41b818501529384528386018790526101e08801939093528751808501895280890184815264537569747360d81b82850152815280860182905261020088015287518085018952808901968752654a696773617760d01b818401529586528585018390526102208701959095528651808401885280880183815264506561636560d81b82840152815280850183905261024087015286519283018752958201938452634469636560e01b9582019590955291825281019290925261026081019190915260005b60148160ff161015610c7057600e828260ff1660148110612926576129266159b5565b60209081029190910151825460018101845560009384529190922082516002909202019081906129569082615a4c565b50602091909101516001909101805460ff191660ff9092169190911790558061297e81615b20565b915050612903565b612991848484611060565b6001600160a01b0383163b15611ae9576129ad84848484614af5565b611ae957611ae96368d2bf6b60e11b61431e565b6129c961422b565b6129d16145d4565b601554601b906000906129e99060019060ff16615c65565b60ff90811682526020820192909252604001600020541615612a425760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481c1c994b5b5a5b9d195960721b60448201526064016108f4565b612a4a614bd7565b600054600954612a64906001600160a01b031660646147d6565b612a6f816064614875565b6064601560038282829054906101000a900461ffff16612a8f9190615c7e565b92506101000a81548161ffff021916908361ffff1602179055506104b061ffff16601560039054906101000a900461ffff1661ffff1610612b0757601554600190601b90600090612ae490849060ff16615c65565b60ff1681526020810191909152604001600020805460ff19169115159190911790555b6001612b14606483615b56565b612b1e9190615b69565b60405182907f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd90600090a350611a4f6001600a55565b60408051608081018252600080825260208201819052918101829052606081018290529054821015612ba9575b600082815260046020526040902054612ba05760001990910190612b81565b610c8e82614c67565b919050565b6060612bb9826142db565b612bf75760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2102130b734b9b41760891b60448201526064016108f4565b612bff614ce5565b612c08836138da565b612c1184614cf4565b601a604051602001612c269493929190615c98565b6040516020818303038152906040529050919050565b612c446145d4565b33612c4e82611c19565b6001600160a01b031614612c8d5760405162461bcd60e51b815260206004820152600660248201526511195b9a595960d21b60448201526064016108f4565b612c95614bd7565b6000818152601f60209081526040918290208251606081018452815481526001820154928101929092526002015460ff161580159282019290925290612d0f5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481a185d18da1959608a1b60448201526064016108f4565b80514311612d535760405162461bcd60e51b81526020600482015260116024820152705761697420612066657720626c6f636b7360781b60448201526064016108f4565b8051612d609060c8615b56565b431115612dd757612d72436005615b56565b81526000828152601f6020908152604080832084518155918401516001830155808401516002909201805460ff1916921515929092179091555183917f610c2990561dba808c1f37bd7a28ff7c546ab4416d5c73039b77341559a11cae91a2506138aa565b80516040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152904090612f216010805480602002602001604051908101604052809291908181526020016000905b82821015612f135783829060005260206000209060020201604051806040016040529081600082018054612e75906159cb565b80601f0160208091040260200160405190810160405280929190818152602001828054612ea1906159cb565b8015612eee5780601f10612ec357610100808354040283529160200191612eee565b820191906000526020600020905b815481529060010190602001808311612ed157829003601f168201915b505050918352505060019182015460ff16602091820152918352929092019101612e42565b505050508484876000614d84565b60ff1660c0820152600d80546040805160208084028201810190925282815261302d939092909160009084015b8282101561301f5783829060005260206000209060020201604051806040016040529081600082018054612f81906159cb565b80601f0160208091040260200160405190810160405280929190818152602001828054612fad906159cb565b8015612ffa5780601f10612fcf57610100808354040283529160200191612ffa565b820191906000526020600020905b815481529060010190602001808311612fdd57829003601f168201915b505050918352505060019182015460ff16602091820152918352929092019101612f4e565b505050508484876001614d84565b60ff16604080830191909152600f8054825160208083028201810190945281815261313b939092919060009084015b8282101561312d578382906000526020600020906002020160405180604001604052908160008201805461308f906159cb565b80601f01602080910402602001604051908101604052809291908181526020018280546130bb906159cb565b80156131085780601f106130dd57610100808354040283529160200191613108565b820191906000526020600020905b8154815290600101906020018083116130eb57829003601f168201915b505050918352505060019182015460ff1660209182015291835292909201910161305c565b505050508484876002614d84565b60ff16602080830191909152601380546040805182850281018501909152818152613249939092919060009084015b8282101561323b578382906000526020600020906002020160405180604001604052908160008201805461319d906159cb565b80601f01602080910402602001604051908101604052809291908181526020018280546131c9906159cb565b80156132165780601f106131eb57610100808354040283529160200191613216565b820191906000526020600020905b8154815290600101906020018083116131f957829003601f168201915b505050918352505060019182015460ff1660209182015291835292909201910161316a565b505050508484876003614d84565b60ff1660608201526012805460408051602080840282018101909252828152613355939092909160009084015b8282101561334757838290600052602060002090600202016040518060400160405290816000820180546132a9906159cb565b80601f01602080910402602001604051908101604052809291908181526020018280546132d5906159cb565b80156133225780601f106132f757610100808354040283529160200191613322565b820191906000526020600020905b81548152906001019060200180831161330557829003601f168201915b505050918352505060019182015460ff16602091820152918352929092019101613276565b505050508484876004614d84565b60ff168152600e80546040805160208084028201810190925282815261345e939092909160009084015b8282101561345057838290600052602060002090600202016040518060400160405290816000820180546133b2906159cb565b80601f01602080910402602001604051908101604052809291908181526020018280546133de906159cb565b801561342b5780601f106134005761010080835404028352916020019161342b565b820191906000526020600020905b81548152906001019060200180831161340e57829003601f168201915b505050918352505060019182015460ff1660209182015291835292909201910161337f565b505050508484876005614d84565b60ff166080820152601180546040805160208084028201810190925282815261356a939092909160009084015b8282101561355c57838290600052602060002090600202016040518060400160405290816000820180546134be906159cb565b80601f01602080910402602001604051908101604052809291908181526020018280546134ea906159cb565b80156135375780601f1061350c57610100808354040283529160200191613537565b820191906000526020600020905b81548152906001019060200180831161351a57829003601f168201915b505050918352505060019182015460ff1660209182015291835292909201910161348b565b505050508484876006614d84565b60ff90811660a08301526015546135849160019116615c65565b8160e0019060ff16908160ff168152505080601e600086815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a81548160ff021916908360ff16021790555060c08201518160000160066101000a81548160ff021916908360ff16021790555060e08201518160000160076101000a81548160ff021916908360ff160217905550905050600183604001901515908115158152505082601f6000868152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff021916908315150217905550905050837f88f3168248e1902fa5bad58a43c109f92f83ebc14ba3964a8a3470be49811189600d836040015160ff168154811061374c5761374c6159b5565b9060005260206000209060020201600001600e846080015160ff1681548110613777576137776159b5565b9060005260206000209060020201600001600f856020015160ff16815481106137a2576137a26159b5565b906000526020600020906002020160000160108660c0015160ff16815481106137cd576137cd6159b5565b906000526020600020906002020160000160118760a0015160ff16815481106137f8576137f86159b5565b90600052602060002090600202016000016012886000015160ff1681548110613823576138236159b5565b90600052602060002090600202016000016013896060015160ff168154811061384e5761384e6159b5565b906000526020600020906002020160000160148a60e0015160ff1681548110613879576138796159b5565b906000526020600020906002020160000160405161389e989796959493929190615dfb565b60405180910390a25050505b6112bc6001600a55565b6138bc61422b565b80156138ca576112bc614e61565b6138d26143cb565b6112bc614ec1565b6000818152601f602090815260408083208151606081810184528254825260018301549482019490945260029091015460ff161515918101919091529091829061392661271086615b92565b613931906001615b56565b9050826040015161394f576000818152601c6020526040902061395e565b6000818152601d602052604090205b8054613969906159cb565b80601f0160208091040260200160405190810160405280929190818152602001828054613995906159cb565b80156139e25780601f106139b7576101008083540402835291602001916139e2565b820191906000526020600020905b8154815290600101906020018083116139c557829003601f168201915b505050505091506000825111611b475760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b2102337b63232b960911b60448201526064016108f4565b613a336145d4565b601754601854613a5491839160ff909116906111f89061ffff841690615b3f565b33600090815260208052604090205461ffff80831691161015613aa95760405162461bcd60e51b815260206004820152600d60248201526c115e18d959591cc81b1a5b5a5d609a1b60448201526064016108f4565b33600090815260208052604081208054839290613acb90849061ffff16615ea9565b92506101000a81548161ffff021916908361ffff160217905550600061124a60005490565b613af861422b565b81613b035760165550565b60185550565b600081613b1857601654610c8e565b505060165490565b613b2861422b565b60135415613b485760405162461bcd60e51b81526004016108f490615990565b6040805161028081018252600461024082018181526350756b6560e01b610260840152610200830190815260036102208401528252825160808082018552600582860181815264536d696c6560d81b606085810191909152908452600a602085810191909152808701949094528651808401885260088189018181526710985b9908105a5960c21b838501528252818601849052878901919091528751808501895280890184815264506172747960d81b82850152815260068187018190528389019190915288518086018a526009818b0181815268427562626c6567756d60b81b838701528252818801869052868a019190915289518087018b52808b01828152684369676172696c6c6f60b81b828701528152600781890181905260a08b01919091528a518088018c52808c018781526421b4b3b0b960d91b82880152815280890182905260c08b01528a518088018c52808c018581526711d859c810985b1b60c21b82880152815280890187905260e08b01528a518088018c52808c01998a52635069706560e01b818701529889528888018190526101008a019890985289518087018b52808b0186815264129bda5b9d60da1b8287015281528088018390526101208a015289518087018b52808b018381526529b83634b33360d11b8287015281528088018990526101408a015289518087018b52808b019182526843696761726574746560b81b818601529081528087019290925261016088019190915287518085018952808901828152652d34b83832b960d11b82850152815280860182905261018088015287518085018952808901828152652237b63630b960d11b8285015281528086018490526101a08801528751808501895280890182815265546f6e67756560d01b828501528152808601919091526101c0870152865192830187529582019081526421b637bbb760d91b958201959095529384528301526101e081019190915260005b60108160ff161015610c70576013828260ff1660108110613e3957613e396159b5565b6020908102919091015182546001810184556000938452919092208251600290920201908190613e699082615a4c565b50602091909101516001909101805460ff191660ff90921691909117905580613e9181615b20565b915050613e16565b613ea161422b565b601460ff83161115613ee15760405162461bcd60e51b8152602060048201526009602482015268496e76616c6964203160b81b60448201526064016108f4565b601554600160ff90911611613ef7576001613f09565b601554613f099060019060ff16615c65565b613f189060ff16612710615ec3565b61ffff16613f296001546000540390565b1480613f41575060ff8216158015613f415750601454155b613f795760405162461bcd60e51b815260206004820152600960248201526824b73b30b634b2101960b91b60448201526064016108f4565b60145460ff83160361400157604080518082019091528181526005602082015260148054600181018255600091909152815160029091027fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec01908190613fdf9082615a4c565b50602091909101516001909101805460ff191660ff9092169190911790555050565b60408051808201909152818152600560208201526014805460ff851690811061402c5761402c6159b5565b600091825260209091208251600290920201908190613fdf9082615a4c565b61405361422b565b601054156140735760405162461bcd60e51b81526004016108f490615990565b6040805160c081018252600460808083018281526311dbdbd960e21b60a0850152838501908152603260608086018290529185528551928301865294820192835263115d9a5b60e21b908201529081526020818101939093529181019190915260005b60028160ff161015610c70576010828260ff16600281106140f9576140f96159b5565b60209081029190910151825460018101845560009384529190922082516002909202019081906141299082615a4c565b50602091909101516001909101805460ff191660ff9092169190911790558061415181615b20565b9150506140d6565b61416161422b565b6001600160a01b03811661418b57604051631e4fbdf760e01b8152600060048201526024016108f4565b6112bc816149aa565b61419c61422b565b8060005b81811015611ae9576001602060008686858181106141c0576141c06159b5565b90506020020160208101906141d5919061541a565b6001600160a01b0316815260208101919091526040016000908120805490919061420490849061ffff16615c7e565b92506101000a81548161ffff021916908361ffff16021790555080806001019150506141a0565b6009546001600160a01b03163314611a4f5760405163118cdaa760e01b81523360048201526024016108f4565b60006301ffc9a760e01b6001600160e01b03198316148061428957506380ac58cd60e01b6001600160e01b03198316145b80610c8e5750506001600160e01b031916635b5e139f60e01b1490565b60006001600160e01b0319821663152a902d60e11b1480610c8e57506301ffc9a760e01b6001600160e01b0319831614610c8e565b60008054821015612ba95760005b50600082815260046020526040812054908190036143115761430a83615ee7565b92506142e9565b600160e01b161592915050565b8060005260046000fd5b600061433383611c19565b905081801561434b5750336001600160a01b03821614155b1561436e5761435a813361085e565b61436e5761436e6367d9dca160e11b61431e565b60008381526006602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b6143d3614bd7565b60155460ff166000908152601d6020526040812080546143f2906159cb565b9050116144345760405162461bcd60e51b815260206004820152601060248201526f2737902130b734b9b4102337b63232b960811b60448201526064016108f4565b60155460ff166000908152601c602052604081208054614453906159cb565b9050116144925760405162461bcd60e51b815260206004820152600d60248201526c27379022b3b3902337b63232b960991b60448201526064016108f4565b60145460155460ff16146144d25760405162461bcd60e51b81526020600482015260076024820152664e6f2047656e6560c81b60448201526064016108f4565b601554601b906000906144ea9060019060ff16615c65565b60ff908116825260208201929092526040016000205416611a4f5760405162461bcd60e51b815260206004820152600e60248201526d139bdd081c1c994b5b5a5b9d195960921b60448201526064016108f4565b600081815260046020526040902054806000036145b157600054821061456e5761456e636f96cda160e11b61431e565b5b5060001901600081815260046020526040902054801561456f57600160e01b811660000361459c57919050565b6145ac636f96cda160e11b61431e565b61456f565b600160e01b81166000036145c457919050565b612ba9636f96cda160e11b61431e565b6002600a54036146265760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108f4565b6002600a55565b816146635760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b60448201526064016108f4565b803410156146a15760405162461bcd60e51b815260206004820152600b60248201526a092dcecc2d8d2c8408aa8960ab1b60448201526064016108f4565b60008361ffff16116146e45760405162461bcd60e51b815260206004820152600c60248201526b09ad2dc40624084c2dcd2e6d60a31b60448201526064016108f4565b6015546146f69060ff16612710615ec3565b61ffff168361ffff1661470c6001546000540390565b6147169190615b56565b11156147595760405162461bcd60e51b815260206004820152601260248201527145786365656473206d617820737570706c7960701b60448201526064016108f4565b6015546147739060ff811690610100900461ffff16615ec3565b61ffff168361ffff1661478533611c24565b61478f9190615b56565b1115611a6c5760405162461bcd60e51b8152602060048201526016602482015275115e18d959591cc81b585e081c195c881dd85b1b195d60521b60448201526064016108f4565b610c70828260405180602001604052806000815250614efd565b6015546148029060ff16612710615ec3565b61ffff166148136001546000540390565b03611a4f57614820614e61565b6017805460ff191690556015805464ffff000000198116909155601460ff9091161015611a4f576015805460ff1690600061485a83615b20565b91906101000a81548160ff021916908360ff16021790555050565b60005b8161ffff16811015611a6c57604051806060016040528043600561489c9190615b56565b81526020016148ac600143615b69565b40815260006020909101819052601f906148c68487615b56565b8152602080820192909252604090810160002083518155918301516001808401919091559201516002909101805460ff191691151591909117905501614878565b6127106001600160601b03821681101561494657604051636f483d0960e01b81526001600160601b0383166004820152602481018290526044016108f4565b6001600160a01b03831661497057604051635b6cc80560e11b8152600060048201526024016108f4565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600b55565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6060818310614a1557614a15631960ccad60e11b61431e565b60005480808410614a24578093505b6000614a2f87611c24565b9050848610614a3c575060005b8015614aeb578086860311614a5057508484035b604080516001830160051b81019182905294506000614a6e88612b54565b905060008160400151614a7f575080515b60005b614a8b8a614c67565b9250604083015160008114614aa35760009250614ac8565b835115614aaf57835192505b8b831860601b614ac8576001820191508a8260051b8a01525b5060018a01995083604052888a1480614ae057508481145b15614a825787525050505b5050509392505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290614b2a903390899088908890600401615efe565b6020604051808303816000875af1925050508015614b65575060408051601f3d908101601f19168201909252614b6291810190615f3b565b60015b614bba573d808015614b93576040519150601f19603f3d011682016040523d82523d6000602084013e614b98565b606091505b508051600003614bb257614bb26368d2bf6b60e11b61431e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60105415801590614be95750600d5415155b8015614bf65750600f5415155b8015614c03575060135415155b8015614c105750600e5415155b8015614c1d575060115415155b8015614c2a575060145415155b611a4f5760405162461bcd60e51b815260206004820152600e60248201526d547261697473206d697373696e6760901b60448201526064016108f4565b604080516080810182526000808252602082018190529181018290526060810191909152600082815260046020526040902054610c8e90604080516080810182526001600160a01b038316815260a083901c6001600160401b03166020820152600160e01b831615159181019190915260e89190911c606082015290565b6060614cef611c69565b905090565b60606000614d0183614f61565b60010190506000816001600160401b03811115614d2057614d206154c9565b6040519080825280601f01601f191660200182016040528015614d4a576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508415611b4757614d54565b60008060648660200151868686604051602001614dc794939291909384526020840192909252604083015260f81b6001600160f81b031916606082015260610190565b6040516020818303038152906040528051906020012060001c614dea9190615f58565b90506000805b88518160ff161015614e5057888160ff1681518110614e1157614e116159b5565b60200260200101516020015182614e289190615f6c565b91508160ff168311614e3e579250614e58915050565b80614e4881615b20565b915050614df0565b506000925050505b95945050505050565b614e69615039565b6009805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258614ea43390565b6040516001600160a01b03909116815260200160405180910390a1565b614ec9615064565b6009805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33614ea4565b614f07838361508e565b6001600160a01b0383163b15611a6c576000548281035b614f316000868380600101945086614af5565b614f4557614f456368d2bf6b60e11b61431e565b818110614f1e578160005414614f5a57600080fd5b5050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310614fa05772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614fcc576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310614fea57662386f26fc10000830492506010015b6305f5e1008310615002576305f5e100830492506008015b612710831061501657612710830492506004015b60648310615028576064830492506002015b600a8310610c8e5760010192915050565b600954600160a01b900460ff1615611a4f5760405163d93c066560e01b815260040160405180910390fd5b600954600160a01b900460ff16611a4f57604051638dfc202b60e01b815260040160405180910390fd5b60008054908290036150aa576150aa63b562e8dd60e01b61431e565b60008181526004602090815260408083206001600160a01b0387164260a01b6001881460e11b1781179091558084526005909252822080546801000000000000000186020190559081900361510857615108622e076360e81b61431e565b818301825b808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a481816001019150810361510d575060005550505050565b60408051610140810190915260606101008201908152600061012083015281908152602001615192604051806040016040528060608152602001600060ff1681525090565b81526020016151b7604051806040016040528060608152602001600060ff1681525090565b81526020016151dc604051806040016040528060608152602001600060ff1681525090565b8152602001615201604051806040016040528060608152602001600060ff1681525090565b8152602001615226604051806040016040528060608152602001600060ff1681525090565b815260200161524b604051806040016040528060608152602001600060ff1681525090565b8152602001615270604051806040016040528060608152602001600060ff1681525090565b905290565b6001600160e01b0319811681146112bc57600080fd5b60006020828403121561529d57600080fd5b81356152a881615275565b9392505050565b60005b838110156152ca5781810151838201526020016152b2565b50506000910152565b600081518084526152eb8160208601602086016152af565b601f01601f19169290920160200192915050565b6020815260006152a860208301846152d3565b60006020828403121561532457600080fd5b5035919050565b80356001600160a01b0381168114612ba957600080fd5b6000806040838503121561535557600080fd5b61535e8361532b565b946020939093013593505050565b80358015158114612ba957600080fd5b60006020828403121561538e57600080fd5b6152a88261536c565b6000806000606084860312156153ac57600080fd5b6153b58461532b565b92506153c36020850161532b565b929592945050506040919091013590565b6000602082840312156153e657600080fd5b813561ffff811681146152a857600080fd5b6000806040838503121561540b57600080fd5b50508035926020909101359150565b60006020828403121561542c57600080fd5b6152a88261532b565b803560ff81168114612ba957600080fd5b60008060006040848603121561545b57600080fd5b61546484615435565b925060208401356001600160401b0381111561547f57600080fd5b8401601f8101861361549057600080fd5b80356001600160401b038111156154a657600080fd5b8660208284010111156154b857600080fd5b939660209190910195509293505050565b634e487b7160e01b600052604160045260246000fd5b6000806001600160401b038411156154f9576154f96154c9565b50604051601f19601f85018116603f011681018181106001600160401b0382111715615527576155276154c9565b60405283815290508082840185101561553f57600080fd5b83836020830137600060208583010152509392505050565b600082601f83011261556857600080fd5b6152a8838335602085016154df565b60006020828403121561558957600080fd5b81356001600160401b0381111561559f57600080fd5b611cb184828501615557565b60008083601f8401126155bd57600080fd5b5081356001600160401b038111156155d457600080fd5b6020830191508360208260051b850101111561176b57600080fd5b6000806020838503121561560257600080fd5b82356001600160401b0381111561561857600080fd5b615624858286016155ab565b90969095509350505050565b80516001600160a01b031682526020808201516001600160401b03169083015260408082015115159083015260609081015162ffffff16910152565b602080825282518282018190526000918401906040840190835b818110156156af57615699838551615630565b6020939093019260809290920191600101615686565b509095945050505050565b602080825282518282018190526000918401906040840190835b818110156156af5783518352602093840193909201916001016156d4565b600081516040845261570760408501826152d3565b60209384015160ff16949093019390935250919050565b6020815260008251610100602084015261573c6101208401826156f2565b90506020840151601f1984830301604085015261575982826156f2565b9150506040840151601f1984830301606085015261577782826156f2565b9150506060840151601f1984830301608085015261579582826156f2565b9150506080840151601f198483030160a08501526157b382826156f2565b91505060a0840151601f198483030160c08501526157d182826156f2565b91505060c0840151601f198483030160e08501526157ef82826156f2565b91505060e0840151601f1984830301610100850152614e5882826156f2565b60008060006060848603121561582357600080fd5b61582c8461532b565b95602085013595506040909401359392505050565b6000806040838503121561585457600080fd5b61585d8361532b565b915061586b6020840161536c565b90509250929050565b6000806000806080858703121561588a57600080fd5b6158938561532b565b93506158a16020860161532b565b92506040850135915060608501356001600160401b038111156158c357600080fd5b8501601f810187136158d457600080fd5b6158e3878235602084016154df565b91505092959194509250565b60808101610c8e8284615630565b6000806040838503121561591057600080fd5b61535e8361536c565b6000806040838503121561592c57600080fd5b61593583615435565b915060208301356001600160401b0381111561595057600080fd5b61595c85828601615557565b9150509250929050565b6000806040838503121561597957600080fd5b6159828361532b565b915061586b6020840161532b565b6020808252600b908201526a105b1c9958591e481cd95d60aa1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806159df57607f821691505b6020821081036159ff57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611a6c57806000526020600020601f840160051c81016020851015615a2c5750805b601f840160051c820191505b81811015614f5a5760008155600101615a38565b81516001600160401b03811115615a6557615a656154c9565b615a7981615a7384546159cb565b84615a05565b6020601f821160018114615aad5760008315615a955750848201515b600019600385901b1c1916600184901b178455614f5a565b600084815260208120601f198516915b82811015615add5787850151825560209485019460019092019101615abd565b5084821015615afb5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103615b3657615b36615b0a565b60010192915050565b8082028115828204841417610c8e57610c8e615b0a565b80820180821115610c8e57610c8e615b0a565b81810381811115610c8e57610c8e615b0a565b634e487b7160e01b600052601260045260246000fd5b600082615ba157615ba1615b7c565b500490565b6001600160401b03831115615bbd57615bbd6154c9565b615bd183615bcb83546159cb565b83615a05565b6000601f841160018114615c055760008515615bed5750838201355b600019600387901b1c1916600186901b178355614f5a565b600083815260209020601f19861690835b82811015615c365786850135825560209485019460019092019101615c16565b5086821015615c535760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff8281168282160390811115610c8e57610c8e615b0a565b61ffff8181168382160190811115610c8e57610c8e615b0a565b60008551615caa818460208a016152af565b602f60f81b9083019081528551615cc8816001840160208a016152af565b602f60f81b600192909101918201528451615cea8160028401602089016152af565b8454910160010190600090615cfe816159cb565b600182168015615d155760018114615d3057615d69565b60ff1983166001860152600182151583028601019350615d69565b87600052602060002060005b83811015615d5e57815460018289010152600182019150602081019050615d3c565b505060018286010193505b50919998505050505050505050565b60008154615d85816159cb565b808552600182168015615d9f5760018114615dbb57615df2565b60ff1983166020870152602082151560051b8701019350615df2565b84600052602060002060005b83811015615de95781546020828a010152600182019150602081019050615dc7565b87016020019450505b50505092915050565b61010081526000615e1061010083018b615d78565b8281036020840152615e22818b615d78565b90508281036040840152615e36818a615d78565b90508281036060840152615e4a8189615d78565b90508281036080840152615e5e8188615d78565b905082810360a0840152615e728187615d78565b905082810360c0840152615e868186615d78565b905082810360e0840152615e9a8185615d78565b9b9a5050505050505050505050565b61ffff8281168282160390811115610c8e57610c8e615b0a565b61ffff8181168382160290811690818114615ee057615ee0615b0a565b5092915050565b600081615ef657615ef6615b0a565b506000190190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615f31908301846152d3565b9695505050505050565b600060208284031215615f4d57600080fd5b81516152a881615275565b600082615f6757615f67615b7c565b500690565b60ff8181168382160190811115610c8e57610c8e615b0a56fea26469706673582212204d7abb24a61021e8957f46bb2b6defbe7aa7eb674f62ed4cd8dc3a27ca808cc064736f6c634300081a00330000000000000000000000008d5682e302c093eb887971a98c469677631b269400000000000000000000000095858df2cc0d86d13a99a1977a97220a425e9ca7
0x0000000000000000000000008d5682e302c093eb887971a98c469677631b269400000000000000000000000095858df2cc0d86d13a99a1977a97220a425e9ca7
----Decoded View------------Arg [0] : initialOwner (address): 0x8D5682e302C093EB887971A98c469677631b2694Arg [1] : royaltiesContract (address): 0x95858Df2cC0D86D13A99a1977a97220A425e9CA7
----Encoded View------------Arg [0] : 0x0000000000000000000000008d5682e302c093eb887971a98c469677631b2694Arg [1] : 0x00000000000000000000000095858df2cc0d86d13a99a1977a97220a425e9ca7