2 txs
3 calls
constructor
constructor(address _owner, uint256 subscriptionId, bytes32 keyHash, address vrfCoordinator, uint32 callbackGasLimit, uint16 requestConfirmations, uint32 numWords, uint256 _minBet, uint256 _maxPercWin, uint256 _houseEdge, uint256 _referrerEdge, uint8 _maxBetRepetition)
functions
availableLiquidity
viewfunction availableLiquidity() view returns (uint256)
budget
viewfunction budget() view returns (uint256)
calculateWinAmount
viewfunction calculateWinAmount(uint256 amount, uint256 modulo, uint256 odds) view returns (uint256 winAmount)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
houseEdge
viewfunction houseEdge() view returns (uint256)
maxBetRepetition
viewfunction maxBetRepetition() view returns (uint8)
maxPercWin
viewfunction maxPercWin() view returns (uint256)
maxWin
viewfunction maxWin() view returns (uint256)
minBet
viewfunction minBet() view returns (uint256)
owner
viewfunction owner() view returns (address)
pendingBets
viewfunction pendingBets(uint256) view returns (address gambler, uint256 betAmount, uint256 winAmount, uint256 reservedAmount, uint256 prediction, uint256 rollDirection, uint256 modulo, uint256 timestamp, address referrer)
pendingPayouts
viewfunction pendingPayouts(address) view returns (uint256)
referrerEarnings
viewfunction referrerEarnings(address) view returns (uint256)
referrerEdge
viewfunction referrerEdge() view returns (uint256)
s_callbackGasLimit
viewfunction s_callbackGasLimit() view returns (uint32)
s_keyHash
viewfunction s_keyHash() view returns (bytes32)
s_numWords
viewfunction s_numWords() view returns (uint32)
s_requestConfirmations
viewfunction s_requestConfirmations() view returns (uint16)
s_subscriptionId
viewfunction s_subscriptionId() view returns (uint256)
s_vrfCoordinator
viewfunction s_vrfCoordinator() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
totalReserved
viewfunction totalReserved() view returns (uint256)
userReferrer
viewfunction userReferrer(address) view returns (address refAddress, uint256 edge)
acceptOwnership
nonpayablefunction acceptOwnership()
bet
payablefunction bet(uint256[4] _betParams, address _referrer, uint8 _betRepetition) payable
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
rawFulfillRandomWords
nonpayablefunction rawFulfillRandomWords(uint256 requestId, uint256[] randomWords)
recoverOrRefund
nonpayablefunction recoverOrRefund(uint256 requestId)
releaseAllReservedFunds
nonpayablefunction releaseAllReservedFunds()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setCallbackGasLimit
nonpayablefunction setCallbackGasLimit(uint32 callbackGasLimit)
setCoordinator
nonpayablefunction setCoordinator(address _vrfCoordinator)
setHouseEdgePerc
nonpayablefunction setHouseEdgePerc(uint256 _perc)
setKeyHash
nonpayablefunction setKeyHash(bytes32 keyHash)
setMaxBetRepetition
nonpayablefunction setMaxBetRepetition(uint8 _value)
setMaxPercWin
nonpayablefunction setMaxPercWin(uint256 _perc)
setMinBet
nonpayablefunction setMinBet(uint256 _value)
setReferrerEdgePerc
nonpayablefunction setReferrerEdgePerc(uint256 _perc)
setRequestConfirmations
nonpayablefunction setRequestConfirmations(uint16 requestConfirmations)
setSubscriptionId
nonpayablefunction setSubscriptionId(uint256 subscriptionId)
setUserReferrer
nonpayablefunction setUserReferrer(address _user, address _ref, uint256 _perc)
transferOwnership
nonpayablefunction transferOwnership(address to)
withdraw
nonpayablefunction withdraw(uint256 _amount)
events
BetPlaced
event BetPlaced(uint256 indexed requestId, address indexed gambler, (address gambler, uint256 betAmount, uint256 winAmount, uint256 reservedAmount, uint256 prediction, uint256 rollDirection, uint256 modulo, uint256 timestamp, address referrer) betInfo)
BetResult
event BetResult(uint256 indexed requestId, address indexed gambler, uint256 result, uint256 payout, bool win)
CoordinatorSet
event CoordinatorSet(address vrfCoordinator)
OwnershipTransferred
event OwnershipTransferred(address indexed from, address indexed to)
OwnershipTransferRequested
event OwnershipTransferRequested(address indexed from, address indexed to)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
OnlyCoordinatorCanFulfill
error OnlyCoordinatorCanFulfill(address have, address want)
OnlyOwnerOrCoordinator
error OnlyOwnerOrCoordinator(address have, address owner, address coordinator)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
ZeroAddress
error ZeroAddress()
creation bytecode
0x608060405234801561001057600080fd5b506040516129e13803806129e183398101604081905261002f916103ae565b8833806000816100865760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03848116919091179091558116156100b6576100b6816101a4565b5050506001600160a01b0381166100e05760405163d92e233d60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055600160045561011660006101113390565b61024d565b506101208c6102fd565b60059a909a556006989098556007805463ffffffff95861666010000000000000263ffffffff60301b1961ffff9098166401000000000265ffffffffffff199092169690981695909517949094179490941694909417909155600955600a91909155600b5550600c55600d805460ff90921660ff1990921691909117905550610483565b336001600160a01b038216036101fc5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161007d565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60008281526003602090815260408083206001600160a01b038516845290915281205460ff166102f35760008381526003602090815260408083206001600160a01b03861684529091529020805460ff191660011790556102ab3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102f7565b5060005b92915050565b610305610311565b61030e816101a4565b50565b6000546001600160a01b0316331461036b5760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161007d565b565b80516001600160a01b038116811461038457600080fd5b919050565b805163ffffffff8116811461038457600080fd5b805160ff8116811461038457600080fd5b6000806000806000806000806000806000806101808d8f0312156103d157600080fd5b6103da8d61036d565b60208e015160408f0151919d509b5099506103f760608e0161036d565b985061040560808e01610389565b60a08e015190985061ffff8116811461041d57600080fd5b965061042b60c08e01610389565b9550600060e08e015190508095505060006101008e015190508094505060006101208e015190508093505060006101408e01519050809250506104716101608e0161039d565b90509295989b509295989b509295989b565b61254f806104926000396000f3fe6080604052600436106102815760003560e01c80638ea981171161014f578063c6a73fc7116100c1578063dc02caaf1161007a578063dc02caaf14610867578063e229df5c1461087c578063eb3ba72f1461089c578063ed01bf29146108c9578063f2fde38b146108dc578063f88ea2c9146108fc57600080fd5b8063c6a73fc7146107c5578063c71b0e1c146107e5578063cca7273b146107fb578063d547741f14610811578063d667dcd714610831578063d7d59b111461084757600080fd5b8063985447101161011357806398544710146107135780639eccacf614610733578063a217fddf14610753578063a4eb718c14610768578063c1e0d23614610788578063c5b4e937146107a857600080fd5b80638ea981171461065557806391d14854146106755780639619367d14610695578063967dd780146106ab578063972b0711146106e757600080fd5b806345bb327b116101f357806382a36524116101ac57806382a3652414610597578063867be09b146105ad5780638824f5a7146105cd57806388ea41b9146105ed5780638ac000211461060d5780638da5cb5b1461062357600080fd5b806345bb327b146104ab578063697a391c146104c157806374375359146104e1578063784712f2146104f657806379ba5097146105235780637c3fcc381461053857600080fd5b80632065e421116102455780632065e421146103e8578063248a9ca3146104085780632e1a7d4d146104385780632f2ff15d1461045857806336568abe146104785780633d724a8b1461049857600080fd5b806301abd6d71461028d57806301ffc9a7146103535780630a514da91461038357806316d190e3146103a55780631fe543e3146103c857600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102fe6102a83660046120b2565b6010602052600090815260409020805460018201546002830154600384015460048501546005860154600687015460078801546008909801546001600160a01b0397881698969795969495939492939192911689565b604080516001600160a01b039a8b16815260208101999099528801969096526060870194909452608086019290925260a085015260c084015260e0830152909116610100820152610120015b60405180910390f35b34801561035f57600080fd5b5061037361036e3660046120cb565b610932565b604051901515815260200161034a565b34801561038f57600080fd5b506103a361039e3660046120b2565b610969565b005b3480156103b157600080fd5b506103ba6109c0565b60405190815260200161034a565b3480156103d457600080fd5b506103a36103e33660046120fc565b6109e8565b3480156103f457600080fd5b506103a36104033660046120b2565b610a38565b34801561041457600080fd5b506103ba6104233660046120b2565b60009081526003602052604090206001015490565b34801561044457600080fd5b506103a36104533660046120b2565b610d41565b34801561046457600080fd5b506103a3610473366004612199565b610df6565b34801561048457600080fd5b506103a3610493366004612199565b610e21565b6103a36104a63660046121ec565b610e54565b3480156104b757600080fd5b506103ba60065481565b3480156104cd57600080fd5b506103a36104dc366004612289565b6114c1565b3480156104ed57600080fd5b506103ba611556565b34801561050257600080fd5b506103ba6105113660046122c6565b60116020526000908152604090205481565b34801561052f57600080fd5b506103a361156c565b34801561054457600080fd5b506105786105533660046122c6565b600e60205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161034a565b3480156105a357600080fd5b506103ba600c5481565b3480156105b957600080fd5b506103a36105c83660046122e1565b611616565b3480156105d957600080fd5b506103a36105e83660046122fc565b611653565b3480156105f957600080fd5b506103a36106083660046120b2565b61169e565b34801561061957600080fd5b506103ba60055481565b34801561062f57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161034a565b34801561066157600080fd5b506103a36106703660046122c6565b6116ca565b34801561068157600080fd5b50610373610690366004612199565b6117bc565b3480156106a157600080fd5b506103ba60095481565b3480156106b757600080fd5b506007546106d2906601000000000000900463ffffffff1681565b60405163ffffffff909116815260200161034a565b3480156106f357600080fd5b50600d546107019060ff1681565b60405160ff909116815260200161034a565b34801561071f57600080fd5b506103a361072e3660046120b2565b6117e7565b34801561073f57600080fd5b5060025461063d906001600160a01b031681565b34801561075f57600080fd5b506103ba600081565b34801561077457600080fd5b506103a3610783366004612320565b611813565b34801561079457600080fd5b506103a36107a33660046120b2565b611856565b3480156107b457600080fd5b506007546106d29063ffffffff1681565b3480156107d157600080fd5b506103a36107e03660046120b2565b611882565b3480156107f157600080fd5b506103ba60085481565b34801561080757600080fd5b506103ba600a5481565b34801561081d57600080fd5b506103a361082c366004612199565b6118d0565b34801561083d57600080fd5b506103ba600b5481565b34801561085357600080fd5b506103a36108623660046120b2565b6118f5565b34801561087357600080fd5b506103a3611943565b34801561088857600080fd5b506103ba610897366004612346565b611971565b3480156108a857600080fd5b506103ba6108b73660046122c6565b600f6020526000908152604090205481565b3480156108d557600080fd5b50476103ba565b3480156108e857600080fd5b506103a36108f73660046122c6565b611a24565b34801561090857600080fd5b5060075461091f90640100000000900461ffff1681565b60405161ffff909116815260200161034a565b60006001600160e01b03198216637965db0b60e01b148061096357506301ffc9a760e01b6001600160e01b03198316145b92915050565b6109746000336117bc565b6109995760405162461bcd60e51b815260040161099090612372565b60405180910390fd5b6127108111156109bb5760405162461bcd60e51b8152600401610990906123a0565b600c55565b6000612710600a546109cf4790565b6109d991906123d3565b6109e39190612400565b905090565b6002546001600160a01b03163314610a285760025460405163073e64fd60e21b81523360048201526001600160a01b039091166024820152604401610990565b610a33838383611a35565b505050565b610a40611d92565b336000908152601160205260409020548015610af657336000818152601160205260408082208290555190919083908381818185875af1925050503d8060008114610aa7576040519150601f19603f3d011682016040523d82523d6000602084013e610aac565b606091505b5050905080610aef5760405162461bcd60e51b815260206004820152600f60248201526e1dda5d1a191c985dc819985a5b1959608a1b6044820152606401610990565b5050610d34565b60008281526010602090815260409182902082516101208101845281546001600160a01b039081168083526001840154948301949094526002830154948201949094526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101549092166101008301523314610bb75760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd081e5bdd5c8818995d60a21b6044820152606401610990565b60e0810151610bc890610e10612414565b4211610c015760405162461bcd60e51b81526020600482015260086024820152673a37b79039b7b7b760c11b6044820152606401610990565b610c0a83611dbc565b600083815260106020908152604080832080546001600160a01b03199081168255600182018590556002820185905560038201859055600482018590556005820185905560068201859055600782018590556008909101805490911690559083015190513391908381818185875af1925050503d8060008114610ca9576040519150601f19603f3d011682016040523d82523d6000602084013e610cae565b606091505b5050905080610ce357602080830151336000908152601190925260408220805491929091610cdd908490612414565b90915550505b60208083015160408051600080825293810192909252810191909152339085907f27812a8a723537940281509031069955c8f39548529272052f76d7ebfd94742a9060600160405180910390a35050505b610d3e6001600455565b50565b610d4c6000336117bc565b610d685760405162461bcd60e51b815260040161099090612372565b604051600090339083908381818185875af1925050503d8060008114610daa576040519150601f19603f3d011682016040523d82523d6000602084013e610daf565b606091505b5050905080610df25760405162461bcd60e51b815260206004820152600f60248201526e1dda5d1a191c985dc819985a5b1959608a1b6044820152606401610990565b5050565b600082815260036020526040902060010154610e1181611dff565b610e1b8383611e09565b50505050565b6001600160a01b0381163314610e4a5760405163334bd91960e11b815260040160405180910390fd5b610a338282611e9d565b333214610e975760405162461bcd60e51b81526020600482015260116024820152706e6f20696e6469726563742063616c6c7360781b6044820152606401610990565b610e9f611d92565b8251602084015160408501516060860151600160ff861610801590610ecd5750600d5460ff90811690861611155b610f075760405162461bcd60e51b815260206004820152600b60248201526a0696e76616c6964207265760ac1b6044820152606401610990565b610f1460ff8616836123d3565b3414610f545760405162461bcd60e51b815260206004820152600f60248201526e0c2dadeeadce840dad2e6dac2e8c6d608b1b6044820152606401610990565b600954821015610f905760405162461bcd60e51b8152602060048201526007602482015266746f6f206c6f7760c81b6044820152606401610990565b821580610f9d5750826001145b610fd75760405162461bcd60e51b815260206004820152600b60248201526a34b73b30b634b2103234b960a91b6044820152606401610990565b600181116110185760405162461bcd60e51b815260206004820152600e60248201526d696e76616c6964206d6f64756c6f60901b6044820152606401610990565b336000908152600e60205260409020546001600160a01b03166110a65760408051808201909152806001600160a01b038816156110555787611062565b6000546001600160a01b03165b6001600160a01b039081168252600c54602092830152336000908152600e835260409020835181546001600160a01b03191692169190911781559101516001909101555b600083156110ce576110c98383876110bf60018361243d565b610897919061243d565b6110d9565b6110d9838387611971565b90506110e36109c0565b8382116110f15760006110fb565b6110fb848361243d565b111561113c5760405162461bcd60e51b815260206004820152601060248201526f1b585e081dda5b88195e18d95959195960821b6044820152606401610990565b600061114b60ff8816836123d3565b905080611156611556565b101561119d5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e74206c697175696469747960501b6044820152606401610990565b80600860008282546111af9190612414565b90915550600090505b8760ff168110156114b0576002546040805160c081018252600654815260055460208083019190915260075461ffff6401000000008204168385015263ffffffff8082166060850152660100000000000090910416608083015282519081019092526000808352926001600160a01b031691639b1c385e919060a082019061123f90611f0a565b8152506040518263ffffffff1660e01b815260040161125e9190612450565b6020604051808303816000875af115801561127d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a191906124ec565b9050604051806101200160405280336001600160a01b03168152602001878152602001858152602001858152602001898152602001888152602001868152602001428152602001600e6000336001600160a01b03166001600160a01b0316815260200190815260200160002060000160009054906101000a90046001600160a01b03166001600160a01b03168152506010600083815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050336001600160a01b0316817f063045e1f8ecb60b59d6fdb78b067310077cbe1c045d9389375f89dddede2f566010600085815260200190815260200160002060405161149f919081546001600160a01b03168152610120810160018301546020830152600283015460408301526003830154606083015260048301546080830152600583015460a0830152600683015460c0830152600783015460e08301526008909201546001600160a01b03166101009091015290565b60405180910390a3506001016111b8565b50505050505050610a336001600455565b6114cc6000336117bc565b6114e85760405162461bcd60e51b815260040161099090612372565b61271081111561150a5760405162461bcd60e51b8152600401610990906123a0565b6040805180820182526001600160a01b03938416815260208082019384529484166000908152600e9095529320925183546001600160a01b031916921691909117825551600190910155565b60006008546115624790565b6109e3919061243d565b6001546001600160a01b031633146115bf5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b6044820152606401610990565b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6116216000336117bc565b61163d5760405162461bcd60e51b815260040161099090612372565b600d805460ff191660ff92909216919091179055565b61165e6000336117bc565b61167a5760405162461bcd60e51b815260040161099090612372565b6007805461ffff9092166401000000000265ffff0000000019909216919091179055565b6116a96000336117bc565b6116c55760405162461bcd60e51b815260040161099090612372565b600955565b6000546001600160a01b031633148015906116f057506002546001600160a01b03163314155b1561174157336117086000546001600160a01b031690565b60025460405163061db9c160e01b81526001600160a01b0393841660048201529183166024830152919091166044820152606401610990565b6001600160a01b0381166117685760405163d92e233d60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd1a6a14209a385a964d036e404cb5cfb71f4000cdb03c9366292430787261be69060200160405180910390a150565b60009182526003602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6117f26000336117bc565b61180e5760405162461bcd60e51b815260040161099090612372565b600655565b61181e6000336117bc565b61183a5760405162461bcd60e51b815260040161099090612372565b6007805463ffffffff191663ffffffff92909216919091179055565b6118616000336117bc565b61187d5760405162461bcd60e51b815260040161099090612372565b600555565b61188d6000336117bc565b6118a95760405162461bcd60e51b815260040161099090612372565b6127108111156118cb5760405162461bcd60e51b8152600401610990906123a0565b600a55565b6000828152600360205260409020600101546118eb81611dff565b610e1b8383611e9d565b6119006000336117bc565b61191c5760405162461bcd60e51b815260040161099090612372565b61271081111561193e5760405162461bcd60e51b8152600401610990906123a0565b600b55565b61194e6000336117bc565b61196a5760405162461bcd60e51b815260040161099090612372565b6000600855565b336000908152600e6020526040812060010154600b54829161199291612414565b90508260001080156119a45750838311155b6119df5760405162461bcd60e51b815260206004820152600c60248201526b696e76616c6964206f64647360a01b6044820152606401610990565b60006127106119ee83886123d3565b6119f89190612400565b90508385611a06838961243d565b611a1091906123d3565b611a1a9190612400565b9695505050505050565b611a2c611f7b565b610d3e81611fd0565b611a3d611d92565b60008381526010602090815260409182902082516101208101845281546001600160a01b039081168083526001840154948301949094526002830154948201949094526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600890910154909216610100830152611acb5750611d88565b611ad484611dbc565b60008160c0015184846000818110611aee57611aee612427565b90506020020135611aff9190612505565b905060008260a00151600014611b1b5782608001518211611b24565b82608001518211155b9050600081611b34576000611b3a565b83604001515b84516040805186815260208101849052851515918101919091529192506001600160a01b03169088907f27812a8a723537940281509031069955c8f39548529272052f76d7ebfd94742a9060600160405180910390a3600087815260106020526040812080546001600160a01b031990811682556001820183905560028201839055600382018390556004820183905560058201839055600682018390556007820192909255600801805490911690558015611c7b5783516040516000916001600160a01b03169083908381818185875af1925050503d8060008114611c3c576040519150601f19603f3d011682016040523d82523d6000602084013e611c41565b606091505b5050905080611c795784516001600160a01b031660009081526011602052604081208054849290611c73908490612414565b90915550505b505b818015611c9557506101008401516001600160a01b031615155b15611d835783516001600160a01b03166000908152600e602090815260408220600101549086015161271091611cca916123d3565b611cd49190612400565b9050600081118015611ce65750804710155b15611d815760008561010001516001600160a01b03168260405160006040518083038185875af1925050503d8060008114611d3d576040519150601f19603f3d011682016040523d82523d6000602084013e611d42565b606091505b505090508015611d7f576101008601516001600160a01b03166000908152600f602052604081208054849290611d79908490612414565b90915550505b505b505b505050505b610a336001600455565b600260045403611db557604051633ee5aeb560e01b815260040160405180910390fd5b6002600455565b6000818152601060205260409020600301548015801590611ddf57508060085410155b15610df2578060086000828254611df6919061243d565b90915550505050565b610d3e8133612079565b6000611e1583836117bc565b611e955760008381526003602090815260408083206001600160a01b03861684529091529020805460ff19166001179055611e4d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610963565b506000610963565b6000611ea983836117bc565b15611e955760008381526003602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610963565b60607f92fd13387c7fe7befbc38d303d6468778fb9731bc4583f17d92989c6fcfdeaaa82604051602401611f4391511515815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915292915050565b6000546001600160a01b03163314611fce5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b6044820152606401610990565b565b336001600160a01b038216036120285760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610990565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b61208382826117bc565b610df25760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610990565b6000602082840312156120c457600080fd5b5035919050565b6000602082840312156120dd57600080fd5b81356001600160e01b0319811681146120f557600080fd5b9392505050565b60008060006040848603121561211157600080fd5b83359250602084013567ffffffffffffffff81111561212f57600080fd5b8401601f8101861361214057600080fd5b803567ffffffffffffffff81111561215757600080fd5b8660208260051b840101111561216c57600080fd5b939660209190910195509293505050565b80356001600160a01b038116811461219457600080fd5b919050565b600080604083850312156121ac57600080fd5b823591506121bc6020840161217d565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b803560ff8116811461219457600080fd5b600080600060c0848603121561220157600080fd5b84601f85011261221057600080fd5b6040516080810181811067ffffffffffffffff82111715612233576122336121c5565b60405280608086018781111561224857600080fd5b865b8181101561226257803583526020928301920161224a565b5082955061226f8161217d565b945050505061228060a085016121db565b90509250925092565b60008060006060848603121561229e57600080fd5b6122a78461217d565b92506122b56020850161217d565b929592945050506040919091013590565b6000602082840312156122d857600080fd5b6120f58261217d565b6000602082840312156122f357600080fd5b6120f5826121db565b60006020828403121561230e57600080fd5b813561ffff811681146120f557600080fd5b60006020828403121561233257600080fd5b813563ffffffff811681146120f557600080fd5b60008060006060848603121561235b57600080fd5b505081359360208301359350604090920135919050565b6020808252601490820152736d75737420686176652061646d696e20726f6c6560601b604082015260600190565b60208082526003908201526262707360e81b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610963576109636123bd565b634e487b7160e01b600052601260045260246000fd5b60008261240f5761240f6123ea565b500490565b80820180821115610963576109636123bd565b634e487b7160e01b600052603260045260246000fd5b81810381811115610963576109636123bd565b60208152815160208201526020820151604082015261ffff604083015116606082015263ffffffff606083015116608082015263ffffffff60808301511660a0820152600060a083015160c08084015280518060e085015260005b818110156124c95760208184018101516101008784010152016124ab565b5060006101008286010152610100601f19601f8301168501019250505092915050565b6000602082840312156124fe57600080fd5b5051919050565b600082612514576125146123ea565b50069056fea2646970667358221220d2af195d8e5dc9b16409e6799692125329a66e914a28fcce9585e8c68f1a0fec64736f6c634300081c003300000000000000000000000024aa18e8b57e749b9c8ff064974344224ef7eab5b146844460a44cf4a0e2674646f868ffe3be07f32bc007e803e5ad6a1cf5948e00b81b5a830cb0a4009fbd8904de511e28631e62ce5ad231373d3cdad373ccab000000000000000000000000d5d517abe5cf79b7e95ec98db0f0277788aff634000000000000000000000000000000000000000000000000000000000007a1200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000000000000177000000000000000000000000000000000000000000000000000000000000007d00000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000000a