UNPKG

@pvpbet/pvpbet

Version:

A decentralized PVP betting platform based on the Ethereum Virtual Machine (EVM).

942 lines (941 loc) 46.5 kB
{ "_format": "hh-sol-artifact-1", "contractName": "BetConfigurator", "sourceName": "contracts/BetConfigurator.sol", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "CannotReceive", "type": "error" }, { "inputs": [], "name": "InvalidAmount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "InvalidChip", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "description", "type": "string" } ], "name": "InvalidDescription", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "InvalidOptionCount", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "title", "type": "string" } ], "name": "InvalidTitle", "type": "error" }, { "inputs": [], "name": "InvalidToken", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "url", "type": "string" } ], "name": "InvalidUrl", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "InvalidVerifyingPeriodDuration", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "InvalidWageringPeriodDuration", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "UnauthorizedAccess", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [], "name": "announcementPeriodDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "arbitratingPeriodDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "chip", "type": "address" } ], "name": "betConfig", "outputs": [ { "components": [ { "internalType": "uint256", "name": "chipMinValue", "type": "uint256" }, { "internalType": "uint256", "name": "voteMinValue", "type": "uint256" }, { "internalType": "uint256", "name": "minWageredTotalAmount", "type": "uint256" }, { "internalType": "uint256", "name": "verificationRatio", "type": "uint256" }, { "internalType": "uint256", "name": "announcementPeriodDuration", "type": "uint256" }, { "internalType": "uint256", "name": "arbitratingPeriodDuration", "type": "uint256" }, { "internalType": "uint256", "name": "singleOptionMaxAmountRatio", "type": "uint256" }, { "internalType": "uint256", "name": "confirmDisputeAmountRatio", "type": "uint256" }, { "internalType": "uint256", "name": "protocolRewardRatio", "type": "uint256" }, { "internalType": "uint256", "name": "creatorRewardRatio", "type": "uint256" }, { "internalType": "uint256", "name": "verifierRewardRatio", "type": "uint256" }, { "internalType": "uint256", "name": "countPerRelease", "type": "uint256" }, { "internalType": "uint256", "name": "countPerPenalize", "type": "uint256" } ], "internalType": "struct IBet.BetConfig", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "chip", "type": "address" } ], "name": "chipMinValue", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "chipTokenAllowlist", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "confirmDisputeAmountRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "countPerPenalize", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "countPerRelease", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "creatorRewardRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxOptionsCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxVerifyingPeriodDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWageringPeriodDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minOptionsCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minVerifyingPeriodDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "chip", "type": "address" } ], "name": "minWageredTotalAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minWageringPeriodDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "originAllowlist", "outputs": [ { "internalType": "string[]", "name": "", "type": "string[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "protocolRewardRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAnnouncementPeriodDuration", "type": "uint256" } ], "name": "setAnnouncementPeriodDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newArbitratingPeriodDuration", "type": "uint256" } ], "name": "setArbitratingPeriodDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "chip", "type": "address" }, { "internalType": "uint256", "name": "newChipMinValue", "type": "uint256" } ], "name": "setChipMinValue", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "newChipTokenAllowlist", "type": "address[]" } ], "name": "setChipTokenAllowlist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newConfirmDisputeAmountRatio", "type": "uint256" } ], "name": "setConfirmDisputeAmountRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newCountPerPenalize", "type": "uint256" } ], "name": "setCountPerPenalize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newCountPerRelease", "type": "uint256" } ], "name": "setCountPerRelease", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newCreatorRewardRatio", "type": "uint256" } ], "name": "setCreatorRewardRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxOptionsCount", "type": "uint256" } ], "name": "setMaxOptionsCount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxVerifyingPeriodDuration", "type": "uint256" } ], "name": "setMaxVerifyingPeriodDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxWageringPeriodDuration", "type": "uint256" } ], "name": "setMaxWageringPeriodDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMinOptionsCount", "type": "uint256" } ], "name": "setMinOptionsCount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMinVerifyingPeriodDuration", "type": "uint256" } ], "name": "setMinVerifyingPeriodDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "chip", "type": "address" }, { "internalType": "uint256", "name": "newMinWageredTotalAmount", "type": "uint256" } ], "name": "setMinWageredTotalAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMinWageringPeriodDuration", "type": "uint256" } ], "name": "setMinWageringPeriodDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string[]", "name": "newOriginAllowlist", "type": "string[]" } ], "name": "setOriginAllowlist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newProtocolRewardRatio", "type": "uint256" } ], "name": "setProtocolRewardRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newSingleOptionMaxAmountRatio", "type": "uint256" } ], "name": "setSingleOptionMaxAmountRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "chip", "type": "address" }, { "internalType": "uint256", "name": "newVerificationRatio", "type": "uint256" } ], "name": "setVerificationRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newVerifierRewardRatio", "type": "uint256" } ], "name": "setVerifierRewardRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newVoteMinValue", "type": "uint256" } ], "name": "setVoteMinValue", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "singleOptionMaxAmountRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "validateChipToken", "outputs": [], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "description", "type": "string" } ], "name": "validateDescription", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "wageringPeriodDuration", "type": "uint256" }, { "internalType": "uint256", "name": "verifyingPeriodDuration", "type": "uint256" } ], "name": "validateDuration", "outputs": [], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string[]", "name": "options", "type": "string[]" } ], "name": "validateOptions", "outputs": [], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "title", "type": "string" } ], "name": "validateTitle", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "url", "type": "string" } ], "name": "validateUrl", "outputs": [], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "chip", "type": "address" } ], "name": "verificationRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "verifierRewardRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "voteMinValue", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100408161012e565b5060026001818155600a90915562015180600381905562093a8060048190556005828155600691909155670de0b6b3a76400006009556000805266038d7ea4c680007f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e355662386f26fc100007fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7655600c602052620493e07f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e855600d919091556202a300600e556055600f556010819055601182905560129190915560135561064060145560c860155561017e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6118d08061018d6000396000f3fe608060405234801561001057600080fd5b506004361061030c5760003560e01c80636f74204b1161019d578063ad34232e116100e9578063d3fb1c73116100a2578063de6f9cf21161007c578063de6f9cf214610696578063f2255047146106a9578063f2fde38b146106bc578063f73471d0146106cf57600080fd5b8063d3fb1c7314610668578063da6df3891461067b578063db659c211461068357600080fd5b8063ad34232e1461060c578063addc4a1e1461061f578063ae40122c14610632578063b1a516df1461063a578063c8fe0ebf1461064d578063cf996ef91461066057600080fd5b80638d1fede41161015657806394861ebf1161013057806394861ebf146105d6578063a182d053146105de578063a69722de146105e6578063a8194876146105f957600080fd5b80638d1fede4146105a05780638da5cb5b146105a8578063941cd9f4146105c357600080fd5b80636f74204b14610537578063715018a61461054a57806380078c61146105525780638325fc921461056557806384275757146105785780638b9043df1461058d57600080fd5b8063308b2d531161025c57806353aa14c51161021557806360c718c4116101ef57806360c718c4146104e9578063632f2bfd146104fc57806363a341701461050f5780636b8e8e431461052257600080fd5b806353aa14c5146104bb5780635b9b9019146104ce5780635f3b2180146104e157600080fd5b8063308b2d53146103cc5780633e1fc8bd146103d4578063401617df1461047a5780634164d4a91461048257806350a2f0a81461049557806350e7980a146104a857600080fd5b806311c1002d116102c95780631a17223c116102a35780631a17223c146103965780631a771b8d146103a957806325d538d5146103b1578063287450c0146103b957600080fd5b806311c1002d14610373578063137ab3621461037b57806319e10be01461038357600080fd5b8063024c41281461031157806307b3266514610328578063093253f31461033d5780630aa9da3d146103455780630b88da161461034d5780630cd2696014610360575b600080fd5b6009545b6040519081526020015b60405180910390f35b61033b6103363660046112ea565b6106e2565b005b600354610315565b600254610315565b61033b61035b366004611387565b610701565b61031561036e3660046113b1565b610725565b601054610315565b600d54610315565b61033b6103913660046113cc565b61077b565b61033b6103a43660046113cc565b610788565b601454610315565b600454610315565b61033b6103c73660046113cc565b610795565b600554610315565b6103e76103e23660046113b1565b6107a2565b60405161031f9190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018091820151918101919091526101a00190565b600e54610315565b61033b6104903660046113cc565b610899565b61033b6104a33660046113cc565b6108a6565b61033b6104b63660046113e5565b6108b3565b61033b6104c93660046113cc565b61091c565b61033b6104dc3660046113cc565b610929565b601154610315565b61033b6104f73660046113cc565b610936565b61031561050a3660046113b1565b610943565b61033b61051d3660046113cc565b6109ac565b61052a6109b9565b60405161031f9190611407565b61033b610545366004611454565b610a1b565b61033b610a54565b61033b610560366004611387565b610a68565b61033b6105733660046113b1565b610a8c565b610580610b09565b60405161031f91906114ed565b61031561059b3660046113b1565b610be2565b601254610315565b6000546040516001600160a01b03909116815260200161031f565b61033b6105d13660046113cc565b610c3b565b600f54610315565b601354610315565b61033b6105f4366004611567565b610c48565b61033b6106073660046113cc565b610ca9565b61033b61061a366004611567565b610cb6565b61033b61062d3660046115c7565b610ded565b600654610315565b61033b6106483660046113cc565b610e08565b61033b61065b366004611387565b610e15565b601554610315565b61033b6106763660046113cc565b610e39565b600154610315565b61033b6106913660046113cc565b610e46565b61033b6106a4366004611567565b610e53565b61033b6106b73660046113cc565b610eb4565b61033b6106ca3660046113b1565b610ec1565b61033b6106dd3660046113cc565b610eff565b6106ea610f0c565b80516106fd906008906020840190611140565b5050565b610709610f0c565b6001600160a01b039091166000908152600b6020526040902055565b6001600160a01b0381166000908152600b602052604081205461075b57610756600a61075084610be2565b90610f39565b610775565b6001600160a01b0382166000908152600b60205260409020545b92915050565b610783610f0c565b600f55565b610790610f0c565b600555565b61079d610f0c565b600955565b61080d604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806101a0016040528061082284610be2565b8152602001600954815260200161083884610725565b815260200161084684610943565b8152600d546020820152600e546040820152600f546060820152601054608082015260115460a082015260125460c082015260135460e08201526014546101008201526015546101209091015292915050565b6108a1610f0c565b601455565b6108ae610f0c565b601255565b6003548210806108c4575060045482115b156108ea57604051632e03b06960e11b8152600481018390526024015b60405180910390fd5b6005548110806108fb575060065481115b156106fd5760405163f382aea360e01b8152600481018290526024016108e1565b610924610f0c565b601555565b610931610f0c565b600d55565b61093e610f0c565b600455565b6001600160a01b0381166000908152600c602052604081205461099057610756606461075061098861097d866001600160a01b0316610f58565b60129060ff1661101f565b600a9061103b565b506001600160a01b03166000908152600c602052604090205490565b6109b4610f0c565b600e55565b60606008805480602002602001604051908101604052809291908181526020018280548015610a1157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109f3575b5050505050905090565b6001548190811080610a2e575060025481115b15610a4f57604051635be30a4d60e11b8152600481018290526024016108e1565b505050565b610a5c610f0c565b610a666000611053565b565b610a70610f0c565b6001600160a01b039091166000908152600a6020526040902055565b600854600090815b81811015610adf5760088181548110610aaf57610aaf6116ce565b6000918252602090912001546001600160a01b0390811690851603610ad75760019250610adf565b600101610a94565b5081610a4f57604051631f60ef2760e21b81526001600160a01b03841660048201526024016108e1565b60606007805480602002602001604051908101604052809291908181526020016000905b82821015610bd9578382906000526020600020018054610b4c906116e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b78906116e4565b8015610bc55780601f10610b9a57610100808354040283529160200191610bc5565b820191906000526020600020905b815481529060010190602001808311610ba857829003601f168201915b505050505081526020019060010190610b2d565b50505050905090565b6001600160a01b0381166000908152600a6020526040812054610c1f57610756610c14836001600160a01b0316610f58565b600a9060ff1661103b565b506001600160a01b03166000908152600a602052604090205490565b610c43610f0c565b601355565b610c8782828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110a392505050565b156106fd578181604051633db794a960e01b81526004016108e192919061171e565b610cb1610f0c565b601055565b600754600090815b81811015610dc457610dae60078281548110610cdc57610cdc6116ce565b906000526020600020018054610cf1906116e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1d906116e4565b8015610d6a5780601f10610d3f57610100808354040283529160200191610d6a565b820191906000526020600020905b815481529060010190602001808311610d4d57829003601f168201915b505050505086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506110a89050565b15610dbc5760019250610dc4565b600101610cbe565b5081610de75783836040516358b932d760e11b81526004016108e192919061171e565b50505050565b610df5610f0c565b80516106fd9060079060208401906111a5565b610e10610f0c565b600655565b610e1d610f0c565b6001600160a01b039091166000908152600c6020526040902055565b610e41610f0c565b601155565b610e4e610f0c565b600255565b610e9282828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110a392505050565b156106fd578181604051631100074f60e11b81526004016108e192919061171e565b610ebc610f0c565b600155565b610ec9610f0c565b6001600160a01b038116610ef357604051631e4fbdf760e01b8152600060048201526024016108e1565b610efc81611053565b50565b610f07610f0c565b600355565b6000546001600160a01b03163314610a665760405163118cdaa760e01b81523360048201526024016108e1565b600082820283811015610f5157600019915050610775565b9392505050565b60006001600160a01b0382163b156110175760408051600481526024810182526020810180516001600160e01b031663313ce56760e01b179052905160009182916001600160a01b03861691610fad9161174d565b600060405180830381855afa9150503d8060008114610fe8576040519150601f19603f3d011682016040523d82523d6000602084013e610fed565b606091505b50915091508115611014578080602001905181019061100c9190611769565b949350505050565b50505b506012919050565b6000818311156110325750808203610775565b50600092915050565b600081830a83811015610f5157600019915050610775565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b511590565b815181516000918491849110156110c457600092505050610775565b805160005b81811015611133578281815181106110e3576110e36116ce565b602001015160f81c60f81b6001600160f81b03191684828151811061110a5761110a6116ce565b01602001516001600160f81b0319161461112b576000945050505050610775565b6001016110c9565b5060019695505050505050565b828054828255906000526020600020908101928215611195579160200282015b8281111561119557825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611160565b506111a19291506111f7565b5090565b8280548282559060005260206000209081019282156111eb579160200282015b828111156111eb57825182906111db90826117da565b50916020019190600101906111c5565b506111a192915061120c565b5b808211156111a157600081556001016111f8565b808211156111a15760006112208282611229565b5060010161120c565b508054611235906116e4565b6000825580601f10611245575050565b601f016020900490600052602060002090810190610efc91906111f7565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156112a2576112a2611263565b604052919050565b600067ffffffffffffffff8211156112c4576112c4611263565b5060051b60200190565b80356001600160a01b03811681146112e557600080fd5b919050565b600060208083850312156112fd57600080fd5b823567ffffffffffffffff81111561131457600080fd5b8301601f8101851361132557600080fd5b8035611338611333826112aa565b611279565b81815260059190911b8201830190838101908783111561135757600080fd5b928401925b8284101561137c5761136d846112ce565b8252928401929084019061135c565b979650505050505050565b6000806040838503121561139a57600080fd5b6113a3836112ce565b946020939093013593505050565b6000602082840312156113c357600080fd5b610f51826112ce565b6000602082840312156113de57600080fd5b5035919050565b600080604083850312156113f857600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156114485783516001600160a01b031683529284019291840191600101611423565b50909695505050505050565b6000806020838503121561146757600080fd5b823567ffffffffffffffff8082111561147f57600080fd5b818501915085601f83011261149357600080fd5b8135818111156114a257600080fd5b8660208260051b85010111156114b757600080fd5b60209290920196919550909350505050565b60005b838110156114e45781810151838201526020016114cc565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561155a57878503603f190184528151805180875261153b818989018a85016114c9565b601f01601f191695909501860194509285019290850190600101611514565b5092979650505050505050565b6000806020838503121561157a57600080fd5b823567ffffffffffffffff8082111561159257600080fd5b818501915085601f8301126115a657600080fd5b8135818111156115b557600080fd5b8660208285010111156114b757600080fd5b600060208083850312156115da57600080fd5b823567ffffffffffffffff808211156115f257600080fd5b8185019150601f868184011261160757600080fd5b8235611615611333826112aa565b81815260059190911b8401850190858101908983111561163457600080fd5b8686015b838110156116c0578035868111156116505760008081fd5b8701603f81018c136116625760008081fd5b8881013560408882111561167857611678611263565b611689828901601f19168c01611279565b8281528e8284860101111561169e5760008081fd5b828285018d83013760009281018c019290925250845250918701918701611638565b509998505050505050505050565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806116f857607f821691505b60208210810361171857634e487b7160e01b600052602260045260246000fd5b50919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b6000825161175f8184602087016114c9565b9190910192915050565b60006020828403121561177b57600080fd5b815160ff81168114610f5157600080fd5b601f821115610a4f57600081815260208120601f850160051c810160208610156117b35750805b601f850160051c820191505b818110156117d2578281556001016117bf565b505050505050565b815167ffffffffffffffff8111156117f4576117f4611263565b6118088161180284546116e4565b8461178c565b602080601f83116001811461183d57600084156118255750858301515b600019600386901b1c1916600185901b1785556117d2565b600085815260208120601f198616915b8281101561186c5788860151825594840194600190910190840161184d565b508582101561188a5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea26469706673582212202b4c3ff557a082e539c978e586c56bc7a98b1b6fac0a21e07f38b7cc36d4267364736f6c63430008140033", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061030c5760003560e01c80636f74204b1161019d578063ad34232e116100e9578063d3fb1c73116100a2578063de6f9cf21161007c578063de6f9cf214610696578063f2255047146106a9578063f2fde38b146106bc578063f73471d0146106cf57600080fd5b8063d3fb1c7314610668578063da6df3891461067b578063db659c211461068357600080fd5b8063ad34232e1461060c578063addc4a1e1461061f578063ae40122c14610632578063b1a516df1461063a578063c8fe0ebf1461064d578063cf996ef91461066057600080fd5b80638d1fede41161015657806394861ebf1161013057806394861ebf146105d6578063a182d053146105de578063a69722de146105e6578063a8194876146105f957600080fd5b80638d1fede4146105a05780638da5cb5b146105a8578063941cd9f4146105c357600080fd5b80636f74204b14610537578063715018a61461054a57806380078c61146105525780638325fc921461056557806384275757146105785780638b9043df1461058d57600080fd5b8063308b2d531161025c57806353aa14c51161021557806360c718c4116101ef57806360c718c4146104e9578063632f2bfd146104fc57806363a341701461050f5780636b8e8e431461052257600080fd5b806353aa14c5146104bb5780635b9b9019146104ce5780635f3b2180146104e157600080fd5b8063308b2d53146103cc5780633e1fc8bd146103d4578063401617df1461047a5780634164d4a91461048257806350a2f0a81461049557806350e7980a146104a857600080fd5b806311c1002d116102c95780631a17223c116102a35780631a17223c146103965780631a771b8d146103a957806325d538d5146103b1578063287450c0146103b957600080fd5b806311c1002d14610373578063137ab3621461037b57806319e10be01461038357600080fd5b8063024c41281461031157806307b3266514610328578063093253f31461033d5780630aa9da3d146103455780630b88da161461034d5780630cd2696014610360575b600080fd5b6009545b6040519081526020015b60405180910390f35b61033b6103363660046112ea565b6106e2565b005b600354610315565b600254610315565b61033b61035b366004611387565b610701565b61031561036e3660046113b1565b610725565b601054610315565b600d54610315565b61033b6103913660046113cc565b61077b565b61033b6103a43660046113cc565b610788565b601454610315565b600454610315565b61033b6103c73660046113cc565b610795565b600554610315565b6103e76103e23660046113b1565b6107a2565b60405161031f9190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018091820151918101919091526101a00190565b600e54610315565b61033b6104903660046113cc565b610899565b61033b6104a33660046113cc565b6108a6565b61033b6104b63660046113e5565b6108b3565b61033b6104c93660046113cc565b61091c565b61033b6104dc3660046113cc565b610929565b601154610315565b61033b6104f73660046113cc565b610936565b61031561050a3660046113b1565b610943565b61033b61051d3660046113cc565b6109ac565b61052a6109b9565b60405161031f9190611407565b61033b610545366004611454565b610a1b565b61033b610a54565b61033b610560366004611387565b610a68565b61033b6105733660046113b1565b610a8c565b610580610b09565b60405161031f91906114ed565b61031561059b3660046113b1565b610be2565b601254610315565b6000546040516001600160a01b03909116815260200161031f565b61033b6105d13660046113cc565b610c3b565b600f54610315565b601354610315565b61033b6105f4366004611567565b610c48565b61033b6106073660046113cc565b610ca9565b61033b61061a366004611567565b610cb6565b61033b61062d3660046115c7565b610ded565b600654610315565b61033b6106483660046113cc565b610e08565b61033b61065b366004611387565b610e15565b601554610315565b61033b6106763660046113cc565b610e39565b600154610315565b61033b6106913660046113cc565b610e46565b61033b6106a4366004611567565b610e53565b61033b6106b73660046113cc565b610eb4565b61033b6106ca3660046113b1565b610ec1565b61033b6106dd3660046113cc565b610eff565b6106ea610f0c565b80516106fd906008906020840190611140565b5050565b610709610f0c565b6001600160a01b039091166000908152600b6020526040902055565b6001600160a01b0381166000908152600b602052604081205461075b57610756600a61075084610be2565b90610f39565b610775565b6001600160a01b0382166000908152600b60205260409020545b92915050565b610783610f0c565b600f55565b610790610f0c565b600555565b61079d610f0c565b600955565b61080d604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806101a0016040528061082284610be2565b8152602001600954815260200161083884610725565b815260200161084684610943565b8152600d546020820152600e546040820152600f546060820152601054608082015260115460a082015260125460c082015260135460e08201526014546101008201526015546101209091015292915050565b6108a1610f0c565b601455565b6108ae610f0c565b601255565b6003548210806108c4575060045482115b156108ea57604051632e03b06960e11b8152600481018390526024015b60405180910390fd5b6005548110806108fb575060065481115b156106fd5760405163f382aea360e01b8152600481018290526024016108e1565b610924610f0c565b601555565b610931610f0c565b600d55565b61093e610f0c565b600455565b6001600160a01b0381166000908152600c602052604081205461099057610756606461075061098861097d866001600160a01b0316610f58565b60129060ff1661101f565b600a9061103b565b506001600160a01b03166000908152600c602052604090205490565b6109b4610f0c565b600e55565b60606008805480602002602001604051908101604052809291908181526020018280548015610a1157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109f3575b5050505050905090565b6001548190811080610a2e575060025481115b15610a4f57604051635be30a4d60e11b8152600481018290526024016108e1565b505050565b610a5c610f0c565b610a666000611053565b565b610a70610f0c565b6001600160a01b039091166000908152600a6020526040902055565b600854600090815b81811015610adf5760088181548110610aaf57610aaf6116ce565b6000918252602090912001546001600160a01b0390811690851603610ad75760019250610adf565b600101610a94565b5081610a4f57604051631f60ef2760e21b81526001600160a01b03841660048201526024016108e1565b60606007805480602002602001604051908101604052809291908181526020016000905b82821015610bd9578382906000526020600020018054610b4c906116e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b78906116e4565b8015610bc55780601f10610b9a57610100808354040283529160200191610bc5565b820191906000526020600020905b815481529060010190602001808311610ba857829003601f168201915b505050505081526020019060010190610b2d565b50505050905090565b6001600160a01b0381166000908152600a6020526040812054610c1f57610756610c14836001600160a01b0316610f58565b600a9060ff1661103b565b506001600160a01b03166000908152600a602052604090205490565b610c43610f0c565b601355565b610c8782828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110a392505050565b156106fd578181604051633db794a960e01b81526004016108e192919061171e565b610cb1610f0c565b601055565b600754600090815b81811015610dc457610dae60078281548110610cdc57610cdc6116ce565b906000526020600020018054610cf1906116e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1d906116e4565b8015610d6a5780601f10610d3f57610100808354040283529160200191610d6a565b820191906000526020600020905b815481529060010190602001808311610d4d57829003601f168201915b505050505086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506110a89050565b15610dbc5760019250610dc4565b600101610cbe565b5081610de75783836040516358b932d760e11b81526004016108e192919061171e565b50505050565b610df5610f0c565b80516106fd9060079060208401906111a5565b610e10610f0c565b600655565b610e1d610f0c565b6001600160a01b039091166000908152600c6020526040902055565b610e41610f0c565b601155565b610e4e610f0c565b600255565b610e9282828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110a392505050565b156106fd578181604051631100074f60e11b81526004016108e192919061171e565b610ebc610f0c565b600155565b610ec9610f0c565b6001600160a01b038116610ef357604051631e4fbdf760e01b8152600060048201526024016108e1565b610efc81611053565b50565b610f07610f0c565b600355565b6000546001600160a01b03163314610a665760405163118cdaa760e01b81523360048201526024016108e1565b600082820283811015610f5157600019915050610775565b9392505050565b60006001600160a01b0382163b156110175760408051600481526024810182526020810180516001600160e01b031663313ce56760e01b179052905160009182916001600160a01b03861691610fad9161174d565b600060405180830381855afa9150503d8060008114610fe8576040519150601f19603f3d011682016040523d82523d6000602084013e610fed565b606091505b50915091508115611014578080602001905181019061100c9190611769565b949350505050565b50505b506012919050565b6000818311156110325750808203610775565b50600092915050565b600081830a83811015610f5157600019915050610775565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b511590565b815181516000918491849110156110c457600092505050610775565b805160005b81811015611133578281815181106110e3576110e36116ce565b602001015160f81c60f81b6001600160f81b03191684828151811061110a5761110a6116ce565b01602001516001600160f81b0319161461112b576000945050505050610775565b6001016110c9565b5060019695505050505050565b828054828255906000526020600020908101928215611195579160200282015b8281111561119557825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611160565b506111a19291506111f7565b5090565b8280548282559060005260206000209081019282156111eb579160200282015b828111156111eb57825182906111db90826117da565b50916020019190600101906111c5565b506111a192915061120c565b5b808211156111a157600081556001016111f8565b808211156111a15760006112208282611229565b5060010161120c565b508054611235906116e4565b6000825580601f10611245575050565b601f016020900490600052602060002090810190610efc91906111f7565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156112a2576112a2611263565b604052919050565b600067ffffffffffffffff8211156112c4576112c4611263565b5060051b60200190565b80356001600160a01b03811681146112e557600080fd5b919050565b600060208083850312156112fd57600080fd5b823567ffffffffffffffff81111561131457600080fd5b8301601f8101851361132557600080fd5b8035611338611333826112aa565b611279565b81815260059190911b8201830190838101908783111561135757600080fd5b928401925b8284101561137c5761136d846112ce565b8252928401929084019061135c565b979650505050505050565b6000806040838503121561139a57600080fd5b6113a3836112ce565b946020939093013593505050565b6000602082840312156113c357600080fd5b610f51826112ce565b6000602082840312156113de57600080fd5b5035919050565b600080604083850312156113f857600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156114485783516001600160a01b031683529284019291840191600101611423565b50909695505050505050565b6000806020838503121561146757600080fd5b823567ffffffffffffffff8082111561147f57600080fd5b818501915085601f83011261149357600080fd5b8135818111156114a257600080fd5b8660208260051b85010111156114b757600080fd5b60209290920196919550909350505050565b60005b838110156114e45781810151838201526020016114cc565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561155a57878503603f190184528151805180875261153b818989018a85016114c9565b601f01601f191695909501860194509285019290850190600101611514565b5092979650505050505050565b6000806020838503121561157a57600080fd5b823567ffffffffffffffff8082111561159257600080fd5b818501915085601f8301126115a657600080fd5b8135818111156115b557600080fd5b8660208285010111156114b757600080fd5b600060208083850312156115da57600080fd5b823567ffffffffffffffff808211156115f257600080fd5b8185019150601f868184011261160757600080fd5b8235611615611333826112aa565b81815260059190911b8401850190858101908983111561163457600080fd5b8686015b838110156116c0578035868111156116505760008081fd5b8701603f81018c136116625760008081fd5b8881013560408882111561167857611678611263565b611689828901601f19168c01611279565b8281528e8284860101111561169e5760008081fd5b828285018d83013760009281018c019290925250845250918701918701611638565b509998505050505050505050565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806116f857607f821691505b60208210810361171857634e487b7160e01b600052602260045260246000fd5b50919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b6000825161175f8184602087016114c9565b9190910192915050565b60006020828403121561177b57600080fd5b815160ff81168114610f5157600080fd5b601f821115610a4f57600081815260208120601f850160051c810160208610156117b35750805b601f850160051c820191505b818110156117d2578281556001016117bf565b505050505050565b815167ffffffffffffffff8111156117f4576117f4611263565b6118088161180284546116e4565b8461178c565b602080601f83116001811461183d57600084156118255750858301515b600019600386901b1c1916600185901b1785556117d2565b600085815260208120601f198616915b8281101561186c5788860151825594840194600190910190840161184d565b508582101561188a5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea26469706673582212202b4c3ff557a082e539c978e586c56bc7a98b1b6fac0a21e07f38b7cc36d4267364736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} }