29 txs
30 calls
constructor
constructor()
functions
ArbSelectAddress
viewfunction ArbSelectAddress() view returns (address)
Arbtr
viewfunction Arbtr(address) view returns (bool IsRegistered, bool IsPaused, uint256 Arbtr, uint256 AllAmount, uint256 StakedAmount, uint256 PenaltyAmount, uint256 RegistrationTimestamp, uint256 PauseTimestamp)
ArbtrList
viewfunction ArbtrList(uint256) view returns (address)
BUSD_ADDRESS
viewfunction BUSD_ADDRESS() view returns (address)
CheckMaxCase
viewfunction CheckMaxCase() view returns (uint256)
DailyRewards
viewfunction DailyRewards(address, uint256) view returns (uint256 timestamp, uint256 totalAmount, uint256 remainingAmount)
DailyTotalStake
viewfunction DailyTotalStake(uint256) view returns (uint256)
DaoTokenAddress
viewfunction DaoTokenAddress() view returns (address)
DefaultArbtr
viewfunction DefaultArbtr(uint256) view returns (address)
DefaultArbtrIndexEmpty
viewfunction DefaultArbtrIndexEmpty(uint256) view returns (uint256)
DefaultArbtrToIndex
viewfunction DefaultArbtrToIndex(address) view returns (uint256)
FeeAddress
viewfunction FeeAddress() view returns (address)
FundPoolAddress
viewfunction FundPoolAddress() view returns (address)
get_all_Arbtr
viewfunction get_all_Arbtr() view returns (address[])
get_claimable_rewards
viewfunction get_claimable_rewards(address _Arbtr, address _tokenAddress) view returns (uint256 _claimableAmount)
get_DailyTotalStake
viewfunction get_DailyTotalStake(uint256 _day) view returns (uint256)
get_default_Arbtr
viewfunction get_default_Arbtr() view returns (address[])
get_reward_token_count
viewfunction get_reward_token_count() view returns (uint256)
IsDefaultArbtr
viewfunction IsDefaultArbtr(address) view returns (bool)
IsFeeAddress
viewfunction IsFeeAddress(address) view returns (bool)
IsPausedByOnwer
viewfunction IsPausedByOnwer(address) view returns (bool)
IsRewardToken
viewfunction IsRewardToken(address) view returns (bool)
LastRewardClaimTime
viewfunction LastRewardClaimTime(address) view returns (uint256)
LastRewardClaimTimeByToken
viewfunction LastRewardClaimTimeByToken(address, address) view returns (uint256)
MaxHistoricalRewardDays
viewfunction MaxHistoricalRewardDays() view returns (uint256)
MinimumStakeAmount
viewfunction MinimumStakeAmount() view returns (uint256)
owner
viewfunction owner() view returns (address)
PauseToWithdrawDuration
viewfunction PauseToWithdrawDuration() view returns (uint256)
PenaltyAmount
viewfunction PenaltyAmount(uint256) view returns (uint256)
RewardTokenAddresses
viewfunction RewardTokenAddresses(uint256) view returns (address)
TotalFromRewards
viewfunction TotalFromRewards(address, address) view returns (uint256)
UnclaimedRewards
viewfunction UnclaimedRewards(address, address) view returns (uint256)
USDC_ADDRESS
viewfunction USDC_ADDRESS() view returns (address)
USDT_ADDRESS
viewfunction USDT_ADDRESS() view returns (address)
UserDailyClaimStatus
viewfunction UserDailyClaimStatus(address, address, uint256) view returns (bool)
WETH_ADDRESS
viewfunction WETH_ADDRESS() view returns (address)
WithdradTime
viewfunction WithdradTime() view returns (uint256)
add_default_Arbtr
nonpayablefunction add_default_Arbtr(address _Arbtr)
apply_PenaltyAmount
nonpayablefunction apply_PenaltyAmount(address _Arbtr, address to_addr, uint256 type_id)
batch_recycle_expired_rewards
nonpayablefunction batch_recycle_expired_rewards(address[] _tokenAddresses)
claim_multiple_rewards
nonpayablefunction claim_multiple_rewards(address[] _tokenAddresses)
claim_rewards
nonpayablefunction claim_rewards(address _tokenAddress)
deposit_stake
nonpayablefunction deposit_stake(uint256 _amount)
record_daily_reward_amount
nonpayablefunction record_daily_reward_amount(address _from_addr, address _tokenAddress, uint256 _amount)
recycle_expired_rewards
nonpayablefunction recycle_expired_rewards(address _tokenAddress)
register_as_Arbtr
nonpayablefunction register_as_Arbtr(uint256 amount)
remove_Arbtr
nonpayablefunction remove_Arbtr(address _Arbtr)
remove_default_Arbtr
nonpayablefunction remove_default_Arbtr(address _Arbtr)
set_address
nonpayablefunction set_address(address _DaoTokenAddress, address _ArbSelectAddress, address _FundPoolAddress)
set_Arbtr_paused
nonpayablefunction set_Arbtr_paused(address _Arbtr, bool _isPaused)
set_is_fee
nonpayablefunction set_is_fee(address _addr, bool _val)
set_minimum_stake
nonpayablefunction set_minimum_stake(uint256 _minimumStake)
set_num
nonpayablefunction set_num(uint256 _MaxHistoricalRewardDays, uint256 _PauseToWithdrawDuration, uint256 _MinimumStakeAmount, uint256 _WithdradTime)
set_PenaltyAmount
nonpayablefunction set_PenaltyAmount(uint256 _index, uint256 _amount)
set_reward_token
nonpayablefunction set_reward_token(address _tokenAddress, bool _val)
transfer_ownership
nonpayablefunction transfer_ownership(address _new_owner)
withdraw_stake
nonpayablefunction withdraw_stake(uint256 _amount)
events
ArbtrPaused
event ArbtrPaused(address indexed _Arbtr, bool _isPaused)
ArbtrRegistered
event ArbtrRegistered(address indexed _Arbtr)
ArbtrRemoved
event ArbtrRemoved(address indexed _Arbtr)
DailyRewardRecorded
event DailyRewardRecorded(address indexed FromAddress, address indexed tokenAddress, uint256 amount)
DailyRewardUpdated
event DailyRewardUpdated(address indexed tokenAddress, uint256 day, uint256 newRemaining)
DailyTotalStakeUpdated
event DailyTotalStakeUpdated(uint256 indexed day, uint256 oldAmount, uint256 newAmount)
DefaultArbtrAdded
event DefaultArbtrAdded(address indexed _Arbtr)
DefaultArbtrRemoved
event DefaultArbtrRemoved(address indexed _Arbtr)
DistributionRateUpdated
event DistributionRateUpdated(uint256 _oldRate, uint256 _newRate)
FundPoolSet
event FundPoolSet(address indexed _oldPool, address indexed _newPool)
ManagerAdded
event ManagerAdded(address indexed manager)
ManagerRemoved
event ManagerRemoved(address indexed manager)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PenaltyAmountApplied
event PenaltyAmountApplied(address indexed _Arbtr, address to_addr, uint256 _amount)
RewardClaimed
event RewardClaimed(address indexed _Arbtr, address indexed _tokenAddress, uint256 _DayTotalStake, uint256 _StakedAmount, uint256 _userRewardShare)
RewardRecycled
event RewardRecycled(address indexed tokenAddress, uint256 fromDay, uint256 toDay, uint256 amount)
RewardsClaimed
event RewardsClaimed(address indexed Arbtr, address indexed tokenAddress, uint256 amount, uint256 fromDay, uint256 toDay)
RewardsDistributed
event RewardsDistributed(uint256 _totalStake)
RewardTokenAdded
event RewardTokenAdded(address indexed _tokenAddress)
RewardTokenRemoved
event RewardTokenRemoved(address indexed _tokenAddress)
StakeDeposited
event StakeDeposited(address indexed _Arbtr, uint256 _amount)
StakeWithdrawn
event StakeWithdrawn(address indexed _Arbtr, uint256 _amount)
WithdrawalQueued
event WithdrawalQueued(address indexed _Arbtr, uint256 _amount)
errors
No errors.
creation bytecode
0x608060405262093a80600755600760085568056bc75e2d6310000060095562015180600a556064600b55348015610034575f80fd5b505f80546001600160a01b031990811633908117835582526001602081815260408420805460ff19908116841790915560028381556005805490951630179094557fbb8b2848a31af181aaa46684756030e8f02ba4e62c0aab24ac994b7f62ed3ba080548216841790557f7d4b214a9758007695dacb3f3fb373af89951be4c1a9a2b4ea6da33a6980a97880548216841790557f3598eb9d972f02cbe31a381b2404a0b303f32e7220fb88d6185983380fbf402080548216841790557f9e0a03a49a6e602622bb289e9abf75285331cc45aad985785be1c6385fe46c18805490911690921790915560169052670de0b6b3a76400007f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf49559052693782dace9d90000000007fcaff291fe014adc6b72a172705750b4cabe8f8667664d2924a166caab288564855613f97806101875f395ff3fe608060405234801561000f575f80fd5b5060043610610372575f3560e01c80637ab8fb09116101d45780639f3f780b11610109578063bb09d9b7116100a9578063c3cc062b11610079578063c3cc062b1461090e578063eea6a28514610921578063f0350c0414610934578063fa037ea614610947575f80fd5b8063bb09d9b7146108aa578063bfc71f64146108c5578063c1892058146108d8578063c1b19a78146108f3575f80fd5b8063ada0cdf5116100e4578063ada0cdf51461085c578063af6f728f1461087b578063b501886f14610884578063b8e05fe514610897575f80fd5b80639f3f780b14610817578063a74778c11461082a578063a812e2b41461083d575f80fd5b80638daa294011610174578063975e26031161014f578063975e2603146107d6578063991923db146107de5780639da0eed7146107f15780639e2ead1514610804575f80fd5b80638daa29401461079157806390b93ade146107a457806393c510db146107c3575f80fd5b806380b3fd61116101af57806380b3fd6114610746578063810ccfd11461074f57806384e9bd7e1461076e5780638da5cb5b14610781575f80fd5b80637ab8fb091461070d5780637b7e8bac146107205780637f6e351f14610733575f80fd5b80633c8613b6116102aa57806361fd0ecd1161024a5780636e1f8cf2116102255780636e1f8cf2146106b257806370478020146106c557806377a03629146106d857806378f41c86146106fa575f80fd5b806361fd0ecd1461060157806369d26aee146106145780636b53700c1461069f575f80fd5b8063535513ba11610285578063535513ba14610595578063583efa41146105b757806359d8fb38146105ca5780635b552d0f146105ec575f80fd5b80633c8613b61461052e5780633d8f7938146105585780634e75d89a1461056b575f80fd5b806325749bf2116103155780632b6d4468116102f05780632b6d4468146104945780632eb19dbe146104e8578063390fa8ce146104f15780633adcacb01461051b575f80fd5b806325749bf21461044557806327bb03fb1461045857806329d0d8fa14610461575f80fd5b806311f46c0b1161035057806311f46c0b146103f5578063193f700e146104085780631d8b264b1461042957806320de896c14610432575f80fd5b8063040141e514610376578063042870c1146103ae5780630dbd2314146103e0575b5f80fd5b61039173bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c81565b6040516001600160a01b0390911681526020015b60405180910390f35b6103d06103bc366004613b32565b601a6020525f908152604090205460ff1681565b60405190151581526020016103a5565b6103f36103ee366004613b32565b61094f565b005b600554610391906001600160a01b031681565b61041b610416366004613b4b565b61098d565b6040519081526020016103a5565b61041b600a5481565b6103f3610440366004613b7c565b6109a1565b61041b610453366004613bbc565b610a50565b61041b60085481565b6103d061046f366004613bd3565b600e60209081525f938452604080852082529284528284209052825290205460ff1681565b6104cd6104a2366004613c0c565b600c60209081525f928352604080842090915290825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060016103a5565b61041b60095481565b61041b6104ff366004613b4b565b601060209081525f928352604080842090915290825290205481565b6103f3610529366004613b32565b610ad8565b61041b61053c366004613b4b565b601160209081525f928352604080842090915290825290205481565b6103f3610566366004613bbc565b610cb9565b61041b610579366004613b4b565b600d60209081525f928352604080842090915290825290205481565b6103d06105a3366004613b32565b60176020525f908152604090205460ff1681565b6103f36105c5366004613c41565b610d46565b6103d06105d8366004613b32565b60196020525f908152604090205460ff1681565b6105f461104c565b6040516103a59190613c76565b6103f361060f366004613bbc565b6110ac565b610662610622366004613b32565b600f6020525f9081526040902080546001820154600283015460038401546004850154600586015460069096015460ff8087169761010090970416959088565b6040805198151589529615156020890152958701949094526060860192909252608085015260a084015260c083015260e0820152610100016103a5565b6103f36106ad366004613c41565b6110c8565b6103f36106c0366004613cc2565b61138c565b6103916106d3366004613bbc565b6113c6565b6103d06106e6366004613b32565b601c6020525f908152604090205460ff1681565b6103f3610708366004613ce2565b6113ee565b6103f361071b366004613bd3565b6114a3565b600654610391906001600160a01b031681565b6103f3610741366004613d51565b611726565b61041b60075481565b61041b61075d366004613bbc565b60166020525f908152604090205481565b6103f361077c366004613b32565b611794565b5f546001600160a01b0316610391565b600454610391906001600160a01b031681565b61041b6107b2366004613b32565b60126020525f908152604090205481565b6103916107d1366004613bbc565b6119ca565b6105f46119d9565b6103f36107ec366004613ce2565b611a37565b6103f36107ff366004613bd3565b611ac6565b6103f3610812366004613b32565b611cc8565b6103f3610825366004613b32565b611e83565b6103f3610838366004613bbc565b6121b7565b61041b61084b366004613b32565b60156020525f908152604090205481565b61041b61086a366004613bbc565b60136020525f908152604090205481565b61041b600b5481565b6103f3610892366004613bbc565b6122ab565b600354610391906001600160a01b031681565b610391738965349fb649a33a30cbfda057d8ec2c48abe2a281565b6103916108d3366004613bbc565b61270c565b6103917355d398326f99059ff775485246999027b319795581565b61039173e9e7cea3dedca5984780bafc599bd69add087d5681565b6103f361091c366004613c41565b61271b565b61041b61092f366004613bbc565b61276e565b6103f3610942366004613b32565b61278d565b60185461041b565b5f546001600160a01b031633146109815760405162461bcd60e51b815260040161097890613d80565b60405180910390fd5b61098a81612865565b50565b5f6109988383612a0b565b90505b92915050565b5f546001600160a01b031633146109ca5760405162461bcd60e51b815260040161097890613d80565b6001600160a01b038316156109f557600380546001600160a01b0319166001600160a01b0385161790555b6001600160a01b03821615610a2057600480546001600160a01b0319166001600160a01b0384161790555b6001600160a01b03811615610a4b57600580546001600160a01b0319166001600160a01b0383161790555b505050565b5f8181526013602052604081205480158015610a6b57505f83115b1561099b5760015b60078111610ad1575f601381610a898488613db8565b81526020019081526020015f20541115610abf5760135f610aaa8387613db8565b81526020019081526020015f20549150610ad1565b80610ac981613dcb565b915050610a73565b5092915050565b5f546001600160a01b03163314610b015760405162461bcd60e51b815260040161097890613d80565b6001600160a01b038116610b575760405162461bcd60e51b815260206004820152601c60248201527f417262747220616464726573732063616e6e6f74206265207a65726f000000006044820152606401610978565b6001600160a01b0381165f908152601c602052604090205460ff1615610bbf5760405162461bcd60e51b815260206004820152601760248201527f416c726561647920612064656661756c742041726274720000000000000000006044820152606401610978565b601b805460018082019092557f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1810180546001600160a01b0319166001600160a01b038581169182179092555f818152601c60209081526040808320805460ff1916909717909655601590528490208390556004805494516303adcacb60e41b81529081019190915291921690633adcacb0906024015f604051808303815f87803b158015610c6c575f80fd5b505af1158015610c7e573d5f803e3d5ffd5b50506040516001600160a01b03851692507f4b72f3a74353aae5f744f8236ecc07723626b70b51eac6fd2434ca21c35f4cd891505f90a25050565b5f546001600160a01b03163314610ce25760405162461bcd60e51b815260040161097890613d80565b5f8111610d415760405162461bcd60e51b815260206004820152602760248201527f4d696e696d756d207374616b65206d7573742062652067726561746572207468604482015266616e207a65726f60c81b6064820152608401610978565b600955565b5f546001600160a01b03163314610d6f5760405162461bcd60e51b815260040161097890613d80565b6001600160a01b038216610dc55760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e20616464726573732063616e6e6f74206265207a65726f000000006044820152606401610978565b808015610dea57506001600160a01b0382165f9081526019602052604090205460ff16155b15610ee1575f805b601854811015610e4357836001600160a01b031660188281548110610e1957610e19613de3565b5f918252602090912001546001600160a01b031603610e3b5760019150610e43565b600101610df2565b5080610e9457601880546001810182555f919091527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0180546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0383165f81815260196020526040808220805460ff19166001179055517ff3e4c2c64e71e6ba2eaab9a599bced62f9eb91d2cda610bf41aa8c80ff2cf8269190a2505050565b80158015610f0657506001600160a01b0382165f9081526019602052604090205460ff165b15611048575f5b60185481101561100157826001600160a01b031660188281548110610f3457610f34613de3565b5f918252602090912001546001600160a01b031603610ff95760188054610f5d90600190613db8565b81548110610f6d57610f6d613de3565b5f91825260209091200154601880546001600160a01b039092169183908110610f9857610f98613de3565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506018805480610fd457610fd4613df7565b5f8281526020902081015f1990810180546001600160a01b0319169055019055611001565b600101610f0d565b506001600160a01b0382165f81815260196020526040808220805460ff19169055517f66257bcef574219c04f7c05f7a1c78d599da10491294c92a5805c48b4cdf50099190a25b5050565b6060601d8054806020026020016040519081016040528092919081815260200182805480156110a257602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611084575b5050505050905090565b6110b4612a46565b6110be3382612a9d565b61098a6001600255565b6001600160a01b03821661111e5760405162461bcd60e51b815260206004820152601c60248201527f41726274722063616e6e6f74206265207a65726f2061646472657373000000006044820152606401610978565b6001600160a01b0382165f908152600f602052604090205460ff166111555760405162461bcd60e51b815260040161097890613e0b565b6001600160a01b0382165f908152600f602052604090205481151561010090910460ff16151503611184575050565b5f546001600160a01b0316331461126257336001600160a01b038316146111e15760405162461bcd60e51b8152602060048201526011602482015270020b9313a391036b9b39739b2b73232b91607d1b6044820152606401610978565b6001600160a01b0382165f908152600f6020526040902054610100900460ff161515600103611262576001600160a01b0382165f9081526017602052604090205460ff16156112625760405162461bcd60e51b815260206004820152600d60248201526c27b7363c90213c9037bbb732b960991b6044820152606401610978565b5f546001600160a01b03163303611297576001600160a01b0382165f908152601760205260409020805460ff19168215151790555b80156112bc576001600160a01b0382165f908152600f60205260409020426006909101555b6001600160a01b038281165f818152600f602052604090819020805461ff001916610100861515908102919091179091556004805492516311263d4560e21b815290810193909352602483015290911690634498f514906044015f604051808303815f87803b15801561132d575f80fd5b505af115801561133f573d5f803e3d5ffd5b50505050816001600160a01b03167fc6860578f2707cb82dc7109c458cc584e2c29a60076ec2fd4b37ef3485e93e9582604051611380911515815260200190565b60405180910390a25050565b5f546001600160a01b031633146113b55760405162461bcd60e51b815260040161097890613d80565b5f9182526016602052604090912055565b601881815481106113d5575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f546001600160a01b031633146114175760405162461bcd60e51b815260040161097890613d80565b5f5b81811015610a4b5760195f84848481811061143657611436613de3565b905060200201602081019061144b9190613b32565b6001600160a01b0316815260208101919091526040015f205460ff161561149b5761149b83838381811061148157611481613de3565b90506020020160208101906114969190613b32565b612865565b600101611419565b6114ab612a46565b6001600160a01b0383165f908152600f602052604090205460ff166114e25760405162461bcd60e51b815260040161097890613e0b565b6004546001600160a01b031633146115335760405162461bcd60e51b81526020600482015260146024820152734e6f742041726253656c6563744164647265737360601b6044820152606401610978565b5f818152601660205260408120549081900361154f575061171c565b5f61155985612d64565b6001600160a01b0386165f908152600f60205260409020600301549091508083111561159d576001600160a01b0386165f908152600f602052604090206003015492505b6001600160a01b0386165f908152600f60205260409020600401546115c29084612dd5565b6001600160a01b0387165f908152600f602052604090206004810191909155600301546115f0908490613db8565b6001600160a01b0387165f908152600f602052604081206003019190915561161787612d64565b9050828015611624575080155b15611634576116348760016110c8565b60035460405163a9059cbb60e01b81526001600160a01b038881166004830152602482018790529091169063a9059cbb906044016020604051808303815f875af1158015611684573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a89190613e42565b506001600160a01b0387165f908152600f60205260409020600301546116d19083908584612e29565b604080516001600160a01b038881168252602082018790528916917f4ac0d4039b44f6897cefe189cc1c0727143267566175ce21d956f8fb9222aefe910160405180910390a2505050505b610a4b6001600255565b5f546001600160a01b0316331461174f5760405162461bcd60e51b815260040161097890613d80565b5f8411801561175f5750601e8411155b1561176a5760088490555b82156117765760078390555b81156117825760098290555b801561178e57600a8190555b50505050565b61179c612a46565b6117a63382612f1d565b60048054604051630bb07cc160e41b815233928101929092526001600160a01b03169063bb07cc10906024015f604051808303815f87803b1580156117e9575f80fd5b505af11580156117fb573d5f803e3d5ffd5b505050505f620151804261180f9190613e5d565b335f9081526011602090815260408083206001600160a01b038716845290915281205491925090611844906201518090613e5d565b90508082116118b05760405162461bcd60e51b815260206004820152603260248201527f43616e206f6e6c7920636c61696d2072657761726473206f6e636520706572206044820152713230bc903337b9103a3434b9903a37b5b2b760711b6064820152608401610978565b5f6118bc338585613095565b90505f81116119225760405162461bcd60e51b815260206004820152602c60248201527f4e6f207265776172647320617661696c61626c6520746f20636c61696d20666f60448201526b39103a3434b9903a37b5b2b760a11b6064820152608401610978565b61192c84826131ce565b335f8181526011602090815260408083206001600160a01b038916808552908352818420429081905585855260129093529220556008549091907f94a8e1916a31bb1e2864bac78a6c85e5de33a2f0fc066dfd3cda6d69f5d3d5289084906119949088613db8565b61199f600189613db8565b6040805193845260208401929092529082015260600160405180910390a350505061098a6001600255565b601d81815481106113d5575f80fd5b6060601b8054806020026020016040519081016040528092919081815260200182805480156110a257602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311611084575050505050905090565b5f5b81811015610a4b57306384e9bd7e848484818110611a5957611a59613de3565b9050602002016020810190611a6e9190613b32565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015611aac575f80fd5b505af1925050508015611abd575060015b50600101611a39565b6001600160a01b0383165f908152601a602052604090205460ff16611b2d5760405162461bcd60e51b815260206004820181905260248201527f4f6e6c7920617574686f72697a656420616464726573732063616e2063616c6c6044820152606401610978565b6001600160a01b038216611b835760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e20616464726573732063616e6e6f74206265207a65726f000000006044820152606401610978565b5f8111611ba25760405162461bcd60e51b815260040161097890613e7c565b5f611bb06201518042613e5d565b6001600160a01b0384165f908152600c60209081526040808320848452909152902060010154909150611be39083612dd5565b6001600160a01b0384165f908152600c602090815260408083208584529091529020600181019190915560020154611c1b9083612dd5565b6001600160a01b038085165f818152600c6020908152604080832087845282528083206002810196909655429095559288168152600d835283812091815291529081208054849290611c6e908490613eb1565b92505081905550826001600160a01b0316846001600160a01b03167f6a8bd065f1e4f676f8747b7b6cb28ac57dc5c0487cb2dc727e95c5e44460738e84604051611cba91815260200190565b60405180910390a350505050565b5f546001600160a01b03163314611cf15760405162461bcd60e51b815260040161097890613d80565b6001600160a01b0381165f908152601c602052604090205460ff16611d4e5760405162461bcd60e51b81526020600482015260136024820152722737ba1030903232b330bab63a1020b9313a3960691b6044820152606401610978565b6001600160a01b0381165f908152601c60209081526040808320805460ff191690556015909152812054601b805491929183908110611d8f57611d8f613de3565b5f91825260208083209190910180546001600160a01b0319166001600160a01b03948516179055848316808352601590915260408083208390556014805460018101825593527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec909201849055600480549251639e2ead1560e01b815290810191909152911690639e2ead15906024015f604051808303815f87803b158015611e36575f80fd5b505af1158015611e48573d5f803e3d5ffd5b50506040516001600160a01b03851692507f4bd0e5b3db0c6f21d6bfef6d968fe5e2ae3ea5d200fc5a7cbca9659233d698ab91505f90a25050565b5f546001600160a01b03163314611eac5760405162461bcd60e51b815260040161097890613d80565b6001600160a01b0381165f908152600f602052604090205460ff16611ee35760405162461bcd60e51b815260040161097890613e0b565b5f611eed82612d64565b6001600160a01b0383165f908152601c602052604090205490915060ff1615611f1957611f1982611cc8565b8015611f46576001600160a01b0382165f908152600f6020526040812060030154611f4691600181612e29565b6001600160a01b0382165f908152600f602052604081206003810154600490910154611fce9110611f91576001600160a01b0384165f908152600f6020526040902060040154611fad565b6001600160a01b0384165f908152600f60205260409020600301545b6001600160a01b0385165f908152600f602052604090206003015490613360565b9050801561204c5760035460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490529091169063a9059cbb906044016020604051808303815f875af1158015612026573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061204a9190613e42565b505b5f5b601d5481101561214257836001600160a01b0316601d828154811061207557612075613de3565b5f918252602090912001546001600160a01b03160361213a57601d805461209e90600190613db8565b815481106120ae576120ae613de3565b5f91825260209091200154601d80546001600160a01b0390921691839081106120d9576120d9613de3565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550601d80548061211557612115613df7565b5f8281526020902081015f1990810180546001600160a01b0319169055019055612142565b60010161204e565b506001600160a01b0383165f818152600f6020526040808220805461ffff191681556001810183905560028101839055600381018390556004810183905560058101839055600601829055517f6208abfa64251423ef826cbcd3c6b2394d8306bf0f915345fc0f31ca824efe1c9190a2505050565b6121bf612a46565b335f908152600f602052604090205460ff16156122135760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481c9959da5cdd195c995960721b6044820152606401610978565b6009548110156122615760405162461bcd60e51b8152602060048201526019602482015278125b9cdd59999a58da595b9d081cdd185ad948185b5bdd5b9d603a1b6044820152606401610978565b61226c33825f6133b5565b60405181815233907f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc29060200160405180910390a261098a6001600255565b6122b3612a46565b335f908152600f602052604090205460ff166122e15760405162461bcd60e51b815260040161097890613e0b565b5f81116123005760405162461bcd60e51b815260040161097890613e7c565b335f908152600f60205260409020600301548082118061232057505f1982145b15612329578091505b808211156123795760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420617661696c61626c65207374616b65000000006044820152606401610978565b600954335f908152600f6020526040902060030154612399908490613db8565b101561243657600754335f908152600f60205260409020600601546123bd91612dd5565b42101580156123df5750335f908152600f6020526040902054610100900460ff165b6124365760405162461bcd60e51b815260206004820152602260248201527f4d7573742062652070617573656420666f72206174206c656173742078206461604482015261797360f01b6064820152608401610978565b600a54335f908152601260205260409020546124529042613db8565b116124905760405162461bcd60e51b815260206004820152600e60248201526d416674657220323420486f75727360901b6044820152606401610978565b60048054600b546040516304f7bc7960e21b815233938101939093525f602484015260448301526001600160a01b0316906313def1e490606401602060405180830381865afa1580156124e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125099190613e42565b156125665760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420776974686472617720776974682061637469766520617262696044820152663a3930ba34b7b760c91b6064820152608401610978565b335f818152600f60205260408120600301549161258290612d64565b335f908152600f60205260409020600301549091506125a19085613360565b335f908152600f602052604090206003810191909155600201546125c59085613360565b335f818152600f60205260408120600201929092556125e390612d64565b335f908152600f60205260409020600301549091506126059084908484612e29565b60035460405163a9059cbb60e01b8152336004820152602481018790526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015612653573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126779190613e42565b6126935760405162461bcd60e51b815260040161097890613ec4565b60405185815233907f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc9060200160405180910390a28180156126d3575080155b80156126ee5750335f908152601c602052604090205460ff16155b156126fe576126fe3360016110c8565b5050505061098a6001600255565b601b81815481106113d5575f80fd5b5f546001600160a01b031633146127445760405162461bcd60e51b815260040161097890613d80565b6001600160a01b03919091165f908152601a60205260409020805460ff1916911515919091179055565b6014818154811061277d575f80fd5b5f91825260209091200154905081565b5f546001600160a01b031633146127b65760405162461bcd60e51b815260040161097890613d80565b6001600160a01b03811661280c5760405162461bcd60e51b815260206004820152601d60248201527f4e6577206f776e657220697320746865207a65726f20616464726573730000006044820152606401610978565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381165f9081526019602052604090205460ff166128c75760405162461bcd60e51b8152602060048201526018602482015277151bdad95b881b9bdd081a5b881c995dd85c99081b1a5cdd60421b6044820152606401610978565b5f6128d56201518042613e5d565b90505f6001600854836128e89190613db8565b6128f29190613db8565b6001600160a01b0384165f908152600c6020908152604080832084845290915290206002810154919250901561178e5760028101546001600160a01b0385165f908152600c602090815260408083208784529091529020600101546129579082612dd5565b6001600160a01b0386165f908152600c60209081526040808320888452909152902060018101919091556002015461298f9082612dd5565b6001600160a01b0386165f818152600c602090815260408083208984528252808320600280820196909655429055938601919091558251868152908101879052918201839052907f79a8278593ac57cab1ce85beeb162e2026699ad0d6fe736871d1ecf90af150cb906060015b60405180910390a25050505050565b5f612a16838361359d565b612a2157505f61099b565b5f612a2f6201518042613e5d565b90505f612a3d858584613630565b95945050505050565b6002805403612a975760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610978565b60028055565b6001600160a01b0382165f908152600f602052604090205460ff16612ad45760405162461bcd60e51b815260040161097890613e0b565b5f8111612af35760405162461bcd60e51b815260040161097890613e7c565b6003546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a0823190602401602060405180830381865afa158015612b3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b5f9190613ef3565b1015612bad5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e63650000000000006044820152606401610978565b6003546040516323b872dd60e01b81526001600160a01b03848116600483015230602483015260448201849052909116906323b872dd906064016020604051808303815f875af1158015612c03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c279190613e42565b612c435760405162461bcd60e51b815260040161097890613ec4565b6001600160a01b0382165f908152600f602052604081206003015490612c6884612d64565b6001600160a01b0385165f908152600f6020526040902060030154909150612c909084612dd5565b6001600160a01b0385165f908152600f60205260409020600381019190915560020154612cbd9084612dd5565b6001600160a01b0385165f908152600f6020526040812060020191909155612ce485612d64565b6001600160a01b0386165f908152600f6020526040902060030154909150612d0f9084908484612e29565b81158015612d1a5750805b15612d2957612d29855f6110c8565b846001600160a01b03167f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc2856040516129fc91815260200190565b6001600160a01b0381165f908152600f602052604081205460ff168015612da857506001600160a01b0382165f908152600f6020526040902054610100900460ff16155b801561099b57506009546001600160a01b0383165f908152600f6020526040902060030154101592915050565b5f82612de18382613eb1565b915081101561099b5760405162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b6044820152606401610978565b5f612e376201518042613e5d565b5f8181526013602052604081205491925003612e5657612e568161375e565b5f8181526013602052604081205490848015612e7457506009548710155b8015612e7f57508681115b15612e9157612e8e8782613db8565b90505b838015612ea057506009548610155b15612eb257612eaf8682613eb1565b90505b8015612f14575f612ec38284613eb1565b5f85815260136020908152604091829020839055815186815290810183905291925085917f328a108677ab694123787886e56837632e615f62198d08c5bfccfc235bc5b1c0910160405180910390a2505b50505050505050565b6001600160a01b0382165f908152600f602052604090205460ff16612f545760405162461bcd60e51b815260040161097890613e0b565b6001600160a01b0382165f908152600f6020526040902054610100900460ff1615612fcb5760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420636c61696d2072657761726473207768696c652070617573656044820152601960fa1b6064820152608401610978565b6009546001600160a01b0383165f908152600f602052604090206003015410156130335760405162461bcd60e51b8152602060048201526019602482015278125b9cdd59999a58da595b9d081cdd185ad948185b5bdd5b9d603a1b6044820152606401610978565b6001600160a01b0381165f9081526019602052604090205460ff166110485760405162461bcd60e51b8152602060048201526018602482015277151bdad95b881b9bdd081a5b881c995dd85c99081b1a5cdd60421b6044820152606401610978565b5f8060015b60085481116131c3575f6130ae8286613db8565b6001600160a01b038089165f908152600e60209081526040808320938b1683529281528282208483529052205490915060ff16156130ec57506131b1565b6004805460405163385e5d6560e21b81526001600160a01b038a8116938201939093525f928392169063e179759490602401606060405180830381865afa158015613139573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061315d9190613f0a565b92509250508061316f575050506131b1565b8115801561317e575060028411155b1561318b575050506131b1565b5f6131978a8a866137ec565b905080156131ac576131a98682612dd5565b95505b505050505b806131bb81613dcb565b91505061309a565b5090505b9392505050565b6001600160a01b03821673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c14613336576040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015613236573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061325a9190613ef3565b9050818110156132ac5760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420636f6e74726163742062616c616e63650000006044820152606401610978565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af11580156132f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061331a9190613e42565b610a4b5760405162461bcd60e51b815260040161097890613ec4565b604051339082156108fc029083905f818181858888f19350505050158015610a4b573d5f803e3d5ffd5b5f8261336c8382613db8565b915081111561099b5760405162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b6044820152606401610978565b6040518061010001604052806001151581526020015f151581526020015f81526020015f81526020015f81526020015f81526020014281526020015f815250600f5f856001600160a01b03166001600160a01b031681526020019081526020015f205f820151815f015f6101000a81548160ff0219169083151502179055506020820151815f0160016101000a81548160ff02191690831515021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155905050601d83908060018154018082558091505060019003905f5260205f20015f9091909190916101000a8154816001600160a01b0302191690836001600160a01b0316021790555060045f9054906101000a90046001600160a01b03166001600160a01b031663db460d1d84836040518363ffffffff1660e01b815260040161352e9291906001600160a01b03929092168252602082015260400190565b5f604051808303815f87803b158015613545575f80fd5b505af1158015613557573d5f803e3d5ffd5b505050506135658383612a9d565b6040516001600160a01b038416907ff8d4586a3be4aafa3f7bbbc33d75e8d85ef48d6c1670bbf0e4936255632c8ac4905f90a2505050565b6001600160a01b0382165f908152600f602052604081205460ff1680156135e157506001600160a01b0383165f908152600f6020526040902054610100900460ff16155b801561360957506009546001600160a01b0384165f908152600f602052604090206003015410155b80156109985750506001600160a01b03165f9081526019602052604090205460ff16919050565b5f8060015b60085481116131c3575f6136498286613db8565b6001600160a01b038089165f908152600e60209081526040808320938b1683529281528282208483529052205490915060ff1615613687575061374c565b6004805460405163385e5d6560e21b81526001600160a01b038a8116938201939093525f928392169063e179759490602401606060405180830381865afa1580156136d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136f89190613f0a565b92509250508061370a5750505061374c565b81158015613719575060028411155b156137265750505061374c565b5f6137328a8a86613963565b90508015613747576137448682612dd5565b95505b505050505b8061375681613dcb565b915050613635565b5f8181526013602052604090205415801561377857505f81115b1561098a5760015b60078111611048575f6013816137968486613db8565b81526020019081526020015f205411156137da5760135f6137b78385613db8565b815260208082019290925260409081015f90812054858252601390935220555050565b806137e481613dcb565b915050613780565b6001600160a01b0382165f908152600c6020908152604080832084845290915281206001810154158061382157506002810154155b1561382f575f9150506131c7565b5f838152601360205260408120549081900361386f5761384e8461375e565b505f838152601360205260408120549081900361386f575f925050506131c7565b6001600160a01b0386165f908152600f602052604081206003015460018401546138a491849161389e91613a57565b90613abd565b905082600201548111156138b9575060028201545b80156139595760028301546138ce9082613360565b60028401556001600160a01b038781165f818152600e60209081526040808320948b168084529482528083208a84528252808320805460ff19166001179055838352600f825291829020600301548251878152918201529081018490527f17db246e2b79d27e01c800967d89cbee46000807213e933b6e4c4fddac899a789060600160405180910390a35b9695505050505050565b6001600160a01b038084165f908152600e60209081526040808320938616835292815282822084835290529081205460ff16156139a157505f6131c7565b6001600160a01b0383165f908152600c602090815260408083208584529091529020600181015415806139d657506002810154155b156139e4575f9150506131c7565b5f8381526013602052604081205490819003613a04575f925050506131c7565b6001600160a01b0386165f908152600f60205260408120600301546001840154909190613a3790849061389e9085613a57565b90508360020154811115613a4c575060028301545b979650505050505050565b5f811580613a7a57508282613a6c8183613f4a565b9250613a789083613e5d565b145b61099b5760405162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b6044820152606401610978565b5f808211613b0d5760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606401610978565b6109988284613e5d565b80356001600160a01b0381168114613b2d575f80fd5b919050565b5f60208284031215613b42575f80fd5b61099882613b17565b5f8060408385031215613b5c575f80fd5b613b6583613b17565b9150613b7360208401613b17565b90509250929050565b5f805f60608486031215613b8e575f80fd5b613b9784613b17565b9250613ba560208501613b17565b9150613bb360408501613b17565b90509250925092565b5f60208284031215613bcc575f80fd5b5035919050565b5f805f60608486031215613be5575f80fd5b613bee84613b17565b9250613bfc60208501613b17565b9150604084013590509250925092565b5f8060408385031215613c1d575f80fd5b613c2683613b17565b946020939093013593505050565b801515811461098a575f80fd5b5f8060408385031215613c52575f80fd5b613c5b83613b17565b91506020830135613c6b81613c34565b809150509250929050565b602080825282518282018190525f9190848201906040850190845b81811015613cb65783516001600160a01b031683529284019291840191600101613c91565b50909695505050505050565b5f8060408385031215613cd3575f80fd5b50508035926020909101359150565b5f8060208385031215613cf3575f80fd5b823567ffffffffffffffff80821115613d0a575f80fd5b818501915085601f830112613d1d575f80fd5b813581811115613d2b575f80fd5b8660208260051b8501011115613d3f575f80fd5b60209290920196919550909350505050565b5f805f8060808587031215613d64575f80fd5b5050823594602084013594506040840135936060013592509050565b6020808252600a908201526927b7363c9037bbb732b960b11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561099b5761099b613da4565b5f60018201613ddc57613ddc613da4565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b60208082526017908201527f4e6f742072656769737465726564206173204172627472000000000000000000604082015260600190565b5f60208284031215613e52575f80fd5b81516131c781613c34565b5f82613e7757634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252818101527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f604082015260600190565b8082018082111561099b5761099b613da4565b602080825260159082015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b604082015260600190565b5f60208284031215613f03575f80fd5b5051919050565b5f805f60608486031215613f1c575f80fd5b835192506020840151613f2e81613c34565b6040850151909250613f3f81613c34565b809150509250925092565b808202811582820484141761099b5761099b613da456fea26469706673582212201ca7d17efc770a1b142815e1d26273b025b15733d4418a920bdbe8eeef7e9ec264736f6c63430008180033