2 txs
2 calls
constructor
constructor(address _oracle, address _adminAddress, address _operatorAddress, uint256 _intervalBlocks, uint256 _bufferBlocks, uint256 _minBetAmount, uint256 _oracleUpdateAllowance)
functions
adminAddress
viewfunction adminAddress() view returns (address)
bufferBlocks
viewfunction bufferBlocks() view returns (uint256)
claimable
viewfunction claimable(uint256 epoch, address user) view returns (bool)
currentEpoch
viewfunction currentEpoch() view returns (uint256)
genesisLockOnce
viewfunction genesisLockOnce() view returns (bool)
genesisStartOnce
viewfunction genesisStartOnce() view returns (bool)
getUserRounds
viewfunction getUserRounds(address user, uint256 cursor, uint256 size) view returns (uint256[], uint256)
intervalBlocks
viewfunction intervalBlocks() view returns (uint256)
ledger
viewfunction ledger(uint256, address) view returns (uint8 position, uint256 amount, bool claimed)
minBetAmount
viewfunction minBetAmount() view returns (uint256)
operatorAddress
viewfunction operatorAddress() view returns (address)
oracleLatestRoundId
viewfunction oracleLatestRoundId() view returns (uint256)
oracleUpdateAllowance
viewfunction oracleUpdateAllowance() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
refundable
viewfunction refundable(uint256 epoch, address user) view returns (bool)
rewardRate
viewfunction rewardRate() view returns (uint256)
rounds
viewfunction rounds(uint256) view returns (uint256 epoch, uint256 startBlock, uint256 lockBlock, uint256 endBlock, int256 lockPrice, int256 closePrice, uint256 totalAmount, uint256 bullAmount, uint256 bearAmount, uint256 rewardBaseCalAmount, uint256 rewardAmount, bool oracleCalled)
TOTAL_RATE
viewfunction TOTAL_RATE() view returns (uint256)
treasuryAmount
viewfunction treasuryAmount() view returns (uint256)
treasuryRate
viewfunction treasuryRate() view returns (uint256)
userRounds
viewfunction userRounds(address, uint256) view returns (uint256)
betBear
payablefunction betBear() payable
betBull
payablefunction betBull() payable
claim
nonpayablefunction claim(uint256 epoch)
claimTreasury
nonpayablefunction claimTreasury()
executeRound
nonpayablefunction executeRound()
genesisLockRound
nonpayablefunction genesisLockRound()
genesisStartRound
nonpayablefunction genesisStartRound()
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
setAdmin
nonpayablefunction setAdmin(address _adminAddress)
setBufferBlocks
nonpayablefunction setBufferBlocks(uint256 _bufferBlocks)
setIntervalBlocks
nonpayablefunction setIntervalBlocks(uint256 _intervalBlocks)
setMinBetAmount
nonpayablefunction setMinBetAmount(uint256 _minBetAmount)
setOperator
nonpayablefunction setOperator(address _operatorAddress)
setOracle
nonpayablefunction setOracle(address _oracle)
setOracleUpdateAllowance
nonpayablefunction setOracleUpdateAllowance(uint256 _oracleUpdateAllowance)
setRewardRate
nonpayablefunction setRewardRate(uint256 _rewardRate)
setTreasuryRate
nonpayablefunction setTreasuryRate(uint256 _treasuryRate)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
events
BetBear
event BetBear(address indexed sender, uint256 indexed currentEpoch, uint256 amount)
BetBull
event BetBull(address indexed sender, uint256 indexed currentEpoch, uint256 amount)
Claim
event Claim(address indexed sender, uint256 indexed currentEpoch, uint256 amount)
ClaimTreasury
event ClaimTreasury(uint256 amount)
EndRound
event EndRound(uint256 indexed epoch, uint256 blockNumber, int256 price)
LockRound
event LockRound(uint256 indexed epoch, uint256 blockNumber, int256 price)
MinBetAmountUpdated
event MinBetAmountUpdated(uint256 indexed epoch, uint256 minBetAmount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Pause
event Pause(uint256 epoch)
Paused
event Paused(address account)
RatesUpdated
event RatesUpdated(uint256 indexed epoch, uint256 rewardRate, uint256 treasuryRate)
RewardsCalculated
event RewardsCalculated(uint256 indexed epoch, uint256 rewardBaseCalAmount, uint256 rewardAmount, uint256 treasuryAmount)
StartRound
event StartRound(uint256 indexed epoch, uint256 blockNumber)
Unpause
event Unpause(uint256 epoch)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x6080604052605a600c55600a600d556010805461ffff191690553480156200002657600080fd5b50604051620044b0380380620044b0833981810160405260e08110156200004c57600080fd5b508051602082015160408301516060840151608085015160a086015160c090960151949593949293919290919060006200008562000132565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b19169055600a80546001600160a01b03199081166001600160a01b03998a161790915560078054821697891697909717909655600880549096169490961693909317909355600555600691909155600e55600f5562000136565b3390565b61436a80620001466000396000f3fe6080604052600436106102cf5760003560e01c8063821daba111610179578063b3ab15fb116100d6578063e4b725161161008a578063f7fdec2811610064578063f7fdec281461097a578063fa968eea1461098f578063fc6f9468146109a4576102cf565b8063e4b7251614610910578063ec32470314610925578063f2fde38b1461093a576102cf565b8063d0bf9c54116100bb578063d0bf9c541461088b578063d9d55eac146108b5578063dd1f7596146108ca576102cf565b8063b3ab15fb14610821578063cf2f503914610861576102cf565b80639780a7521161012d578063a067455b11610112578063a067455b1461079c578063a0c7f71c146107c6578063b29c299b1461080c576102cf565b80639780a7521461075d5780639e447fc614610772576102cf565b80638c65c81f1161015e5780638c65c81f146106165780638da5cb5b146106a1578063951fd600146106b6576102cf565b8063821daba1146105f95780638456cb5914610601576102cf565b80635c975abb116102325780637285c58b116101e65780637b0a47ee116101c05780637b0a47ee146105895780637b3205f51461059e5780637bf41254146105b3576102cf565b80637285c58b146104bd57806376671808146105345780637adbf97314610549576102cf565b80636c188593116102175780636c1885931461043e578063704b6c0214610468578063715018a6146104a8576102cf565b80635c975abb146104145780636055401114610429576102cf565b80631ec9f34b11610289578063379607f51161026e578063379607f5146103c05780633f4ba83a146103ea578063452fd75a146103ff576102cf565b80631ec9f34b14610384578063368acb09146103ab576102cf565b80630f74174f116102ba5780630f74174f146102f357806310c0ee641461031c578063127effb214610346576102cf565b80623bdc74146102d457806288160f146102eb575b600080fd5b3480156102e057600080fd5b506102e96109b9565b005b6102e9610aa1565b3480156102ff57600080fd5b50610308610e39565b604080519115158252519081900360200190f35b34801561032857600080fd5b506102e96004803603602081101561033f57600080fd5b5035610e47565b34801561035257600080fd5b5061035b610f2d565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561039057600080fd5b50610399610f49565b60408051918252519081900360200190f35b3480156103b757600080fd5b50610399610f4f565b3480156103cc57600080fd5b506102e9600480360360208110156103e357600080fd5b5035610f55565b3480156103f657600080fd5b506102e9611445565b34801561040b57600080fd5b506102e96115a5565b34801561042057600080fd5b5061030861173c565b34801561043557600080fd5b5061039961175d565b34801561044a57600080fd5b506102e96004803603602081101561046157600080fd5b5035611763565b34801561047457600080fd5b506102e96004803603602081101561048b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611827565b3480156104b457600080fd5b506102e9611998565b3480156104c957600080fd5b50610503600480360360408110156104e057600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16611aaf565b6040518084600181111561051357fe5b81526020018381526020018215158152602001935050505060405180910390f35b34801561054057600080fd5b50610399611ade565b34801561055557600080fd5b506102e96004803603602081101561056c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611ae4565b34801561059557600080fd5b50610399611c33565b3480156105aa57600080fd5b506102e9611c39565b3480156105bf57600080fd5b50610308600480360360408110156105d657600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16611ded565b6102e9611f46565b34801561060d57600080fd5b506102e96122db565b34801561062257600080fd5b506106406004803603602081101561063957600080fd5b5035612436565b604080519c8d5260208d019b909b528b8b019990995260608b019790975260808a019590955260a089019390935260c088019190915260e0870152610100860152610120850152610140840152151561016083015251908190036101800190f35b3480156106ad57600080fd5b5061035b612499565b3480156106c257600080fd5b50610702600480360360608110156106d957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602081013590604001356124b5565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b83811015610748578181015183820152602001610730565b50505050905001935050505060405180910390f35b34801561076957600080fd5b506103996125cf565b34801561077e57600080fd5b506102e96004803603602081101561079557600080fd5b50356125d5565b3480156107a857600080fd5b506102e9600480360360208110156107bf57600080fd5b503561270f565b3480156107d257600080fd5b50610308600480360360408110156107e957600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff1661279a565b34801561081857600080fd5b50610399612935565b34801561082d57600080fd5b506102e96004803603602081101561084457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661293a565b34801561086d57600080fd5b506102e96004803603602081101561088457600080fd5b5035612a89565b34801561089757600080fd5b506102e9600480360360208110156108ae57600080fd5b5035612b14565b3480156108c157600080fd5b506102e9612c4c565b3480156108d657600080fd5b50610399600480360360408110156108ed57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135612ed6565b34801561091c57600080fd5b50610399612f04565b34801561093157600080fd5b50610399612f0a565b34801561094657600080fd5b506102e96004803603602081101561095d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612f10565b34801561098657600080fd5b506103086130b1565b34801561099b57600080fd5b506103996130ba565b3480156109b057600080fd5b5061035b6130c0565b60075473ffffffffffffffffffffffffffffffffffffffff163314610a3f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f61646d696e3a207775743f000000000000000000000000000000000000000000604482015290519081900360640190fd5b600980546000909155600754610a6b9073ffffffffffffffffffffffffffffffffffffffff16826130dc565b6040805182815290517f609175abb7f12481e4f200d1ef4fc834e6caac3d9eadba42d664352f6d0932ca9181900360200190a150565b610aa961173c565b15610b1557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b610b1e3361319d565b15610b8a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f636f6e7472616374206e6f7420616c6c6f776564000000000000000000000000604482015290519081900360640190fd5b333214610bf857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f70726f787920636f6e7472616374206e6f7420616c6c6f776564000000000000604482015290519081900360640190fd5b610c036004546131a3565b610c6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f526f756e64206e6f74206265747461626c650000000000000000000000000000604482015290519081900360640190fd5b600e54341015610cc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806140eb602c913960400191505060405180910390fd5b600454600090815260026020908152604080832033845290915290206001015415610d5557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f43616e206f6e6c7920626574206f6e63652070657220726f756e640000000000604482015290519081900360640190fd5b60045460009081526001602052604090206006810154349190610d78908361320f565b60068201556008810154610d8c908361320f565b60088201556004805460009081526002602090815260408083203380855290835281842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081178255808201899055600385528386208754815492830182559087529585902001949094559354815187815291519394909390927f0d8c1fe3e67ab767116a81f122b83c2557a8c2564019cb7c4f83de1aeb1f1f0d928290030190a3505050565b601054610100900460ff1681565b60075473ffffffffffffffffffffffffffffffffffffffff163314610ecd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f61646d696e3a207775743f000000000000000000000000000000000000000000604482015290519081900360640190fd5b600554811115610f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613f946022913960400191505060405180910390fd5b600655565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60095481565b610f5e3361319d565b15610fca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f636f6e7472616374206e6f7420616c6c6f776564000000000000000000000000604482015290519081900360640190fd5b33321461103857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f70726f787920636f6e7472616374206e6f7420616c6c6f776564000000000000604482015290519081900360640190fd5b600081815260016020819052604090912001546110b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f526f756e6420686173206e6f7420737461727465640000000000000000000000604482015290519081900360640190fd5b600081815260016020526040902060030154431161113557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f526f756e6420686173206e6f7420656e64656400000000000000000000000000604482015290519081900360640190fd5b6000818152600260208181526040808420338552909152909120015460ff16156111c057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5265776172647320636c61696d65640000000000000000000000000000000000604482015290519081900360640190fd5b6000818152600160205260408120600b015460ff1615611324576111e4823361279a565b61124f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4e6f7420656c696769626c6520666f7220636c61696d00000000000000000000604482015290519081900360640190fd5b611257613f0e565b506000828152600160208181526040808420815161018081018352815481528185015481850152600280830154828501526003830154606083015260048301546080830152600583015460a0830152600683015460c0830152600783015460e0830152600883015461010083015260098301546101208301819052600a8401546101408401819052600b9094015460ff1615156101608401528988529085528387203388529094529190942090920154919261131c926113169161328a565b906132fd565b9150506113b8565b61132e8233611ded565b61139957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e6f7420656c696769626c6520666f7220726566756e64000000000000000000604482015290519081900360640190fd5b5060008181526002602090815260408083203384529091529020600101545b600082815260026020818152604080842033808652925290922090810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790559061140990836130dc565b604080518381529051849133917f34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf79181900360200190a3505050565b60075473ffffffffffffffffffffffffffffffffffffffff1633146114cb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f61646d696e3a207775743f000000000000000000000000000000000000000000604482015290519081900360640190fd5b6114d361173c565b61153e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b601080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905561156e61337e565b60045460408051918252517faaa520fdd7d2c83061d632fa017b0432407e798818af63ea908589fceda39ab79181900360200190a1565b60085473ffffffffffffffffffffffffffffffffffffffff16331461162b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6f70657261746f723a207775743f000000000000000000000000000000000000604482015290519081900360640190fd5b61163361173c565b1561169f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60105460ff16156116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806141e16023913960400191505060405180910390fd5b600480546001019081905561170f9061346c565b601080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60005474010000000000000000000000000000000000000000900460ff1690565b600f5481565b60075473ffffffffffffffffffffffffffffffffffffffff1633146117e957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f61646d696e3a207775743f000000000000000000000000000000000000000000604482015290519081900360640190fd5b600e8190556004546040805183815290517f82480e97991520549ac4b5d0e1d97edb3bfac2666202923b6903d2a953dc76089181900360200190a250565b61182f6134f3565b73ffffffffffffffffffffffffffffffffffffffff1661184d612499565b73ffffffffffffffffffffffffffffffffffffffff16146118cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661195157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6119a06134f3565b73ffffffffffffffffffffffffffffffffffffffff166119be612499565b73ffffffffffffffffffffffffffffffffffffffff1614611a4057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6002602081815260009384526040808520909152918352912080546001820154919092015460ff928316921683565b60045481565b60075473ffffffffffffffffffffffffffffffffffffffff163314611b6a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f61646d696e3a207775743f000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611bec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600c5481565b60085473ffffffffffffffffffffffffffffffffffffffff163314611cbf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6f70657261746f723a207775743f000000000000000000000000000000000000604482015290519081900360640190fd5b611cc761173c565b15611d3357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60105460ff168015611d4c5750601054610100900460ff165b611da1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260468152602001806142276046913960600191505060405180910390fd5b6000611dab6134f7565b9050611db960045482613695565b611dc8600160045403826137eb565b611dd660016004540361393c565b6004805460010190819055611dea90613b5f565b50565b6000611df7613f71565b600084815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152908190208151606081019092528054829060ff166001811115611e4357fe5b6001811115611e4e57fe5b81526001820154602082015260029091015460ff1615156040909101529050611e75613f0e565b506000848152600160208181526040928390208351610180810185528154815292810154918301919091526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b9091015460ff161580156101608301819052611f2c57506006546060820151611f299161320f565b43115b8015611f3b5750602082015115155b925050505b92915050565b611f4e61173c565b15611fba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b611fc33361319d565b1561202f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f636f6e7472616374206e6f7420616c6c6f776564000000000000000000000000604482015290519081900360640190fd5b33321461209d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f70726f787920636f6e7472616374206e6f7420616c6c6f776564000000000000604482015290519081900360640190fd5b6120a86004546131a3565b61211357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f526f756e64206e6f74206265747461626c650000000000000000000000000000604482015290519081900360640190fd5b600e5434101561216e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806140eb602c913960400191505060405180910390fd5b6004546000908152600260209081526040808320338452909152902060010154156121fa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f43616e206f6e6c7920626574206f6e63652070657220726f756e640000000000604482015290519081900360640190fd5b6004546000908152600160205260409020600681015434919061221d908361320f565b60068201556007810154612231908361320f565b60078201556004805460009081526002602090815260408083203380855290835281842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001681556001808201899055600385528386208754815492830182559087529585902001949094559354815187815291519394909390927f438122d8cff518d18388099a5181f0d17a12b4f1b55faedf6e4a6acee0060c12928290030190a3505050565b60075473ffffffffffffffffffffffffffffffffffffffff16331480612318575060085473ffffffffffffffffffffffffffffffffffffffff1633145b61238357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f61646d696e207c206f70657261746f723a207775743f00000000000000000000604482015290519081900360640190fd5b61238b61173c565b156123f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b6123ff613cda565b60045460408051918252517f68b095021b1f40fe513109f513c66692f0b3219aee674a69f4efc57badb8201d9181900360200190a1565b600160208190526000918252604090912080549181015460028201546003830154600484015460058501546006860154600787015460088801546009890154600a8a0154600b909a01549899979896979596949593949293919290919060ff168c565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812054606091908390859003811115612516575073ffffffffffffffffffffffffffffffffffffffff85166000908152600360205260409020548490035b60608167ffffffffffffffff8111801561252f57600080fd5b50604051908082528060200260200182016040528015612559578160200160208202803683370190505b50905060005b828110156125c45773ffffffffffffffffffffffffffffffffffffffff88166000908152600360205260409020805488830190811061259a57fe5b90600052602060002001548282815181106125b157fe5b602090810291909101015260010161255f565b509694019450505050565b60065481565b60075473ffffffffffffffffffffffffffffffffffffffff16331461265b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f61646d696e3a207775743f000000000000000000000000000000000000000000604482015290519081900360640190fd5b60648111156126b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061426d6023913960400191505060405180910390fd5b600c8190556126c5606482613db6565b600d819055600454600c54604080519182526020820193909352825191927f023010bc68e7f4c0be9887f513c570c7a0f5f511b9716abccd42bf3b8943532b92918290030190a250565b60075473ffffffffffffffffffffffffffffffffffffffff16331461279557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f61646d696e3a207775743f000000000000000000000000000000000000000000604482015290519081900360640190fd5b600555565b60006127a4613f71565b600084815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152908190208151606081019092528054829060ff1660018111156127f057fe5b60018111156127fb57fe5b81526001820154602082015260029091015460ff1615156040909101529050612822613f0e565b5060008481526001602081815260409283902083516101808101855281548152928101549183019190915260028101549282019290925260038201546060820152600482015460808201819052600583015460a08301819052600684015460c0840152600784015460e084015260088401546101008401526009840154610120840152600a840154610140840152600b9093015460ff161515610160830152909114156128d457600092505050611f40565b8061016001518015611f3b575080608001518160a00151138015612904575060008251600181111561290257fe5b145b80611f3b575080608001518160a00151128015611f3b575060018251600181111561292b57fe5b1495945050505050565b606481565b60075473ffffffffffffffffffffffffffffffffffffffff1633146129c057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f61646d696e3a207775743f000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612a4257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60075473ffffffffffffffffffffffffffffffffffffffff163314612b0f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f61646d696e3a207775743f000000000000000000000000000000000000000000604482015290519081900360640190fd5b600f55565b60075473ffffffffffffffffffffffffffffffffffffffff163314612b9a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f61646d696e3a207775743f000000000000000000000000000000000000000000604482015290519081900360640190fd5b6064811115612bf4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806142b16025913960400191505060405180910390fd5b612bff606482613db6565b600c819055600d8290556004546040805192835260208301849052805191927f023010bc68e7f4c0be9887f513c570c7a0f5f511b9716abccd42bf3b8943532b929081900390910190a250565b60085473ffffffffffffffffffffffffffffffffffffffff163314612cd257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6f70657261746f723a207775743f000000000000000000000000000000000000604482015290519081900360640190fd5b612cda61173c565b15612d4657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60105460ff16612da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180613fe16031913960400191505060405180910390fd5b601054610100900460ff1615612e02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806140c96022913960400191505060405180910390fd5b600654600454600090815260016020526040902060020154612e239161320f565b431115612e7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806141176027913960400191505060405180910390fd5b6000612e856134f7565b9050612e9360045482613695565b6004805460010190819055612ea79061346c565b50601080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b60036020528160005260406000208181548110612eef57fe5b90600052602060002001600091509150505481565b600d5481565b600b5481565b612f186134f3565b73ffffffffffffffffffffffffffffffffffffffff16612f36612499565b73ffffffffffffffffffffffffffffffffffffffff1614612fb857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116613024576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806140126026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60105460ff1681565b600e5481565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b60405160009073ffffffffffffffffffffffffffffffffffffffff8416906159d890849084818181858888f193505050503d8060008114613139576040519150601f19603f3d011682016040523d82523d6000602084013e61313e565b606091505b5050905080613198576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806141bd6024913960400191505060405180910390fd5b505050565b3b151590565b600081815260016020819052604082200154158015906131d3575060008281526001602052604090206002015415155b80156131f057506000828152600160208190526040909120015443115b8015611f40575050600090815260016020526040902060020154431090565b60008282018381101561328357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008261329957506000611f40565b828202828482816132a657fe5b0414613283576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806141736021913960400191505060405180910390fd5b600080821161336d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161337657fe5b049392505050565b61338661173c565b6133f157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6134426134f3565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190a1565b60008181526001602081905260409091204391810182905560055490916134929161320f565b6002808301919091556005546134aa9143910261320f565b60038201558181556000600682015560408051438152905183917f0e5543feb86a4cd302f2b88b26c42be2d1673013a34e1f98bd6d524dd3b4ab41919081900360200190a25050565b3390565b60008061350f600f544261320f90919063ffffffff16565b90506000806000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561357e57600080fd5b505afa158015613592573d6000803e3d6000fd5b505050506040513d60a08110156135a857600080fd5b5080516020820151606090920151909450909250905083811115613617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180614307602e913960400191505060405180910390fd5b600b548369ffffffffffffffffffff161161367d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180614066603d913960400191505060405180910390fd5b5069ffffffffffffffffffff909116600b5591505090565b600082815260016020819052604090912001546136fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613fb6602b913960400191505060405180910390fd5b600082815260016020526040902060020154431015613767576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806142046023913960400191505060405180910390fd5b6006546000838152600160205260409020600201546137859161320f565b4311156137dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806141176027913960400191505060405180910390fd5b6137e78282613e2d565b5050565b600082815260016020526040902060020154613852576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806141946029913960400191505060405180910390fd5b6000828152600160205260409020600301544310156138bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806142906021913960400191505060405180910390fd5b6006546000838152600160205260409020600301546138da9161320f565b431115613932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806140a36026913960400191505060405180910390fd5b6137e78282613e87565b6064613955600d54600c5461320f90919063ffffffff16565b146139ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018061413e6035913960400191505060405180910390fd5b6000818152600160205260409020600901541580156139d957506000818152600160205260409020600a0154155b613a4457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f526577617264732063616c63756c617465640000000000000000000000000000604482015290519081900360640190fd5b600081815260016020526040812060048101546005820154919291829182911315613ab55783600701549250613a8e6064611316600c54876006015461328a90919063ffffffff16565b9150613aae6064611316600d54876006015461328a90919063ffffffff16565b9050613af8565b836004015484600501541215613aea5783600801549250613a8e6064611316600c54876006015461328a90919063ffffffff16565b505050600681015460009081905b6009808501849055600a850183905554613b12908261320f565b6009556040805184815260208101849052808201839052905186917f6dfdfcb09c8804d0058826cd2539f1acfbe3cb887c9be03d928035bce0f1a58d919081900360600190a25050505050565b60105460ff16613bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180613fe16031913960400191505060405180910390fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8101600090815260016020526040902060030154613c44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180614038602e913960400191505060405180910390fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8101600090815260016020526040902060030154431015613cd1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806142d66031913960400191505060405180910390fd5b611dea8161346c565b613ce261173c565b15613d4e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586134426134f3565b600082821115613e2757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828152600160209081526040918290206004810184905582514381529182018490528251909285927f482e76a65b448a42deef26e99e58fb20c85e26f075defff8df6aa80459b39006929081900390910190a2505050565b60008281526001602081815260409283902060058101859055600b810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690931790925582514381529081018490528251919285927fb6ff1fe915db84788cbbbc017f0d2bef9485fad9fd0bd8ce9340fde0d8410dd89281900390910190a2505050565b60405180610180016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b604080516060810190915280600081526000602082018190526040909101529056fe43616e6e6f74206265206d6f7265207468616e20696e74657276616c426c6f636b7343616e206f6e6c79206c6f636b20726f756e6420616674657220726f756e6420686173207374617274656443616e206f6e6c792072756e2061667465722067656e657369735374617274526f756e64206973207472696767657265644f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737343616e206f6e6c7920737461727420726f756e6420616674657220726f756e64206e2d322068617320656e6465644f7261636c652075706461746520726f756e644964206d757374206265206c6172676572207468616e206f7261636c654c6174657374526f756e64496443616e206f6e6c7920656e6420726f756e642077697468696e20627566666572426c6f636b7343616e206f6e6c792072756e2067656e657369734c6f636b526f756e64206f6e636542657420616d6f756e74206d7573742062652067726561746572207468616e206d696e426574416d6f756e7443616e206f6e6c79206c6f636b20726f756e642077697468696e20627566666572426c6f636b737265776172645261746520616e6420747265617375727952617465206d7573742061646420757020746f20544f54414c5f52415445536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c7920656e6420726f756e6420616674657220726f756e6420686173206c6f636b65645472616e7366657248656c7065723a20444f47455f5452414e534645525f4641494c454443616e206f6e6c792072756e2067656e657369735374617274526f756e64206f6e636543616e206f6e6c79206c6f636b20726f756e64206166746572206c6f636b426c6f636b43616e206f6e6c792072756e2061667465722067656e657369735374617274526f756e6420616e642067656e657369734c6f636b526f756e6420697320747269676765726564726577617264526174652063616e6e6f74206265206d6f7265207468616e203130302543616e206f6e6c7920656e6420726f756e6420616674657220656e64426c6f636b7472656173757279526174652063616e6e6f74206265206d6f7265207468616e203130302543616e206f6e6c79207374617274206e657720726f756e6420616674657220726f756e64206e2d3220656e64426c6f636b4f7261636c6520757064617465206578636565646564206d61782074696d657374616d7020616c6c6f77616e6365a26469706673582212208a35f7525dffe21b5824adb6a05a08e49c85dd6faad5e607bf2e130808f583b964736f6c634300060c00330000000000000000000000003ab0a0d137d4f946fbb19eecc6e92e64660231c8000000000000000000000000353a8e4d423e9cde5c6a8926b4908731e261211a000000000000000000000000d3c1c1c23d9e689832c586d62bb64620a3d7574f0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000000000000012c