[ { "inputs": [ { "internalType": "address", "name": "_bNeonAddress", "type": "address" }, { "internalType": "address", "name": "_xNeonAddress", "type": "address" }, { "internalType": "address", "name": "_magicAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PRICE_PER_TOKEN", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "bNeonToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimErc20Rewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimNftcRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "claimedErc20Rewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "claimedNftcRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "erc20RewardPerInvite", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getLevel", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "inviteCounts", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "magic", "outputs": [ { "internalType": "contract IMagic", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxMintPerTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numberOfTokens", "type": "uint256" }, { "internalType": "address", "name": "inviter", "type": "address" } ], "name": "mintWithBNeon", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numberOfTokens", "type": "uint256" }, { "internalType": "address", "name": "inviter", "type": "address" } ], "name": "mintWithETH", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numberOfTokens", "type": "uint256" }, { "internalType": "address", "name": "inviter", "type": "address" } ], "name": "mintWithXNeon", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nftcRewardPer10Invites", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pricePerTokenBNeon", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pricePerTokenXNeon", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uriPrefix1", "type": "string" }, { "internalType": "string", "name": "_uriPrefix2", "type": "string" }, { "internalType": "string", "name": "_uriPrefix3", "type": "string" }, { "internalType": "string", "name": "_uriPrefix4", "type": "string" }, { "internalType": "string", "name": "_uriPrefix5", "type": "string" } ], "name": "setAllUriPrefixes", "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": "_bNeonAddress", "type": "address" } ], "name": "setBNeonTokenAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setBNeonTokenPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setErc20RewardPerInvite", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_magicAddress", "type": "address" } ], "name": "setMagicContractAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setNftcRewardPer10Invites", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_xNeonAddress", "type": "address" } ], "name": "setXNeonTokenAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setXNeonTokenPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxMint", "type": "uint256" } ], "name": "setmaxMintPerTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenLevels", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uriPrefix1", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uriPrefix2", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uriPrefix3", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uriPrefix4", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uriPrefix5", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uriSuffix", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "walletOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "xNeonToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
60e0604052603660808181529062003a5960a039600c90620000229082620002ea565b5060405180606001604052806036815260200162003afb60369139600d906200004c9082620002ea565b5060405180606001604052806036815260200162003b3160369139600e90620000769082620002ea565b5060405180606001604052806036815260200162003ac560369139600f90620000a09082620002ea565b5060405180606001604052806036815260200162003a8f60369139601090620000ca9082620002ea565b5067016345785d8a00006011556014601255680796e3ea3f8ab000006016556905ede20f01a459800000601755681b1ae4d6e2ef500000601d556001601e553480156200011657600080fd5b5060405162003b6738038062003b678339810160408190526200013991620003d3565b604080518082018252600a80825269283937b332b9b9b4b7b760b11b60208084018290528451808601909552918452908301529060006200017b8382620002ea565b5060016200018a8282620002ea565b505050620001a7620001a1620001ef60201b60201c565b620001f3565b6001600b55601480546001600160a01b039485166001600160a01b0319918216179091556015805493851693821693909317909255601380549190931691161790556200041d565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200027057607f821691505b6020821081036200029157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002e557600081815260208120601f850160051c81016020861015620002c05750805b601f850160051c820191505b81811015620002e157828155600101620002cc565b5050505b505050565b81516001600160401b0381111562000306576200030662000245565b6200031e816200031784546200025b565b8462000297565b602080601f8311600181146200035657600084156200033d5750858301515b600019600386901b1c1916600185901b178555620002e1565b600085815260208120601f198616915b82811015620003875788860151825594840194600190910190840162000366565b5085821015620003a65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160a01b0381168114620003ce57600080fd5b919050565b600080600060608486031215620003e957600080fd5b620003f484620003b6565b92506200040460208501620003b6565b91506200041460408501620003b6565b90509250925092565b61362c806200042d6000396000f3fe6080604052600436106103765760003560e01c8063715018a6116101d1578063c87b56dd11610102578063de7fcb1d116100a0578063e985e9c51161006f578063e985e9c5146109e5578063ed48522514610a2e578063f2fde38b14610a4e578063f8ac25de14610a6e57600080fd5b8063de7fcb1d14610977578063dfce775d1461098d578063e2c2f656146109a3578063e600d94d146109b857600080fd5b8063d3ac2b96116100dc578063d3ac2b96146108ea578063d6b9323f1461090a578063db08f3371461092a578063de2dd2211461094a57600080fd5b8063c87b56dd14610894578063d01097a9146108b4578063d16affbf146108d457600080fd5b806395d89b411161016f578063afaac99011610149578063afaac99014610814578063b350ccb114610834578063b3a01d8814610854578063b88d4fde1461087457600080fd5b806395d89b41146107c95780639e1b3a9b146107de578063a22cb465146107f457600080fd5b806386481d40116101ab57806386481d40146107565780638da5cb5b146107765780638fb721151461079457806391b7f5ed146107a957600080fd5b8063715018a61461070b57806379f34a1014610720578063833b94991461074057600080fd5b80633c5cb20a116102ab5780634f6ccce71161024957806362562d7e1161022357806362562d7e146106a05780636352211e146106b55780636daba9e3146106d557806370a08231146106eb57600080fd5b80634f6ccce71461062f5780635503a0e81461064f5780636163bdbf1461068057600080fd5b8063438b630011610285578063438b6300146105ab57806348e4c2d3146105d85780634a9606ae146105ed5780634d0dfd7f1461061a57600080fd5b80633c5cb20a146105565780633ccfd60b1461057657806342842e0e1461058b57600080fd5b80631a541ee3116103185780631c057ebc116102f25780631c057ebc146104e057806323b872dd146105005780632f745c591461052057806332cb6b0c1461054057600080fd5b80631a541ee31461048b5780631adf9396146104a05780631b13d450146104b357600080fd5b80630908b41e116103545780630908b41e1461040a578063095ea7b31461042c5780630d8546461461044c57806318160ddd1461046c57600080fd5b806301ffc9a71461037b57806306fdde03146103b0578063081812fc146103d2575b600080fd5b34801561038757600080fd5b5061039b610396366004612dcf565b610a83565b60405190151581526020015b60405180910390f35b3480156103bc57600080fd5b506103c5610a94565b6040516103a79190612e3c565b3480156103de57600080fd5b506103f26103ed366004612e4f565b610b26565b6040516001600160a01b0390911681526020016103a7565b34801561041657600080fd5b5061042a610425366004612e4f565b610bc0565b005b34801561043857600080fd5b5061042a610447366004612e84565b610bef565b34801561045857600080fd5b506013546103f2906001600160a01b031681565b34801561047857600080fd5b506008545b6040519081526020016103a7565b34801561049757600080fd5b5061042a610d04565b61042a6104ae366004612eae565b610ede565b3480156104bf57600080fd5b5061047d6104ce366004612eda565b601b6020526000908152604090205481565b3480156104ec57600080fd5b5061042a6104fb366004612eda565b610ef5565b34801561050c57600080fd5b5061042a61051b366004612ef5565b610f89565b34801561052c57600080fd5b5061047d61053b366004612e84565b610fba565b34801561054c57600080fd5b5061047d61520881565b34801561056257600080fd5b5061042a610571366004612fdd565b611050565b34801561058257600080fd5b5061042a6110c2565b34801561059757600080fd5b5061042a6105a6366004612ef5565b611160565b3480156105b757600080fd5b506105cb6105c6366004612eda565b61117b565b6040516103a791906130af565b3480156105e457600080fd5b506103c561123d565b3480156105f957600080fd5b5061047d610608366004612eda565b601a6020526000908152604090205481565b34801561062657600080fd5b506103c56112cb565b34801561063b57600080fd5b5061047d61064a366004612e4f565b6112d8565b34801561065b57600080fd5b506103c560405180604001604052806005815260200164173539b7b760d91b81525081565b34801561068c57600080fd5b5061042a61069b366004612e4f565b61136b565b3480156106ac57600080fd5b506103c561139a565b3480156106c157600080fd5b506103f26106d0366004612e4f565b6113a7565b3480156106e157600080fd5b5061047d601d5481565b3480156106f757600080fd5b5061047d610706366004612eda565b61141e565b34801561071757600080fd5b5061042a6114a5565b34801561072c57600080fd5b5061042a61073b366004612e4f565b6114db565b34801561074c57600080fd5b5061047d60115481565b34801561076257600080fd5b5061047d610771366004612e4f565b61150a565b34801561078257600080fd5b50600a546001600160a01b03166103f2565b3480156107a057600080fd5b506103c5611595565b3480156107b557600080fd5b5061042a6107c4366004612e4f565b6115a2565b3480156107d557600080fd5b506103c56115d1565b3480156107ea57600080fd5b5061047d60175481565b34801561080057600080fd5b5061042a61080f366004613101565b6115e0565b34801561082057600080fd5b506015546103f2906001600160a01b031681565b34801561084057600080fd5b5061042a61084f366004612eae565b6116a4565b34801561086057600080fd5b506014546103f2906001600160a01b031681565b34801561088057600080fd5b5061042a61088f366004613138565b611768565b3480156108a057600080fd5b506103c56108af366004612e4f565b6117a0565b3480156108c057600080fd5b5061042a6108cf366004612eae565b6118bd565b3480156108e057600080fd5b5061047d60165481565b3480156108f657600080fd5b5061042a610905366004612eda565b6118fe565b34801561091657600080fd5b5061042a610925366004612e4f565b61194a565b34801561093657600080fd5b5061042a610945366004612eda565b611979565b34801561095657600080fd5b5061047d610965366004612eda565b60196020526000908152604090205481565b34801561098357600080fd5b5061047d60125481565b34801561099957600080fd5b5061047d601e5481565b3480156109af57600080fd5b5061042a611a0d565b3480156109c457600080fd5b5061047d6109d3366004612e4f565b601c6020526000908152604090205481565b3480156109f157600080fd5b5061039b610a003660046131b4565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b348015610a3a57600080fd5b5061042a610a49366004612e4f565b611b2c565b348015610a5a57600080fd5b5061042a610a69366004612eda565b611b5b565b348015610a7a57600080fd5b506103c5611bf3565b6000610a8e82611c00565b92915050565b606060008054610aa3906131de565b80601f0160208091040260200160405190810160405280929190818152602001828054610acf906131de565b8015610b1c5780601f10610af157610100808354040283529160200191610b1c565b820191906000526020600020905b815481529060010190602001808311610aff57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b0316610ba45760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600a546001600160a01b03163314610bea5760405162461bcd60e51b8152600401610b9b90613212565b601e55565b6000610bfa826113a7565b9050806001600160a01b0316836001600160a01b031603610c675760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610b9b565b336001600160a01b0382161480610c835750610c838133610a00565b610cf55760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610b9b565b610cff8383611c25565b505050565b6002600b5403610d565760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b9b565b6002600b55601d54336000908152601960205260408120549091610d799161325d565b336000908152601a6020526040812054919250610d968284613274565b905060008111610ddf5760405162461bcd60e51b81526020600482015260146024820152734e6f207265776172647320617661696c61626c6560601b6044820152606401610b9b565b6014546040516370a0823160e01b815230600482015282916001600160a01b0316906370a0823190602401602060405180830381865afa158015610e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4b9190613287565b1015610e995760405162461bcd60e51b815260206004820181905260248201527f496e73756666696369656e742062616c616e636520696e20636f6e74726163746044820152606401610b9b565b336000908152601a602052604081208054839290610eb89084906132a0565b9091555050601454610ed4906001600160a01b03163383611c93565b50506001600b5550565b610ee782611ce5565b610ef18282611dc9565b5050565b600a546001600160a01b03163314610f1f5760405162461bcd60e51b8152600401610b9b90613212565b6001600160a01b038116610f675760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610b9b565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b610f933382611e6e565b610faf5760405162461bcd60e51b8152600401610b9b906132b3565b610cff838383611f65565b6000610fc58361141e565b82106110275760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610b9b565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600a546001600160a01b0316331461107a5760405162461bcd60e51b8152600401610b9b90613212565b600c611086868261334a565b50600d611093858261334a565b50600e6110a0848261334a565b50600f6110ad838261334a565b5060106110ba828261334a565b505050505050565b600a546001600160a01b031633146110ec5760405162461bcd60e51b8152600401610b9b90613212565b6000611100600a546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d806000811461114a576040519150601f19603f3d011682016040523d82523d6000602084013e61114f565b606091505b505090508061115d57600080fd5b50565b610cff83838360405180602001604052806000815250611768565b606060006111888361141e565b9050806000036111ac5760408051600080825260208201909252905b509392505050565b60008167ffffffffffffffff8111156111c7576111c7612f31565b6040519080825280602002602001820160405280156111f0578160200160208202803683370190505b50905060005b828110156111a4576112088582610fba565b82828151811061121a5761121a61340a565b60209081029190910101528061122f81613420565b9150506111f6565b50919050565b600e805461124a906131de565b80601f0160208091040260200160405190810160405280929190818152602001828054611276906131de565b80156112c35780601f10611298576101008083540402835291602001916112c3565b820191906000526020600020905b8154815290600101906020018083116112a657829003601f168201915b505050505081565b6010805461124a906131de565b60006112e360085490565b82106113465760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610b9b565b600882815481106113595761135961340a565b90600052602060002001549050919050565b600a546001600160a01b031633146113955760405162461bcd60e51b8152600401610b9b90613212565b601d55565b600d805461124a906131de565b6000818152600260205260408120546001600160a01b031680610a8e5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610b9b565b60006001600160a01b0382166114895760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610b9b565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b031633146114cf5760405162461bcd60e51b8152600401610b9b90613212565b6114d96000612110565b565b600a546001600160a01b031633146115055760405162461bcd60e51b8152600401610b9b90613212565b601255565b6000818152600260205260408120546001600160a01b03166115825760405162461bcd60e51b815260206004820152602b60248201527f4552433732314d657461646174613a20517565727920666f72206e6f6e65786960448201526a39ba32b73a103a37b5b2b760a91b6064820152608401610b9b565b506000908152601c602052604090205490565b600f805461124a906131de565b600a546001600160a01b031633146115cc5760405162461bcd60e51b8152600401610b9b90613212565b601155565b606060018054610aa3906131de565b336001600160a01b038316036116385760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610b9b565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6017546014546116be9184916001600160a01b0316612162565b6014546017546001600160a01b03909116906323b872dd90339030906116e590879061325d565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015611739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190613439565b50610ef18282611dc9565b6117723383611e6e565b61178e5760405162461bcd60e51b8152600401610b9b906132b3565b61179a848484846122a9565b50505050565b6000818152600260205260409020546060906001600160a01b031661181f5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610b9b565b60008281526018602052604090208054611838906131de565b80601f0160208091040260200160405190810160405280929190818152602001828054611864906131de565b80156118b15780601f10611886576101008083540402835291602001916118b1565b820191906000526020600020905b81548152906001019060200180831161189457829003601f168201915b50505050509050919050565b6016546015546118d79184916001600160a01b0316612162565b6015546016546001600160a01b03909116906323b872dd90339030906116e590879061325d565b600a546001600160a01b031633146119285760405162461bcd60e51b8152600401610b9b90613212565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b031633146119745760405162461bcd60e51b8152600401610b9b90613212565b601755565b600a546001600160a01b031633146119a35760405162461bcd60e51b8152600401610b9b90613212565b6001600160a01b0381166119eb5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610b9b565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b33600090815260196020526040812054601e54909190611a2e600a8461346c565b611a38919061325d565b336000908152601b6020526040812054919250611a558284613274565b905060008111611a9e5760405162461bcd60e51b81526020600482015260146024820152734e6f207265776172647320617661696c61626c6560601b6044820152606401610b9b565b336000908152601b602052604081208054839290611abd9084906132a0565b90915550506013546040516340c10f1960e01b8152336004820152602481018390526001600160a01b03909116906340c10f1990604401600060405180830381600087803b158015611b0e57600080fd5b505af1158015611b22573d6000803e3d6000fd5b5050505050505050565b600a546001600160a01b03163314611b565760405162461bcd60e51b8152600401610b9b90613212565b601655565b600a546001600160a01b03163314611b855760405162461bcd60e51b8152600401610b9b90613212565b6001600160a01b038116611bea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b9b565b61115d81612110565b600c805461124a906131de565b60006001600160e01b0319821663780e9d6360e01b1480610a8e5750610a8e826122dc565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611c5a826113a7565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610cff90849061232c565b601254811115611d075760405162461bcd60e51b8152600401610b9b90613480565b61520881611d1460085490565b611d1e91906132a0565b1115611d6c5760405162461bcd60e51b815260206004820181905260248201527f507572636861736520776f756c6420657863656564206d617820737570706c796044820152606401610b9b565b3481601154611d7b919061325d565b111561115d5760405162461bcd60e51b815260206004820152601f60248201527f45746865722076616c75652073656e74206973206e6f7420636f7272656374006044820152606401610b9b565b6000611dd460085490565b905060005b83811015611e15576000611ded82846132a0565b9050611df933826123fe565b611e0281612418565b5080611e0d81613420565b915050611dd9565b506001600160a01b03821615801590611e3757506001600160a01b0382163314155b15610cff576001600160a01b03821660009081526019602052604081208054859290611e649084906132a0565b9091555050505050565b6000818152600260205260408120546001600160a01b0316611ee75760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b9b565b6000611ef2836113a7565b9050806001600160a01b0316846001600160a01b03161480611f2d5750836001600160a01b0316611f2284610b26565b6001600160a01b0316145b80611f5d57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316611f78826113a7565b6001600160a01b031614611fe05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610b9b565b6001600160a01b0382166120425760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610b9b565b61204d838383612669565b612058600082611c25565b6001600160a01b0383166000908152600360205260408120805460019290612081908490613274565b90915550506001600160a01b03821660009081526003602052604081208054600192906120af9084906132a0565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6012548311156121845760405162461bcd60e51b8152600401610b9b90613480565b6152088361219160085490565b61219b91906132a0565b11156121e95760405162461bcd60e51b815260206004820181905260248201527f507572636861736520776f756c6420657863656564206d617820737570706c796044820152606401610b9b565b6040516370a0823160e01b81523360048201526001600160a01b038216906370a0823190602401602060405180830381865afa15801561222d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122519190613287565b61225b848461325d565b1115610cff5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e63650000000000006044820152606401610b9b565b6122b4848484611f65565b6122c084848484612674565b61179a5760405162461bcd60e51b8152600401610b9b906134c1565b60006001600160e01b031982166380ac58cd60e01b148061230d57506001600160e01b03198216635b5e139f60e01b145b80610a8e57506301ffc9a760e01b6001600160e01b0319831614610a8e565b6000612381826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127759092919063ffffffff16565b805190915015610cff578080602001905181019061239f9190613439565b610cff5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b9b565b610ef182826040518060200160405280600081525061278e565b604080514260208201529081018290526000906103e8906060016040516020818303038152906040528051906020012060001c6124559190613513565b90506000606060006101f48410156124fd5760019250600c8054612478906131de565b80601f01602080910402602001604051908101604052809291908181526020018280546124a4906131de565b80156124f15780601f106124c6576101008083540402835291602001916124f1565b820191906000526020600020905b8154815290600101906020018083116124d457829003601f168201915b505050505091506125e0565b6103208410156125185760029250600d8054612478906131de565b6103de8410156125335760039250600e8054612478906131de565b6103e784101561254e5760049250600f8054612478906131de565b600592506010805461255f906131de565b80601f016020809104026020016040519081016040528092919081815260200182805461258b906131de565b80156125d85780601f106125ad576101008083540402835291602001916125d8565b820191906000526020600020905b8154815290600101906020018083116125bb57829003601f168201915b505050505091505b6125eb600686613513565b6125f69060016132a0565b6000868152601c60205260409020849055905081612613826127c1565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161264393929190613527565b60408051601f198184030181529181526000878152601860205220906110ba908261334a565b610cff8383836128c2565b60006001600160a01b0384163b1561276a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906126b890339089908890889060040161356a565b6020604051808303816000875af19250505080156126f3575060408051601f3d908101601f191682019092526126f0918101906135a7565b60015b612750573d808015612721576040519150601f19603f3d011682016040523d82523d6000602084013e612726565b606091505b5080516000036127485760405162461bcd60e51b8152600401610b9b906134c1565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611f5d565b506001949350505050565b6060612784848460008561297a565b90505b9392505050565b6127988383612aa2565b6127a56000848484612674565b610cff5760405162461bcd60e51b8152600401610b9b906134c1565b6060816000036127e85750506040805180820190915260018152600360fc1b602082015290565b8160005b811561281257806127fc81613420565b915061280b9050600a8361346c565b91506127ec565b60008167ffffffffffffffff81111561282d5761282d612f31565b6040519080825280601f01601f191660200182016040528015612857576020820181803683370190505b5090505b8415611f5d5761286c600183613274565b9150612879600a86613513565b6128849060306132a0565b60f81b8183815181106128995761289961340a565b60200101906001600160f81b031916908160001a9053506128bb600a8661346c565b945061285b565b6001600160a01b03831661291d5761291881600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b612940565b816001600160a01b0316836001600160a01b031614612940576129408382612bf0565b6001600160a01b03821661295757610cff81612c8d565b826001600160a01b0316826001600160a01b031614610cff57610cff8282612d3c565b6060824710156129db5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b9b565b843b612a295760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b9b565b600080866001600160a01b03168587604051612a4591906135c4565b60006040518083038185875af1925050503d8060008114612a82576040519150601f19603f3d011682016040523d82523d6000602084013e612a87565b606091505b5091509150612a97828286612d80565b979650505050505050565b6001600160a01b038216612af85760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610b9b565b6000818152600260205260409020546001600160a01b031615612b5d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610b9b565b612b6960008383612669565b6001600160a01b0382166000908152600360205260408120805460019290612b929084906132a0565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001612bfd8461141e565b612c079190613274565b600083815260076020526040902054909150808214612c5a576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090612c9f90600190613274565b60008381526009602052604081205460088054939450909284908110612cc757612cc761340a565b906000526020600020015490508060088381548110612ce857612ce861340a565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480612d2057612d206135e0565b6001900381819060005260206000200160009055905550505050565b6000612d478361141e565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60608315612d8f575081612787565b825115612d9f5782518084602001fd5b8160405162461bcd60e51b8152600401610b9b9190612e3c565b6001600160e01b03198116811461115d57600080fd5b600060208284031215612de157600080fd5b813561278781612db9565b60005b83811015612e07578181015183820152602001612def565b50506000910152565b60008151808452612e28816020860160208601612dec565b601f01601f19169290920160200192915050565b6020815260006127876020830184612e10565b600060208284031215612e6157600080fd5b5035919050565b80356001600160a01b0381168114612e7f57600080fd5b919050565b60008060408385031215612e9757600080fd5b612ea083612e68565b946020939093013593505050565b60008060408385031215612ec157600080fd5b82359150612ed160208401612e68565b90509250929050565b600060208284031215612eec57600080fd5b61278782612e68565b600080600060608486031215612f0a57600080fd5b612f1384612e68565b9250612f2160208501612e68565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115612f6257612f62612f31565b604051601f8501601f19908116603f01168101908282118183101715612f8a57612f8a612f31565b81604052809350858152868686011115612fa357600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112612fce57600080fd5b61278783833560208501612f47565b600080600080600060a08688031215612ff557600080fd5b853567ffffffffffffffff8082111561300d57600080fd5b61301989838a01612fbd565b9650602088013591508082111561302f57600080fd5b61303b89838a01612fbd565b9550604088013591508082111561305157600080fd5b61305d89838a01612fbd565b9450606088013591508082111561307357600080fd5b61307f89838a01612fbd565b9350608088013591508082111561309557600080fd5b506130a288828901612fbd565b9150509295509295909350565b6020808252825182820181905260009190848201906040850190845b818110156130e7578351835292840192918401916001016130cb565b50909695505050505050565b801515811461115d57600080fd5b6000806040838503121561311457600080fd5b61311d83612e68565b9150602083013561312d816130f3565b809150509250929050565b6000806000806080858703121561314e57600080fd5b61315785612e68565b935061316560208601612e68565b925060408501359150606085013567ffffffffffffffff81111561318857600080fd5b8501601f8101871361319957600080fd5b6131a887823560208401612f47565b91505092959194509250565b600080604083850312156131c757600080fd5b6131d083612e68565b9150612ed160208401612e68565b600181811c908216806131f257607f821691505b60208210810361123757634e487b7160e01b600052602260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a8e57610a8e613247565b81810381811115610a8e57610a8e613247565b60006020828403121561329957600080fd5b5051919050565b80820180821115610a8e57610a8e613247565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b601f821115610cff57600081815260208120601f850160051c8101602086101561332b5750805b601f850160051c820191505b818110156110ba57828155600101613337565b815167ffffffffffffffff81111561336457613364612f31565b6133788161337284546131de565b84613304565b602080601f8311600181146133ad57600084156133955750858301515b600019600386901b1c1916600185901b1785556110ba565b600085815260208120601f198616915b828110156133dc578886015182559484019460019091019084016133bd565b50858210156133fa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b60006001820161343257613432613247565b5060010190565b60006020828403121561344b57600080fd5b8151612787816130f3565b634e487b7160e01b600052601260045260246000fd5b60008261347b5761347b613456565b500490565b60208082526021908201527f4d6178206d696e7420706572207472616e73616374696f6e20657863656564656040820152601960fa1b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008261352257613522613456565b500690565b60008451613539818460208901612dec565b84519083019061354d818360208901612dec565b8451910190613560818360208801612dec565b0195945050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061359d90830184612e10565b9695505050505050565b6000602082840312156135b957600080fd5b815161278781612db9565b600082516135d6818460208701612dec565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfea264697066735822122064b9f20f90e629dbace6ede7dee54f8ea403a294a4a13b5e9b2a2ddf186da79164736f6c63430008130033697066733a2f2f516d5a336f674d5768347a6956325969463153766e58516837706269796e476b57513359734d39756b777170704e2f697066733a2f2f516d56583555555274473470463369656e56466f3557344a6e4d35437757596b57565032344c47414e6453626d552f697066733a2f2f516d50445943723841747378515954506b526e314a65423358776946617469714e6b3454347852314b474b4264592f697066733a2f2f516d52727038324d71664e354c4c41664335794577316a6a4c637843344e336f764d584a703143413352514654642f697066733a2f2f516d507276725833557953326f3271734e43747a4e6d516d4161486e5262356370507969377345474452433665382f000000000000000000000000a9ec9d38df9fcaf103fdac7036b33cc526ff528c000000000000000000000000e40c77e8bcc8cb171dd5dafa7da24ccc390f1a400000000000000000000000003b32fce84afb42632f6d3e2b80fa932a042c1287