[ { "inputs": [ { "internalType": "address", "name": "_grapeAddress", "type": "address" }, { "internalType": "address", "name": "_couponSigner", "type": "address" }, { "internalType": "address", "name": "_vintnerTypeOracleAddress", "type": "address" }, { "internalType": "string", "name": "_BASE_URI", "type": "string" } ], "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": 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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "onVintnerCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "vintnerType", "type": "uint256" } ], "name": "onVintnerRevealed", "type": "event" }, { "inputs": [], "name": "BASE_URI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MASTER_VINTNER_TYPE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MASTER_VINTNER_YIELD", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NUM_VINTNERS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PROMOTIONAL_VINTNERS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VINTNER_PRICE_AVAX", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VINTNER_PRICE_GRAPE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VINTNER_TYPE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VINTNER_YIELD", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WHITELIST_VINTNERS", "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": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "couponSigner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "_token", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address", "name": "target", "type": "address" } ], "name": "forwardERC20s", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "getType", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "getYield", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "grapeAddress", "outputs": [ { "internalType": "contract IERC20", "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": [ { "internalType": "uint256", "name": "qty", "type": "uint256" }, { "internalType": "uint256", "name": "vintnerType", "type": "uint256" }, { "internalType": "address", "name": "target", "type": "address" } ], "name": "mintPromotional", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "qty", "type": "uint256" } ], "name": "mintVintnerWithAVAX", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "qty", "type": "uint256" } ], "name": "mintVintnerWithGrape", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "qty", "type": "uint256" }, { "internalType": "uint256", "name": "allotted", "type": "uint256" }, { "components": [ { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" } ], "internalType": "struct Vintner.Coupon", "name": "coupon", "type": "tuple" } ], "name": "mintWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "mintingStarted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintingStartedWhitelist", "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": "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": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royaltiesAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_BASE_URI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "couponSigner_", "type": "address" } ], "name": "setCouponSigner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_grapeAddress", "type": "address" } ], "name": "setGrapeAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_royaltiesAddress", "type": "address" } ], "name": "setRoyaltiesAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_royaltiesFees", "type": "uint256" } ], "name": "setRoyaltiesFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_startTime", "type": "uint256" } ], "name": "setStartTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_startTime", "type": "uint256" } ], "name": "setStartTimeWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "vintnerType", "type": "uint256" } ], "name": "setVintnerType", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "qty", "type": "uint256" } ], "name": "setWhitelistMintCount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_wineryAddress", "type": "address" } ], "name": "setWineryAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_vintnerTypeOracleAddress", "type": "address" } ], "name": "setvintnerTypeOracleAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "startTimeWhitelist", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenTypes", "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": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "typeYields", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vintnerPublicMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vintnerTypeOracleAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vintnersMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vintnersMintedPromotional", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vintnersMintedWhitelist", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelistClaimed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "wineryAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "withdrawAVAX", "outputs": [], "stateMutability": "payable", "type": "function" } ]
6080604052610a8c60095560326013553480156200001c57600080fd5b5060405162003936380380620039368339810160408190526200003f91620002dc565b6040518060400160405280600c81526020016b5468652056696e746e65727360a01b8152506040518060400160405280600c81526020016b5468652056494e544e45525360a01b815250620000a36200009d620001af60201b60201c565b620001b3565b6000805460ff60a01b191690558151620000c590600190602085019062000203565b508051620000db90600290602084019062000203565b5050601680546001600160a01b0319166001600160a01b03868116919091179091558316151590506200010d57600080fd5b600a80546001600160a01b038087166001600160a01b031992831617909255600b80549285169290911691909117905580516200015290600c90602084019062000203565b5050600f602052505060017f169f97de0d9a84d840042b17d3c6b9638b3d6fd9024c9eb0c7a306a17b49f88f5550600260005260037fa74ba3945261e09fde15ba3db55005b205e61eeb4ad811ac0faa2b315bffeead556200042e565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8280546200021190620003f1565b90600052602060002090601f01602090048101928262000235576000855562000280565b82601f106200025057805160ff191683800117855562000280565b8280016001018555821562000280579182015b828111156200028057825182559160200191906001019062000263565b506200028e92915062000292565b5090565b5b808211156200028e576000815560010162000293565b80516001600160a01b0381168114620002c157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215620002f357600080fd5b620002fe85620002a9565b935060206200030f818701620002a9565b93506200031f60408701620002a9565b60608701519093506001600160401b03808211156200033d57600080fd5b818801915088601f8301126200035257600080fd5b815181811115620003675762000367620002c6565b604051601f8201601f19908116603f01168101908382118183101715620003925762000392620002c6565b816040528281528b86848701011115620003ab57600080fd5b600093505b82841015620003cf5784840186015181850187015292850192620003b0565b82841115620003e15760008684830101525b989b979a50959850505050505050565b600181811c908216806200040657607f821691505b602082108114156200042857634e487b7160e01b600052602260045260246000fd5b50919050565b6134f8806200043e6000396000f3fe6080604052600436106103385760003560e01c80635fe95a30116101b25780639c508cc0116100ed578063db4bec4411610090578063db4bec44146109b0578063dbddb26a146109dd578063dc95c4a7146109f2578063e985e9c514610a12578063eb41903a14610a32578063efe0d7ce14610a52578063f2fde38b14610a67578063fc7f3d571461037257600080fd5b80639c508cc0146108d1578063a22cb465146108f1578063aeb5cd5e14610911578063b88d4fde14610924578063b99630d514610944578063c87b56dd14610964578063cda1741614610984578063da9802671461099a57600080fd5b80638287ef2c116101555780638287ef2c1461080557806385ed3a5a146108185780638670f79d146108355780638942a6a3146108515780638da5cb5b1461086757806395d89b411461087c5780639a91952f146108915780639b1a5173146108b157600080fd5b80635fe95a30146107185780636352211e146107385780636de1a6d9146107585780636f8608e41461078557806370a082311461079a578063715018a6146107ba578063735d09a6146107cf57806378e97925146107ef57600080fd5b80632891b6a8116102825780634036ab78116102255780634036ab781461063957806342842e0e1461065957806343f37b981461067957806348c4c37f146106995780634984a719146106ae57806355f804b3146106c3578063599dd974146106e35780635c975abb1461070357600080fd5b80632891b6a8146105335780632a55205a14610548578063328825351461057657806332d908121461059657806333f6832a146105b65780633676edff146105e35780633ca1a3a1146105f95780633e0a322d1461061957600080fd5b8063097f0e3c116102ea578063097f0e3c14610451578063097f1f2f1461047157806314a91014146104915780631ea11179146104a7578063238aa9cd146104c757806323b872dd146104e75780632476703e1461050757806327b28a0b1461051d57600080fd5b806301ffc9a71461033d57806305c87a021461037257806306fdde03146103955780630805d884146103b7578063081812fc146103d7578063082ee8b21461040f578063095ea7b31461042f575b600080fd5b34801561034957600080fd5b5061035d610358366004612b67565b610a87565b60405190151581526020015b60405180910390f35b34801561037e57600080fd5b50610387600181565b604051908152602001610369565b3480156103a157600080fd5b506103aa610a98565b6040516103699190612bdc565b3480156103c357600080fd5b506103876103d2366004612bef565b610b2a565b3480156103e357600080fd5b506103f76103f2366004612bef565b610b7a565b6040516001600160a01b039091168152602001610369565b34801561041b57600080fd5b50600b546103f7906001600160a01b031681565b34801561043b57600080fd5b5061044f61044a366004612c1d565b610c02565b005b34801561045d57600080fd5b5061044f61046c366004612bef565b610d13565b34801561047d57600080fd5b5061044f61048c366004612c49565b610d47565b34801561049d57600080fd5b5061038761271081565b3480156104b357600080fd5b506016546103f7906001600160a01b031681565b3480156104d357600080fd5b5061044f6104e2366004612c66565b610d97565b3480156104f357600080fd5b5061044f610502366004612c9f565b610f05565b34801561051357600080fd5b5061038760145481565b34801561052957600080fd5b5061038760135481565b34801561053f57600080fd5b50610387600381565b34801561055457600080fd5b50610568610563366004612ce0565b610f36565b604051610369929190612d02565b34801561058257600080fd5b506007546103f7906001600160a01b031681565b3480156105a257600080fd5b5061044f6105b1366004612bef565b610f89565b3480156105c257600080fd5b506103876105d1366004612bef565b600e6020526000908152604090205481565b3480156105ef57600080fd5b5061038760125481565b34801561060557600080fd5b50600a546103f7906001600160a01b031681565b34801561062557600080fd5b5061044f610634366004612bef565b6111be565b34801561064557600080fd5b50610387610654366004612bef565b611212565b34801561066557600080fd5b5061044f610674366004612c9f565b61124c565b34801561068557600080fd5b5061044f610694366004612d1b565b611267565b3480156106a557600080fd5b50610387603281565b3480156106ba57600080fd5b50610387600281565b3480156106cf57600080fd5b5061044f6106de366004612d52565b6112aa565b3480156106ef57600080fd5b5061044f6106fe366004612ce0565b6112e5565b34801561070f57600080fd5b5061035d6113fa565b34801561072457600080fd5b5061044f610733366004612e0b565b61140a565b34801561074457600080fd5b506103f7610753366004612bef565b611570565b34801561076457600080fd5b50610387610773366004612bef565b600f6020526000908152604090205481565b34801561079157600080fd5b5061035d6115e7565b3480156107a657600080fd5b506103876107b5366004612c49565b611603565b3480156107c657600080fd5b5061044f61168a565b3480156107db57600080fd5b506008546103f7906001600160a01b031681565b3480156107fb57600080fd5b5061038760155481565b61044f610813366004612bef565b6116c5565b34801561082457600080fd5b506103876802b5e3af16b188000081565b34801561084157600080fd5b506103876722b1c8c1227a000081565b34801561085d57600080fd5b5061038760105481565b34801561087357600080fd5b506103f76117cb565b34801561088857600080fd5b506103aa6117da565b34801561089d57600080fd5b5061044f6108ac366004612c49565b6117e9565b3480156108bd57600080fd5b5061044f6108cc366004612c49565b61183a565b3480156108dd57600080fd5b5061044f6108ec366004612bef565b61188b565b3480156108fd57600080fd5b5061044f61090c366004612ea9565b6118df565b61044f61091f366004612bef565b6118ea565b34801561093057600080fd5b5061044f61093f366004612ee2565b6119c9565b34801561095057600080fd5b5061044f61095f366004612c49565b6119fb565b34801561097057600080fd5b506103aa61097f366004612bef565b611a4c565b34801561099057600080fd5b5061038760095481565b3480156109a657600080fd5b5061038760115481565b3480156109bc57600080fd5b506103876109cb366004612c49565b60176020526000908152604090205481565b3480156109e957600080fd5b506103aa611af3565b3480156109fe57600080fd5b5061044f610a0d366004612c49565b611b81565b348015610a1e57600080fd5b5061035d610a2d366004612fa6565b611bce565b348015610a3e57600080fd5b5061044f610a4d366004612bef565b611c36565b348015610a5e57600080fd5b5061035d611c8a565b348015610a7357600080fd5b5061044f610a82366004612c49565b611ca4565b6000610a9282611d41565b92915050565b606060018054610aa790612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad390612fd4565b8015610b205780601f10610af557610100808354040283529160200191610b20565b820191906000526020600020905b815481529060010190602001808311610b0357829003601f168201915b5050505050905090565b6000610b3582611d66565b610b5a5760405162461bcd60e51b8152600401610b519061300f565b60405180910390fd5b506000908152600e60209081526040808320548352600f90915290205490565b6000610b8582611d66565b610be65760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b51565b506000908152600560205260409020546001600160a01b031690565b6000610c0d82611570565b9050806001600160a01b0316836001600160a01b03161415610c7b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610b51565b336001600160a01b0382161480610c975750610c978133611bce565b610d045760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776044820152771b995c881b9bdc88185c1c1c9bdd995908199bdc88185b1b60421b6064820152608401610b51565b610d0e8383611d83565b505050565b33610d1c6117cb565b6001600160a01b031614610d425760405162461bcd60e51b8152600401610b519061303d565b600d55565b33610d506117cb565b6001600160a01b031614610d765760405162461bcd60e51b8152600401610b519061303d565b600880546001600160a01b0319166001600160a01b03831617905550565b50565b33610da06117cb565b6001600160a01b031614610dc65760405162461bcd60e51b8152600401610b519061303d565b60008311610de65760405162461bcd60e51b8152600401610b5190613072565b603283601254610df691906130bf565b1115610e4f5760405162461bcd60e51b815260206004820152602260248201527f796f752063616e2774206d696e742074686174206d616e79207269676874206e6044820152616f7760f01b6064820152608401610b51565b6001821480610e5e5750600282145b610e7a5760405162461bcd60e51b8152600401610b51906130d7565b60005b83811015610eff57600160126000828254610e9891906130bf565b90915550506012546000908152600e602052604090205415610ecc5760405162461bcd60e51b8152600401610b5190613105565b601280546000908152600e6020526040902084905554610eed908390611df1565b80610ef78161314b565b915050610e7d565b50505050565b610f0f3382611e7f565b610f2b5760405162461bcd60e51b8152600401610b5190613166565b610d0e838383611f49565b6000808315610f7157600754600d546001600160a01b0390911690606490610f5e90866131b7565b610f6891906131ec565b91509150610f82565b50506007546001600160a01b031660005b9250929050565b610f916113fa565b15610fae5760405162461bcd60e51b8152600401610b5190613200565b610fb66115e7565b610fd25760405162461bcd60e51b8152600401610b519061322a565b600081118015610fe3575060148111155b610fff5760405162461bcd60e51b8152600401610b5190613259565b60326009546127106110119190613290565b61101b9190613290565b8160105461102991906130bf565b11156110475760405162461bcd60e51b8152600401610b51906132a7565b600061105c826802b5e3af16b18800006131b7565b600a546040516370a0823160e01b815233600482015291925082916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156110a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cd91906132ec565b101561110e5760405162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f75676820477261706560801b6044820152606401610b51565b600a546001600160a01b03166323b872dd336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018490526064016020604051808303816000875af1158015611173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111979190613305565b5081601060008282546111aa91906130bf565b909155506111ba905082336120f0565b5050565b336111c76117cb565b6001600160a01b0316146111ed5760405162461bcd60e51b8152600401610b519061303d565b4281101561120d5760405162461bcd60e51b8152600401610b5190613322565b601555565b600061121d82611d66565b6112395760405162461bcd60e51b8152600401610b519061300f565b506000908152600e602052604090205490565b610d0e838383604051806020016040528060008152506119c9565b336112706117cb565b6001600160a01b0316146112965760405162461bcd60e51b8152600401610b519061303d565b610d0e6001600160a01b0384168284612133565b336112b36117cb565b6001600160a01b0316146112d95760405162461bcd60e51b8152600401610b519061303d565b610d0e600c8383612ab8565b600b546001600160a01b0316336001600160a01b0316146113535760405162461bcd60e51b815260206004820152602260248201527f6d736773656e64657220646f6573206e6f742068617665207065726d6973736960448201526137b760f11b6064820152608401610b51565b6000828152600e60205260409020541561137f5760405162461bcd60e51b8152600401610b5190613105565b600181148061138e5750600281145b6113aa5760405162461bcd60e51b8152600401610b51906130d7565b6000828152600e602090815260409182902083905581518481529081018390527f99bfcaa3dc7409b462b5c2023b3fd711f104e8fc2f126ed387e6af9abbd9c94591015b60405180910390a15050565b600054600160a01b900460ff1690565b6114126113fa565b1561142f5760405162461bcd60e51b8152600401610b5190613200565b611437611c8a565b6114535760405162461bcd60e51b8152600401610b519061322a565b61145e8260016130bf565b3360009081526017602052604090205461147890856130bf565b106114bc5760405162461bcd60e51b8152602060048201526014602482015273115e18d959591cc813585e08105b1b1bdd1d195960621b6044820152606401610b51565b6040805160208082018590523382840152825180830384018152606090920190925280519101206114ed8183612189565b61152a5760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21021b7bab837b760911b6044820152606401610b51565b836011600082825461153c91906130bf565b909155505033600090815260176020526040812080548692906115609084906130bf565b90915550610eff905084336120f0565b6000818152600360205260408120546001600160a01b031680610a925760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610b51565b60006015546000141580156115fe57506015544210155b905090565b60006001600160a01b03821661166e5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610b51565b506001600160a01b031660009081526004602052604090205490565b336116936117cb565b6001600160a01b0316146116b95760405162461bcd60e51b8152600401610b519061303d565b6116c36000612260565b565b6116cd6113fa565b156116ea5760405162461bcd60e51b8152600401610b5190613200565b6116f26115e7565b61170e5760405162461bcd60e51b8152600401610b519061322a565b60008111801561171f575060148111155b61173b5760405162461bcd60e51b8152600401610b5190613259565b603260095461271061174d9190613290565b6117579190613290565b8160105461176591906130bf565b11156117835760405162461bcd60e51b8152600401610b51906132a7565b6000611797826722b1c8c1227a00006131b7565b9050803410156117b95760405162461bcd60e51b8152600401610b5190613359565b81601060008282546111aa91906130bf565b6000546001600160a01b031690565b606060028054610aa790612fd4565b336117f26117cb565b6001600160a01b0316146118185760405162461bcd60e51b8152600401610b519061303d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b336118436117cb565b6001600160a01b0316146118695760405162461bcd60e51b8152600401610b519061303d565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b336118946117cb565b6001600160a01b0316146118ba5760405162461bcd60e51b8152600401610b519061303d565b600081116118da5760405162461bcd60e51b8152600401610b5190613072565b600955565b6111ba3383836122b0565b336118f36117cb565b6001600160a01b0316146119195760405162461bcd60e51b8152600401610b519061303d565b804710156119395760405162461bcd60e51b8152600401610b5190613359565b6040513390600090829084908381818185875af1925050503d806000811461197d576040519150601f19603f3d011682016040523d82523d6000602084013e611982565b606091505b5050905080610d0e5760405162461bcd60e51b815260206004820152601360248201527208cc2d2d8cac840e8de40e6cadcc84082ac82b606b1b6044820152606401610b51565b6119d33383611e7f565b6119ef5760405162461bcd60e51b8152600401610b5190613166565b610eff8484848461237b565b33611a046117cb565b6001600160a01b031614611a2a5760405162461bcd60e51b8152600401610b519061303d565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6060611a5782611d66565b611abb5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610b51565b611ac36123ae565b611acc836123bd565b604051602001611add929190613382565b6040516020818303038152906040529050919050565b600c8054611b0090612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054611b2c90612fd4565b8015611b795780601f10611b4e57610100808354040283529160200191611b79565b820191906000526020600020905b815481529060010190602001808311611b5c57829003601f168201915b505050505081565b33611b8a6117cb565b6001600160a01b031614611bb05760405162461bcd60e51b8152600401610b519061303d565b600780546001600160a01b0319166001600160a01b03831617905550565b6008546000906001600160a01b031615801590611bf857506008546001600160a01b038381169116145b15611c0557506001610a92565b6001600160a01b0380841660009081526006602090815260408083209386168352929052205460ff165b9392505050565b33611c3f6117cb565b6001600160a01b031614611c655760405162461bcd60e51b8152600401610b519061303d565b42811015611c855760405162461bcd60e51b8152600401610b5190613322565b601455565b60006014546000141580156115fe57505060145442101590565b33611cad6117cb565b6001600160a01b031614611cd35760405162461bcd60e51b8152600401610b519061303d565b6001600160a01b038116611d385760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b51565b610d9481612260565b60006001600160e01b0319821663152a902d60e11b1480610a925750610a92826124bb565b6000908152600360205260409020546001600160a01b0316151590565b600081815260056020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611db882611570565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6127106013541115611e455760405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f74206d696e7420616e796d6f72652076696e746e657273000000006044820152606401610b51565b611e4f828261250b565b6040518181527f3926193096e67dd1d3b1874999e37846ff022578abd9b20fe806f5dcb52d788d906020016113ee565b6000611e8a82611d66565b611eeb5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b51565b6000611ef683611570565b9050806001600160a01b0316846001600160a01b03161480611f1d5750611f1d8185611bce565b80611f415750836001600160a01b0316611f3684610b7a565b6001600160a01b0316145b949350505050565b826001600160a01b0316611f5c82611570565b6001600160a01b031614611fc05760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610b51565b6001600160a01b0382166120225760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610b51565b61202d838383612525565b612038600082611d83565b6001600160a01b0383166000908152600460205260408120805460019290612061908490613290565b90915550506001600160a01b038216600090815260046020526040812080546001929061208f9084906130bf565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60005b82811015610d0e5760016013600082825461210e91906130bf565b9250508190555061212182601354611df1565b8061212b8161314b565b9150506120f3565b610d0e8363a9059cbb60e01b8484604051602401612152929190612d02565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526125fd565b600080600184846040015185600001518660200151604051600081526020016040526040516121d4949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa1580156121f6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166122485760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610b51565b6016546001600160a01b039081169116149392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b816001600160a01b0316836001600160a01b0316141561230e5760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610b51565b6001600160a01b03838116600081815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612386848484611f49565b612392848484846126cf565b610eff5760405162461bcd60e51b8152600401610b51906133d0565b6060600c8054610aa790612fd4565b6060816123e15750506040805180820190915260018152600360fc1b602082015290565b8160005b811561240b57806123f58161314b565b91506124049050600a836131ec565b91506123e5565b60008167ffffffffffffffff81111561242657612426612dc4565b6040519080825280601f01601f191660200182016040528015612450576020820181803683370190505b5090505b8415611f4157612465600183613290565b9150612472600a86613422565b61247d9060306130bf565b60f81b81838151811061249257612492613436565b60200101906001600160f81b031916908160001a9053506124b4600a866131ec565b9450612454565b60006001600160e01b031982166380ac58cd60e01b14806124ec57506001600160e01b03198216635b5e139f60e01b145b80610a9257506301ffc9a760e01b6001600160e01b0319831614610a92565b6111ba8282604051806020016040528060008152506127cd565b6008546001600160a01b0384811691161480159061255157506008546001600160a01b03838116911614155b801561256757506007546001600160a01b031615155b801561257b57506001600160a01b03831615155b801561258f57506001600160a01b0383163b155b15610d0e5760075460405163a4d97fdb60e01b81526001600160a01b039091169063a4d97fdb906125c69030908590600401612d02565b600060405180830381600087803b1580156125e057600080fd5b505af11580156125f4573d6000803e3d6000fd5b50505050505050565b6000612652826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128009092919063ffffffff16565b805190915015610d0e57808060200190518101906126709190613305565b610d0e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b51565b60006001600160a01b0384163b156127c257604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061271390339089908890889060040161344c565b6020604051808303816000875af192505050801561274e575060408051601f3d908101601f1916820190925261274b91810190613489565b60015b6127a8573d80801561277c576040519150601f19603f3d011682016040523d82523d6000602084013e612781565b606091505b5080516127a05760405162461bcd60e51b8152600401610b51906133d0565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611f41565b506001949350505050565b6127d7838361280f565b6127e460008484846126cf565b610d0e5760405162461bcd60e51b8152600401610b51906133d0565b6060611f41848460008561294e565b6001600160a01b0382166128655760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610b51565b61286e81611d66565b156128bb5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610b51565b6128c760008383612525565b6001600160a01b03821660009081526004602052604081208054600192906128f09084906130bf565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6060824710156129af5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b51565b6001600160a01b0385163b612a065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b51565b600080866001600160a01b03168587604051612a2291906134a6565b60006040518083038185875af1925050503d8060008114612a5f576040519150601f19603f3d011682016040523d82523d6000602084013e612a64565b606091505b5091509150612a74828286612a7f565b979650505050505050565b60608315612a8e575081611c2f565b825115612a9e5782518084602001fd5b8160405162461bcd60e51b8152600401610b519190612bdc565b828054612ac490612fd4565b90600052602060002090601f016020900481019282612ae65760008555612b2c565b82601f10612aff5782800160ff19823516178555612b2c565b82800160010185558215612b2c579182015b82811115612b2c578235825591602001919060010190612b11565b50612b38929150612b3c565b5090565b5b80821115612b385760008155600101612b3d565b6001600160e01b031981168114610d9457600080fd5b600060208284031215612b7957600080fd5b8135611c2f81612b51565b60005b83811015612b9f578181015183820152602001612b87565b83811115610eff5750506000910152565b60008151808452612bc8816020860160208601612b84565b601f01601f19169290920160200192915050565b602081526000611c2f6020830184612bb0565b600060208284031215612c0157600080fd5b5035919050565b6001600160a01b0381168114610d9457600080fd5b60008060408385031215612c3057600080fd5b8235612c3b81612c08565b946020939093013593505050565b600060208284031215612c5b57600080fd5b8135611c2f81612c08565b600080600060608486031215612c7b57600080fd5b83359250602084013591506040840135612c9481612c08565b809150509250925092565b600080600060608486031215612cb457600080fd5b8335612cbf81612c08565b92506020840135612ccf81612c08565b929592945050506040919091013590565b60008060408385031215612cf357600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b600080600060608486031215612d3057600080fd5b8335612d3b81612c08565b9250602084013591506040840135612c9481612c08565b60008060208385031215612d6557600080fd5b823567ffffffffffffffff80821115612d7d57600080fd5b818501915085601f830112612d9157600080fd5b813581811115612da057600080fd5b866020828501011115612db257600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612e0357612e03612dc4565b604052919050565b600080600083850360a0811215612e2157600080fd5b84359350602085013592506060603f1982011215612e3e57600080fd5b506040516060810181811067ffffffffffffffff82111715612e6257612e62612dc4565b6040908152850135815260608501356020820152608085013560ff81168114612e8a57600080fd5b604082015292959194509192509050565b8015158114610d9457600080fd5b60008060408385031215612ebc57600080fd5b8235612ec781612c08565b91506020830135612ed781612e9b565b809150509250929050565b60008060008060808587031215612ef857600080fd5b8435612f0381612c08565b9350602085810135612f1481612c08565b935060408601359250606086013567ffffffffffffffff80821115612f3857600080fd5b818801915088601f830112612f4c57600080fd5b813581811115612f5e57612f5e612dc4565b612f70601f8201601f19168501612dda565b91508082528984828501011115612f8657600080fd5b808484018584013760008482840101525080935050505092959194509250565b60008060408385031215612fb957600080fd5b8235612fc481612c08565b91506020830135612ed781612c08565b600181811c90821680612fe857607f821691505b6020821081141561300957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601490820152731d1bdad95b88191bd95cc81b9bdd08195e1a5cdd60621b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f7175616e74697479206d7573742062652067726561746572207468616e203000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156130d2576130d26130a9565b500190565b602080825260149082015273696e76616c69642076696e746e6572207479706560601b604082015260600190565b60208082526026908201527f7468617420746f6b656e277320747970652068617320616c7265616479206265604082015265195b881cd95d60d21b606082015260800190565b600060001982141561315f5761315f6130a9565b5060010190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60008160001904831182151516156131d1576131d16130a9565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826131fb576131fb6131d6565b500490565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526015908201527463616e6e6f74206d696e74207269676874206e6f7760581b604082015260600190565b6020808252601f908201527f45786365656473206e756d626572206f66206d696e747320616c6c6f77656400604082015260600190565b6000828210156132a2576132a26130a9565b500390565b60208082526025908201527f45786365656473206e756d626572206f6620746f74616c206d696e747320616c6040820152641b1bddd95960da1b606082015260800190565b6000602082840312156132fe57600080fd5b5051919050565b60006020828403121561331757600080fd5b8151611c2f81612e9b565b6020808252601f908201527f737461727454696d652063616e6e6f7420626520696e20746865207061737400604082015260600190565b6020808252600f908201526e0dcdee840cadcdeeaced04082ac82b608b1b604082015260600190565b60008351613394818460208801612b84565b602f60f81b90830190815283516133b2816001840160208801612b84565b64173539b7b760d91b60019290910191820152600601949350505050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b600082613431576134316131d6565b500690565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061347f90830184612bb0565b9695505050505050565b60006020828403121561349b57600080fd5b8151611c2f81612b51565b600082516134b8818460208701612b84565b919091019291505056fea2646970667358221220cbc496fac18845dcfddc347cc69abf361c7883530b9dcb20d99698e825d8b9a964736f6c634300080b00330000000000000000000000005541d83efad1f281571b343977648b75d95cdac2000000000000000000000000c8ce9e95470f052c4506b8778fef2880bffd427d00000000000000000000000020619d67a7a73e2850ce73e9aaccbefddd6bc59d0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003468747470733a2f2f76696e746e65722d6a736f6e2e73332e75732d776573742d312e616d617a6f6e6177732e636f6d2f6a736f6e000000000000000000000000