0 txs
798 calls
constructor
No constructor.
functions
accumulatedRewardsPerShare
viewfunction accumulatedRewardsPerShare(address) view returns (uint256)
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRewards
viewfunction getRewards(address token, address user) view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getStakingHistory
viewfunction getStakingHistory(address token, address user, uint256[] stakeIndex) view returns (tuple[] stakingHistory)
getUserDetailsForToken
viewfunction getUserDetailsForToken(address token, address user) view returns (uint256 stakes, uint256 total, uint256 rewards, uint256 rewardPerBlock)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isBlacklisted
viewfunction isBlacklisted(address) view returns (bool)
lastRewardedBlock
viewfunction lastRewardedBlock(address) view returns (uint256)
lastWithdrawStakeId
viewfunction lastWithdrawStakeId(address, address) view returns (uint256)
minimumStarsBalance
viewfunction minimumStarsBalance() view returns (uint256)
newUserLockedRewards
viewfunction newUserLockedRewards(address, address) view returns (uint256)
paused
viewfunction paused() view returns (bool)
poolStakers
viewfunction poolStakers(address, address) view returns (uint256 amount, uint256 stakedTime, uint256 lastUpdatedBlock, uint256 rewardDebt, uint256 rewardClaimed)
rewardTokensPerBlock
viewfunction rewardTokensPerBlock() view returns (uint256)
stakingAllowedTokens
viewfunction stakingAllowedTokens() view returns (address[])
stakingEndBlock
viewfunction stakingEndBlock() view returns (uint256)
starToken
viewfunction starToken() view returns (address)
superAdmin
viewfunction superAdmin() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokensStaked
viewfunction tokensStaked(address) view returns (uint256)
userLockedRewards
viewfunction userLockedRewards(address) view returns (uint256)
userTokenStakeDetails
viewfunction userTokenStakeDetails(address, address, uint256) view returns (uint256 stakeId, uint256 amount, uint256 stakedTime, bool claimed)
userTokenStakeIdIndex
viewfunction userTokenStakeIdIndex(address, address) view returns (uint256)
blacklistUsers
nonpayablefunction blacklistUsers(address[] usersToBlacklist)
changeSuperAdmin
nonpayablefunction changeSuperAdmin(address newSuperAdmin)
claimRewards
nonpayablefunction claimRewards(address token)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address starToken_, address adminAddress, address[] allowedTokens_, uint256 rewardTokensPerBlock_, uint256 stakingEndBlock_, uint256 minimumStarsBalance_)
pause
nonpayablefunction pause()
removeFromBlacklist
nonpayablefunction removeFromBlacklist(address[] usersToRemove)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setMinimumStarsBalance
nonpayablefunction setMinimumStarsBalance(uint256 newMinimumStarsBalance)
stake
nonpayablefunction stake(address token, uint256 amount)
unpause
nonpayablefunction unpause()
updateAllowedTokens
nonpayablefunction updateAllowedTokens(address[] newAllowedTokens)
updateUserClaimedRewards
nonpayablefunction updateUserClaimedRewards(address[] token, address[] user, uint256[] alreadyClaimed)
updateUserLockedRewards
nonpayablefunction updateUserLockedRewards(address[] token, address[] user, uint256[] lockedRewards)
withdraw
nonpayablefunction withdraw(address token)
withdrawStarTokens
nonpayablefunction withdrawStarTokens(uint256 amount)
events
AllowedTokensUpdated
event AllowedTokensUpdated(address[] newAllowedTokens)
Deposit
event Deposit(address indexed token, address indexed user, uint256 amount)
Initialized
event Initialized(uint64 version)
Paused
event Paused(address account)
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)
StarTokensWithdrawn
event StarTokensWithdrawn(address indexed recipient, uint256 amount)
SuperAdminChanged
event SuperAdminChanged(address indexed oldSuperAdmin, address indexed newSuperAdmin)
Unpaused
event Unpaused(address account)
Withdraw
event Withdraw(address indexed token, address indexed user, uint256 amount)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x608060405234801561001057600080fd5b506132a6806100206000396000f3fe608060405234801561001057600080fd5b506004361061025e5760003560e01c80637d7366aa11610146578063adc9772e116100c3578063d547741f11610087578063d547741f14610671578063db1e674f14610684578063ea94763c146106a4578063ef5cfb8c146106ad578063f7354169146106c0578063fe575a87146106d357600080fd5b8063adc9772e146105fa578063b7ca51e81461060d578063bb3d676a14610620578063c1038bad14610633578063c481876c1461064657600080fd5b806391d148541161010a57806391d14854146105815780639730ed91146105945780639a889106146105bf578063a217fddf146105d2578063ac6bdeb9146105da57600080fd5b80637d7366aa146104a35780638013f265146104c35780638456cb59146104f657806389daf799146104fe5780638ca06cee1461051157600080fd5b8063390b1d99116101df5780635a334fd4116101a35780635a334fd4146104055780635c975abb14610425578063624ffa641461043d5780636e45c75f1461046857806375b238fc1461047b578063779bcb9b1461049057600080fd5b8063390b1d99146103af5780633f4ba83a146103c457806341858c4b146103cc5780634efb8dbc146103df57806351cff8d9146103f257600080fd5b806329575f6a1161022657806329575f6a1461033557806329d0fa3e146103605780632cf01b55146103695780632f2ff15d1461038957806336568abe1461039c57600080fd5b806301ffc9a71461026357806302628e321461028b578063032cad2e146102f65780630a122c8a1461030b578063248a9ca314610322575b600080fd5b610276610271366004612a3d565b6106f6565b60405190151581526020015b60405180910390f35b6102d4610299366004612a83565b600a60209081526000938452604080852082529284528284209052825290208054600182015460028301546003909301549192909160ff1684565b6040805194855260208501939093529183015215156060820152608001610282565b610309610304366004612ac4565b61072d565b005b61031460025481565b604051908152602001610282565b610314610330366004612ac4565b6107eb565b600454610348906001600160a01b031681565b6040516001600160a01b039091168152602001610282565b61031460015481565b610314610377366004612add565b60056020526000908152604090205481565b610309610397366004612afa565b61080d565b6103096103aa366004612afa565b61082f565b6103b7610867565b6040516102829190612b2a565b6103096108c9565b6103096103da366004612add565b6108ec565b6103096103ed366004612cb1565b610a73565b610309610400366004612add565b610b91565b610314610413366004612add565b60066020526000908152604090205481565b60008051602061323a8339815191525460ff16610276565b61031461044b366004612d39565b600e60209081526000928352604080842090915290825290205481565b610309610476366004612ac4565b610f72565b61031460008051602061327a83398151915281565b61031461049e366004612d39565b6111ab565b6103146104b1366004612add565b600d6020526000908152604090205481565b6104d66104d1366004612d39565b6113ad565b604080519485526020850193909352918301526060820152608001610282565b610309611430565b61030961050c366004612d67565b611450565b61055961051f366004612d39565b600b602090815260009283526040808420909152908252902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a001610282565b61027661058f366004612afa565b61154d565b6103146105a2366004612d39565b600860209081526000928352604080842090915290825290205481565b6103096105cd366004612ddc565b611585565b610314600081565b6103146105e8366004612add565b60076020526000908152604090205481565b610309610608366004612e19565b61160d565b600054610348906001600160a01b031681565b61030961062e366004612d67565b611ad6565b610309610641366004612cb1565b611bc2565b610314610654366004612d39565b600960209081526000928352604080842090915290825290205481565b61030961067f366004612afa565b611ccf565b610697610692366004612e45565b611ceb565b6040516102829190612e9d565b610314600f5481565b6103096106bb366004612add565b611e33565b6103096106ce366004612f03565b612025565b6102766106e1366004612add565b600c6020526000908152604090205460ff1681565b60006001600160e01b03198216637965db0b60e01b148061072757506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008051602061327a833981519152610745816123b9565b6000821161076e5760405162461bcd60e51b815260040161076590612f81565b60405180910390fd5b81600f54036107e55760405162461bcd60e51b815260206004820152603b60248201527f416c6c53746172735374616b696e67506f6f6c3a204d696e696d756d2053746160448201527f72732062616c616e63652073616d652061732070726576696f757300000000006064820152608401610765565b50600f55565b600090815260008051602061321a833981519152602052604090206001015490565b610816826107eb565b61081f816123b9565b61082983836123c3565b50505050565b6001600160a01b03811633146108585760405163334bd91960e11b815260040160405180910390fd5b6108628282612468565b505050565b606060038054806020026020016040519081016040528092919081815260200182805480156108bf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108a1575b5050505050905090565b60008051602061327a8339815191526108e1816123b9565b6108e96124e4565b50565b6004546001600160a01b0316336001600160a01b0316146109695760405162461bcd60e51b815260206004820152603160248201527f416c6c53746172735374616b696e67506f6f6c3a2043616c6c6572206973206e60448201527037ba103a34329039bab832b920b236b4b760791b6064820152608401610765565b6001600160a01b0381166109e55760405162461bcd60e51b815260206004820152603760248201527f416c6c53746172735374616b696e67506f6f6c3a204e6577207375706572416460448201527f6d696e20697320746865207a65726f20616464726573730000000000000000006064820152608401610765565b6109fd60008051602061327a833981519152826123c3565b50610a1660008051602061327a83398151915233612468565b506004546040516001600160a01b038084169216907f6a7fb6694616d75391385b86c21a1cc2628072753f9c7da9731e7b1b083a55e490600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b60008051602061327a833981519152610a8b816123b9565b82518451148015610a9d575081518351145b610ab95760405162461bcd60e51b815260040161076590612feb565b60005b8451811015610b8a576000600b6000878481518110610add57610add613039565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000868481518110610b1957610b19613039565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000209050838281518110610b5557610b55613039565b6020026020010151816004016000828254610b709190613065565b90915550829150610b82905081613078565b915050610abc565b5050505050565b610b99612544565b610ba161257c565b6001600160a01b038116610bc75760405162461bcd60e51b815260040161076590613091565b610bd0816125af565b610bec5760405162461bcd60e51b8152600401610765906130db565b6001600160a01b0381166000908152600b60209081526040808320338452825291829020825160a08101845281548082526001830154938201939093526002820154938101939093526003810154606084015260040154608083015280610cb15760405162461bcd60e51b815260206004820152603360248201527f416c6c53746172735374616b696e67506f6f6c3a20576974686472617720616d6044820152726f756e742063616e6e6f74206265207a65726f60681b6064820152608401610765565b6000610cbd84336111ab565b9050610cc98433612622565b6001600160a01b0384166000908152600860209081526040808320338452909152812054610cf8906001613124565b6001600160a01b03861660009081526009602090815260408083203384529091528120805492935090918290610d2d90613078565b91829055509050805b82811015610d89576001600160a01b0387166000908152600a6020908152604080832033845282528083208484529091529020600301805460ff1916600117905580610d8181613078565b915050610d36565b506001600160a01b03861660009081526005602052604081208054869290610db2908490613065565b90915550506001600160a01b0386166000818152600b6020908152604080832033808552908352818420848155600181018590556002810185905560038101859055600401849055848452600e8352818420818552835281842093909355518781529192917f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb910160405180910390a38315610ecb576001600160a01b03861663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018790526044016020604051808303816000875af1158015610ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec99190613137565b505b8215610f56576000546001600160a01b031663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018690526044016020604051808303816000875af1158015610f30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f549190613137565b505b50505050506108e9600160008051602061325a83398151915255565b60008051602061327a833981519152610f8a816123b9565b610f92612544565b600082116110005760405162461bcd60e51b815260206004820152603560248201527f416c6c53746172735374616b696e67506f6f6c3a20416d6f756e74206d7573746044820152742062652067726561746572207468616e207a65726f60581b6064820152608401610765565b6000546040516370a0823160e01b815230600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c9190613159565b10156110d05760405162461bcd60e51b815260206004820152602d60248201527f416c6c53746172735374616b696e67506f6f6c3a20496e73756666696369656e60448201526c74205354415220746f6b656e7360981b6064820152608401610765565b6004546040518381526001600160a01b03909116907fc215a3424fe3bef9661272a4f8a957d1398a18356b4d5f2a5140f3f178aa21479060200160405180910390a26000546004805460405163a9059cbb60e01b81526001600160a01b0391821692810192909252602482018590529091169063a9059cbb906044016020604051808303816000875af115801561116b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118f9190613137565b506111a7600160008051602061325a83398151915255565b5050565b60006001600160a01b0383166111d35760405162461bcd60e51b815260040161076590613091565b6111dc836125af565b6111f85760405162461bcd60e51b8152600401610765906130db565b6001600160a01b038316600090815260056020526040812054900361121f57506000610727565b60006002544311611252576001600160a01b03841660009081526006602052604090205461124d9043613065565b611278565b6001600160a01b0384166000908152600660205260409020546002546112789190613065565b905060006001548261128a9190613172565b6001600160a01b038616600090815260056020526040812054919250906112b9670de0b6b3a764000084613172565b6112c39190613189565b6001600160a01b0387166000908152600760205260409020546112e69190613124565b6001600160a01b038088166000818152600b60209081526040808320948b16808452948252808320815160a0810183528154815260018201548185015260028201548184015260038201546060820181905260049092015460808201819052958552600e845282852096855295909252909120548351949550929391929091670de0b6b3a76400009061137a908790613172565b6113849190613189565b61138e9190613124565b6113989190613065565b6113a29190613065565b979650505050505050565b6001600160a01b038083166000818152600b602090815260408083209486168352938152838220845160a081018652815480825260018301548285015260028301548288015260038301546060830152600490920154608082015293835260059091529281205491819061142187876111ab565b60015495989497509550505050565b60008051602061327a833981519152611448816123b9565b6108e9612738565b60008051602061327a833981519152611468816123b9565b816114db5760405162461bcd60e51b815260206004820152603860248201527f416c6c53746172735374616b696e67506f6f6c3a204e6f20616464726573732060448201527f746f2072656d6f76652066726f6d20626c61636b6c69737400000000000000006064820152608401610765565b60005b82811015610829576000600c60008686858181106114fe576114fe613039565b90506020020160208101906115139190612add565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061154581613078565b9150506114de565b600091825260008051602061321a833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008051602061327a83398151915261159d816123b9565b60008251116115be5760405162461bcd60e51b8152600401610765906131ab565b81516115d19060039060208501906129c3565b507f80cf834692f79dc85e731aea9ee1788c7c7cca8fd087d25a7b0b885beff51c41826040516116019190612b2a565b60405180910390a15050565b611615612544565b61161d61257c565b336000908152600c602052604090205460ff16156116915760405162461bcd60e51b815260206004820152602b60248201527f416c6c53746172735374616b696e67506f6f6c3a20416464726573732069732060448201526a109b1858dadb1a5cdd195960aa1b6064820152608401610765565b6001600160a01b0382166116b75760405162461bcd60e51b815260040161076590613091565b6000811161172d5760405162461bcd60e51b815260206004820152603b60248201527f416c6c53746172735374616b696e67506f6f6c3a205374616b6520616d6f756e60448201527f74206d7573742062652067726561746572207468616e207a65726f00000000006064820152608401610765565b600254431061178d5760405162461bcd60e51b815260206004820152602660248201527f416c6c53746172735374616b696e67506f6f6c3a205374616b696e672068617360448201526508195b99195960d21b6064820152608401610765565b611796826125af565b6117b25760405162461bcd60e51b8152600401610765906130db565b600f546000546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561180b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182f9190613159565b101561189c5760405162461bcd60e51b815260206004820152603660248201527f416c6c53746172735374616b696e67506f6f6c3a20496e73756666696369656e604482015275742024535441525320746f6b656e2062616c616e636560501b6064820152608401610765565b6118a68233612622565b6001600160a01b0382166000908152600b6020908152604080832033845290915281208054909183918391906118dd908490613124565b90915550506001600160a01b0383166000908152600760205260409020548154670de0b6b3a76400009161191091613172565b61191a9190613189565b60038201554260018201554360028201556001600160a01b038316600090815260086020908152604080832033845290915281208054829061195b90613078565b9182905550604080516080810182528281526020808201878152428385019081526000606085018181526001600160a01b038c16808352600a86528783203384528652878320898452865287832096518755935160018701559151600286015590516003909401805460ff191694151594909417909355825260059052908120805492935085929091906119f0908490613124565b909155505060405183815233906001600160a01b038616907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060200160405180910390a36001600160a01b0384166323b872dd336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018690526064016020604051808303816000875af1158015611a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abc9190613137565b5050506111a7600160008051602061325a83398151915255565b60008051602061327a833981519152611aee816123b9565b81611b505760405162461bcd60e51b815260206004820152602c60248201527f416c6c53746172735374616b696e67506f6f6c3a204e6f20616464726573732060448201526b1d1bc8189b1858dadb1a5cdd60a21b6064820152608401610765565b60005b82811015610829576001600c6000868685818110611b7357611b73613039565b9050602002016020810190611b889190612add565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580611bba81613078565b915050611b53565b60008051602061327a833981519152611bda816123b9565b82518451148015611bec575081518351145b611c085760405162461bcd60e51b815260040161076590612feb565b60005b8451811015610b8a57828181518110611c2657611c26613039565b6020026020010151600e6000878481518110611c4457611c44613039565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000868481518110611c8057611c80613039565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254611cb79190613124565b90915550819050611cc781613078565b915050611c0b565b611cd8826107eb565b611ce1816123b9565b6108298383612468565b80516060908067ffffffffffffffff811115611d0957611d09612b77565b604051908082528060200260200182016040528015611d6757816020015b611d5460405180608001604052806000815260200160008152602001600081526020016000151581525090565b815260200190600190039081611d275790505b50915060005b8351811015611e2a576000848281518110611d8a57611d8a613039565b6020908102919091018101516001600160a01b03808a166000908152600a84526040808220928b16825291845281812083825284528190208151608081018352815481526001820154948101949094526002810154918401919091526003015460ff16151560608301528551909250859084908110611e0b57611e0b613039565b6020026020010181905250508080611e2290613078565b915050611d6d565b50509392505050565b611e3b612544565b611e4361257c565b6001600160a01b038116611e695760405162461bcd60e51b815260040161076590613091565b611e72816125af565b611e8e5760405162461bcd60e51b8152600401610765906130db565b6001600160a01b0381166000908152600b6020908152604080832033845290915290208054611f1e5760405162461bcd60e51b815260206004820152603660248201527f416c6c53746172735374616b696e67506f6f6c3a204e6f207374616b656420746044820152756f6b656e7320746f20636c61696d207265776172647360501b6064820152608401610765565b6000611f2a83336111ab565b905080826004016000828254611f409190613124565b909155505060005460408051838152905133926001600160a01b0316917f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb919081900360200190a36000546001600160a01b031663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015611fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200b9190613137565b5050506108e9600160008051602061325a83398151915255565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561206b5750825b905060008267ffffffffffffffff1660011480156120885750303b155b905081158015612096575080155b156120b45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156120de57845460ff60401b1916600160401b1785555b600088116121545760405162461bcd60e51b815260206004820152603c60248201527f416c6c53746172735374616b696e67506f6f6c3a2052657761726420746f6b6560448201527f6e73206d7573742062652067726561746572207468616e207a65726f000000006064820152608401610765565b600087116121cc576040805162461bcd60e51b81526020600482015260248101919091527f416c6c53746172735374616b696e67506f6f6c3a205374616b696e6720656e6460448201527f20626c6f636b206d7573742062652067726561746572207468616e207a65726f6064820152608401610765565b6001600160a01b038b16158015906121ec57506001600160a01b038a1615155b6122695760405162461bcd60e51b815260206004820152604260248201527f416c6c53746172735374616b696e67506f6f6c3a205a65726f2061646472657360448201527f732070726f766964656420666f72205354415220746f6b656e206f722061646d60648201526134b760f11b608482015260a401610765565b600089511161228a5760405162461bcd60e51b8152600401610765906131ab565b600086116122aa5760405162461bcd60e51b815260040161076590612f81565b6122b2612781565b6122ba612789565b6122c2612799565b600080546001600160a01b0319166001600160a01b038d1617905588516122f09060039060208c01906129c3565b5060018890556002879055600480546001600160a01b0319166001600160a01b038c16179055600f86905561232660008b6123c3565b5061233f60008051602061327a8339815191528b6123c3565b506004546123659060008051602061327a833981519152906001600160a01b03166123c3565b5083156123ac57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b6108e981336127a9565b600060008051602061321a8339815191526123de848461154d565b61245e576000848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556124143390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610727565b6000915050610727565b600060008051602061321a833981519152612483848461154d565b1561245e576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610727565b6124ec6127e2565b60008051602061323a833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b60008051602061325a83398151915280546001190161257657604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60008051602061323a8339815191525460ff16156125ad5760405163d93c066560e01b815260040160405180910390fd5b565b600354600090815b818160ff16101561261857836001600160a01b031660038260ff16815481106125e2576125e2613039565b6000918252602090912001546001600160a01b031603612606575060019392505050565b80612610816131fa565b9150506125b7565b5060009392505050565b61262b82612812565b6001600160a01b038083166000818152600b60209081526040808320948616835293815283822060038101549383526007909152928120548354919291670de0b6b3a76400009161267b91613172565b6126859190613189565b61268f9190613065565b90508060000361269f5750505050565b8015610829576001600160a01b0384166000908152600760205260409020548254670de0b6b3a7640000916126d391613172565b6126dd9190613189565b60038301556001600160a01b038085166000908152600e6020908152604080832093871683529290529081208054839290612719908490613124565b909155505050505050565b600160008051602061325a83398151915255565b61274061257c565b60008051602061323a833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612526565b6125ad612951565b612791612951565b6125ad61299a565b6127a1612951565b6125ad6129bb565b6127b3828261154d565b6111a75760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610765565b60008051602061323a8339815191525460ff166125ad57604051638dfc202b60e01b815260040160405180910390fd5b6001600160a01b038116600090815260056020526040812054900361284d576001600160a01b03166000908152600660205260409020439055565b60006002544311612880576001600160a01b03821660009081526006602052604090205461287b9043613065565b6128a6565b6001600160a01b0382166000908152600660205260409020546002546128a69190613065565b90506000600154826128b89190613172565b6001600160a01b0384166000908152600560205260409020549091506128e6670de0b6b3a764000083613172565b6128f09190613189565b6001600160a01b03841660009081526007602052604081208054909190612918908490613124565b9091555050600254431161292c5743612930565b6002545b6001600160a01b039093166000908152600660205260409020929092555050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166125ad57604051631afcd79f60e31b815260040160405180910390fd5b6129a2612951565b60008051602061323a833981519152805460ff19169055565b612724612951565b828054828255906000526020600020908101928215612a18579160200282015b82811115612a1857825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906129e3565b50612a24929150612a28565b5090565b5b80821115612a245760008155600101612a29565b600060208284031215612a4f57600080fd5b81356001600160e01b031981168114612a6757600080fd5b9392505050565b6001600160a01b03811681146108e957600080fd5b600080600060608486031215612a9857600080fd5b8335612aa381612a6e565b92506020840135612ab381612a6e565b929592945050506040919091013590565b600060208284031215612ad657600080fd5b5035919050565b600060208284031215612aef57600080fd5b8135612a6781612a6e565b60008060408385031215612b0d57600080fd5b823591506020830135612b1f81612a6e565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612b6b5783516001600160a01b031683529284019291840191600101612b46565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612bb657612bb6612b77565b604052919050565b600067ffffffffffffffff821115612bd857612bd8612b77565b5060051b60200190565b600082601f830112612bf357600080fd5b81356020612c08612c0383612bbe565b612b8d565b82815260059290921b84018101918181019086841115612c2757600080fd5b8286015b84811015612c4b578035612c3e81612a6e565b8352918301918301612c2b565b509695505050505050565b600082601f830112612c6757600080fd5b81356020612c77612c0383612bbe565b82815260059290921b84018101918181019086841115612c9657600080fd5b8286015b84811015612c4b5780358352918301918301612c9a565b600080600060608486031215612cc657600080fd5b833567ffffffffffffffff80821115612cde57600080fd5b612cea87838801612be2565b94506020860135915080821115612d0057600080fd5b612d0c87838801612be2565b93506040860135915080821115612d2257600080fd5b50612d2f86828701612c56565b9150509250925092565b60008060408385031215612d4c57600080fd5b8235612d5781612a6e565b91506020830135612b1f81612a6e565b60008060208385031215612d7a57600080fd5b823567ffffffffffffffff80821115612d9257600080fd5b818501915085601f830112612da657600080fd5b813581811115612db557600080fd5b8660208260051b8501011115612dca57600080fd5b60209290920196919550909350505050565b600060208284031215612dee57600080fd5b813567ffffffffffffffff811115612e0557600080fd5b612e1184828501612be2565b949350505050565b60008060408385031215612e2c57600080fd5b8235612e3781612a6e565b946020939093013593505050565b600080600060608486031215612e5a57600080fd5b8335612e6581612a6e565b92506020840135612e7581612a6e565b9150604084013567ffffffffffffffff811115612e9157600080fd5b612d2f86828701612c56565b602080825282518282018190526000919060409081850190868401855b82811015612ef6578151805185528681015187860152858101518686015260609081015115159085015260809093019290850190600101612eba565b5091979650505050505050565b60008060008060008060c08789031215612f1c57600080fd5b8635612f2781612a6e565b95506020870135612f3781612a6e565b9450604087013567ffffffffffffffff811115612f5357600080fd5b612f5f89828a01612be2565b945050606087013592506080870135915060a087013590509295509295509295565b60208082526044908201527f416c6c53746172735374616b696e67506f6f6c3a204d696e696d756d2053544160408201527f52532062616c616e6365206d7573742062652067726561746572207468616e206060820152637a65726f60e01b608082015260a00190565b6020808252602e908201527f416c6c53746172735374616b696e67506f6f6c3a20506172616d65746572206c60408201526d0cadccee8d040dad2e6dac2e8c6d60931b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156107275761072761304f565b60006001820161308a5761308a61304f565b5060010190565b6020808252602a908201527f416c6c53746172735374616b696e67506f6f6c3a20546f6b656e206973207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f416c6c53746172735374616b696e67506f6f6c3a20546f6b656e206973206e6f6040820152681d08185b1b1bddd95960ba1b606082015260800190565b808201808211156107275761072761304f565b60006020828403121561314957600080fd5b81518015158114612a6757600080fd5b60006020828403121561316b57600080fd5b5051919050565b80820281158282048414176107275761072761304f565b6000826131a657634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602f908201527f416c6c53746172735374616b696e67506f6f6c3a204e6f20616c6c6f7765642060408201526e1d1bdad95b9cc81c1c9bdd9a591959608a1b606082015260800190565b600060ff821660ff81036132105761321061304f565b6001019291505056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a164736f6c6343000814000a