[ { "inputs": [ { "internalType": "string", "name": "baseURI_", "type": "string" }, { "internalType": "string", "name": "baseExtension_", "type": "string" }, { "internalType": "uint256", "name": "maxSupply_", "type": "uint256" }, { "internalType": "uint256", "name": "cost_", "type": "uint256" }, { "internalType": "contract IFlashProxyCounter", "name": "counter_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "EmptyBaseExtension", "type": "error" }, { "inputs": [], "name": "EmptyBaseURI", "type": "error" }, { "inputs": [], "name": "InvalidAmount", "type": "error" }, { "inputs": [], "name": "LowCostValue", "type": "error" }, { "inputs": [], "name": "OutOfSupply", "type": "error" }, { "inputs": [], "name": "TransactionEndedWithFailure", "type": "error" }, { "inputs": [], "name": "ZeroAddress", "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": "string", "name": "newBaseExtension", "type": "string" } ], "name": "BaseExtensionSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "string", "name": "newBaseURI", "type": "string" } ], "name": "BaseURISet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "newCost", "type": "uint256" } ], "name": "CostSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "counterAddr", "type": "address" } ], "name": "CounterSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "newMaxSupply", "type": "uint256" } ], "name": "MaxSupplySet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "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": 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": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Withdrawn", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseExtension", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "counter", "outputs": [ { "internalType": "contract IFlashProxyCounter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "mintListStatus", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nftIdCounter", "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": "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": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newBaseExtension", "type": "string" } ], "name": "setBaseExtension", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newCost", "type": "uint256" } ], "name": "setCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IFlashProxyCounter", "name": "_counter", "type": "address" } ], "name": "setCounter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxSupply", "type": "uint256" } ], "name": "setMaxSupply", "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": "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": "withdraw", "outputs": [], "stateMutability": "payable", "type": "function" } ]
60806040523480156200001157600080fd5b506040516200277738038062002777833981016040819052620000349162000326565b6040518060400160405280600981526020016811931054d20813919560ba1b81525060405180604001604052806005815260200164119313919560da1b815250816000908162000085919062000457565b50600162000094828262000457565b505050620000b1620000ab6200020b60201b60201c565b6200020f565b8451600003620000d4576040516305442caf60e41b815260040160405180910390fd5b600d620000e2868262000457565b50835160000362000106576040516310ab4f8560e21b815260040160405180910390fd5b600e62000114858262000457565b5082600003620001375760405163162908e360e11b815260040160405180910390fd5b601083905560008290036200015f5760405163162908e360e11b815260040160405180910390fd5b600f8290556001600160a01b0381166200018c5760405163d92e233d60e01b815260040160405180910390fd5b600b80546001600160a01b0319166001600160a01b03831690811790915560405163a32710eb60e01b815230600482015233602482015263a32710eb90604401600060405180830381600087803b158015620001e757600080fd5b505af1158015620001fc573d6000803e3d6000fd5b50505050505050505062000523565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200028957600080fd5b81516001600160401b0380821115620002a657620002a662000261565b604051601f8301601f19908116603f01168101908282118183101715620002d157620002d162000261565b81604052838152602092508683858801011115620002ee57600080fd5b600091505b83821015620003125785820183015181830184015290820190620002f3565b600093810190920192909252949350505050565b600080600080600060a086880312156200033f57600080fd5b85516001600160401b03808211156200035757600080fd5b6200036589838a0162000277565b965060208801519150808211156200037c57600080fd5b506200038b8882890162000277565b6040880151606089015160808a0151929750909550935090506001600160a01b0381168114620003ba57600080fd5b809150509295509295909350565b600181811c90821680620003dd57607f821691505b602082108103620003fe57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200045257600081815260208120601f850160051c810160208610156200042d5750805b601f850160051c820191505b818110156200044e5782815560010162000439565b5050505b505050565b81516001600160401b0381111562000473576200047362000261565b6200048b81620004848454620003c8565b8462000404565b602080601f831160018114620004c35760008415620004aa5750858301515b600019600386901b1c1916600185901b1785556200044e565b600085815260208120601f198616915b82811015620004f457888601518255948401946001909101908401620004d3565b5085821015620005135787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61224480620005336000396000f3fe6080604052600436106101ed5760003560e01c806361bc221a1161010d578063a22cb465116100a0578063c87b56dd1161006f578063c87b56dd14610544578063d5abeb0114610564578063da3ef23f1461057a578063e985e9c51461059a578063f2fde38b146105e357600080fd5b8063a22cb465146104d9578063b88d4fde146104f9578063bbf4925a14610519578063c66828621461052f57600080fd5b806370a08231116100dc57806370a0823114610471578063715018a6146104915780638da5cb5b146104a657806395d89b41146104c457600080fd5b806361bc221a146103fc5780636352211e1461041c5780636c0360eb1461043c5780636f8b44b01461045157600080fd5b806323646eec1161018557806342842e0e1161015457806342842e0e1461037c57806344a0d68a1461039c5780634f6ccce7146103bc57806355f804b3146103dc57600080fd5b806323646eec1461031457806323b872dd146103345780632f745c59146103545780633ccfd60b1461037457600080fd5b8063095ea7b3116101c1578063095ea7b3146102b15780631249c58b146102d357806313faede6146102db57806318160ddd146102ff57600080fd5b80621248de146101f257806301ffc9a71461023757806306fdde0314610257578063081812fc14610279575b600080fd5b3480156101fe57600080fd5b5061022261020d366004611b4a565b60116020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561024357600080fd5b50610222610252366004611b84565b610603565b34801561026357600080fd5b5061026c61062e565b60405161022e9190611bf1565b34801561028557600080fd5b50610299610294366004611c04565b6106c0565b6040516001600160a01b03909116815260200161022e565b3480156102bd57600080fd5b506102d16102cc366004611c1d565b6106e7565b005b6102d1610801565b3480156102e757600080fd5b506102f1600f5481565b60405190815260200161022e565b34801561030b57600080fd5b506008546102f1565b34801561032057600080fd5b506102d161032f366004611b4a565b610927565b34801561034057600080fd5b506102d161034f366004611c49565b6109a0565b34801561036057600080fd5b506102f161036f366004611c1d565b6109d1565b6102d1610a67565b34801561038857600080fd5b506102d1610397366004611c49565b610b45565b3480156103a857600080fd5b506102d16103b7366004611c04565b610b60565b3480156103c857600080fd5b506102f16103d7366004611c04565b610bbc565b3480156103e857600080fd5b506102d16103f7366004611d16565b610c4f565b34801561040857600080fd5b50600b54610299906001600160a01b031681565b34801561042857600080fd5b50610299610437366004611c04565b610cc7565b34801561044857600080fd5b5061026c610d27565b34801561045d57600080fd5b506102d161046c366004611c04565b610db5565b34801561047d57600080fd5b506102f161048c366004611b4a565b610e11565b34801561049d57600080fd5b506102d1610e97565b3480156104b257600080fd5b50600a546001600160a01b0316610299565b3480156104d057600080fd5b5061026c610eab565b3480156104e557600080fd5b506102d16104f4366004611d5f565b610eba565b34801561050557600080fd5b506102d1610514366004611d9d565b610ec9565b34801561052557600080fd5b506102f1600c5481565b34801561053b57600080fd5b5061026c610f01565b34801561055057600080fd5b5061026c61055f366004611c04565b610f0e565b34801561057057600080fd5b506102f160105481565b34801561058657600080fd5b506102d1610595366004611d16565b610f6f565b3480156105a657600080fd5b506102226105b5366004611e1d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b3480156105ef57600080fd5b506102d16105fe366004611b4a565b610fe7565b60006001600160e01b0319821663780e9d6360e01b1480610628575061062882611060565b92915050565b60606000805461063d90611e4b565b80601f016020809104026020016040519081016040528092919081815260200182805461066990611e4b565b80156106b65780601f1061068b576101008083540402835291602001916106b6565b820191906000526020600020905b81548152906001019060200180831161069957829003601f168201915b5050505050905090565b60006106cb826110b0565b506000908152600460205260409020546001600160a01b031690565b60006106f282610cc7565b9050806001600160a01b0316836001600160a01b0316036107645760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610780575061078081336105b5565b6107f25760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000606482015260840161075b565b6107fc838361110f565b505050565b600f543410156108245760405163cff144f560e01b815260040160405180910390fd5b600c8054600101908190556010541015610851576040516309b741cf60e41b815260040160405180910390fd5b61085d33600c5461117d565b3360009081526011602052604090205460ff166108ed573360008181526011602052604090819020805460ff19166001179055600b54905163e5910ae760e01b815260048101929092526001600160a01b03169063e5910ae790602401600060405180830381600087803b1580156108d457600080fd5b505af11580156108e8573d6000803e3d6000fd5b505050505b600c5460405190815233907f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe9060200160405180910390a2565b61092f611197565b6001600160a01b0381166109565760405163d92e233d60e01b815260040160405180910390fd5b600b80546001600160a01b0319166001600160a01b0383169081179091556040517f938437d85b6973f6eaee29d72a9c84ccf77cecb69665c7e7820413bb248e989790600090a250565b6109aa33826111f1565b6109c65760405162461bcd60e51b815260040161075b90611e85565b6107fc838383611270565b60006109dc83610e11565b8210610a3e5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161075b565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b610a6f611197565b6000610a83600a546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d8060008114610acd576040519150601f19603f3d011682016040523d82523d6000602084013e610ad2565b606091505b5050905080610af45760405163552d790760e11b815260040160405180910390fd5b600a546001600160a01b03166001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d547604051610b3a91815260200190565b60405180910390a250565b6107fc83838360405180602001604052806000815250610ec9565b610b68611197565b80600003610b895760405163162908e360e11b815260040160405180910390fd5b600f81905560405181907f7cc071a7564153c110d9f9e8bfdec2ded8e0a4fc89d8d6510f3a8b42f2ab7e0e90600090a250565b6000610bc760085490565b8210610c2a5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161075b565b60088281548110610c3d57610c3d611ed3565b90600052602060002001549050919050565b610c57611197565b8051600003610c79576040516310ab4f8560e21b815260040160405180910390fd5b600d610c858282611f37565b5080604051610c949190611ff7565b604051908190038120907ff9c7803e94e0d3c02900d8a90893a6d5e90dd04d32a4cfe825520f82bf9f32f690600090a250565b6000818152600260205260408120546001600160a01b0316806106285760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161075b565b600d8054610d3490611e4b565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6090611e4b565b8015610dad5780601f10610d8257610100808354040283529160200191610dad565b820191906000526020600020905b815481529060010190602001808311610d9057829003601f168201915b505050505081565b610dbd611197565b80600003610dde5760405163162908e360e11b815260040160405180910390fd5b601081905560405181907facc639f1ff310faf48650d02a82bd24c924e45a5050fc931245096ac57c309d990600090a250565b60006001600160a01b038216610e7b5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161075b565b506001600160a01b031660009081526003602052604090205490565b610e9f611197565b610ea96000611417565b565b60606001805461063d90611e4b565b610ec5338383611469565b5050565b610ed333836111f1565b610eef5760405162461bcd60e51b815260040161075b90611e85565b610efb84848484611537565b50505050565b600e8054610d3490611e4b565b60606000600d8054610f1f90611e4b565b905011610f3b5760405180602001604052806000815250610628565b600d610f468361156a565b600e604051602001610f5a93929190612086565b60405160208183030381529060405292915050565b610f77611197565b8051600003610f99576040516310ab4f8560e21b815260040160405180910390fd5b600e610fa58282611f37565b5080604051610fb49190611ff7565b604051908190038120907f0784075abe263f7f4ffd8a07408cab7df9ac8b10d9c7b22cab9318b02f34de6790600090a250565b610fef611197565b6001600160a01b0381166110545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075b565b61105d81611417565b50565b60006001600160e01b031982166380ac58cd60e01b148061109157506001600160e01b03198216635b5e139f60e01b145b8061062857506301ffc9a760e01b6001600160e01b0319831614610628565b6000818152600260205260409020546001600160a01b031661105d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161075b565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061114482610cc7565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b610ec582826040518060200160405280600081525061166b565b600a546001600160a01b03163314610ea95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075b565b6000806111fd83610cc7565b9050806001600160a01b0316846001600160a01b0316148061124457506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806112685750836001600160a01b031661125d846106c0565b6001600160a01b0316145b949350505050565b826001600160a01b031661128382610cc7565b6001600160a01b0316146112e75760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b606482015260840161075b565b6001600160a01b0382166113495760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161075b565b61135483838361169e565b61135f60008261110f565b6001600160a01b03831660009081526003602052604081208054600192906113889084906120cf565b90915550506001600160a01b03821660009081526003602052604081208054600192906113b69084906120e2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b0316036114ca5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161075b565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611542848484611270565b61154e84848484611756565b610efb5760405162461bcd60e51b815260040161075b906120f5565b6060816000036115915750506040805180820190915260018152600360fc1b602082015290565b8160005b81156115bb57806115a581612147565b91506115b49050600a83612176565b9150611595565b60008167ffffffffffffffff8111156115d6576115d6611c8a565b6040519080825280601f01601f191660200182016040528015611600576020820181803683370190505b5090505b8415611268576116156001836120cf565b9150611622600a8661218a565b61162d9060306120e2565b60f81b81838151811061164257611642611ed3565b60200101906001600160f81b031916908160001a905350611664600a86612176565b9450611604565b6116758383611857565b6116826000848484611756565b6107fc5760405162461bcd60e51b815260040161075b906120f5565b6001600160a01b0383166116f9576116f481600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b61171c565b816001600160a01b0316836001600160a01b03161461171c5761171c83826119a5565b6001600160a01b038216611733576107fc81611a42565b826001600160a01b0316826001600160a01b0316146107fc576107fc8282611af1565b60006001600160a01b0384163b1561184c57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061179a90339089908890889060040161219e565b6020604051808303816000875af19250505080156117d5575060408051601f3d908101601f191682019092526117d2918101906121db565b60015b611832573d808015611803576040519150601f19603f3d011682016040523d82523d6000602084013e611808565b606091505b50805160000361182a5760405162461bcd60e51b815260040161075b906120f5565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611268565b506001949350505050565b6001600160a01b0382166118ad5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161075b565b6000818152600260205260409020546001600160a01b0316156119125760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161075b565b61191e6000838361169e565b6001600160a01b03821660009081526003602052604081208054600192906119479084906120e2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600060016119b284610e11565b6119bc91906120cf565b600083815260076020526040902054909150808214611a0f576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611a54906001906120cf565b60008381526009602052604081205460088054939450909284908110611a7c57611a7c611ed3565b906000526020600020015490508060088381548110611a9d57611a9d611ed3565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611ad557611ad56121f8565b6001900381819060005260206000200160009055905550505050565b6000611afc83610e11565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b038116811461105d57600080fd5b600060208284031215611b5c57600080fd5b8135611b6781611b35565b9392505050565b6001600160e01b03198116811461105d57600080fd5b600060208284031215611b9657600080fd5b8135611b6781611b6e565b60005b83811015611bbc578181015183820152602001611ba4565b50506000910152565b60008151808452611bdd816020860160208601611ba1565b601f01601f19169290920160200192915050565b602081526000611b676020830184611bc5565b600060208284031215611c1657600080fd5b5035919050565b60008060408385031215611c3057600080fd5b8235611c3b81611b35565b946020939093013593505050565b600080600060608486031215611c5e57600080fd5b8335611c6981611b35565b92506020840135611c7981611b35565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611cbb57611cbb611c8a565b604051601f8501601f19908116603f01168101908282118183101715611ce357611ce3611c8a565b81604052809350858152868686011115611cfc57600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611d2857600080fd5b813567ffffffffffffffff811115611d3f57600080fd5b8201601f81018413611d5057600080fd5b61126884823560208401611ca0565b60008060408385031215611d7257600080fd5b8235611d7d81611b35565b915060208301358015158114611d9257600080fd5b809150509250929050565b60008060008060808587031215611db357600080fd5b8435611dbe81611b35565b93506020850135611dce81611b35565b925060408501359150606085013567ffffffffffffffff811115611df157600080fd5b8501601f81018713611e0257600080fd5b611e1187823560208401611ca0565b91505092959194509250565b60008060408385031215611e3057600080fd5b8235611e3b81611b35565b91506020830135611d9281611b35565b600181811c90821680611e5f57607f821691505b602082108103611e7f57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b601f8211156107fc57600081815260208120601f850160051c81016020861015611f105750805b601f850160051c820191505b81811015611f2f57828155600101611f1c565b505050505050565b815167ffffffffffffffff811115611f5157611f51611c8a565b611f6581611f5f8454611e4b565b84611ee9565b602080601f831160018114611f9a5760008415611f825750858301515b600019600386901b1c1916600185901b178555611f2f565b600085815260208120601f198616915b82811015611fc957888601518255948401946001909101908401611faa565b5085821015611fe75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251612009818460208701611ba1565b9190910192915050565b6000815461202081611e4b565b60018281168015612038576001811461204d5761207c565b60ff198416875282151583028701945061207c565b8560005260208060002060005b858110156120735781548a82015290840190820161205a565b50505082870194505b5050505092915050565b60006120928286612013565b84516120a2818360208901611ba1565b6120ae81830186612013565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610628576106286120b9565b80820180821115610628576106286120b9565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b600060018201612159576121596120b9565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261218557612185612160565b500490565b60008261219957612199612160565b500690565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906121d190830184611bc5565b9695505050505050565b6000602082840312156121ed57600080fd5b8151611b6781611b6e565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220b53bcd4673a8bb7d84295346c434f4b895cd9eb7a8cbce06a2f46b0cdae61d4464736f6c6343000813003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000093b86bdd0da4518c3f1abaa9ad6315635e2790e6000000000000000000000000000000000000000000000000000000000000003c68747470733a2f2f697066732f516d58316754466162505a783841746d486b334a417231764e584a4c6562486d53577833624d4c65505854546e432f0000000000000000000000000000000000000000000000000000000000000000000000052e6a736f6e000000000000000000000000000000000000000000000000000000