928 txs
1.4k calls
constructor
constructor(address _vlamaToken)
functions
BONUS_LINES_COUNT
viewfunction BONUS_LINES_COUNT() view returns (uint256)
contractInfo
viewfunction contractInfo() view returns (uint256 _invested, uint256 _withdrawn, uint256 _match_bonus, uint256 _depositFeesCollected, uint256 _withdrawFeesCollected, uint256 _maxTotalDeposits)
DEPOSIT_FEE
viewfunction DEPOSIT_FEE() view returns (uint256)
depositFeesCollected
viewfunction depositFeesCollected() view returns (uint256)
DIRECT_MATCHING_BONUS
viewfunction DIRECT_MATCHING_BONUS() view returns (uint256)
directMatchPaid
viewfunction directMatchPaid(address, address, uint256) view returns (uint256)
directUplineMatchingBonus
viewfunction directUplineMatchingBonus(address upline) view returns (uint256 totalMatching)
getTotalStakers
viewfunction getTotalStakers() view returns (uint256)
invested
viewfunction invested() view returns (uint256)
LOCK_PERIOD
viewfunction LOCK_PERIOD() view returns (uint256)
match_bonus
viewfunction match_bonus() view returns (uint256)
MAX_DEPOSIT_PER_USER
viewfunction MAX_DEPOSIT_PER_USER() view returns (uint256)
MAX_ROI_PERCENT
viewfunction MAX_ROI_PERCENT() view returns (uint256)
maxTotalDeposits
viewfunction maxTotalDeposits() view returns (uint256)
MIN_DEPOSIT
viewfunction MIN_DEPOSIT() view returns (uint256)
MLM_TOTAL_BONUS
viewfunction MLM_TOTAL_BONUS() view returns (uint256)
MONTHLY_ROI
viewfunction MONTHLY_ROI() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
payoutOf
viewfunction payoutOf(address _addr) view returns (uint256 value)
PERCENT_DIVIDER
viewfunction PERCENT_DIVIDER() view returns (uint256)
players
viewfunction players(address) view returns (address upline, uint256 dividends, uint256 match_bonus, uint256 last_payout, uint256 total_invested, uint256 total_withdrawn, uint256 total_match_bonus)
ref_bonuses
viewfunction ref_bonuses(uint256) view returns (uint256)
stakers
viewfunction stakers(uint256) view returns (address)
userDepositDetails
viewfunction userDepositDetails(address _addr) view returns (uint256[] depositAmounts, uint256[] depositTimes, uint256[] unlockTimes, uint256[] roiWithdrawn)
userInfo
viewfunction userInfo(address _addr) view returns (uint256 for_withdraw, uint256 total_invested, uint256 total_withdrawn, uint256 total_match_bonus, uint256[51] structure)
VLAMA
viewfunction VLAMA() view returns (address)
WITHDRAW_FEE
viewfunction WITHDRAW_FEE() view returns (uint256)
withdrawFeesCollected
viewfunction withdrawFeesCollected() view returns (uint256)
withdrawn
viewfunction withdrawn() view returns (uint256)
deposit
payablefunction deposit(address _upline, uint256 amount) payable
pause
nonpayablefunction pause()
recoverBEP20
nonpayablefunction recoverBEP20(address tokenAddress, uint256 tokenAmount)
renounceOwnership
nonpayablefunction renounceOwnership()
setDepositCap
nonpayablefunction setDepositCap(uint256 _cap)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
withdraw
payablefunction withdraw() payable
withdrawFees
nonpayablefunction withdrawFees()
withdrawPrincipal
nonpayablefunction withdrawPrincipal(uint256 depositIndex)
events
DepositCapSet
event DepositCapSet(uint256 newCap)
DepositFeeCollected
event DepositFeeCollected(address indexed user, uint256 amount)
DepositLimitReached
event DepositLimitReached(uint256 totalDeposits, uint256 attemptAmount)
MatchPayout
event MatchPayout(address indexed addr, address indexed from, uint256 amount)
NewDeposit
event NewDeposit(address indexed addr, uint256 amount, uint256 fee)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnerWithdrawal
event OwnerWithdrawal(address indexed owner, uint256 amount)
Paused
event Paused(address account)
PrincipalWithdrawn
event PrincipalWithdrawn(address indexed addr, uint256 amount)
Unpaused
event Unpaused(address account)
Upline
event Upline(address indexed addr, address indexed upline, uint256 bonus)
Withdraw
event Withdraw(address indexed addr, uint256 amount, uint256 fee)
WithdrawFeeCollected
event WithdrawFeeCollected(address indexed user, uint256 amount)
errors
No errors.
creation bytecode
0x60a060405234801562000010575f80fd5b506040516200315f3803806200315f833981016040819052620000339162000166565b336200003f8162000117565b505f805460ff60a01b19169055600180556001600160a01b0381166200009c5760405162461bcd60e51b815260206004820152600e60248201526d1593105350481c995c5d5a5c995960921b604482015260640160405180910390fd5b6001600160a01b038116608052600a60085560015b600b811015620000de57600160088260338110620000d357620000d362000195565b0155600101620000b1565b50600b5b60338110156200010f5760056008826033811062000104576200010462000195565b0155600101620000e2565b5050620001a9565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121562000177575f80fd5b81516001600160a01b03811681146200018e575f80fd5b9392505050565b634e487b7160e01b5f52603260045260245ffd5b608051612f7a620001e55f395f81816103fc01528181610b5b015281816111fd015281816112c5015281816115fc0152611cc90152612f7a5ff3fe608060405260043610610236575f3560e01c80638da5cb5b11610129578063d0c9ea6d116100a8578063eb37a1ce1161006d578063eb37a1ce14610697578063ec96108c146106d3578063efa08806146106e8578063f2fde38b14610707578063fd5e6dd114610726575f80fd5b8063d0c9ea6d14610580578063d552db62146105af578063de363e65146105c3578063e1e158a5146105dd578063e2eb41ff146105f8575f80fd5b8063baa0d9e7116100ee578063baa0d9e714610354578063c8084dd114610522578063c80ec52214610537578063caa485eb1461054c578063cafb22021461056b575f80fd5b80638da5cb5b1461049c57806393b6f773146104b85780639bff5ddb146104cc5780639f48056c146104e6578063b7d9f0d214610503575f80fd5b8063476343ee116101b557806367fc2d3a1161017a57806367fc2d3a146103eb5780636da61d1e14610436578063715018a6146104555780638456cb5914610469578063866512031461047d575f80fd5b8063476343ee1461036857806347e7ef241461037c5780635c975abb1461038f57806361b01b5d146103b7578063658e28a4146103cc575f80fd5b806329fc7bd8116101fb57806329fc7bd81461030e57806331ed0db4146103225780633ccfd60b146103365780633f4ba83a1461034057806343501f8714610354575f80fd5b806315c43aaf146102415780631820cabb14610291578063189d951e146102b55780631959a002146102c957806325422519146102f9575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b50600254600354600454600554600654600754604080519687526020870195909552938501929092526060840152608083015260a082015260c0015b60405180910390f35b34801561029c575f80fd5b506102a762eff10081565b604051908152602001610288565b3480156102c0575f80fd5b506102a7601e81565b3480156102d4575f80fd5b506102e86102e3366004612bf3565b610745565b604051610288959493929190612c13565b348015610304575f80fd5b506102a760065481565b348015610319575f80fd5b506102a7606481565b34801561032d575f80fd5b50603c546102a7565b61033e610809565b005b34801561034b575f80fd5b5061033e610c08565b34801561035f575f80fd5b506102a7600581565b348015610373575f80fd5b5061033e610c3b565b61033e61038a366004612c64565b610db4565b34801561039a575f80fd5b505f54600160a01b900460ff166040519015158152602001610288565b3480156103c2575f80fd5b506102a760075481565b3480156103d7575f80fd5b5061033e6103e6366004612c8c565b61146b565b3480156103f6575f80fd5b5061041e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610288565b348015610441575f80fd5b506102a7610450366004612bf3565b611662565b348015610460575f80fd5b5061033e6117a3565b348015610474575f80fd5b5061033e6117d5565b348015610488575f80fd5b5061033e610497366004612c8c565b611806565b3480156104a7575f80fd5b505f546001600160a01b031661041e565b3480156104c3575f80fd5b506102a7602881565b3480156104d7575f80fd5b506102a766071afd498d000081565b3480156104f1575f80fd5b506102a76969e10de76676d080000081565b34801561050e575f80fd5b506102a761051d366004612c8c565b611901565b34801561052d575f80fd5b506102a760045481565b348015610542575f80fd5b506102a760035481565b348015610557575f80fd5b506102a7610566366004612bf3565b611917565b348015610576575f80fd5b506102a760025481565b34801561058b575f80fd5b5061059f61059a366004612bf3565b611a20565b6040516102889493929190612cdd565b3480156105ba575f80fd5b506102a7603381565b3480156105ce575f80fd5b506102a76605543df729c00081565b3480156105e8575f80fd5b506102a7678ac7230489e8000081565b348015610603575f80fd5b50610658610612366004612bf3565b603b6020525f908152604090208054600182015460028301546003840154600485015460058601546006909601546001600160a01b039095169593949293919290919087565b604080516001600160a01b0390981688526020880196909652948601939093526060850191909152608084015260a083015260c082015260e001610288565b3480156106a2575f80fd5b506102a76106b1366004612d34565b603d60209081525f938452604080852082529284528284209052825290205481565b3480156106de575f80fd5b506102a760055481565b3480156106f3575f80fd5b5061033e610702366004612c64565b611c9e565b348015610712575f80fd5b5061033e610721366004612bf3565b611d69565b348015610731575f80fd5b5061041e610740366004612c8c565b611e03565b5f805f80610751612bb9565b6001600160a01b0386165f908152603b602052604081209061077288611662565b90505f5b60338160ff1610156107c857826008018160ff166033811061079a5761079a612d6d565b0154848260ff16603381106107b1576107b1612d6d565b6020020152806107c081612d95565b915050610776565b50600282015460018301546107dd9083612db3565b6107e79190612db3565b8260040154836005015484600601549650965096509650505091939590929450565b5f54600160a01b900460ff161561083b5760405162461bcd60e51b815260040161083290612dcc565b60405180910390fd5b60015460020361085d5760405162461bcd60e51b815260040161083290612df6565b60026001553233146108815760405162461bcd60e51b815260040161083290612e2d565b335f908152603b6020526040902060048101546108ce5760405162461bcd60e51b815260206004820152600b60248201526a4e6f206465706f7369747360a81b6044820152606401610832565b66071afd498d00003410156109255760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420424e42207769746864726177206665650000006044820152606401610832565b5f80546040516001600160a01b039091169066071afd498d0000908381818185875af1925050503d805f8114610976576040519150601f19603f3d011682016040523d82523d5f602084013e61097b565b606091505b50509050806109cc5760405162461bcd60e51b815260206004820152601c60248201527f576974686472617720666565207472616e73666572206661696c6564000000006044820152606401610832565b66071afd498d000060065f8282546109e49190612db3565b909155505066071afd498d0000341115610a9c575f33610a0b66071afd498d000034612e64565b6040515f81818185875af1925050503d805f8114610a44576040519150601f19603f3d011682016040523d82523d5f602084013e610a49565b606091505b5050905080610a9a5760405162461bcd60e51b815260206004820152601d60248201527f4578636573732077697468647261772072657475726e206661696c65640000006044820152606401610832565b505b610aa533611e2b565b5f82600101541180610aba57505f8260020154115b610af45760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606401610832565b5f82600201548360010154610b099190612db3565b90505f83600101819055505f836002018190555080836005015f828254610b309190612db3565b925050819055508060035f828254610b489190612db3565b90915550610b8290506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611fe4565b6040805182815266071afd498d0000602082015233917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910160405180910390a260405166071afd498d0000815233907f2391a486d5c26ad99e9700d329ec678e6f19d3277b7dd41d50de6c0c23a5f5449060200160405180910390a250506001805550565b5f546001600160a01b03163314610c315760405162461bcd60e51b815260040161083290612e77565b610c396120a0565b565b5f546001600160a01b03163314610c645760405162461bcd60e51b815260040161083290612e77565b600154600203610c865760405162461bcd60e51b815260040161083290612df6565b60026001554780610ccf5760405162461bcd60e51b81526020600482015260136024820152724e6f7468696e6720746f20776974686472617760681b6044820152606401610832565b5f80546040516001600160a01b039091169083908381818185875af1925050503d805f8114610d19576040519150601f19603f3d011682016040523d82523d5f602084013e610d1e565b606091505b5050905080610d5f5760405162461bcd60e51b815260206004820152600d60248201526c109390881cd95b990819985a5b609a1b6044820152606401610832565b5f546001600160a01b03166001600160a01b03167fa919fadcfa556a012bab31b15f596ea7ccd397adbf10e15f176db9055ab361c483604051610da491815260200190565b60405180910390a2505060018055565b5f54600160a01b900460ff1615610ddd5760405162461bcd60e51b815260040161083290612dcc565b600154600203610dff5760405162461bcd60e51b815260040161083290612df6565b6002600155323314610e235760405162461bcd60e51b815260040161083290612e2d565b678ac7230489e80000811015610e6a5760405162461bcd60e51b815260206004820152600c60248201526b4d696e20313020564c414d4160a01b6044820152606401610832565b6605543df729c000341015610eb85760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e7420424e422066656560601b6044820152606401610832565b335f908152603b60205260409020600401546969e10de76676d080000090610ee1908390612db3565b1115610f2f5760405162461bcd60e51b815260206004820152601a60248201527f4d6178203530302c30303020564c414d412070657220757365720000000000006044820152606401610832565b5f546001600160a01b03163303610f82576007545f03610f825760078190556040518181527f50e5341d7a4ad030a1a03c7b2bccfa67438c0bdf5c398a3b1d7a64babfbf97fe9060200160405180910390a15b5f60075411610fc95760405162461bcd60e51b815260206004820152601360248201527211195c1bdcda5d0818d85c081b9bdd081cd95d606a1b6044820152606401610832565b60075481600254610fda9190612db3565b11156110205760405162461bcd60e51b815260206004820152601560248201527411195c1bdcda5d081b1a5b5a5d081c995858da1959605a1b6044820152606401610832565b5f80546040516001600160a01b03909116906605543df729c000908381818185875af1925050503d805f8114611071576040519150601f19603f3d011682016040523d82523d5f602084013e611076565b606091505b50509050806110bd5760405162461bcd60e51b8152602060048201526013602482015272119959481d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610832565b6605543df729c00060055f8282546110d59190612db3565b90915550506605543df729c000341115611184575f336110fc6605543df729c00034612e64565b6040515f81818185875af1925050503d805f8114611135576040519150601f19603f3d011682016040523d82523d5f602084013e61113a565b606091505b50509050806111825760405162461bcd60e51b8152602060048201526014602482015273115e18d95cdcc81c995d1d5c9b8819985a5b195960621b6044820152606401610832565b505b335f908152603b6020526040812060078101549091036111e057603c80546001810182555f919091527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e0180546001600160a01b031916331790555b604051636eb1769f60e11b81523360048201523060248201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063dd62ed3e90604401602060405180830381865afa15801561124a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126e9190612eac565b9050838110156112b85760405162461bcd60e51b8152602060048201526015602482015274436865636b20746f6b656e20616c6c6f77616e636560581b6044820152606401610832565b6112ed6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308761213b565b6112f8338686612205565b6040805160a0810182528581524260208083018281525f9484018581526060850186815260808601948552600789018054600181810183559189529488209651600590950290960193845591519483019490945592516002820155915160038301555160049182015583018054869290611373908490612db3565b925050819055508360025f82825461138b9190612db3565b9091555061139b905033856123cc565b604080518581526605543df729c000602082015233917fa91e0c3165215fe453f5bf3de083d5fd6c4e62c491849155a042a647588c53a0910160405180910390a26040516605543df729c000815233907fc0c98ed9d384b560504cbe3f8f095845cfea3dbc602c17510d970001f570e0219060200160405180910390a2600754600254106114605760025460408051918252602082018690527feb471ececaf55f7a388ec0a65b25532af95620a990c128df822955d1b7b9c336910160405180910390a15b505060018055505050565b5f54600160a01b900460ff16156114945760405162461bcd60e51b815260040161083290612dcc565b6001546002036114b65760405162461bcd60e51b815260040161083290612df6565b60026001553233146114da5760405162461bcd60e51b815260040161083290612e2d565b335f908152603b602052604090206007810154821061152b5760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610832565b5f81600701838154811061154157611541612d6d565b905f5260205f209060050201905062eff10081600101546115629190612db3565b4210156115a05760405162461bcd60e51b815260206004820152600c60248201526b14dd1a5b1b081b1bd8dad95960a21b6044820152606401610832565b6002810154156115e65760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903bb4ba34323930bbb760791b6044820152606401610832565b8054600282018190556116236001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611fe4565b60405181815233907f6a0d6da0beb3b4dc509c4559b55ca29b5f90af6d351a3f9365bb5ab6b572c9609060200160405180910390a25050600180555050565b6001600160a01b0381165f908152603b6020526040812042825b600783015481101561179b575f83600701828154811061169e5761169e612d6d565b905f5260205f20906005020190505f816002015411156116be5750611793565b5f81600101548560030154116116d85781600101546116de565b84600301545b9050838082101561178f575f6064601e855f01546116fc9190612ec3565b6117069190612eda565b90505f60646005865f015461171b9190612ec3565b6117259190612eda565b90505f62278d006117368686612e64565b6117409084612ec3565b61174a9190612eda565b90505f8660030154841161175e575f61176d565b600387015461176d9085612e64565b905080821161177c578161177e565b805b611788908c612db3565b9a50505050505b5050505b60010161167c565b505050919050565b5f546001600160a01b031633146117cc5760405162461bcd60e51b815260040161083290612e77565b610c395f6127a4565b5f546001600160a01b031633146117fe5760405162461bcd60e51b815260040161083290612e77565b610c396127f3565b5f546001600160a01b0316331461182f5760405162461bcd60e51b815260040161083290612e77565b678ac7230489e800008110156118755760405162461bcd60e51b815260206004820152600b60248201526a43617020746f6f206c6f7760a81b6044820152606401610832565b60075481116118c65760405162461bcd60e51b815260206004820152601960248201527f4361702063616e206f6e6c7920626520696e63726561736564000000000000006044820152606401610832565b60078190556040518181527f50e5341d7a4ad030a1a03c7b2bccfa67438c0bdf5c398a3b1d7a64babfbf97fe9060200160405180910390a150565b60088160338110611910575f80fd5b0154905081565b5f42815b603c54811015611a19575f603c828154811061193957611939612d6d565b5f9182526020808320909101546001600160a01b03908116808452603b9092526040909220549092508116908616146119725750611a11565b6001600160a01b0381165f908152603b60205260408120905b6007820154811015611a0d575f8260070182815481106119ad576119ad612d6d565b5f91825260208083206001600160a01b03808d168552603d83526040808620918a168652908352808520878652909252922054600590910290910191506119f7898684848b612856565b611a019089612db3565b9750505060010161198b565b5050505b60010161191b565b5050919050565b6001600160a01b0381165f908152603b60205260409020600781015460609182918291829167ffffffffffffffff811115611a5d57611a5d612ef9565b604051908082528060200260200182016040528015611a86578160200160208202803683370190505b50600782015490955067ffffffffffffffff811115611aa757611aa7612ef9565b604051908082528060200260200182016040528015611ad0578160200160208202803683370190505b50600782015490945067ffffffffffffffff811115611af157611af1612ef9565b604051908082528060200260200182016040528015611b1a578160200160208202803683370190505b50600782015490935067ffffffffffffffff811115611b3b57611b3b612ef9565b604051908082528060200260200182016040528015611b64578160200160208202803683370190505b5091505f5b6007820154811015611c9557816007018181548110611b8a57611b8a612d6d565b905f5260205f2090600502015f0154868281518110611bab57611bab612d6d565b602002602001018181525050816007018181548110611bcc57611bcc612d6d565b905f5260205f20906005020160010154858281518110611bee57611bee612d6d565b60200260200101818152505062eff100826007018281548110611c1357611c13612d6d565b905f5260205f20906005020160010154611c2d9190612db3565b848281518110611c3f57611c3f612d6d565b602002602001018181525050816007018181548110611c6057611c60612d6d565b905f5260205f20906005020160030154838281518110611c8257611c82612d6d565b6020908102919091010152600101611b69565b50509193509193565b5f546001600160a01b03163314611cc75760405162461bcd60e51b815260040161083290612e77565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611d405760405162461bcd60e51b815260206004820152601560248201527443616e6e6f7420776974686472617720564c414d4160581b6044820152606401610832565b611d65611d545f546001600160a01b031690565b6001600160a01b0384169083611fe4565b5050565b5f546001600160a01b03163314611d925760405162461bcd60e51b815260040161083290612e77565b6001600160a01b038116611df75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610832565b611e00816127a4565b50565b603c8181548110611e12575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152603b6020526040812090611e4c83611662565b90508015611fd65742600383018190556001830180548391905f90611e72908490612db3565b909155508290505f5b600785015481108015611e8d57505f82115b15611fd2575f856007018281548110611ea857611ea8612d6d565b905f5260205f20906005020190505f81600201541115611ec85750611fc0565b5f8160010154876003015411611ee2578160010154611ee8565b86600301545b90505f611ef58287612e64565b90505f611f06606462278d00612ec3565b84548390611f1690600590612ec3565b611f209190612ec3565b611f2a9190612eda565b90505f6064601e865f0154611f3f9190612ec3565b611f499190612eda565b90505f828811611f595787611f5b565b825b90505f86600301548311611f6f575f611f7e565b6003870154611f7e9084612e64565b90505f818311611f8e5782611f90565b815b905080886003015f828254611fa59190612db3565b90915550611fb59050818b612e64565b995050505050505050505b80611fca81612f0d565b915050611e7b565b5050505b611fdf83612993565b505050565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015612030573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120549190612f25565b611fdf5760405162461bcd60e51b815260206004820152601a60248201527f5361666545524332303a207472616e73666572206661696c65640000000000006044820152606401610832565b5f54600160a01b900460ff166120ef5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610832565b5f805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6040516323b872dd60e01b81526001600160a01b0384811660048301528381166024830152604482018390528516906323b872dd906064016020604051808303815f875af115801561218f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121b39190612f25565b6121ff5760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a207472616e7366657246726f6d206661696c656400006044820152606401610832565b50505050565b816001600160a01b0316836001600160a01b0316036122665760405162461bcd60e51b815260206004820152601760248201527f53656c662075706c696e65206e6f7420616c6c6f7765640000000000000000006044820152606401610832565b6001600160a01b038381165f908152603b60205260409020541615801561229a57505f546001600160a01b03848116911614155b15611fdf576001600160a01b0382165f908152603b602052604081206007015490036122ce575f546001600160a01b031691505b6001600160a01b038381165f818152603b6020526040902080546001600160a01b03191692851692831790557fe6aa6b28bd475dad275b706ff13fb0c7c634a95842cca4f7a8795f7ddbbc492f612326606485612eda565b60405190815260200160405180910390a3815f5b60338160ff1610156123c5576001600160a01b038216156123c5576001600160a01b0382165f908152603b6020526040902060080160ff82166033811061238357612383612d6d565b018054905f61239183612f0d565b90915550506001600160a01b039182165f908152603b602052604090205490911690806123bd81612d95565b91505061233a565b5050505050565b6001600160a01b038083165f908152603b602052604081205490911690805b60338160ff161080156123fe5750602882105b156123c5576001600160a01b038316156123c5575f8160ff165f0361245257606460088360ff166033811061243557612435612d6d565b01546124419087612ec3565b61244b9190612eda565b90506124cd565b5f8260ff161180156124675750600b8260ff16105b1561248457606460088360ff166033811061243557612435612d6d565b60056103e860088460ff166033811061249f5761249f612d6d565b01546124ab9088612ec3565b6124b59190612eda565b6124c0906005612ec3565b6124ca9190612eda565b90505b5f856124da836064612ec3565b6124e49190612eda565b6124ee9085612db3565b9050602881111561251d576064612506856028612e64565b6125109088612ec3565b61251a9190612eda565b91505b60058360ff16108061254a57506001600160a01b0385165f908152603b6020526040902060080154600a11155b15612636576001600160a01b0385165f908152603b602052604081206002018054849290612579908490612db3565b90915550506001600160a01b0385165f908152603b6020526040812060060180548492906125a8908490612db3565b925050819055508160045f8282546125c09190612db3565b92505081905550866001600160a01b0316856001600160a01b03167f16e746f9be6c4b545700b04df27afb9fceabf59b94ef1c816e78a435059fabea8460405161260c91815260200190565b60405180910390a36001600160a01b039485165f908152603b60205260409020549094169361275e565b81603b5f61264b5f546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020015f206002015f82825461267b9190612db3565b90915550829050603b5f6126965f546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020015f206006015f8282546126c69190612db3565b925050819055508160045f8282546126de9190612db3565b90915550506001600160a01b0387166126fe5f546001600160a01b031690565b6001600160a01b03167f16e746f9be6c4b545700b04df27afb9fceabf59b94ef1c816e78a435059fabea8460405161273891815260200190565b60405180910390a36001600160a01b039485165f908152603b6020526040902054909416935b8561276a836064612ec3565b6127749190612eda565b61277e9085612db3565b93506028841061278f5750506123c5565b5050808061279c90612d95565b9150506123eb565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f54600160a01b900460ff161561281c5760405162461bcd60e51b815260040161083290612dcc565b5f805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861211e3390565b60028301545f901561286957505f61298a565b835460018501545f606461287e601e85612ec3565b6128889190612eda565b90505f6064612898600586612ec3565b6128a29190612eda565b60646128af601e87612ec3565b6128b99190612eda565b6128c69062278d00612ec3565b6128d09190612eda565b6128da9084612db3565b90505f838960040154116128ee57836128f4565b88600401545b90505f8288116129045787612906565b825b905080821061291d575f965050505050505061298a565b5f62278d00606461292f60058a612ec3565b6129399190612eda565b6129439190612eda565b905061294f8383612e64565b6129599082612ec3565b97505f8a8611612969575f612973565b6129738b87612e64565b905080891115612981578098505b50505050505050505b95945050505050565b425f5b603c54811015611fdf575f603c82815481106129b4576129b4612d6d565b5f9182526020808320909101546001600160a01b03908116808452603b9092526040909220549092508116908516146129ed5750612bb1565b6001600160a01b0381165f908152603b60205260408120905b6007820154811015612bad575f826007018281548110612a2857612a28612d6d565b5f91825260208083206001600160a01b03808c168552603d83526040808620918a16865290835280852087865290925290832054600590920201925090612a72898785858c612856565b90508015612b83576001600160a01b0389165f908152603b602052604081206002018054839290612aa4908490612db3565b90915550506001600160a01b0389165f908152603b602052604081206006018054839290612ad3908490612db3565b925050819055508060045f828254612aeb9190612db3565b90915550506001600160a01b03808a165f908152603d60209081526040808320938a16835292815282822087835290529081208054839290612b2e908490612db3565b92505081905550856001600160a01b0316896001600160a01b03167f16e746f9be6c4b545700b04df27afb9fceabf59b94ef1c816e78a435059fabea83604051612b7a91815260200190565b60405180910390a35b82600101548811612b98578260010154612b9a565b875b6004909301929092555050600101612a06565b5050505b600101612996565b6040518061066001604052806033906020820280368337509192915050565b80356001600160a01b0381168114612bee575f80fd5b919050565b5f60208284031215612c03575f80fd5b612c0c82612bd8565b9392505050565b5f6106e082019050868252602086602084015285604084015284606084015260808301845f5b6033811015612c5657815183529183019190830190600101612c39565b505050509695505050505050565b5f8060408385031215612c75575f80fd5b612c7e83612bd8565b946020939093013593505050565b5f60208284031215612c9c575f80fd5b5035919050565b5f815180845260208085019450602084015f5b83811015612cd257815187529582019590820190600101612cb6565b509495945050505050565b608081525f612cef6080830187612ca3565b8281036020840152612d018187612ca3565b90508281036040840152612d158186612ca3565b90508281036060840152612d298185612ca3565b979650505050505050565b5f805f60608486031215612d46575f80fd5b612d4f84612bd8565b9250612d5d60208501612bd8565b9150604084013590509250925092565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60ff821660ff8103612daa57612daa612d81565b60010192915050565b80820180821115612dc657612dc6612d81565b92915050565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252601a908201527f436f6e74726163742063616c6c73206e6f7420616c6c6f776564000000000000604082015260600190565b81810381811115612dc657612dc6612d81565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215612ebc575f80fd5b5051919050565b8082028115828204841417612dc657612dc6612d81565b5f82612ef457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b5f60018201612f1e57612f1e612d81565b5060010190565b5f60208284031215612f35575f80fd5b81518015158114612c0c575f80fdfea26469706673582212202b735885e5ef4be409c26d7544bfaced1e15150b25427e9667c7b1d7bc042b0464736f6c6343000818003300000000000000000000000053b873473b431a38fab50a51b9e37e7ff55bea3d