1.7k txs
1.8k calls
constructor
constructor(address _usdtAddress, address _tokenAddress, address _aiTradingWallet, address _growthWallet, address _systemFeeWallet, uint256 _earlyMiningStart, uint256 _earlyMiningEnd)
functions
AI_ALLOCATION_PERCENT
viewfunction AI_ALLOCATION_PERCENT() view returns (uint256)
aiTradingWallet
viewfunction aiTradingWallet() view returns (address)
earlyMiningEnd
viewfunction earlyMiningEnd() view returns (uint256)
earlyMiningRewardPercent
viewfunction earlyMiningRewardPercent() view returns (uint256)
earlyMiningStart
viewfunction earlyMiningStart() view returns (uint256)
earlyMiningThreshold
viewfunction earlyMiningThreshold() view returns (uint256)
getContractInfo
viewfunction getContractInfo() view returns (uint256 _totalUSDTAllocatedOverall, uint256 _totalUsers, uint256 _totalUSDTHarvestedOverall, uint256 _usdtBalance, uint256 _tokenBalance)
getPlanInfo
viewfunction getPlanInfo(uint256 planId) view returns (string name, uint256 minAllocation, uint256 maxAllocation, uint256 dailyPercent, uint256 durationDays, uint256 maxRoiPercent, bool isActive)
getUserAllocationInfo
viewfunction getUserAllocationInfo(address userAddress, uint256 index) view returns (uint256 planId, uint256 amount, uint256 start, uint256 finish, uint256 maxReturnAmount)
getUserAvailableRewards
viewfunction getUserAvailableRewards(address userAddress) view returns (uint256)
getUserMaxReturn
viewfunction getUserMaxReturn(address userAddress) view returns (uint256 maxTotalReturn)
getUserReferralInfo
viewfunction getUserReferralInfo(address userAddress) view returns (uint256[10] referralsCount, uint256[10] referralBonusEarned, uint256 availableReferralBonus)
getUserSummary
viewfunction getUserSummary(address userAddress) view returns (address referrer, uint256 totalAllocated, uint256 totalHarvested, uint256 availableToHarvest, uint256 maxYieldPossible, uint256 lastHarvestTime, uint256 numAllocations)
GROWTH_ALLOCATION_PERCENT
viewfunction GROWTH_ALLOCATION_PERCENT() view returns (uint256)
growthWallet
viewfunction growthWallet() view returns (address)
HARVEST_COOLDOWN
viewfunction HARVEST_COOLDOWN() view returns (uint256)
HARVEST_FEE_PERCENT
viewfunction HARVEST_FEE_PERCENT() view returns (uint256)
isBlacklisted
viewfunction isBlacklisted(address) view returns (bool)
isPaused
viewfunction isPaused() view returns (bool)
launchTime
viewfunction launchTime() view returns (uint256)
MAX_HARVEST_PER_TX
viewfunction MAX_HARVEST_PER_TX() view returns (uint256)
MIN_HARVEST_AMOUNT
viewfunction MIN_HARVEST_AMOUNT() view returns (uint256)
owner
viewfunction owner() view returns (address)
PERCENTS_DIVIDER
viewfunction PERCENTS_DIVIDER() view returns (uint256)
planCount
viewfunction planCount() view returns (uint256)
plans
viewfunction plans(uint256) view returns (uint256 id, string name, uint256 minAllocation, uint256 maxAllocation, uint256 dailyPercent, uint256 durationDays, uint256 maxRoiPercent, bool isActive)
REFERRAL_LEVELS
viewfunction REFERRAL_LEVELS() view returns (uint256)
referralPercents
viewfunction referralPercents(uint256) view returns (uint256)
systemFeeWallet
viewfunction systemFeeWallet() view returns (address)
Token
viewfunction Token() view returns (address)
tokenRewardPercent
viewfunction tokenRewardPercent() view returns (uint256)
totalReferralBonusPaid
viewfunction totalReferralBonusPaid() view returns (uint256)
totalUSDTAllocatedOverall
viewfunction totalUSDTAllocatedOverall() view returns (uint256)
totalUSDTHarvestedOverall
viewfunction totalUSDTHarvestedOverall() view returns (uint256)
totalUsers
viewfunction totalUsers() view returns (uint256)
USDT
viewfunction USDT() view returns (address)
addLiquidityFromAI
nonpayablefunction addLiquidityFromAI(uint256 amount)
addPlan
nonpayablefunction addPlan(string name, uint256 minAllocation, uint256 maxAllocation, uint256 dailyPercent, uint256 durationDays, uint256 maxRoiPercent)
blacklistAddress
nonpayablefunction blacklistAddress(address user)
blacklistMultipleAddresses
nonpayablefunction blacklistMultipleAddresses(address[] _users)
harvestRewards
nonpayablefunction harvestRewards()
renounceOwnership
nonpayablefunction renounceOwnership()
setAIWallet
nonpayablefunction setAIWallet(address newWallet)
setEarlyMiningPeriod
nonpayablefunction setEarlyMiningPeriod(uint256 _start, uint256 _end)
setGrowthWallet
nonpayablefunction setGrowthWallet(address newWallet)
setPause
nonpayablefunction setPause(bool _pause)
setPlanActivity
nonpayablefunction setPlanActivity(uint256 planId, bool _isActive)
setSystemFeeWallet
nonpayablefunction setSystemFeeWallet(address newWallet)
setTokenRewardConfig
nonpayablefunction setTokenRewardConfig(uint256 _defaultPercent, uint256 _earlyPercent, uint256 _earlyThreshold)
startMiningRig
nonpayablefunction startMiningRig(address referrer, uint256 usdtAmount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unblacklistAddress
nonpayablefunction unblacklistAddress(address user)
unblacklistMultipleAddresses
nonpayablefunction unblacklistMultipleAddresses(address[] _users)
updatePlan
nonpayablefunction updatePlan(uint256 planId, string name, uint256 minAllocation, uint256 maxAllocation, uint256 dailyPercent, uint256 durationDays, uint256 maxRoiPercent)
withdrawNativeCoin
nonpayablefunction withdrawNativeCoin(address recipient)
withdrawOtherToken
nonpayablefunction withdrawOtherToken(address tokenContractAddress, address recipient)
events
Blacklisted
event Blacklisted(address indexed user)
EarlyMiningPeriodSet
event EarlyMiningPeriodSet(uint256 start, uint256 end)
LiquidityAdded
event LiquidityAdded(address indexed source, uint256 amount)
MiningRigStarted
event MiningRigStarted(address indexed user, uint256 planId, uint256 amount, uint256 maxReturnAmount, uint256 finishTime)
NativeCoinWithdrawn
event NativeCoinWithdrawn(address indexed recipient, uint256 amount)
Newbie
event Newbie(address indexed user)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
PlanActivityChanged
event PlanActivityChanged(uint256 planId, bool isActive)
PlanAdded
event PlanAdded(uint256 planId, string name, uint256 minDeposit, uint256 maxDeposit, uint256 dailyPercent, uint256 durationDays, uint256 maxRoiPercent)
PlanUpdated
event PlanUpdated(uint256 planId, string name, uint256 minDeposit, uint256 maxDeposit, uint256 dailyPercent, uint256 durationDays, uint256 maxRoiPercent)
RefBonusPaid
event RefBonusPaid(address indexed referrer, address indexed referral, uint256 level, uint256 bonusAmount)
RefBonusSkippedROI
event RefBonusSkippedROI(address indexed referrer, address indexed referral, uint256 level, uint256 potentialBonus)
RewardsHarvested
event RewardsHarvested(address indexed user, uint256 requestedAmount, uint256 sentAmount, uint256 feeAmount)
TokenRewardConfigSet
event TokenRewardConfigSet(uint256 defaultPercent, uint256 earlyPercent, uint256 earlyThreshold)
TokenRewardDistributed
event TokenRewardDistributed(address indexed user, uint256 depositAmount, uint256 rewardAmount, bool isEarlyBonus)
TokensWithdrawn
event TokensWithdrawn(address indexed tokenAddress, address indexed recipient, uint256 amount)
Unblacklisted
event Unblacklisted(address indexed user)
Unpaused
event Unpaused(address account)
WalletUpdated
event WalletUpdated(string indexed walletType, address indexed oldWallet, address indexed newWallet)
errors
No errors.
creation bytecode
0x60c06040526013805460ff191690553480156200001a575f80fd5b5060405162004be338038062004be38339810160408190526200003d9162000815565b336200004981620004bc565b50600180556001600160a01b038716620000aa5760405162461bcd60e51b815260206004820152601b60248201527f5553445420616464726573732063616e6e6f74206265207a65726f000000000060448201526064015b60405180910390fd5b6001600160a01b038616620001025760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e20616464726573732063616e6e6f74206265207a65726f000000006044820152606401620000a1565b6001600160a01b0385166200015a5760405162461bcd60e51b815260206004820181905260248201527f41492054726164696e672077616c6c65742063616e6e6f74206265207a65726f6044820152606401620000a1565b6001600160a01b038416620001b25760405162461bcd60e51b815260206004820152601c60248201527f47726f7774682077616c6c65742063616e6e6f74206265207a65726f000000006044820152606401620000a1565b6001600160a01b0383166200020a5760405162461bcd60e51b815260206004820181905260248201527f53797374656d204665652077616c6c65742063616e6e6f74206265207a65726f6044820152606401620000a1565b808210620002735760405162461bcd60e51b815260206004820152602f60248201527f4561726c79206d696e696e672073746172742074696d65206d7573742062652060448201526e6265666f726520656e642074696d6560881b6064820152608401620000a1565b6001600160a01b0387811660805286811660a052600280546001600160a01b03199081168884161790915560038054821687841617905560048054909116918516919091179055611388600955612710600d55683643aa647986040000600c90815542601255600a839055600b829055604080518082019091529081526b5374616e646172642052696760a01b60208201526200032c906802b5e3af16b1880000681b1ae4d6e2ef500000601e610190612ee06200050b565b60408051808201909152600781526650726f2052696760c81b60208201526200037190681b28c58d9696b40000683635c9adc5dea00000603261016d61474a6200050b565b60408051808201909152600c81526b416476616e6365642052696760a01b6020820152620003bb90683643aa64798604000068878678326eac900000604b61016d616aef6200050b565b604080518082019091526009815268456c6974652052696760b81b6020820152620004039068879458e92253f4000069010f0cf064dd59200000605561016d6179316200050b565b604080518082019091526008815267417065782052696760c01b60208201526200044b9069010f1ad11b910084000069d3c21bcecceda1000000606461016d618e946200050b565b60408051610140810182526103e88152606460208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152620004ae90600890600a6200078f565b505050505050505062000a9f565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b83851115620005715760405162461bcd60e51b815260206004820152602b60248201527f4d696e20616c6c6f636174696f6e2063616e6e6f7420657863656564206d617860448201526a1030b63637b1b0ba34b7b760a91b6064820152608401620000a1565b5f8311620005c25760405162461bcd60e51b815260206004820152601e60248201527f4461696c792070657263656e74206d75737420626520706f73697469766500006044820152606401620000a1565b5f8211620006135760405162461bcd60e51b815260206004820152601960248201527f4475726174696f6e206d75737420626520706f736974697665000000000000006044820152606401620000a1565b612710811015620006675760405162461bcd60e51b815260206004820152601d60248201527f4d617820524f49206d757374206265206174206c6561737420313030250000006044820152606401620000a1565b600654604080516101008101825282815260208082018a81528284018a9052606083018990526080830188905260a0830187905260c08301869052600160e084018190525f8681526005909352939091208251815590519192909190820190620006d2908262000931565b5060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015f6101000a81548160ff021916908315150217905550905050600160065f8282546200073b9190620009fd565b90915550506040517f79f58e694e2587a25708bd70b35111356705a2d8701b34f56272d056563ebd67906200077e9083908a908a908a908a908a908a9062000a23565b60405180910390a150505050505050565b828054828255905f5260205f20908101928215620007d1579160200282015b82811115620007d1578251829061ffff16905591602001919060010190620007ae565b50620007df929150620007e3565b5090565b5b80821115620007df575f8155600101620007e4565b80516001600160a01b038116811462000810575f80fd5b919050565b5f805f805f805f60e0888a0312156200082c575f80fd5b6200083788620007f9565b96506200084760208901620007f9565b95506200085760408901620007f9565b94506200086760608901620007f9565b93506200087760808901620007f9565b925060a0880151915060c0880151905092959891949750929550565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620008bc57607f821691505b602082108103620008db57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200092c57805f5260205f20601f840160051c81016020851015620009085750805b601f840160051c820191505b8181101562000929575f815560010162000914565b50505b505050565b81516001600160401b038111156200094d576200094d62000893565b62000965816200095e8454620008a7565b84620008e1565b602080601f8311600181146200099b575f8415620009835750858301515b5f19600386901b1c1916600185901b178555620009f5565b5f85815260208120601f198616915b82811015620009cb57888601518255948401946001909101908401620009aa565b5085821015620009e957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b8082018082111562000a1d57634e487b7160e01b5f52601160045260245ffd5b92915050565b8781525f602060e0602084015288518060e08501525f5b8181101562000a59578a81018301518582016101000152820162000a3a565b505f610100828601810191909152604085019990995260608401979097525050608081019390935260a083019190915260c0820152601f909101601f1916010192915050565b60805160a0516140b962000b2a5f395f818161066c0152818161137a01528181613673015261370b01525f818161069301528181610cf001528181610dc2015281816112fc015281816118840152818161211a015281816121b0015281816122a0015281816123cd015281816124b801528181612ba301528181612c460152612d3801526140b95ff3fe608060405234801561000f575f80fd5b5060043610610366575f3560e01c8063963920a3116101c9578063c7bde443116100fe578063e9a0b69b1161009e578063f2fde38b11610079578063f2fde38b1461076f578063f3290d7514610782578063f47fc09b14610795578063fe575a87146107a8575f80fd5b8063e9a0b69b1461073f578063eb6e2b9514610752578063f0b7c59d14610765575f80fd5b8063e452fe78116100d9578063e452fe78146106f3578063e637cf0b14610706578063e87f1ae014610719578063e98164661461072c575f80fd5b8063c7bde443146106b5578063d3552712146106be578063e3f147e7146106e0575f80fd5b8063b50221b611610169578063bedb86fb11610144578063bedb86fb1461064b578063bff1f9e11461065e578063c241267614610667578063c54e44eb1461068e575f80fd5b8063b50221b61461061c578063b6952a701461062f578063bb0adcac14610642575f80fd5b8063a17e9a0c116101a4578063a17e9a0c146105bf578063ad24cf4f146105c8578063b1620616146105d8578063b187bd26146105ff575f80fd5b8063963920a3146105865780639db2934014610599578063a0fb30d4146105ac575f80fd5b80633a6a07671161029f578063715018a61161023f5780638da5cb5b1161021a5780638da5cb5b146105085780638fbd0c2d14610518578063907ef7751461056a57806391b91ba81461057d575f80fd5b8063715018a6146104c7578063790ca413146104cf5780637cc1f867146104d8575f80fd5b806345e349491161027a57806345e34949146104865780634b43538e146104995780634bd7904e146104ac57806362bf9746146104bf575f80fd5b80633a6a0767146104575780633d8b57911461046a5780633e89543614610473575f80fd5b80632aec6c631161030a5780633411466c116102e55780633411466c146103f4578063353659151461041f57806337e222ff14610428578063382d39bb1461044e575f80fd5b80632aec6c63146103d05780632b596051146103e35780632be11ae2146103ec575f80fd5b806316fa1e101161034557806316fa1e10146103a45780631943d388146103ad5780631da29367146103b65780632a654a3e146103bf575f80fd5b8062aed52b1461036a57806301c234a81461037f57806311f0abc51461039b575b5f80fd5b61037d610378366004613849565b6107ca565b005b61038861271081565b6040519081526020015b60405180910390f35b610388600a5481565b6103886103e881565b61038860095481565b61038860115481565b61038869010f0cf064dd5920000081565b61037d6103de3660046138b0565b610872565b610388610bb881565b61037d6109b3565b600354610407906001600160a01b031681565b6040516001600160a01b039091168152602001610392565b610388600d5481565b61043b610436366004613951565b610ed8565b60405161039297969594939291906139ab565b61038860065481565b600254610407906001600160a01b031681565b610388600b5481565b61037d6104813660046139f0565b610fe3565b61037d610494366004613849565b61108d565b61037d6104a7366004613a10565b611146565b6103886104ba366004613849565b611252565b610388600a81565b61037d6112b8565b61038860125481565b6104e06112c9565b604080519586526020860194909452928401919091526060830152608082015260a001610392565b5f546001600160a01b0316610407565b61052b610526366004613849565b6113fc565b604080516001600160a01b0390981688526020880196909652948601939093526060850191909152608084015260a083015260c082015260e001610392565b61037d610578366004613aa5565b611464565b610388600c5481565b610388610594366004613951565b611626565b6103886105a7366004613849565b611645565b61037d6105ba366004613849565b6116c6565b61038860105481565b6103886802b5e3af16b188000081565b6105eb6105e6366004613951565b611736565b604051610392989796959493929190613b12565b60135461060c9060ff1681565b6040519015158152602001610392565b61037d61062a366004613849565b611802565b61037d61063d366004613b60565b611872565b6103886101f481565b61037d610659366004613ba4565b611bb9565b610388600f5481565b6104077f000000000000000000000000000000000000000000000000000000000000000081565b6104077f000000000000000000000000000000000000000000000000000000000000000081565b610388600e5481565b6106d16106cc366004613849565b611c3f565b60405161039293929190613be1565b61037d6106ee366004613c0d565b611ce5565b61037d610701366004613c30565b611d62565b600454610407906001600160a01b031681565b61037d610727366004613c90565b611d80565b6104e061073a366004613c90565b6125f1565b61037d61074d3660046138b0565b6126b3565b61037d610760366004613849565b6127a5565b6103886201518081565b61037d61077d366004613849565b61294d565b61037d610790366004613849565b6129c3565b61037d6107a3366004613951565b612ac6565b61060c6107b6366004613849565b60146020525f908152604090205460ff1681565b6107d2612e53565b6001600160a01b0381166108015760405162461bcd60e51b81526004016107f890613cba565b60405180910390fd5b600380546001600160a01b038381166001600160a01b03198316811790935560405191169190829061083f906508ee4deeee8d60d31b815260060190565b604051908190038120907fd8e98bff5ae8522235ef48daecff7488b367200bea03a4e8cb4bc98108c6a492905f90a45050565b61087a612e53565b5f5b81518110156109af575f82828151811061089857610898613cfb565b602002602001015190505f6001600160a01b0316816001600160a01b0316036108d35760405162461bcd60e51b81526004016107f890613d0f565b5f546001600160a01b03166001600160a01b0316816001600160a01b03160361093e5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420626c61636b6c69737420746865206f776e657200000000000060448201526064016107f8565b6001600160a01b0381165f9081526014602052604090205460ff166109a6576001600160a01b0381165f81815260146020526040808220805460ff19166001179055517fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b8559190a25b5060010161087c565b5050565b60135460ff16156109d65760405162461bcd60e51b81526004016107f890613d50565b335f9081526014602052604090205460ff1615610a055760405162461bcd60e51b81526004016107f890613d98565b610a0d612eac565b335f908152600760205260409020601a810154610a2e906201518090613df2565b421015610a8c5760405162461bcd60e51b815260206004820152602660248201527f4861727665737420636f6f6c646f776e3a20506c65617365207761697420323460448201526520686f75727360d01b60648201526084016107f8565b5f610a9633612f05565b5060178301549091505f610aaa8284613df2565b90505f8111610afb5760405162461bcd60e51b815260206004820152601f60248201527f4e6f207265776172647320617661696c61626c6520746f20686172766573740060448201526064016107f8565b5f610b0533611252565b90505f85601801548211610b19575f610b28565b6018860154610b289083613e0b565b90505f8111610b855760405162461bcd60e51b815260206004820152602360248201527f4d6178696d756d205969656c64206c696d697420616c726561647920726561636044820152621a195960ea1b60648201526084016107f8565b5f818410610b935781610b95565b835b90506802b5e3af16b1880000811015610c055760405162461bcd60e51b815260206004820152602c60248201527f4861727665737420616d6f756e742062656c6f77206d696e696d756d2074687260448201526b6573686f6c6420282435302960a01b60648201526084016107f8565b5f69010f0cf064dd592000008211610c1d5781610c29565b69010f0cf064dd592000005b90505f612710610c3b6101f484613e1e565b610c459190613e35565b90505f610c528284613e0b565b9050828a6018015f828254610c679190613df2565b9091555050878311610c9157828a6017015f828254610c869190613e0b565b90915550610c989050565b5f60178b01555b8815610ca5574260028b01555b428a601a01819055508060115f828254610cbf9190613df2565b90915550506004805460405163a9059cbb60e01b81526001600160a01b0391821692810192909252602482018490527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015610d36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5a9190613e54565b610da65760405162461bcd60e51b815260206004820152601a60248201527f53797374656d20666565207472616e73666572206661696c656400000000000060448201526064016107f8565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610e10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e349190613e54565b610e805760405162461bcd60e51b815260206004820152601e60248201527f5265776172642068617276657374207472616e73666572206661696c6564000060448201526064016107f8565b604080518481526020810183905290810183905233907f57f92f16fa09c9e4bb565a3d9d987c04877f97eb9067730674bb415730aaa6529060600160405180910390a250505050505050505050610ed660018055565b565b60605f805f805f806006548810610f015760405162461bcd60e51b81526004016107f890613e6f565b5f8881526005602081905260409091206002810154600382015460048301549383015460068401546007850154600186018054969790969093929160ff16908790610f4b90613e9f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7790613e9f565b8015610fc25780601f10610f9957610100808354040283529160200191610fc2565b820191905f5260205f20905b815481529060010190602001808311610fa557829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b610feb612e53565b8082106110455760405162461bcd60e51b815260206004820152602260248201527f53746172742074696d65206d757374206265206265666f726520656e642074696044820152616d6560f01b60648201526084016107f8565b600a829055600b81905560408051838152602081018390527f63039ea3099b7f9a00f595d1633bc3d8d8c2353b745ad732573dd21e25f5499691015b60405180910390a15050565b611095612e53565b6001600160a01b0381166110dd5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016107f8565b6001600160a01b0381165f9081526014602052604090205460ff1615611143576001600160a01b0381165f81815260146020526040808220805460ff19169055517f7534c63860313c46c473e4e98328f37017e9674e2162faf1a3ad7a96236c3b7b9190a25b50565b61114e612e53565b6127108311156111ab5760405162461bcd60e51b815260206004820152602260248201527f44656661756c742070657263656e742063616e6e6f7420657863656564203130604482015261302560f01b60648201526084016107f8565b6127108211156111fd5760405162461bcd60e51b815260206004820181905260248201527f4561726c792070657263656e742063616e6e6f7420657863656564203130302560448201526064016107f8565b6009839055600d829055600c81905560408051848152602081018490529081018290527f1c69353fbba64cecfb5476bcd8a88c857f83ee57205a46599277babe3ae5ce039060600160405180910390a1505050565b6001600160a01b0381165f908152600760205260408120815b60018201548110156112b15781600101818154811061128c5761128c613cfb565b905f5260205f20906005020160040154836112a79190613df2565b925060010161126b565b5050919050565b6112c0612e53565b610ed65f61303c565b600e54600f546011546040516370a0823160e01b81523060048201525f9384938493849384939291906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611341573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113659190613ed7565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156113c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113eb9190613ed7565b945094509450945094509091929394565b6001600160a01b038082165f908152600760205260408120805460198201546018830154939485948594859485948594859492169161143a8c611645565b6114438d611252565b601a860154600190960154949e939d50919b50995097509195509350915050565b61146c612e53565b600654871061148d5760405162461bcd60e51b81526004016107f890613e6f565b838511156114ad5760405162461bcd60e51b81526004016107f890613eee565b5f83116114fc5760405162461bcd60e51b815260206004820152601e60248201527f4461696c792070657263656e74206d75737420626520706f736974697665000060448201526064016107f8565b5f82116115475760405162461bcd60e51b81526020600482015260196024820152784475726174696f6e206d75737420626520706f73697469766560381b60448201526064016107f8565b6127108110156115995760405162461bcd60e51b815260206004820152601d60248201527f4d617820524f49206d757374206265206174206c65617374203130302500000060448201526064016107f8565b5f878152600560205260409020600181016115b48882613f85565b5060028101869055600381018590556004810184905560058101839055600681018290556040517f91b86a3f62c78ecf0db461d69a9a5ecdbb32b77feee2ad16670eb5130640586690611614908a908a908a908a908a908a908a90614041565b60405180910390a15050505050505050565b60088181548110611635575f80fd5b5f91825260209091200154905081565b6001600160a01b0381165f9081526007602052604081208161166684612f05565b5060178301549091505f61167a8284613df2565b90505f61168687611252565b90505f8560180154821161169a575f6116a9565b60188601546116a99083613e0b565b90508083106116b857806116ba565b825b98975050505050505050565b6116ce612e53565b6001600160a01b0381166116f45760405162461bcd60e51b81526004016107f890613cba565b600280546001600160a01b038381166001600160a01b03198316811790935560405191169190829061083f906941492054726164696e6760b01b8152600a0190565b60056020525f90815260409020805460018201805491929161175790613e9f565b80601f016020809104026020016040519081016040528092919081815260200182805461178390613e9f565b80156117ce5780601f106117a5576101008083540402835291602001916117ce565b820191905f5260205f20905b8154815290600101906020018083116117b157829003601f168201915b5050506002840154600385015460048601546005870154600688015460079098015496979396929550909350919060ff1688565b61180a612e53565b6001600160a01b0381166118305760405162461bcd60e51b81526004016107f890613cba565b600480546001600160a01b038381166001600160a01b03198316811790935560405191169190829061083f906953797374656d2046656560b01b8152600a0190565b61187a612e53565b611882612eac565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036119345760405162461bcd60e51b815260206004820152604260248201527f43616e6e6f74207769746864726177207072696d61727920616c6c6f6361746960448201527f6f6e20746f6b656e20285553445429207769746820746869732066756e63746960648201526137b760f11b608482015260a4016107f8565b6001600160a01b0382166119825760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b60448201526064016107f8565b6001600160a01b0381166119d45760405162461bcd60e51b8152602060048201526019602482015278496e76616c696420726563697069656e74206164647265737360381b60448201526064016107f8565b6040516370a0823160e01b815230600482015282905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015611a1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3e9190613ed7565b90505f8111611aa55760405162461bcd60e51b815260206004820152602d60248201527f4e6f2062616c616e6365206f66207468652073706563696669656420746f6b6560448201526c6e20746f20776974686472617760981b60648201526084016107f8565b60405163a9059cbb60e01b81526001600160a01b0384811660048301526024820183905283169063a9059cbb906044016020604051808303815f875af1158015611af1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b159190613e54565b611b615760405162461bcd60e51b815260206004820152601d60248201527f4f7468657220746f6b656e207769746864726177616c206661696c656400000060448201526064016107f8565b826001600160a01b0316846001600160a01b03167f6337ed398c0e8467698c581374fdce4db14922df487b5a39483079f5f59b60a483604051611ba691815260200190565b60405180910390a350506109af60018055565b611bc1612e53565b6013805460ff19168215801591909117909155611c0f576040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020015b60405180910390a150565b6040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602001611c04565b611c47613816565b611c4f613816565b6001600160a01b0383165f908152600760205260408082206017810154825161014081019384905291926003840192600d850192918490600a9082845b815481526020019060010190808311611c8c57505060408051610140810191829052949750869350600a9250905082845b815481526020019060010190808311611cbd5750505050509150935093509350509193909250565b611ced612e53565b6006548210611d0e5760405162461bcd60e51b81526004016107f890613e6f565b5f82815260056020908152604091829020600701805460ff19168415159081179091558251858152918201527fbf6f1c5df75e44ed358a5a1f51fd0b7af1acac25d6aa120c6ec82055dc0e1c8e9101611081565b611d6a612e53565b611d7886868686868661308b565b505050505050565b60135460ff1615611da35760405162461bcd60e51b81526004016107f890613d50565b335f9081526014602052604090205460ff1615611dd25760405162461bcd60e51b81526004016107f890613d98565b611dda612eac565b336001600160a01b03831603611e325760405162461bcd60e51b815260206004820152601c60248201527f53656c662d726566657272616c206973206e6f7420616c6c6f7765640000000060448201526064016107f8565b6001600160a01b038216611e885760405162461bcd60e51b815260206004820152601f60248201527f526566657272657220616464726573732063616e6e6f74206265207a65726f0060448201526064016107f8565b5f80611e93836132b9565b6007810154919350915060ff16611eff5760405162461bcd60e51b815260206004820152602a60248201527f53656c6563746564206d696e696e6720706c616e2069732063757272656e746c6044820152697920696e61637469766560b01b60648201526084016107f8565b6001600160a01b0384165f90815260076020526040902060190154151580611f3357505f546001600160a01b038581169116145b611fa55760405162461bcd60e51b815260206004820152603760248201527f5265666572726572206d757374206861766520616e2061637469766520616c6c60448201527f6f636174696f6e206f7220626520746865206f776e657200000000000000000060648201526084016107f8565b335f90815260076020526040902060198101541580156120235781546001600160a01b0319166001600160a01b038716178255426002830155600f8054600191905f90611ff3908490613df2565b909155505060405133907f9fd565cd14c3c391679eb0cad12a14dcf7534e9d3462bcb9b67a098a9bbbc24a905f90a25b5f8360050154620151806120379190613e1e565b6120419042613df2565b90505f6127108560060154886120579190613e1e565b6120619190613e35565b6040805160a08101825288815260208082018b81524293830193845260608301878152608084018681526001808c01805480830182555f918252958120965160059096029096019485559251928401929092559351600283015592516003820155915160049092019190915560198601805492935089929091906120e6908490613df2565b9250508190555086600e5f8282546120fe9190613df2565b90915550506040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015612167573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061218b9190613ed7565b6040516323b872dd60e01b8152336004820152306024820152604481018a90529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af11580156121fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122229190613e54565b6122815760405162461bcd60e51b815260206004820152602a60248201527f55534454207472616e7366657246726f6d206661696c65642e20436865636b2060448201526930b63637bbb0b731b29760b11b60648201526084016107f8565b61228b8882613df2565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156122ed573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123119190613ed7565b101561236b5760405162461bcd60e51b8152602060048201526024808201527f555344542062616c616e6365206d69736d61746368206166746572207472616e60448201526339b332b960e11b60648201526084016107f8565b5f61271061237b610bb88b613e1e565b6123859190613e35565b90505f6127106123976103e88c613e1e565b6123a19190613e35565b60025460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590529192507f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015612413573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124379190613e54565b61248f5760405162461bcd60e51b8152602060048201526024808201527f41492057616c6c657420616c6c6f636174696f6e207472616e736665722066616044820152631a5b195960e21b60648201526084016107f8565b60035460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015612500573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125249190613e54565b6125815760405162461bcd60e51b815260206004820152602860248201527f47726f7774682057616c6c657420616c6c6f636174696f6e207472616e7366656044820152671c8819985a5b195960c21b60648201526084016107f8565b61258b338b613394565b612595338b6135ff565b604080518a8152602081018c90529081018590526060810186905233907f1aeefd5b8be98a278b00193b83f39134aac1ed4211305060d59869bbec4266dd9060800160405180910390a25050505050505050506109af60018055565b6001600160a01b0382165f9081526007602052604081206001810154829182918291829187106126635760405162461bcd60e51b815260206004820152601e60248201527f416c6c6f636174696f6e20696e646578206f7574206f6620626f756e6473000060448201526064016107f8565b5f81600101888154811061267957612679613cfb565b5f91825260209091206005909102018054600182015460028301546003840154600490940154929d919c509a509198509650945050505050565b6126bb612e53565b5f5b81518110156109af575f8282815181106126d9576126d9613cfb565b602002602001015190505f6001600160a01b0316816001600160a01b0316036127365760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016107f8565b6001600160a01b0381165f9081526014602052604090205460ff161561279c576001600160a01b0381165f81815260146020526040808220805460ff19169055517f7534c63860313c46c473e4e98328f37017e9674e2162faf1a3ad7a96236c3b7b9190a25b506001016126bd565b6127ad612e53565b6127b5612eac565b6001600160a01b0381166128075760405162461bcd60e51b8152602060048201526019602482015278496e76616c696420726563697069656e74206164647265737360381b60448201526064016107f8565b47806128605760405162461bcd60e51b815260206004820152602260248201527f4e6f206e617469766520636f696e2062616c616e636520746f20776974686472604482015261617760f01b60648201526084016107f8565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146128a9576040519150601f19603f3d011682016040523d82523d5f602084013e6128ae565b606091505b50509050806128ff5760405162461bcd60e51b815260206004820152601d60248201527f4e617469766520636f696e207769746864726177616c206661696c656400000060448201526064016107f8565b826001600160a01b03167fb81916d16fbd77affc3fcd0c70b5f93944f280e573527046d9ef770fea3bb2918360405161293a91815260200190565b60405180910390a2505061114360018055565b612955612e53565b6001600160a01b0381166129ba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107f8565b6111438161303c565b6129cb612e53565b6001600160a01b0381166129f15760405162461bcd60e51b81526004016107f890613d0f565b5f546001600160a01b03166001600160a01b0316816001600160a01b031603612a5c5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420626c61636b6c69737420746865206f776e657200000000000060448201526064016107f8565b6001600160a01b0381165f9081526014602052604090205460ff16611143576001600160a01b0381165f81815260146020526040808220805460ff19166001179055517fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b8559190a250565b612ace612eac565b6002546001600160a01b03163314612b3d5760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79207468652041492054726164696e672077616c6c65742063616e206160448201526b6464206c697175696469747960a01b60648201526084016107f8565b5f8111612b8c5760405162461bcd60e51b815260206004820152601760248201527f416d6f756e74206d75737420626520706f73697469766500000000000000000060448201526064016107f8565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015612bf0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c149190613ed7565b6002546040516323b872dd60e01b81526001600160a01b039182166004820152306024820152604481018590529192507f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064016020604051808303815f875af1158015612c8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cb09190613e54565b612d195760405162461bcd60e51b815260206004820152603460248201527f55534454207472616e7366657246726f6d206661696c65642028636865636b2060448201527341492077616c6c657420616c6c6f77616e63652960601b60648201526084016107f8565b612d238282613df2565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015612d85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612da99190613ed7565b1015612e075760405162461bcd60e51b815260206004820152602760248201527f42616c616e6365206d69736d61746368206166746572204149206c69717569646044820152661a5d1e4818591960ca1b60648201526084016107f8565b6002546040518381526001600160a01b03909116907fc17cea59c2955cb181b03393209566960365771dbba9dc3d510180e7cb3120889060200160405180910390a25061114360018055565b5f546001600160a01b03163314610ed65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107f8565b600260015403612efe5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107f8565b6002600155565b6001600160a01b0381165f908152600760205260408120819042825b6001830154811015613030575f836001018281548110612f4357612f43613cfb565b5f91825260208083206005928302018054845291905260409091206007015490915060ff16612f725750613028565b80545f9081526005602052604081206002808701549084015491929111612f9d578560020154612fa3565b82600201545b90505f83600301548610612fbb578360030154612fbd565b855b905080821015613023575f612fd28383613e0b565b90505f61271085600401548760010154612fec9190613e1e565b612ff69190613e35565b90505f620151806130078484613e1e565b6130119190613e35565b905061301d818d613df2565b9b505050505b505050505b600101612f21565b5092945f945092505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b838511156130ab5760405162461bcd60e51b81526004016107f890613eee565b5f83116130fa5760405162461bcd60e51b815260206004820152601e60248201527f4461696c792070657263656e74206d75737420626520706f736974697665000060448201526064016107f8565b5f82116131455760405162461bcd60e51b81526020600482015260196024820152784475726174696f6e206d75737420626520706f73697469766560381b60448201526064016107f8565b6127108110156131975760405162461bcd60e51b815260206004820152601d60248201527f4d617820524f49206d757374206265206174206c65617374203130302500000060448201526064016107f8565b600654604080516101008101825282815260208082018a81528284018a9052606083018990526080830188905260a0830187905260c08301869052600160e084018190525f86815260059093529390912082518155905191929091908201906132009082613f85565b5060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015f6101000a81548160ff021916908315150217905550905050600160065f8282546132679190613df2565b90915550506040517f79f58e694e2587a25708bd70b35111356705a2d8701b34f56272d056563ebd67906132a89083908a908a908a908a908a908a90614041565b60405180910390a150505050505050565b5f805f5b60065481101561331b575f8181526005602052604090206002015484108015906132f757505f818152600560205260409020600301548411155b15613313575f8181526005602052604090209094909350915050565b6001016132bd565b5060405162461bcd60e51b815260206004820152604160248201527f4e6f207375697461626c652061637469766520706c616e20666f756e6420666f60448201527f72207468652073706563696669656420616c6c6f636174696f6e20616d6f756e6064820152601d60fa1b608482015260a4016107f8565b6001600160a01b038083165f90815260076020526040812054909116905b600a8110156135f9576001600160a01b038216156135f9576001600160a01b0382165f9081526014602052604090205460ff161561340c576001600160a01b039182165f90815260076020526040902054909116906135f1565b6001600160a01b0382165f908152600760205260408120600880549192918490811061343a5761343a613cfb565b5f91825260208220015491506127106134538388613e1e565b61345d9190613e35565b905080156135e2575f61346f86611252565b90505f84601801548211613483575f613492565b60188501546134929083613e0b565b9050801561356a575f8184106134a857816134aa565b835b905080866017015f8282546134bf9190613df2565b90915550600190506003870188600a81106134dc576134dc613cfb565b015f8282546134eb9190613df2565b90915550819050600d870188600a811061350757613507613cfb565b015f8282546135169190613df2565b909155505060408051888152602081018390526001600160a01b03808d1692908b16917f1c6aaed9766cefd49b3b70a6f14fecebdf6ac036349dde1240155618c4eac26e910160405180910390a3506135df565b60018560030187600a811061358157613581613cfb565b015f8282546135909190613df2565b909155505060408051878152602081018590526001600160a01b03808c1692908a16917fe1716dc362e63697efac6190a296747bcfd41271a340dfd9f37a35fcb317956c910160405180910390a35b50505b5050546001600160a01b031691505b6001016133b2565b50505050565b600954600a545f9042108015906136185750600b544211155b80156136265750600c548310155b15613633575050600d5460015b81156135f9575f6127106136478486613e1e565b6136519190613e35565b6040516370a0823160e01b81523060048201529091505f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156136b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136dc9190613ed7565b9050818110611d785760405163a9059cbb60e01b81526001600160a01b038781166004830152602482018490527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015613751573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137759190613e54565b6137c15760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e20726577617264207472616e73666572206661696c65640000000060448201526064016107f8565b60408051868152602081018490528415158183015290516001600160a01b038816917f97cda602eaa2e6093986b91e9f80dc5f0588e07ad949e5a19e2a0e14a542b9da919081900360600190a2505050505050565b604051806101400160405280600a906020820280368337509192915050565b6001600160a01b0381168114611143575f80fd5b5f60208284031215613859575f80fd5b813561386481613835565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156138a8576138a861386b565b604052919050565b5f60208083850312156138c1575f80fd5b823567ffffffffffffffff808211156138d8575f80fd5b818501915085601f8301126138eb575f80fd5b8135818111156138fd576138fd61386b565b8060051b915061390e84830161387f565b8181529183018401918481019088841115613927575f80fd5b938501935b838510156116ba578435925061394183613835565b828252938501939085019061392c565b5f60208284031215613961575f80fd5b5035919050565b5f81518084525f5b8181101561398c57602081850181015186830182015201613970565b505f602082860101526020601f19601f83011685010191505092915050565b60e081525f6139bd60e083018a613968565b60208301989098525060408101959095526060850193909352608084019190915260a0830152151560c090910152919050565b5f8060408385031215613a01575f80fd5b50508035926020909101359150565b5f805f60608486031215613a22575f80fd5b505081359360208301359350604090920135919050565b5f82601f830112613a48575f80fd5b813567ffffffffffffffff811115613a6257613a6261386b565b613a75601f8201601f191660200161387f565b818152846020838601011115613a89575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f60e0888a031215613abb575f80fd5b87359650602088013567ffffffffffffffff811115613ad8575f80fd5b613ae48a828b01613a39565b979a9799505050506040860135956060810135956080820135955060a0820135945060c09091013592509050565b5f6101008a8352806020840152613b2b8184018b613968565b604084019990995250506060810195909552608085019390935260a084019190915260c0830152151560e09091015292915050565b5f8060408385031215613b71575f80fd5b8235613b7c81613835565b91506020830135613b8c81613835565b809150509250929050565b8015158114611143575f80fd5b5f60208284031215613bb4575f80fd5b813561386481613b97565b805f5b600a8110156135f9578151845260209384019390910190600101613bc2565b6102a08101613bf08286613bbf565b613bfe610140830185613bbf565b82610280830152949350505050565b5f8060408385031215613c1e575f80fd5b823591506020830135613b8c81613b97565b5f805f805f8060c08789031215613c45575f80fd5b863567ffffffffffffffff811115613c5b575f80fd5b613c6789828a01613a39565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b5f8060408385031215613ca1575f80fd5b8235613cac81613835565b946020939093013593505050565b60208082526021908201527f43616e6e6f74207365742077616c6c657420746f207a65726f206164647265736040820152607360f81b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b60208082526021908201527f43616e6e6f7420626c61636b6c69737420746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526028908201527f436f6e7472616374206f7065726174696f6e73206172652063757272656e746c6040820152671e481c185d5cd95960c21b606082015260800190565b60208082526026908201527f416374696f6e20726573747269637465643a205573657220697320626c61636b6040820152651b1a5cdd195960d21b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115613e0557613e05613dde565b92915050565b81810381811115613e0557613e05613dde565b8082028115828204841417613e0557613e05613dde565b5f82613e4f57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215613e64575f80fd5b815161386481613b97565b602080825260169082015275141b185b88125108191bd95cc81b9bdd08195e1a5cdd60521b604082015260600190565b600181811c90821680613eb357607f821691505b602082108103613ed157634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215613ee7575f80fd5b5051919050565b6020808252602b908201527f4d696e20616c6c6f636174696f6e2063616e6e6f7420657863656564206d617860408201526a1030b63637b1b0ba34b7b760a91b606082015260800190565b601f821115613f8057805f5260205f20601f840160051c81016020851015613f5e5750805b601f840160051c820191505b81811015613f7d575f8155600101613f6a565b50505b505050565b815167ffffffffffffffff811115613f9f57613f9f61386b565b613fb381613fad8454613e9f565b84613f39565b602080601f831160018114613fe6575f8415613fcf5750858301515b5f19600386901b1c1916600185901b178555611d78565b5f85815260208120601f198616915b8281101561401457888601518255948401946001909101908401613ff5565b508582101561403157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b87815260e060208201525f61405960e0830189613968565b6040830197909752506060810194909452608084019290925260a083015260c0909101529291505056fea264697066735822122089ec25adfcf0a4c9c9aa7d13679585ee2d30ed5e70836dca0be1e94b231f7f8c64736f6c6343000818003300000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000005ee7553117b2c415390292b81ed93ce3ab0ad664000000000000000000000000651f5e046ad7b7ef67f6e1df64f4123e9c7dcb7f0000000000000000000000003f6da5b7a2c1540699e2bd896c97f87ef7d061de00000000000000000000000046317b85b2b205bb0802daeddcc4d3bef4dcb43d000000000000000000000000000000000000000000000000000000006820154f00000000000000000000000000000000000000000000000000000000683a734f