0 txs
4 calls
constructor
No constructor.
functions
activeMarkets
viewfunction activeMarkets(uint256 index, uint256 pageSize) view returns (address[])
activeMarketsPerUser
viewfunction activeMarketsPerUser(uint256 index, uint256 pageSize, address user) view returns (address[])
addressManager
viewfunction addressManager() view returns (address)
canResolveMarket
viewfunction canResolveMarket(address market) view returns (bool)
chainedSpeedMarketMastercopy
viewfunction chainedSpeedMarketMastercopy() view returns (address)
currentRisk
viewfunction currentRisk() view returns (uint256)
getLengths
viewfunction getLengths(address user) view returns (uint256[4])
lastPauseTime
viewfunction lastPauseTime() view returns (uint256)
maturedMarkets
viewfunction maturedMarkets(uint256 index, uint256 pageSize) view returns (address[])
maturedMarketsPerUser
viewfunction maturedMarketsPerUser(uint256 index, uint256 pageSize, address user) view returns (address[])
maxBuyinAmount
viewfunction maxBuyinAmount() view returns (uint256)
maxChainedMarkets
viewfunction maxChainedMarkets() view returns (uint256)
maxProfitPerIndividualMarket
viewfunction maxProfitPerIndividualMarket() view returns (uint256)
maxRisk
viewfunction maxRisk() view returns (uint256)
maxTimeFrame
viewfunction maxTimeFrame() view returns (uint64)
minBuyinAmount
viewfunction minBuyinAmount() view returns (uint256)
minChainedMarkets
viewfunction minChainedMarkets() view returns (uint256)
minTimeFrame
viewfunction minTimeFrame() view returns (uint64)
multicollateralEnabled
viewfunction multicollateralEnabled() view returns (bool)
nominatedOwner
viewfunction nominatedOwner() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
payoutMultipliers
viewfunction payoutMultipliers(uint256) view returns (uint256)
sUSD
viewfunction sUSD() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
createNewMarket
nonpayablefunction createNewMarket(tuple _params)
initialize
nonpayablefunction initialize(address _owner, address _sUSD)
initNonReentrant
nonpayablefunction initNonReentrant()
nominateNewOwner
nonpayablefunction nominateNewOwner(address _owner)
offrampHelper
nonpayablefunction offrampHelper(address user, uint256 amount)
resolveMarketCompatibleBackwards
nonpayablefunction resolveMarketCompatibleBackwards(address _market, int64[] _finalPrices, bool _isManually)
resolveMarketWithPrices
nonpayablefunction resolveMarketWithPrices(address _market, int64[] _finalPrices, bool _isManually)
setAddressManager
nonpayablefunction setAddressManager(address _addressManager)
setLimitParams
nonpayablefunction setLimitParams(uint64 _minTimeFrame, uint64 _maxTimeFrame, uint256 _minChainedMarkets, uint256 _maxChainedMarkets, uint256 _minBuyinAmount, uint256 _maxBuyinAmount, uint256 _maxProfitPerIndividualMarket, uint256 _maxRisk, uint256[] _payoutMultipliers)
setMastercopy
nonpayablefunction setMastercopy(address _mastercopy)
setMultiCollateralOnOffRampEnabled
nonpayablefunction setMultiCollateralOnOffRampEnabled(bool _enabled)
setOwner
nonpayablefunction setOwner(address _owner)
setPaused
nonpayablefunction setPaused(bool _paused)
setSusdAddress
nonpayablefunction setSusdAddress(address _sUSD)
transferAmount
nonpayablefunction transferAmount(address _collateral, address _destination, uint256 _amount)
transferOwnershipAtInit
nonpayablefunction transferOwnershipAtInit(address proxyAddress)
events
AddressManagerChanged
event AddressManagerChanged(address _addressManager)
AmountTransfered
event AmountTransfered(address _collateral, address _destination, uint256 _amount)
LimitParamsChanged
event LimitParamsChanged(uint64 _minTimeFrame, uint64 _maxTimeFrame, uint256 _minChainedMarkets, uint256 _maxChainedMarkets, uint256 _minBuyinAmount, uint256 _maxBuyinAmount, uint256 _maxProfitPerIndividualMarket, uint256 _maxRisk, uint256[] _payoutMultipliers)
MarketCreated
event MarketCreated(address market, address user, bytes32 asset, uint64 timeFrame, uint64 strikeTime, int64 strikePrice, uint8[] directions, uint256 buyinAmount, uint256 payoutMultiplier, uint256 safeBoxImpact)
MarketResolved
event MarketResolved(address market, bool userIsWinner)
MastercopyChanged
event MastercopyChanged(address mastercopy)
MultiCollateralOnOffRampEnabled
event MultiCollateralOnOffRampEnabled(bool _enabled)
OwnerChanged
event OwnerChanged(address oldOwner, address newOwner)
OwnerNominated
event OwnerNominated(address newOwner)
PauseChanged
event PauseChanged(bool isPaused)
ReferrerPaid
event ReferrerPaid(address refferer, address trader, uint256 amount, uint256 volume)
SusdAddressChanged
event SusdAddressChanged(address _sUSD)
errors
AssetNotSupported
error AssetNotSupported()
CanNotResolve
error CanNotResolve()
CanOnlyBeCalledFromResolver
error CanOnlyBeCalledFromResolver()
EtherTransferFailed
error EtherTransferFailed()
InvalidBuyinAmount
error InvalidBuyinAmount()
InvalidNumberOfDirections
error InvalidNumberOfDirections()
InvalidOffRampCollateral
error InvalidOffRampCollateral()
InvalidPrice
error InvalidPrice()
InvalidTimeFrame
error InvalidTimeFrame()
MinChainedMarketsError
error MinChainedMarketsError()
MulticollateralOnrampDisabled
error MulticollateralOnrampDisabled()
NotEnoughReceivedViaOnramp
error NotEnoughReceivedViaOnramp()
OnlyCreatorAllowed
error OnlyCreatorAllowed()
OnlyMarketOwner
error OnlyMarketOwner()
OnlyWhitelistedAddresses
error OnlyWhitelistedAddresses()
OutOfLiquidity
error OutOfLiquidity()
ProfitTooHigh
error ProfitTooHigh()
creation bytecode
0x608060405234801561001057600080fd5b50614a4d806100206000396000f3fe60806040526004361061024a5760003560e01c80635c975abb11610139578063999045a0116100b6578063dc56e7b31161007a578063dc56e7b3146106ee578063e73efc9b14610704578063ebc7977214610724578063f823c64314610739578063f9b52ef51461074f578063ffde0f971461076f57600080fd5b8063999045a01461064d57806399c18e7e1461066d5780639fc427031461068e578063c3b83f5f146106ae578063c80a4fa5146106ce57600080fd5b806382e59f57116100fd57806382e59f57146105ac57806389c6318d146105cc5780638da5cb5b146105ec57806391b4ded9146106125780639324cac71461062857600080fd5b80635c975abb1461052757806368b9f66b146105415780636c9259f4146105615780636dcf6def1461057757806379ba50971461059757600080fd5b806316c38b3c116101c757806323b312151161018b57806323b312151461049157806335f12752146104a75780633ab76e9f146104c7578063485cc955146104e757806353a47bb71461050757600080fd5b806316c38b3c146103c55780631994c4f9146103e55780631b1ad49d146104125780631f50899b146104515780632236aa651461047157600080fd5b806312039b6d1161020e57806312039b6d1461031257806312aa38331461033f57806313af40351461035557806314527f3a146103755780631627540c146103a557600080fd5b806301f4747114610256578063023fb259146102785780630652b57a146102ae57806307b53bb4146102ce5780630bfd50ce146102f257600080fd5b3661025157005b600080fd5b34801561026257600080fd5b50610276610271366004613f2c565b610785565b005b34801561028457600080fd5b50610298610293366004613ef4565b6107e1565b6040516102a59190614510565b60405180910390f35b3480156102ba57600080fd5b506102766102c9366004613ef4565b610834565b3480156102da57600080fd5b506102e460105481565b6040519081526020016102a5565b3480156102fe57600080fd5b5061027661030d366004614115565b610892565b34801561031e57600080fd5b5061033261032d366004614205565b610b47565b6040516102a59190614475565b34801561034b57600080fd5b506102e4600f5481565b34801561036157600080fd5b50610276610370366004613ef4565b610b77565b34801561038157600080fd5b50610395610390366004613ef4565b610c8a565b60405190151581526020016102a5565b3480156103b157600080fd5b506102766103c0366004613ef4565b610eb2565b3480156103d157600080fd5b506102766103e0366004614034565b610f05565b3480156103f157600080fd5b50601554610405906001600160a01b031681565b6040516102a59190614390565b34801561041e57600080fd5b50600e5461043990600160401b90046001600160401b031681565b6040516001600160401b0390911681526020016102a5565b34801561045d57600080fd5b5061027661046c366004613ef4565b610f7b565b34801561047d57600080fd5b5061027661048c366004613f6c565b610fce565b34801561049d57600080fd5b506102e4600c5481565b3480156104b357600080fd5b50600e54610439906001600160401b031681565b3480156104d357600080fd5b50601654610405906001600160a01b031681565b3480156104f357600080fd5b50610276610502366004613fd1565b61112a565b34801561051357600080fd5b50600154610405906001600160a01b031681565b34801561053357600080fd5b506003546103959060ff1681565b34801561054d57600080fd5b5061027661055c366004614034565b611216565b34801561056d57600080fd5b506102e460115481565b34801561058357600080fd5b50610276610592366004614009565b61139d565b3480156105a357600080fd5b50610276611469565b3480156105b857600080fd5b506102766105c7366004614259565b611554565b3480156105d857600080fd5b506103326105e73660046141e4565b61162a565b3480156105f857600080fd5b50600054610405906201000090046001600160a01b031681565b34801561061e57600080fd5b506102e460025481565b34801561063457600080fd5b506005546104059061010090046001600160a01b031681565b34801561065957600080fd5b50610276610668366004613ef4565b611641565b34801561067957600080fd5b5060155461039590600160a01b900460ff1681565b34801561069a57600080fd5b506103326106a9366004614205565b611699565b3480156106ba57600080fd5b506102766106c9366004613ef4565b6116bf565b3480156106da57600080fd5b506102e46106e93660046141b4565b6117c2565b3480156106fa57600080fd5b506102e460135481565b34801561071057600080fd5b5061033261071f3660046141e4565b6117e3565b34801561073057600080fd5b506102766117f1565b34801561074557600080fd5b506102e4600d5481565b34801561075b57600080fd5b5061027661076a366004613f6c565b61184f565b34801561077b57600080fd5b506102e460145481565b61078d6119ad565b6107a16001600160a01b0384168383611a27565b7f3dfef6507ded35b9ec518bb3532736bd85a598bdcb440fdd2289ce92a771e7978383836040516107d493929190614438565b60405180910390a1505050565b6107e9613cfe565b506040805160808101825260065481526008546020808301919091526001600160a01b039093166000818152600a85528381205483850152908152600b909352912054606082015290565b61083c6119ad565b601680546001600160a01b0319166001600160a01b0383161790556040517f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b90610887908390614390565b60405180910390a150565b6001600460008282546108a59190614790565b909155505060045460035460ff161561092b5760405162461bcd60e51b815260206004820152603c60248201527f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642060448201527f7768696c652074686520636f6e7472616374206973207061757365640000000060648201526084015b60405180910390fd5b60165460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906109859060040160208082526016908201527529b832b2b226b0b935b2ba39a0a6a6a1b932b0ba37b960511b604082015260600190565b60206040518083038186803b15801561099d57600080fd5b505afa1580156109b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d59190613f10565b9050336001600160a01b03821614610a005760405163027cbd1b60e61b815260040160405180910390fd5b601654604080516351cfd60960e11b815290516000926001600160a01b03169163a39fac129160048083019260c0929190829003018186803b158015610a4557600080fd5b505afa158015610a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7d919061406c565b90506000806000806000610a918987611a7d565b9450945094509450945060006040518060c001604052808b610ab29061487b565b81526020018581526020018481526020018381526020018715158152602001866001600160a01b03168152509050610aea8188611d97565b50505050505050506004548114610b435760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610922565b5050565b6001600160a01b0381166000908152600a60205260409020606090610b6d9085856124ea565b90505b9392505050565b6001600160a01b038116610bc95760405162461bcd60e51b815260206004820152601960248201527804f776e657220616464726573732063616e6e6f74206265203603c1b6044820152606401610922565b600154600160a01b900460ff1615610c355760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b6064820152608401610922565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b038316620100000262010000600160b01b03199091161781556040516000805160206149f8833981519152916108879184906143a4565b6000610c9760068361262e565b610ca357506000919050565b6000829050806001600160a01b0316633f6fa6556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ce157600080fd5b505afa158015610cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d199190614050565b15610d275750600092915050565b60006001826001600160a01b031663e004b5bf6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6457600080fd5b505afa158015610d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9c91906142fd565b610da69190614858565b60ff16826001600160a01b0316638b13b64b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610de257600080fd5b505afa158015610df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1a919061423d565b610e249190614812565b826001600160a01b03166320c1bb466040518163ffffffff1660e01b815260040160206040518083038186803b158015610e5d57600080fd5b505afa158015610e71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e95919061423d565b610e9f91906147a8565b6001600160401b03164211949350505050565b610eba6119ad565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610887908390614390565b610f0d6119ad565b60035460ff1615158115151415610f215750565b6003805460ff191682151590811790915560ff1615610f3f57426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec590602001610887565b50565b610f836119ad565b601580546001600160a01b0319166001600160a01b0383161790556040517fe9f33266a193fa018a5d4acaa6790d296c2344e2edcb5647eee2a01575d39b3690610887908390614390565b60165460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190610ffc90600401614574565b60206040518083038186803b15801561101457600080fd5b505afa158015611028573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104c9190613f10565b6001600160a01b0316336001600160a01b03161415801561107e57506000546201000090046001600160a01b03163314155b1561109c57604051631fada62160e21b815260040160405180910390fd5b6110a584610c8a565b6110c2576040516309f4985b60e21b815260040160405180910390fd5b6000546201000090046001600160a01b031633146110e057806110e3565b60005b9050611124848484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508692506126b0915050565b50505050565b600054610100900460ff166111455760005460ff1615611149565b303b155b6111ac5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610922565b600054610100900460ff161580156111ce576000805461ffff19166101011790555b6111d783610b77565b6111df6117f1565b60058054610100600160a81b0319166101006001600160a01b038516021790558015611211576000805461ff00191690555b505050565b61121e6119ad565b60165460408051639a618c0f60e01b815290516000926001600160a01b031691639a618c0f916004808301926020929190829003018186803b15801561126357600080fd5b505afa158015611277573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129b9190613f10565b90506001600160a01b038116156113445760055461010090046001600160a01b031663095ea7b382846112cf5760006112d3565b6000195b6040518363ffffffff1660e01b81526004016112f092919061445c565b602060405180830381600087803b15801561130a57600080fd5b505af115801561131e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113429190614050565b505b60158054831515600160a01b0260ff60a01b199091161790556040517fb76eab56cfa3088dda43a9a4b3ea4bb7685b8007428d4a65248fdaa763d339f89061139190841515815260200190565b60405180910390a15050565b60165460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906113cb90600401614574565b60206040518083038186803b1580156113e357600080fd5b505afa1580156113f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141b9190613f10565b6001600160a01b0316336001600160a01b03161461144c57604051631fada62160e21b815260040160405180910390fd5b600554610b439061010090046001600160a01b0316833384612f0e565b6001546001600160a01b031633146114e15760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610922565b6000546001546040516000805160206149f883398151915292611518926001600160a01b03620100009092048216929116906143a4565b60405180910390a1600180546000805462010000600160b01b0319166001600160a01b03831662010000021790556001600160a01b0319169055565b61155c6119ad565b6001881161157d5760405163144541b560e31b815260040160405180910390fd5b600e80546001600160401b038b8116600160401b026001600160801b0319909216908d1617179055600c889055600d879055600f86905560108590556011849055601383905560006014556115d460178383613d1c565b507ff286a7833e5a7fc3330b62b2ca952b0ab1e44791f67a465649f7da03516da2368a8a8a8a8a8a8a8a8a8a6040516116169a999897969594939291906146b4565b60405180910390a150505050505050505050565b6060611638600884846124ea565b90505b92915050565b6116496119ad565b60058054610100600160a81b0319166101006001600160a01b038416021790556040517fba10f1023c43b7797db2ff58a62990dbbb24aa29adb28dae7424301e38d99ed990610887908390614390565b6001600160a01b0381166000908152600b60205260409020606090610b6d9085856124ea565b6116c76119ad565b6001600160a01b03811661170f5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610922565b600154600160a81b900460ff161561175f5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b6044820152606401610922565b600080546001600160a01b038084166201000090810262010000600160b01b031990931692909217928390556001805460ff60a81b1916600160a81b1790556040516000805160206149f8833981519152936108879390049091169084906143a4565b601781815481106117d257600080fd5b600091825260209091200154905081565b6060611638600684846124ea565b60055460ff161561183a5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610922565b6005805460ff19166001908117909155600455565b6016546040805163366843a560e21b815290516000926001600160a01b03169163d9a10e94916004808301926020929190829003018186803b15801561189457600080fd5b505afa1580156118a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cc9190613f10565b60405162d9267b60e31b81529091506001600160a01b038216906306c933d8906118fa903390600401614390565b60206040518083038186803b15801561191257600080fd5b505afa158015611926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194a9190614050565b611967576040516370ba798b60e01b815260040160405180910390fd5b6119a685858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250612f2f915050565b5050505050565b6000546201000090046001600160a01b03163314611a255760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b6064820152608401610922565b565b6112118363a9059cbb60e01b8484604051602401611a4692919061445c565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526132b4565b6000806000806000808660a001516001600160a01b031663a2f6532189610100016020810190611aad9190613ef4565b6040518263ffffffff1660e01b8152600401611ac99190614390565b60206040518083038186803b158015611ae157600080fd5b505afa158015611af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b199190614050565b90508080611b4157506000611b366101208a016101008b01613ef4565b6001600160a01b0316145b9550808015611b6b57506000611b5f6101208a016101008b01613ef4565b6001600160a01b031614155b15611b8957611b8261012089016101008a01613ef4565b9450611b9d565b60055461010090046001600160a01b031694505b8660a001516001600160a01b0316633c1ae421866040518263ffffffff1660e01b8152600401611bcd9190614390565b60206040518083038186803b158015611be557600080fd5b505afa158015611bf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1d91906141cc565b91508515611d585760055461012089013594508493506001600160a01b038681166101009092041614611d53578660a001516001600160a01b03166357dfa0ff6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c8757600080fd5b505afa158015611c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbf9190613f10565b60055460405163325f3df760e11b81526001600160a01b03928316926364be7bee92611d00928a92610100909204909116906101208e013590600401614438565b60206040518083038186803b158015611d1857600080fd5b505afa158015611d2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5091906141cc565b92505b611d8c565b611d86611d6860208a018a613ef4565b611d7a6101208b016101008c01613ef4565b8a61012001358a613386565b92508293505b509295509295909350565b611dcd60408051606080820183526000808352602080840182905284519283018552818352820181905281840152909182015290565b60a0820151835160200151604051630ac0f68f60e21b81526001600160a01b0390921691632b03da3c91611e079160040190815260200190565b60606040518083038186803b158015611e1f57600080fd5b505afa158015611e33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e57919061414d565b6040820181905251611e7c5760405163981a2a2b60e01b815260040160405180910390fd5b600f5483604001511080611e9557506010548360400151115b15611eb357604051633575fcab60e01b815260040160405180910390fd5b600e548351604001516001600160401b0391821691161080611eef5750600e548351604001516001600160401b03600160401b90920482169116115b15611f0d57604051630857121760e01b815260040160405180910390fd5b600c54835160800151511080611f2a5750600d5483516080015151115b15611f48576040516337a7ba3f60e01b815260040160405180910390fd5b600c5483516080015151601791611f619160ff16614841565b81548110611f7f57634e487b7160e01b600052603260045260246000fd5b600091825260209182902001548282018190529084015184516080015151611fa6926136ca565b8152606083015115611fec57670de0b6b3a76400008360600151670de0b6b3a7640000611fd39190614790565b8251611fdf91906147f3565b611fe991906147d3565b81525b6000600560019054906101000a90046001600160a01b03166001600160a01b03168460a001516001600160a01b03161461212b578260a001516001600160a01b03166357dfa0ff6040518163ffffffff1660e01b815260040160206040518083038186803b15801561205d57600080fd5b505afa158015612071573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120959190613f10565b60a0850151600554845160405163325f3df760e11b81526001600160a01b03948516946364be7bee946120d694909361010090910490911691600401614438565b60206040518083038186803b1580156120ee57600080fd5b505afa158015612102573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212691906141cc565b61212e565b81515b90506011548111156121535760405163035c9b7f60e11b815260040160405180910390fd5b60408401516121629082614841565b601460008282546121739190614790565b9091555050601354601454111561219d5760405163725128bd60e01b815260040160405180910390fd5b5082608001511561220a576000670de0b6b3a7640000826040015160200151670de0b6b3a76400006121cf9190614790565b85602001516121de91906147f3565b6121e891906147d3565b84515160a0860151919250612208916001600160a01b0316903084612f0e565b505b601554600090612222906001600160a01b0316613713565b604080516101a0810182523081528651516001600160a01b03908116602080840191909152885101518284015287518301516001600160401b03908116606084015288519093015193945084169263043965a3926080830191612286911642614790565b6001600160401b03168152602001876000015160800151518860000151604001516001600160401b03166122ba91906147f3565b6122c49042614790565b6001600160401b031681526020018760000151606001516000015160070b81526020018760000151608001518152602001876020015181526020018560400151602001518152602001856020015181526020018760a001516001600160a01b0316815260200185600001518152506040518263ffffffff1660e01b815260040161234e91906145a5565b600060405180830381600087803b15801561236857600080fd5b505af115801561237c573d6000803e3d6000fd5b50505050836080015180156123a9575060055460a08501516001600160a01b039081166101009092041614155b156123d157815160a08501516123cc916001600160a01b03909116908390611a27565b6123f1565b81516005546123f1916101009091046001600160a01b0316908390611a27565b61241f846000015160000151856000015160e0015186602001518560400151602001518860a00151886137b0565b5061242b600682613a1e565b8351516001600160a01b03166000908152600a6020526040902061244f9082613a1e565b8351805160208201516040830151608090930151517fd061c182aaa319a32c4cb7717e176ffddabdf9a1d7f1dc1e5d8296ffc9eead1d938593929161249d906001600160401b0383166147f3565b6124a79042614790565b89516060810151516080909101516020808d01518b8201516040808e01519093015192516124dc9a99989796959493906143be565b60405180910390a150505050565b606060006124f88385614790565b8554909150811115612508575083545b838111612525575050604080516000815260208101909152610b70565b60006125318583614841565b90506000816001600160401b0381111561255b57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612584578160200160208202803683370190505b50905060005b82811015612623578761259d8883614790565b815481106125bb57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160009054906101000a90046001600160a01b03168282815181106125f957634e487b7160e01b600052603260045260246000fd5b6001600160a01b03909216602092830291909101909101528061261b81614958565b91505061258a565b509695505050505050565b815460009061263f5750600061163b565b6001600160a01b0382166000908152600184016020526040902054801515806126a85750826001600160a01b03168460000160008154811061269157634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316145b949350505050565b60405163089eec6760e21b815283906001600160a01b0382169063227bb19c906126e090869086906004016144c2565b600060405180830381600087803b1580156126fa57600080fd5b505af115801561270e573d6000803e3d6000fd5b50505050806001600160a01b0316633f6fa6556040518163ffffffff1660e01b815260040160206040518083038186803b15801561274b57600080fd5b505afa15801561275f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127839190614050565b15612e5c57612793600685613a70565b61279e600885613a1e565b6000816001600160a01b0316634f8632ba6040518163ffffffff1660e01b815260040160206040518083038186803b1580156127d957600080fd5b505afa1580156127ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128119190613f10565b6001600160a01b0381166000908152600a60205260409020909150612836908661262e565b1561285d576001600160a01b0381166000908152600a6020526040902061285d9086613a70565b6001600160a01b0381166000908152600b6020526040902061287f9086613a1e565b6000826001600160a01b0316631fcc8bb26040518163ffffffff1660e01b815260040160206040518083038186803b1580156128ba57600080fd5b505afa1580156128ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f291906141cc565b905060006129e182856001600160a01b031663e004b5bf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561293357600080fd5b505afa158015612947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061296b91906142fd565b866001600160a01b0316635c8127376040518163ffffffff1660e01b815260040160206040518083038186803b1580156129a457600080fd5b505afa1580156129b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129dc91906141cc565b6136ca565b90506000601660009054906101000a90046001600160a01b03166001600160a01b031663a39fac126040518163ffffffff1660e01b815260040160c06040518083038186803b158015612a3357600080fd5b505afa158015612a47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6b919061406c565b905060008160a001516001600160a01b0316633c1ae421876001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b158015612abb57600080fd5b505afa158015612acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af39190613f10565b6040518263ffffffff1660e01b8152600401612b0f9190614390565b60206040518083038186803b158015612b2757600080fd5b505afa158015612b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5f91906141cc565b90508015612b9157670de0b6b3a7640000612b7a8282614790565b612b8490856147f3565b612b8e91906147d3565b92505b6000600560019054906101000a90046001600160a01b03166001600160a01b0316876001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b158015612beb57600080fd5b505afa158015612bff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c239190613f10565b6001600160a01b031614612daf578260a001516001600160a01b03166357dfa0ff6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c6e57600080fd5b505afa158015612c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ca69190613f10565b6001600160a01b03166364be7bee886001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b158015612ced57600080fd5b505afa158015612d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d259190613f10565b60055460405160e084901b6001600160e01b0319168152612d5a929161010090046001600160a01b0316908990600401614438565b60206040518083038186803b158015612d7257600080fd5b505afa158015612d86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612daa91906141cc565b612db1565b835b9050866001600160a01b0316633a2c1e556040518163ffffffff1660e01b815260040160206040518083038186803b158015612dec57600080fd5b505afa158015612e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e249190614050565b612e5557806014541115612e4f578060146000828254612e449190614841565b90915550612e559050565b60006014555b5050505050505b7fe1ed361a9267ee898f74c2ae2b43810623c3ff7fbafed1bf79c651e5122bbd5284856001600160a01b0316633a2c1e556040518163ffffffff1660e01b815260040160206040518083038186803b158015612eb757600080fd5b505afa158015612ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eef9190614050565b604080516001600160a01b0390931683529015156020830152016124dc565b611124846323b872dd60e01b858585604051602401611a4693929190614438565b60405163089eec6760e21b815283906001600160a01b0382169063227bb19c90612f5f90869086906004016144c2565b600060405180830381600087803b158015612f7957600080fd5b505af1158015612f8d573d6000803e3d6000fd5b50505050806001600160a01b0316633f6fa6556040518163ffffffff1660e01b815260040160206040518083038186803b158015612fca57600080fd5b505afa158015612fde573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130029190614050565b15612e5c57613012600685613a70565b61301d600885613a1e565b6000816001600160a01b0316634f8632ba6040518163ffffffff1660e01b815260040160206040518083038186803b15801561305857600080fd5b505afa15801561306c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130909190613f10565b6001600160a01b0381166000908152600a602052604090209091506130b5908661262e565b156130dc576001600160a01b0381166000908152600a602052604090206130dc9086613a70565b6001600160a01b0381166000908152600b602052604090206130fe9086613a1e565b6000826001600160a01b0316631fcc8bb26040518163ffffffff1660e01b815260040160206040518083038186803b15801561313957600080fd5b505afa15801561314d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061317191906141cc565b905060006131b282856001600160a01b031663e004b5bf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561293357600080fd5b9050836001600160a01b0316633a2c1e556040518163ffffffff1660e01b815260040160206040518083038186803b1580156131ed57600080fd5b505afa158015613201573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132259190614050565b613256578060145411156132505780601460008282546132459190614841565b909155506132569050565b60006014555b5050507fe1ed361a9267ee898f74c2ae2b43810623c3ff7fbafed1bf79c651e5122bbd5284856001600160a01b0316633a2c1e556040518163ffffffff1660e01b815260040160206040518083038186803b158015612eb757600080fd5b6000613309826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613bf39092919063ffffffff16565b80519091501561121157808060200190518101906133279190614050565b6112115760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610922565b601554600090600160a01b900460ff166133b35760405163355da01160e11b815260040160405180910390fd5b6005546040516370a0823160e01b815260009161010090046001600160a01b0316906370a08231906133e9903090600401614390565b60206040518083038186803b15801561340157600080fd5b505afa158015613415573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343991906141cc565b60608401519091506134566001600160a01b038716883088612f0e565b60405163095ea7b360e01b81526001600160a01b0387169063095ea7b390613484908490899060040161445c565b602060405180830381600087803b15801561349e57600080fd5b505af11580156134b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134d69190614050565b506040516322ceb11360e21b81526000906001600160a01b03831690638b3ac44c90613508908a908a9060040161445c565b602060405180830381600087803b15801561352257600080fd5b505af1158015613536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355a91906141cc565b905060008560a001519050670de0b6b3a7640000816001600160a01b031663d69fb6686040518163ffffffff1660e01b815260040160206040518083038186803b1580156135a757600080fd5b505afa1580156135bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135df91906141cc565b6135f190670de0b6b3a7640000614841565b6135fb90846147f3565b61360591906147d3565b6005546040516370a0823160e01b8152919650600091869161010090046001600160a01b0316906370a0823190613640903090600401614390565b60206040518083038186803b15801561365857600080fd5b505afa15801561366c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061369091906141cc565b61369a9190614841565b9050858110156136bd57604051633c923d8b60e21b815260040160405180910390fd5b5050505050949350505050565b8260005b8360ff168160ff16101561370b57670de0b6b3a76400006136ef84846147f3565b6136f991906147d3565b915061370481614973565b90506136ce565b509392505050565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b0381166137ab5760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606401610922565b919050565b60208101516000906001600160a01b038116156139df5760006001600160a01b038816156138405760405163bbddaca360e01b81526001600160a01b0383169063bbddaca390613806908b908d906004016143a4565b600060405180830381600087803b15801561382057600080fd5b505af1158015613834573d6000803e3d6000fd5b505050508790506138bf565b604051639ca423b360e01b81526001600160a01b03831690639ca423b39061386c908c90600401614390565b60206040518083038186803b15801561388457600080fd5b505afa158015613898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138bc9190613f10565b90505b6001600160a01b038116156139dd5760405163c7d1f5f160e01b81526000906001600160a01b0384169063c7d1f5f1906138fd908590600401614390565b60206040518083038186803b15801561391557600080fd5b505afa158015613929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061394d91906141cc565b905080156139db57670de0b6b3a7640000613968828a6147f3565b61397291906147d3565b93506139886001600160a01b0387168386611a27565b604080516001600160a01b0380851682528c166020820152908101859052606081018990527f8fa68a6a8e2fc9ff758a6e64afba8bc2f66fb082999a2c5225c8c49633faded49060800160405180910390a15b505b505b82516126239083670de0b6b3a76400006139f9898b6147f3565b613a0391906147d3565b613a0d9190614841565b6001600160a01b0387169190611a27565b613a28828261262e565b610b435781546001600160a01b038216600081815260018086016020908152604083208590559084018655858252902090910180546001600160a01b03191690911790555050565b613a7a828261262e565b613abc5760405162461bcd60e51b815260206004820152601360248201527222b632b6b2b73a103737ba1034b71039b2ba1760691b6044820152606401610922565b6001600160a01b0381166000908152600180840160205260408220548454909291613ae691614841565b9050808214613b8e576000846000018281548110613b1457634e487b7160e01b600052603260045260246000fd5b60009182526020909120015485546001600160a01b0390911691508190869085908110613b5157634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260018601909152604090208290555b8354849080613bad57634e487b7160e01b600052603160045260246000fd5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0394909416815260019490940190925250506040812055565b6060610b6d848460008585843b613c4c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610922565b600080866001600160a01b03168587604051613c689190614374565b60006040518083038185875af1925050503d8060008114613ca5576040519150601f19603f3d011682016040523d82523d6000602084013e613caa565b606091505b5091509150613cba828286613cc5565b979650505050505050565b60608315613cd4575081610b70565b825115613ce45782518084602001fd5b8160405162461bcd60e51b81526004016109229190614541565b60405180608001604052806004906020820280368337509192915050565b828054828255906000526020600020908101928215613d57579160200282015b82811115613d57578235825591602001919060010190613d3c565b50613d63929150613d67565b5090565b5b80821115613d635760008155600101613d68565b80356137ab816149bf565b600082601f830112613d97578081fd5b813560206001600160401b03821115613db257613db26149a9565b8160051b613dc1828201614760565b838152828101908684018388018501891015613ddb578687fd5b8693505b85841015613e0957803560028110613df5578788fd5b835260019390930192918401918401613ddf565b50979650505050505050565b60008083601f840112613e26578182fd5b5081356001600160401b03811115613e3c578182fd5b6020830191508360208260051b8501011115613e5757600080fd5b9250929050565b600060808284031215613e6f578081fd5b604051608081018181106001600160401b0382111715613e9157613e916149a9565b6040529050808235600781900b8114613ea957600080fd5b81526020830135613eb9816149e2565b60208201526040830135600381900b8114613ed357600080fd5b6040820152606092830135920191909152919050565b80356137ab816149e2565b600060208284031215613f05578081fd5b8135610b70816149bf565b600060208284031215613f21578081fd5b8151610b70816149bf565b600080600060608486031215613f40578182fd5b8335613f4b816149bf565b92506020840135613f5b816149bf565b929592945050506040919091013590565b60008060008060608587031215613f81578182fd5b8435613f8c816149bf565b935060208501356001600160401b03811115613fa6578283fd5b613fb287828801613e15565b9094509250506040850135613fc6816149d4565b939692955090935050565b60008060408385031215613fe3578182fd5b8235613fee816149bf565b91506020830135613ffe816149bf565b809150509250929050565b6000806040838503121561401b578182fd5b8235614026816149bf565b946020939093013593505050565b600060208284031215614045578081fd5b8135610b70816149d4565b600060208284031215614061578081fd5b8151610b70816149d4565b600060c0828403121561407d578081fd5b60405160c081018181106001600160401b038211171561409f5761409f6149a9565b60405282516140ad816149bf565b815260208301516140bd816149bf565b602082015260408301516140d0816149bf565b604082015260608301516140e3816149bf565b606082015260808301516140f6816149bf565b608082015260a0830151614109816149bf565b60a08201529392505050565b600060208284031215614126578081fd5b81356001600160401b0381111561413b578182fd5b82016101608185031215610b70578182fd5b60006060828403121561415e578081fd5b604051606081018181106001600160401b0382111715614180576141806149a9565b604052825161418e816149d4565b81526020838101519082015260408301516141a8816149e2565b60408201529392505050565b6000602082840312156141c5578081fd5b5035919050565b6000602082840312156141dd578081fd5b5051919050565b600080604083850312156141f6578182fd5b50508035926020909101359150565b600080600060608486031215614219578081fd5b83359250602084013591506040840135614232816149bf565b809150509250925092565b60006020828403121561424e578081fd5b8151610b70816149e2565b6000806000806000806000806000806101208b8d031215614278578788fd5b8a35614283816149e2565b995060208b0135614293816149e2565b985060408b0135975060608b0135965060808b0135955060a08b0135945060c08b0135935060e08b013592506101008b01356001600160401b038111156142d8578283fd5b6142e48d828e01613e15565b915080935050809150509295989b9194979a5092959850565b60006020828403121561430e578081fd5b815160ff81168114610b70578182fd5b6000815180845260208085019450808401835b838110156143695781516002811061435757634e487b7160e01b86526021600452602486fd5b87529582019590820190600101614331565b509495945050505050565b6000825161438681846020870161492c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b038b811682528a166020820152604081018990526001600160401b03888116606083015287166080820152600786900b60a082015261014060c082018190526000906144138382018861431e565b60e0840196909652505061010081019290925261012090910152979650505050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b818110156144b65783516001600160a01b031683529284019291840191600101614491565b50909695505050505050565b604080825283519082018190526000906020906060840190828701845b828110156144fe57815160070b845292840192908401906001016144df565b50505093151592019190915250919050565b60808101818360005b6004811015614538578151835260209283019290910190600101614519565b50505092915050565b602081526000825180602084015261456081604085016020870161492c565b601f01601f19169190910160400192915050565b60208082526017908201527629b832b2b226b0b935b2ba39a0a6a6a932b9b7b63b32b960491b604082015260600190565b602081526145bf6020820183516001600160a01b03169052565b600060208301516145db60408401826001600160a01b03169052565b5060408301516060830152606083015161460060808401826001600160401b03169052565b5060808301516001600160401b03811660a08401525060a08301516001600160401b03811660c08401525060c083015161463f60e084018260070b9052565b5060e08301516101a0610100818186015261465e6101c086018461431e565b908601516101208681019190915286015161014080870191909152860151610160808701919091528601519092506101806146a3818701836001600160a01b03169052565b959095015193019290925250919050565b60006101206001600160401b03808e168452808d166020850152508a60408401528960608401528860808401528760a08401528660c08401528560e08401528061010084015283818401525061014060018060fb1b03841115614715578182fd5b8360051b808683860137929092019091019081529a9950505050505050505050565b60405161010081016001600160401b038111828210171561475a5761475a6149a9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614788576147886149a9565b604052919050565b600082198211156147a3576147a3614993565b500190565b60006001600160401b038083168185168083038211156147ca576147ca614993565b01949350505050565b6000826147ee57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561480d5761480d614993565b500290565b60006001600160401b038083168185168183048111821515161561483857614838614993565b02949350505050565b60008282101561485357614853614993565b500390565b600060ff821660ff84168082101561487257614872614993565b90039392505050565b6000610160823603121561488d578081fd5b614895614737565b61489e83613d7c565b8152602083013560208201526148b660408401613ee9565b60408201526148c83660608501613e5e565b606082015260e08301356001600160401b038111156148e5578283fd5b6148f136828601613d87565b6080830152506149046101008401613d7c565b60a082015261012083013560c08201526149216101408401613d7c565b60e082015292915050565b60005b8381101561494757818101518382015260200161492f565b838111156111245750506000910152565b600060001982141561496c5761496c614993565b5060010190565b600060ff821660ff81141561498a5761498a614993565b60010192915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610f7857600080fd5b8015158114610f7857600080fd5b6001600160401b0381168114610f7857600080fdfeb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159ca2646970667358221220cb9c40d0822c0ea56a98dddcabd651539bbef8aef44b8acfb0aae9290704c74b64736f6c63430008040033