0 txs
47 calls
constructor
No constructor.
functions
accountByReferralCode
viewfunction accountByReferralCode(uint256) view returns (address)
accountByUserId
viewfunction accountByUserId(uint256) view returns (address)
config
viewfunction config() view returns (uint256 nextUserId, uint256 deploymentTimestamp, uint256 minimumDeposit, uint256 timeMultiplier, uint256 reserved1, uint256 reserved2, uint256 reserved3, bool reserved4, bool reserved5, bool reserved6, address reserved7, address reserved8)
DECIMALS
viewfunction DECIMALS() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
FULL_BASIS_POINTS
viewfunction FULL_BASIS_POINTS() view returns (uint256)
getClaimFeePercentage
viewfunction getClaimFeePercentage(uint256 userId, uint256 acceleratedCurrentTime) view returns (uint256)
getInterest
viewfunction getInterest(uint256 userId) view returns (uint256)
getInterestInfo
viewfunction getInterestInfo(uint256 userId, uint256 currentTime) view returns (uint256)
getInterestRatePerSecond
purefunction getInterestRatePerSecond(uint256 balance) pure returns (uint256)
getInterestUser
viewfunction getInterestUser(address user) view returns (uint256)
getReferralCode
viewfunction getReferralCode(address user) view returns (uint256)
getReferrer
viewfunction getReferrer(address user) view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
leaderboard
viewfunction leaderboard(uint256 count) view returns (address[] topReferrers, uint256[] topAmounts)
OG_NFT_CONTRACT
viewfunction OG_NFT_CONTRACT() view returns (address)
paused
viewfunction paused() view returns (bool)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
referralsByAccount
viewfunction referralsByAccount(address, uint256) view returns (uint256 timestamp, address account, uint256 amount)
referrers
viewfunction referrers(uint256) view returns (address)
referrersByAccount
viewfunction referrersByAccount(address) view returns (address)
referrerTotals
viewfunction referrerTotals(address) view returns (uint256)
Splitter
viewfunction Splitter() view returns (address)
stats
viewfunction stats() view returns (uint256 userCount, uint256 depositCount, uint256 depositTotal, uint256 claimCount, uint256 claimTotal, uint256 referralCount, uint256 referralTotal)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
transactions
viewfunction transactions(uint256) view returns (uint256 firstTimestamp)
UPGRADER_ROLE
viewfunction UPGRADER_ROLE() view returns (bytes32)
USDT
viewfunction USDT() view returns (address)
userIdByAccount
viewfunction userIdByAccount(address) view returns (uint256)
userReport
viewfunction userReport(address account) view returns (uint256 claimable, tuple[] ledger)
claim
nonpayablefunction claim()
deposit
nonpayablefunction deposit(uint256 amount)
depositReferred
nonpayablefunction depositReferred(uint256 amount, uint256 code)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize()
pause
nonpayablefunction pause()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setMinimumDeposit
nonpayablefunction setMinimumDeposit(uint256 amount)
setOgNftParams
nonpayablefunction setOgNftParams(uint256 minDeposit, uint256 maxCount)
setSplitterContract
nonpayablefunction setSplitterContract(address _splitter)
setTimeMultiplier
nonpayablefunction setTimeMultiplier(uint256 multiplier)
unpause
nonpayablefunction unpause()
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
AdminWithdraw
event AdminWithdraw(address indexed admin, address indexed account, uint256 amount)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Claim
event Claim(uint256 indexed userId, address indexed account, uint256 indexed amount, uint256 timestamp)
Deposit
event Deposit(uint256 indexed userId, address indexed account, uint256 indexed amount, uint256 timestamp)
Initialized
event Initialized(uint8 version)
OGNftMinted
event OGNftMinted(address indexed user)
OGNftMintFailed
event OGNftMintFailed(address indexed user)
Paused
event Paused(address account)
Referral
event Referral(uint256 indexed userId, address indexed account, uint256 amount, uint256 timestamp, address indexed referrer)
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)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
errors
No errors.
creation bytecode
0x60a06040523060805234801561001457600080fd5b5060805161387661004c60003960008181610b6b01528181610bab01528181610f2101528181610f610152610ff001526138766000f3fe60806040526004361061027d5760003560e01c80638e4b01f61161014f578063ba28ffc8116100c1578063d9d2d0581161007a578063d9d2d0581461090e578063da26e7061461092f578063e78ec42e1461094f578063e874df2f1461096f578063f72c0d8b146109a6578063ffa04d1e146109da57600080fd5b8063ba28ffc8146107e6578063bf36839914610806578063c54e44eb14610834578063cb85fc6e14610855578063d547741f14610883578063d80528ae146108a357600080fd5b80639dfe5675116101135780639dfe567514610723578063a217fddf14610751578063aaab073714610766578063b48c079714610786578063b5e3b6b5146107a6578063b6b55f25146107c657600080fd5b80638e4b01f61461065e57806391d148541461067e57806392c403441461069e57806398e07143146106be5780639ace38c2146106f557600080fd5b80634e6b591d116101f35780635c975abb116101ac5780635c975abb146105105780635fe2d6891461052857806369aff7e31461054857806379502c551461055e5780638129fc1c146106345780638456cb591461064957600080fd5b80634e6b591d1461045d5780634e71d92d146104855780634f1ef2861461049a57806352d1902d146104ad578063591429fb146104c257806359ff3657146104f057600080fd5b80632f2ff15d116102455780632f2ff15d1461036b57806336568abe1461038b5780633659cfe6146103ab5780633ad90650146103cb5780633f4ba83a1461040e5780634a9fefc71461042357600080fd5b806301c7224f1461028257806301ffc9a7146102bf578063248a9ca3146102ef57806324ce87ec1461032d5780632e0f26251461034f575b600080fd5b34801561028e57600080fd5b506102a261029d366004613248565b610a11565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102cb57600080fd5b506102df6102da366004613261565b610a3c565b60405190151581526020016102b6565b3480156102fb57600080fd5b5061031f61030a366004613248565b60009081526065602052604090206001015490565b6040519081526020016102b6565b34801561033957600080fd5b5061034d610348366004613248565b610a4d565b005b34801561035b57600080fd5b5061031f670de0b6b3a764000081565b34801561037757600080fd5b5061034d6103863660046132a2565b610ab9565b34801561039757600080fd5b5061034d6103a63660046132a2565b610ae3565b3480156103b757600080fd5b5061034d6103c63660046132ce565b610b61565b3480156103d757600080fd5b506103eb6103e63660046132e9565b610c40565b604080519384526001600160a01b039092166020840152908201526060016102b6565b34801561041a57600080fd5b5061034d610c8d565b34801561042f57600080fd5b506102a261043e3660046132ce565b6001600160a01b03908116600090815261017660205260409020541690565b34801561046957600080fd5b506102a2734d522f7657457e39381f02eba4201c9d5b25a6bc81565b34801561049157600080fd5b5061034d610ca0565b61034d6104a8366004613329565b610f17565b3480156104b957600080fd5b5061031f610fe3565b3480156104ce57600080fd5b506104e26104dd3660046132ce565b611096565b6040516102b69291906133eb565b3480156104fc57600080fd5b5061031f61050b3660046132ce565b611188565b34801561051c57600080fd5b5060975460ff166102df565b34801561053457600080fd5b5061031f610543366004613248565b6111ca565b34801561055457600080fd5b5061031f61271081565b34801561056a57600080fd5b506101615461016254610163546101645461016554610166546101675461016854610169546105c9989796959493929160ff808216926101008304821692620100008104909216916001600160a01b036301000000909104811691168c565b604080519c8d5260208d019b909b52998b019890985260608a0196909652608089019490945260a088019290925260c0870152151560e0860152151561010085015215156101208401526001600160a01b0390811661014084015216610160820152610180016102b6565b34801561064057600080fd5b5061034d6111d6565b34801561065557600080fd5b5061034d611394565b34801561066a57600080fd5b5061031f610679366004613248565b6113a7565b34801561068a57600080fd5b506102df6106993660046132a2565b61142b565b3480156106aa57600080fd5b5061031f6106b93660046132ce565b611456565b3480156106ca57600080fd5b506102a26106d9366004613248565b610171602052600090815260409020546001600160a01b031681565b34801561070157600080fd5b5061031f610710366004613248565b6101736020526000908152604090205481565b34801561072f57600080fd5b5061031f61073e3660046132ce565b6101726020526000908152604090205481565b34801561075d57600080fd5b5061031f600081565b34801561077257600080fd5b5061034d6107813660046132ce565b61147e565b34801561079257600080fd5b5061034d6107a1366004613476565b6114ad565b3480156107b257600080fd5b5061031f6107c1366004613476565b611532565b3480156107d257600080fd5b5061034d6107e1366004613248565b6116df565b3480156107f257600080fd5b5061034d610801366004613476565b6116eb565b34801561081257600080fd5b50610826610821366004613248565b6117b4565b6040516102b6929190613498565b34801561084057600080fd5b5061015f546102a2906001600160a01b031681565b34801561086157600080fd5b5061031f6108703660046132ce565b6101756020526000908152604090205481565b34801561088f57600080fd5b5061034d61089e3660046132a2565b611b6b565b3480156108af57600080fd5b5061016a5461016b5461016c5461016d5461016e5461016f54610170546108d99695949392919087565b604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e0016102b6565b34801561091a57600080fd5b50610160546102a2906001600160a01b031681565b34801561093b57600080fd5b5061031f61094a366004613476565b611b90565b34801561095b57600080fd5b5061034d61096a366004613248565b611cf9565b34801561097b57600080fd5b506102a261098a3660046132ce565b610176602052600090815260409020546001600160a01b031681565b3480156109b257600080fd5b5061031f7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b3480156109e657600080fd5b506102a26109f5366004613248565b610177602052600090815260409020546001600160a01b031681565b6101748181548110610a2257600080fd5b6000918252602090912001546001600160a01b0316905081565b6000610a4782611d66565b92915050565b6000610a5881611d9b565b60018210158015610a6c5750620151808211155b610ab25760405162461bcd60e51b815260206004820152601260248201527124b73b30b634b21036bab63a34b83634b2b960711b60448201526064015b60405180910390fd5b5061016455565b600082815260656020526040902060010154610ad481611d9b565b610ade8383611da5565b505050565b6001600160a01b0381163314610b535760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610aa9565b610b5d8282611e2b565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ba95760405162461bcd60e51b8152600401610aa99061351c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bf26000805160206137fa833981519152546001600160a01b031690565b6001600160a01b031614610c185760405162461bcd60e51b8152600401610aa990613568565b610c2181611e92565b60408051600080825260208201909252610c3d91839190611ebc565b50565b6101786020528160005260406000208181548110610c5d57600080fd5b60009182526020909120600390910201805460018201546002909201549093506001600160a01b03909116915083565b6000610c9881611d9b565b610c3d612027565b610ca8612079565b336000818152610172602052604090205480610cf75760405162461bcd60e51b815260206004820152600e60248201526d155cd95c881b9bdd08199bdd5b9960921b6044820152606401610aa9565b61016454600090610d0890426135ca565b90506000610d168342611b90565b905060008111610d5b5760405162461bcd60e51b815260206004820152601060248201526f4e6f7468696e6720746f20636c61696d60801b6044820152606401610aa9565b6000610d678484611532565b90506000612710610d7883856135ca565b610d8291906135f7565b90506000610d90828561360b565b9050610d9f87878660006120d2565b61015f546040516370a0823160e01b815230600482015282916001600160a01b0316906370a0823190602401602060405180830381865afa158015610de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0c919061361e565b1015610e5a5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e74207061796f75742066756e6473000000000000006044820152606401610aa9565b61015f5460405163a9059cbb60e01b81526001600160a01b038981166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610eae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed29190613637565b508361016a6004016000828254610ee99190613659565b909155505061016d8054906000610eff8361366c565b919050555050505050505050610f15600160c955565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f5f5760405162461bcd60e51b8152600401610aa99061351c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fa86000805160206137fa833981519152546001600160a01b031690565b6001600160a01b031614610fce5760405162461bcd60e51b8152600401610aa990613568565b610fd782611e92565b610b5d82826001611ebc565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110835760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610aa9565b506000805160206137fa83398151915290565b600060606001600160a01b03831615611183576001600160a01b0383166000908152610172602052604090205480156111815760008181526101736020908152604080832060010180548251818502810185019093528083529193909284015b8282101561116e57838290600052602060002090600702016040518060e0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481525050815260200190600101906110f6565b50505050915061117e8142611b90565b92505b505b915091565b60006001600160a01b038216156111bd576001600160a01b03821660009081526101726020526040902054610a479042611b90565b506000919050565b919050565b6000610a478242611b90565b600054610100900460ff16158080156111f65750600054600160ff909116105b806112105750303b158015611210575060005460ff166001145b6112735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610aa9565b6000805460ff191660011790558015611296576000805461ff0019166101001790555b61129e61257b565b6112a66125a2565b6112ae6125d1565b6112b661257b565b6112c1600033612600565b6112e0600073e1b8dc9924f453c299d1a43bd8a574fb41461555612600565b61130a7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333612600565b61015f80546001600160a01b0319167355d398326f99059ff775485246999027b3197955179055600161016181905542610162556101645561134c60c8611cf9565b8015610c3d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600061139f81611d9b565b610c3d61260a565b6000806113bc670de0b6b3a7640000846135f7565b905061c35081116113d1575061169b92915050565b6203d09081116113e5575061145892915050565b6207a12081116113f9575061121692915050565b620b71b0811161140d5750610fd392915050565b620f424081116114215750610d9092915050565b50610b4e92915050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6001600160a01b03811660009081526101726020526040812054156111bd57610a4782612647565b600061148981611d9b565b5061016080546001600160a01b0319166001600160a01b0392909216919091179055565b801561150e576298968081101580156114ca57506305f5e0ff8111155b61150e5760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420726566657272616c20636f646560581b6044820152606401610aa9565b600081815261017760205260409020546001600160a01b0316610ade83338361266d565b600082815261017360209081526040808320600101805482518185028101850190935280835284938493929190849084015b828210156115dc57838290600052602060002090600702016040518060e001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152505081526020019060010190611564565b5050825192935050505b801561165d576000826115fa60018461360b565b8151811061160a5761160a613685565b602002602001015160a00151111561164b578161162860018361360b565b8151811061163857611638613685565b602002602001015160000151925061165d565b806116558161369b565b9150506115e6565b508160000361167157600092505050610a47565b600061167d838661360b565b90506224ea00621baf80621275008284106116a15760009650505050505050610a47565b8184106116b8576103e89650505050505050610a47565b8084106116cf576107d09650505050505050610a47565b610bb89650505050505050610a47565b610c3d8133600061266d565b60006116f681611d9b565b600083116117465760405162461bcd60e51b815260206004820152601e60248201527f4d696e696d756d204465706f7369742063616e6e6f74206265207a65726f00006044820152606401610aa9565b600082116117965760405162461bcd60e51b815260206004820152601c60248201527f4d6178696d756d20436f756e742063616e6e6f74206265207a65726f000000006044820152606401610aa9565b6117a8670de0b6b3a7640000846135ca565b610179555061017a5550565b61017454606090819060008490036117cb57600a93505b808411156117d7578093505b60008167ffffffffffffffff8111156117f2576117f2613313565b60405190808252806020026020018201604052801561181b578160200160208202803683370190505b50905060005b8281101561189757610174818154811061183d5761183d613685565b9060005260206000200160009054906101000a90046001600160a01b031682828151811061186d5761186d613685565b6001600160a01b03909216602092830291909101909101528061188f8161366c565b915050611821565b5060005b6118a660018461360b565b811015611a125760005b60016118bc838661360b565b6118c6919061360b565b8110156119ff576101756000846118de846001613659565b815181106118ee576118ee613685565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054610175600085848151811061192e5761192e613685565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205410156119ed5782611969826001613659565b8151811061197957611979613685565b602002602001015183828151811061199357611993613685565b60200260200101518483815181106119ad576119ad613685565b60200260200101858460016119c29190613659565b815181106119d2576119d2613685565b6001600160a01b039384166020918202929092010152911690525b806119f78161366c565b9150506118b0565b5080611a0a8161366c565b91505061189b565b508467ffffffffffffffff811115611a2c57611a2c613313565b604051908082528060200260200182016040528015611a55578160200160208202803683370190505b5093508467ffffffffffffffff811115611a7157611a71613313565b604051908082528060200260200182016040528015611a9a578160200160208202803683370190505b50925060005b85811015611b6357818181518110611aba57611aba613685565b6020026020010151858281518110611ad457611ad4613685565b60200260200101906001600160a01b031690816001600160a01b0316815250506101756000838381518110611b0b57611b0b613685565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054848281518110611b4657611b46613685565b602090810291909101015280611b5b8161366c565b915050611aa0565b505050915091565b600082815260656020526040902060010154611b8681611d9b565b610ade8383611e2b565b610164546000908190611ba390846135ca565b9050831580611bc2575060008481526101736020526040902060010154155b15611bd1576000915050610a47565b600084815261017360205260408120600190810180549091611bf29161360b565b81548110611c0257611c02613685565b90600052602060002090600702016040518060e001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152505090508060c001518211611c7957600092505050610a47565b60408101516000819003611c935760009350505050610a47565b60008260c0015184611ca5919061360b565b90506000611cb2836113a7565b9050600064174876e80083611cc784876135ca565b611cd191906135ca565b611cdb91906135f7565b9050838111611cea5780611cec565b835b9998505050505050505050565b6000611d0481611d9b565b60008211611d4c5760405162461bcd60e51b8152602060048201526015602482015274416d6f756e742063616e6e6f74206265207a65726f60581b6044820152606401610aa9565b611d5e670de0b6b3a7640000836135ca565b610163555050565b60006001600160e01b03198216637965db0b60e01b1480610a4757506301ffc9a760e01b6001600160e01b0319831614610a47565b610c3d813361271d565b611daf828261142b565b610b5d5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611de73390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611e35828261142b565b15610b5d5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610b5d81611d9b565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611eef57610ade83612776565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611f49575060408051601f3d908101601f19168201909252611f469181019061361e565b60015b611fac5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610aa9565b6000805160206137fa833981519152811461201b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610aa9565b50610ade838383612812565b61202f61283d565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600260c954036120cb5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610aa9565b600260c955565b610164546000906120e390426135ca565b600085815261017360205260408120600190810154929350909161210691613659565b600086815261017360205260408120600101549192509081036122aa578361212f576000612131565b845b90508380156121435750610179548510155b80156121c8575061017a54734d522f7657457e39381f02eba4201c9d5b25a6bc6001600160a01b03166318160ddd6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156121a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c6919061361e565b105b156122a5576040516335313c2160e11b81526001600160a01b0388166004820152734d522f7657457e39381f02eba4201c9d5b25a6bc90636a62784290602401600060405180830381600087803b15801561222257600080fd5b505af1925050508015612233575060015b612270576040516001600160a01b038816907f091738ddbfd64f9cbcb0bc06a16f87ee76118ca08239f83f5d507916a56034dc90600090a261238a565b6040516001600160a01b038816907f72450c52c6144522a64eb755a099807c34e7c6849e90285538d4a18cf47450b290600090a25b61238a565b60006122b68742611b90565b6000888152610173602052604081206001908101805493945091926122db919061360b565b815481106122eb576122eb613685565b90600052602060002090600702016040518060e00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815250509050851561237457818782604001516123639190613659565b61236d9190613659565b9250612387565b868160400151612384919061360b565b92505b50505b600086815261017360208181526040808420815160e081018352888152808401889052918201869052938a90529190526001909101805490919060608201901561242e57866123d957876123dc565b60005b60008a8152610173602052604090206001908101805490916123fd9161360b565b8154811061240d5761240d613685565b9060005260206000209060070201600301546124299190613659565b612431565b60005b815260200186612442576000612444565b875b8152602001866124545787612457565b60005b815260209081018690528254600181810185556000948552938290208351600790920201908155908201519281019290925560408101516002830155606081015160038301556080810151600483015560a0810151600583015560c001516006909101558315612518576000868152610171602090815260409182902054915185815287926001600160a01b03169189917fd36a2f67d06d285786f61a32b052b9ace6b0b7abef5177b54358abdc83a0b69b910160405180910390a461256b565b6000868152610171602090815260409182902054915185815287926001600160a01b03169189917fd27486cbbd902c694ff070c4b52eb23c8f7828d3688bd3c7293638daec288808910160405180910390a45b50505050505050565b600160c955565b600054610100900460ff16610f155760405162461bcd60e51b8152600401610aa9906136b2565b600054610100900460ff166125c95760405162461bcd60e51b8152600401610aa9906136b2565b610f15612886565b600054610100900460ff166125f85760405162461bcd60e51b8152600401610aa9906136b2565b610f156128b9565b610b5d8282611da5565b6126126128e0565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861205c3390565b600061266063055d4a806001600160a01b0384166136fd565b610a479062989680613659565b612675612079565b610163548310156126c85760405162461bcd60e51b815260206004820152601860248201527f416d6f756e74206c657373207468616e206d696e696d756d00000000000000006044820152606401610aa9565b6126d28282612926565b905060006126e08483612ae3565b90506126eb84612c5c565b60006126f684612c90565b905061270584828760016120d2565b61271181858585612dcd565b5050610ade600160c955565b612727828261142b565b610b5d5761273481612f17565b61273f836020612f29565b604051602001612750929190613735565b60408051601f198184030181529082905262461bcd60e51b8252610aa9916004016137aa565b6001600160a01b0381163b6127e35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610aa9565b6000805160206137fa83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61281b836130c5565b6000825111806128285750805b15610ade576128378383613105565b50505050565b60975460ff16610f155760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610aa9565b600054610100900460ff166128ad5760405162461bcd60e51b8152600401610aa9906136b2565b6097805460ff19169055565b600054610100900460ff166125745760405162461bcd60e51b8152600401610aa9906136b2565b60975460ff1615610f155760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610aa9565b6001600160a01b0382166000908152610172602052604081205415801561295557506001600160a01b03821615155b15612ada57826001600160a01b0316826001600160a01b0316036129bb5760405162461bcd60e51b815260206004820152601760248201527f557365722063616e6e6f742062652072656665727265720000000000000000006044820152606401610aa9565b6001600160a01b03821660009081526101726020526040902054612a305760405162461bcd60e51b815260206004820152602660248201527f5265666572726572206d757374206465706f736974206265666f726520726566604482015265657272696e6760d01b6064820152608401610aa9565b6001600160a01b0383811660009081526101766020908152604080832080546001600160a01b03191694871694851790559282526101759052908120549003612ad357610174805460018101825560009182527f19628ef4f1e52435a91694e0b17e2591e7982b96f1883cadfe58900fe74230c40180546001600160a01b0319166001600160a01b03851617905561016f805491612acd8361366c565b91905055505b5080610a47565b50600092915050565b61015f546040516323b872dd60e01b8152336004820152306024820152604481018490526000916001600160a01b0316906323b872dd906064016020604051808303816000875af1158015612b3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b609190613637565b5061015f546101605460405163095ea7b360e01b81526001600160a01b0391821660048201526024810186905291169063095ea7b3906044016020604051808303816000875af1158015612bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdc9190613637565b50610160546040516376cd9ad960e01b8152600481018590526001600160a01b038481166024830152909116906376cd9ad9906044016020604051808303816000875af1158015612c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c55919061361e565b9392505050565b8061016a6002016000828254612c729190613659565b909155505061016b8054906000612c888361366c565b919050555050565b6001600160a01b03811660009081526101726020526040812054908190036111c55750610161805460008181526101716020908152604080832080546001600160a01b0319166001600160a01b0388169081179091558352610172825280832084905583835261017390915281204290558254919290612d0f8361366c565b909155505061016a8054906000612d258361366c565b91905055506000612d3583612647565b600081815261017760205260409020549091506001600160a01b031615612d9e5760405162461bcd60e51b815260206004820152601a60248201527f526566657272616c20636f646520616c726561647920757365640000000000006044820152606401610aa9565b60009081526101776020526040902080546001600160a01b0384166001600160a01b0319909116179055919050565b6001600160a01b03821615612837576001600160a01b0382166000908152610178602052604090819020815160608101909252610164549091908190612e1390426135ca565b81526001600160a01b038681166020808401829052604093840187905285546001808201885560009788529682902086516003909202019081559085015195810180546001600160a01b031916968416969096179095559290910151600290930192909255610164549184169186907fc6bde62c2e879a24a7a89cfbc56df3a323d150bf57cc967bddfebb095eedea09908590612eb090426135ca565b6040805192835260208301919091520160405180910390a46001600160a01b0382166000908152610175602052604081208054839290612ef1908490613659565b90915550506101708054829190600090612f0c908490613659565b909155505050505050565b6060610a476001600160a01b03831660145b60606000612f388360026135ca565b612f43906002613659565b67ffffffffffffffff811115612f5b57612f5b613313565b6040519080825280601f01601f191660200182016040528015612f85576020820181803683370190505b509050600360fc1b81600081518110612fa057612fa0613685565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612fcf57612fcf613685565b60200101906001600160f81b031916908160001a9053506000612ff38460026135ca565b612ffe906001613659565b90505b6001811115613076576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061303257613032613685565b1a60f81b82828151811061304857613048613685565b60200101906001600160f81b031916908160001a90535060049490941c9361306f8161369b565b9050613001565b508315612c555760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610aa9565b6130ce81612776565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612c55838360405180606001604052806027815260200161381a602791396060600080856001600160a01b03168560405161314291906137dd565b600060405180830381855af49150503d806000811461317d576040519150601f19603f3d011682016040523d82523d6000602084013e613182565b606091505b50915091506131938683838761319d565b9695505050505050565b6060831561320c578251600003613205576001600160a01b0385163b6132055760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610aa9565b5081613216565b613216838361321e565b949350505050565b81511561322e5781518083602001fd5b8060405162461bcd60e51b8152600401610aa991906137aa565b60006020828403121561325a57600080fd5b5035919050565b60006020828403121561327357600080fd5b81356001600160e01b031981168114612c5557600080fd5b80356001600160a01b03811681146111c557600080fd5b600080604083850312156132b557600080fd5b823591506132c56020840161328b565b90509250929050565b6000602082840312156132e057600080fd5b612c558261328b565b600080604083850312156132fc57600080fd5b6133058361328b565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561333c57600080fd5b6133458361328b565b9150602083013567ffffffffffffffff8082111561336257600080fd5b818501915085601f83011261337657600080fd5b81358181111561338857613388613313565b604051601f8201601f19908116603f011681019083821181831017156133b0576133b0613313565b816040528281528860208487010111156133c957600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060408083018584526020828186015281865180845260609350838701915082880160005b82811015613467578151805185528581015186860152878101518886015286810151878601526080808201519086015260a0808201519086015260c0908101519085015260e09093019290840190600101613411565b50919998505050505050505050565b6000806040838503121561348957600080fd5b50508035926020909101359150565b604080825283519082018190526000906020906060840190828701845b828110156134da5781516001600160a01b0316845292840192908401906001016134b5565b5050508381038285015284518082528583019183019060005b8181101561350f578351835292840192918401916001016134f3565b5090979650505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a4757610a476135b4565b634e487b7160e01b600052601260045260246000fd5b600082613606576136066135e1565b500490565b81810381811115610a4757610a476135b4565b60006020828403121561363057600080fd5b5051919050565b60006020828403121561364957600080fd5b81518015158114612c5557600080fd5b80820180821115610a4757610a476135b4565b60006001820161367e5761367e6135b4565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6000816136aa576136aa6135b4565b506000190190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008261370c5761370c6135e1565b500690565b60005b8381101561372c578181015183820152602001613714565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161376d816017850160208801613711565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161379e816028840160208801613711565b01602801949350505050565b60208152600082518060208401526137c9816040850160208701613711565b601f01601f19169190910160400192915050565b600082516137ef818460208701613711565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203ed903d58472064dc2663dac14d057318c8048c4c648d5fe50d1c1e52b8dae4364736f6c63430008110033