0 txs
0 calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address _user) view returns (uint256)
cakepie
viewfunction cakepie() view returns (address)
coolDownInSecs
viewfunction coolDownInSecs() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
DENOMINATOR
viewfunction DENOMINATOR() view returns (uint256)
expectedPenaltyAmount
viewfunction expectedPenaltyAmount(uint256 _slotIndex) view returns (uint256 penaltyAmount, uint256 amountToUser)
expectedPenaltyAmountByAccount
viewfunction expectedPenaltyAmountByAccount(address account, uint256 _slotIndex) view returns (uint256 penaltyAmount, uint256 amountToUser)
getFullyUnlock
viewfunction getFullyUnlock(address _user) view returns (uint256 unlockedAmount)
getNextAvailableUnlockSlot
viewfunction getNextAvailableUnlockSlot(address _user) view returns (uint256)
getRewardablePercentWAD
viewfunction getRewardablePercentWAD(address _user) view returns (uint256 percent)
getUserAmountInCoolDown
viewfunction getUserAmountInCoolDown(address _user) view returns (uint256)
getUserNthUnlockSlot
viewfunction getUserNthUnlockSlot(address _user, uint256 n) view returns (uint256 startTime, uint256 endTime, uint256 amountInCoolDown)
getUserTotalLocked
viewfunction getUserTotalLocked(address _user) view returns (uint256 _lockAmount)
getUserUnlockingSchedule
viewfunction getUserUnlockingSchedule(address _user) view returns (tuple[] slots)
getUserUnlockSlotLength
viewfunction getUserUnlockSlotLength(address _user) view returns (uint256)
masterCakepie
viewfunction masterCakepie() view returns (address)
maxSlot
viewfunction maxSlot() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
pancakeVoteManager
viewfunction pancakeVoteManager() view returns (address)
paused
viewfunction paused() view returns (bool)
penaltyDestination
viewfunction penaltyDestination() view returns (address)
symbol
viewfunction symbol() view returns (string)
totalAmountInCoolDown
viewfunction totalAmountInCoolDown() view returns (uint256)
totalLocked
viewfunction totalLocked() view returns (uint256)
totalPenalty
viewfunction totalPenalty() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
userUnlockings
viewfunction userUnlockings(address, uint256) view returns (uint256 startTime, uint256 endTime, uint256 amountInCoolDown)
__vlCakepie_init_
nonpayablefunction __vlCakepie_init_(address _masterCakepie, uint256 _maxSlots, address _cakepie, uint256 _coolDownInSecs)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
cancelUnlock
nonpayablefunction cancelUnlock(uint256 _slotIndex)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
forceUnLock
nonpayablefunction forceUnLock(uint256 _slotIndex)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
lock
nonpayablefunction lock(uint256 _amount)
lockFor
nonpayablefunction lockFor(uint256 _amount, address _for)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
setCoolDownInSecs
nonpayablefunction setCoolDownInSecs(uint256 _coolDownSecs)
setMasterCakepie
nonpayablefunction setMasterCakepie(address _masterCakepie)
setMaxSlots
nonpayablefunction setMaxSlots(uint256 _maxSlots)
setPancakeVoteManager
nonpayablefunction setPancakeVoteManager(address _pancakeVoteManager)
setPenaltyDestination
nonpayablefunction setPenaltyDestination(address _penaltyDestination)
startUnlock
nonpayablefunction startUnlock(uint256 _amountToCoolDown)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferPenalty
nonpayablefunction transferPenalty()
unlock
nonpayablefunction unlock(uint256 _slotIndex)
unpause
nonpayablefunction unpause()
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
CoolDownInSecsUpdated
event CoolDownInSecsUpdated(uint256 _coolDownSecs)
ForceUnLock
event ForceUnLock(address indexed user, uint256 slotIdx, uint256 cakepieamount, uint256 penaltyAmount)
Initialized
event Initialized(uint8 version)
MaxSlotUpdated
event MaxSlotUpdated(uint256 _maxSlot)
NewLock
event NewLock(address indexed user, uint256 indexed timestamp, uint256 amount)
NewMasterCakepieUpdated
event NewMasterCakepieUpdated(address _oldMaster, address _newMaster)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PancakeVoteManagerSet
event PancakeVoteManagerSet(address indexed _pancakeVoteManager)
Paused
event Paused(address account)
PenaltyDestinationUpdated
event PenaltyDestinationUpdated(address penaltyDestination)
PenaltySentTo
event PenaltySentTo(address penaltyDestination, uint256 amount)
ReLock
event ReLock(address indexed user, uint256 slotIdx, uint256 amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unlock
event Unlock(address indexed user, uint256 indexed timestamp, uint256 amount)
UnlockStarts
event UnlockStarts(address indexed _user, uint256 indexed _timestamp, uint256 _amount)
Unpaused
event Unpaused(address account)
WhitelistSet
event WhitelistSet(address _for, bool _status)
errors
AllUnlockSlotOccupied
error AllUnlockSlotOccupied()
AlreadyMigrated
error AlreadyMigrated()
BeyondUnlockLength
error BeyondUnlockLength()
BeyondUnlockSlotLimit
error BeyondUnlockSlotLimit()
InvalidAddress
error InvalidAddress()
InvalidCoolDownPeriod
error InvalidCoolDownPeriod()
InvalidRewardablePercent
error InvalidRewardablePercent()
MaxSlotCantLowered
error MaxSlotCantLowered()
MaxSlotShouldNotZero
error MaxSlotShouldNotZero()
NotEnoughLockedCakepie
error NotEnoughLockedCakepie()
NotInCoolDown
error NotInCoolDown()
PenaltyToNotSet
error PenaltyToNotSet()
StillInCoolDown
error StillInCoolDown()
TransferNotAllowed
error TransferNotAllowed()
UnlockedAlready
error UnlockedAlready()
UnlockSlotOccupied
error UnlockSlotOccupied()
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612f6280620000f46000396000f3fe608060405234801561001057600080fd5b50600436106102f15760003560e01c806381cee15f1161019d578063a7ccea59116100e9578063ce002775116100a2578063dd62ed3e1161007c578063dd62ed3e1461066f578063e6af61c814610682578063f2fde38b1461068c578063f9fa1b391461069f57600080fd5b8063ce00277514610636578063d037443e14610649578063dd4670641461065c57600080fd5b8063a7ccea59146105cd578063a80b54ad146105e1578063a9059cbb146105f4578063b4c341e514610607578063ba8060321461061a578063c8691afe1461062d57600080fd5b80638e911ba2116101565780639b620c18116101305780639b620c181461058b5780639f9996da1461059e578063a457c2d7146105b1578063a506dc38146105c457600080fd5b80638e911ba214610567578063918f86741461057a57806395d89b411461058357600080fd5b806381cee15f146104ce5780638456cb59146104fa578063873123091461050257806387994e28146105305780638c9d7b68146105435780638da5cb5b1461055657600080fd5b8063468fa7ee1161025c5780636198e3391161021557806371761954116101ef578063717619541461048257806374841a7b1461049557806379c94062146104a8578063819bfd9e146104bb57600080fd5b80636198e3391461045457806370a0823114610467578063715018a61461047a57600080fd5b8063468fa7ee1461040a5780634778553d1461041d5780634a435f4914610430578063564a5e751461043857806356891412146104415780635c975abb1461044957600080fd5b806325f62b2a116102ae57806325f62b2a14610390578063313ce567146103a5578063376cfef5146103b457806339509351146103dc5780633f4ba83a146103ef5780633f4fb281146103f757600080fd5b806306fdde03146102f6578063095ea7b31461031457806318160ddd1461033757806322221a4d1461034a57806322607c611461036a57806323b872dd1461037d575b600080fd5b6102fe6106b2565b60405161030b91906128e3565b60405180910390f35b610327610322366004612932565b610744565b604051901515815260200161030b565b610104545b60405190815260200161030b565b61035d61035836600461295c565b61075e565b60405161030b9190612977565b61033c61037836600461295c565b610882565b61032761038b3660046129d0565b610916565b6103a361039e366004612a0c565b61093a565b005b6040516012815260200161030b565b6103c76103c2366004612a0c565b610af7565b6040805192835260208301919091520161030b565b6103276103ea366004612932565b610b0d565b6103a3610b2f565b61033c61040536600461295c565b610b41565b61033c61041836600461295c565b610c41565b6103c761042b366004612932565b610e97565b6103a3610fa8565b61033c60fe5481565b61033c61104d565b60975460ff16610327565b6103a3610462366004612a0c565b61106b565b61033c61047536600461295c565b611179565b6103a36111f8565b6103a3610490366004612a25565b61120a565b6103a36104a336600461295c565b6113e5565b6103a36104b6366004612a0c565b61143c565b6103a36104c9366004612a0c565b61149b565b610101546104e2906001600160a01b031681565b6040516001600160a01b03909116815260200161030b565b6103a361156a565b610515610510366004612932565b61157a565b6040805193845260208401929092529082015260600161030b565b6103a361053e366004612a0c565b6115bd565b61033c61055136600461295c565b61161b565b6065546001600160a01b03166104e2565b60fd546104e2906001600160a01b031681565b61033c61271081565b6102fe611637565b6103a361059936600461295c565b611646565b6105156105ac366004612932565b611699565b6103276105bf366004612932565b6116f8565b61033c60ff5481565b610103546104e2906001600160a01b031681565b61033c6105ef36600461295c565b611773565b610327610602366004612932565b611813565b60fb546104e2906001600160a01b031681565b6103a361062836600461295c565b611821565b61033c60fc5481565b61033c61064436600461295c565b6118b1565b6103a3610657366004612a0c565b611927565b6103a361066a366004612a0c565b611a2f565b61033c61067d366004612a69565b611a8b565b61033c6101025481565b6103a361069a36600461295c565b611ab6565b6103a36106ad366004612a9c565b611b2c565b6060603680546106c190612abf565b80601f01602080910402602001604051908101604052809291908181526020018280546106ed90612abf565b801561073a5780601f1061070f5761010080835404028352916020019161073a565b820191906000526020600020905b81548152906001019060200180831161071d57829003601f168201915b5050505050905090565b600033610752818585611bc0565b60019150505b92915050565b6060600061076b8361161b565b90508067ffffffffffffffff81111561078657610786612af9565b6040519080825280602002602001820160405280156107db57816020015b6107c860405180606001604052806000815260200160008152602001600081525090565b8152602001906001900390816107a45790505b50915060005b8181101561087b576001600160a01b03841660009081526101006020526040902080548290811061081457610814612b0f565b9060005260206000209060030201604051806060016040529081600082015481526020016001820154815260200160028201548152505083828151811061085d5761085d612b0f565b6020026020010181905250808061087390612b3b565b9150506107e1565b5050919050565b60fb54604051635750ec5360e01b81523060048201526001600160a01b0383811660248301526000928392911690635750ec53906044016040805180830381865afa1580156108d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f99190612b54565b509050610905836118b1565b61090f9082612b78565b9392505050565b600033610924858285611ce4565b61092f858585611d5e565b506001949350505050565b610942611f14565b61094a611f5a565b61095333610882565b81111561097357604051630ac6fad560e41b815260040160405180910390fd5b61097c33611fb3565b600061098733611773565b90508160ff600082825461099b9190612b8b565b909155506109aa90503361161b565b811015610a3057604051806060016040528042815260200160fe54426109d09190612b8b565b81526020908101849052336000908152610100909152604090208054839081106109fc576109fc612b0f565b9060005260206000209060030201600082015181600001556020820151816001015560408201518160020155905050610ab2565b6101006000336001600160a01b03166001600160a01b03168152602001908152602001600020604051806060016040528042815260200160fe5442610a759190612b8b565b8152602090810185905282546001818101855560009485529382902083516003909202019081559082015192810192909255604001516002909101555b604051828152429033907fc07f3591a13f4e6a3f0ce1c9d4073a81e3c8e3dc18cbde71be6e37b4823c43d89060200160405180910390a350610af4600160c955565b50565b600080610b043384610e97565b91509150915091565b600033610752818585610b208383611a8b565b610b2a9190612b8b565b611bc0565b610b37612097565b610b3f6120f1565b565b600080610b4d8361161b565b905060005b8181101561087b576001600160a01b038416600090815261010060205260408120805483908110610b8557610b85612b0f565b906000526020600020906003020160020154118015610bdf57506001600160a01b038416600090815261010060205260409020805482908110610bca57610bca612b0f565b90600052602060002090600302016001015442115b15610c2f576001600160a01b038416600090815261010060205260409020805482908110610c0f57610c0f612b0f565b90600052602060002090600302016002015483610c2c9190612b8b565b92505b80610c3981612b3b565b915050610b52565b600080610c4d83610882565b90506000610c5a846118b1565b90506000610c688284612b8b565b905080600003610c7d57506000949350505050565b80610c9084670de0b6b3a7640000612b9e565b610c9a9190612bb5565b6001600160a01b0386166000908152610100602052604081209195504291905b8154811015610e63576000828281548110610cd757610cd7612b0f565b9060005260206000209060030201600201541115610e5157818181548110610d0157610d01612b0f565b906000526020600020906003020160010154421115610e0257818181548110610d2c57610d2c612b0f565b90600052602060002090600302016000015483610d499190612b78565b84838381548110610d5c57610d5c612b0f565b906000526020600020906003020160000154848481548110610d8057610d80612b0f565b906000526020600020906003020160010154610d9c9190612b78565b848481548110610dae57610dae612b0f565b906000526020600020906003020160020154670de0b6b3a7640000610dd39190612b9e565b610ddd9190612b9e565b610de79190612bb5565b610df19190612bb5565b610dfb9088612b8b565b9650610e51565b83828281548110610e1557610e15612b0f565b906000526020600020906003020160020154670de0b6b3a7640000610e3a9190612b9e565b610e449190612bb5565b610e4e9088612b8b565b96505b80610e5b81612b3b565b915050610cba565b50670de0b6b3a7640000861115610e8d57604051634821f15760e11b815260040160405180910390fd5b5050505050919050565b6001600160a01b03821660009081526101006020526040812080548291829185908110610ec657610ec6612b0f565b60009182526020822060026003909202019081015490925090610eea600583612bb5565b90506000610ef88284612b78565b600185015490915064e8d4a51000904211610f655764e8d4a51000600286600001548760010154610f299190612b78565b8754610f359042612b78565b610f449064e8d4a51000612b9e565b610f4e9190612bb5565b610f589190612cbb565b610f629190612bb5565b90505b600064e8d4a51000610f778385612b9e565b610f819190612bb5565b9050610f8d8185612b8b565b9650610f998786612b78565b97505050505050509250929050565b610fb0612097565b610101546001600160a01b0316610fda57604051634cb89f3d60e11b815260040160405180910390fd5b610102805460009091556101015460fd54611002916001600160a01b03918216911683612143565b61010154604080516001600160a01b039092168252602082018390527ff62882a4c50156e52922bf390691acb0cef0424976e1ce6fb8755fa2c34eab9391015b60405180910390a150565b600060ff5461105c6101045490565b6110669190612b78565b905090565b611073611f14565b61107b611f5a565b61108533826121ab565b336000908152610100602052604081208054839081106110a7576110a7612b0f565b9060005260206000209060030201905042816001015411156110dc5760405163ba28856560e01b815260040160405180910390fd5b806002015460000361110157604051634204906960e11b815260040160405180910390fd5b61110a33611fb3565b6002810154611118816121f5565b6000600283015560fd54611136906001600160a01b03163383612143565b604051818152429033907ff7870c5b224cbc19873599e46ccfc7103934650509b1af0c3ce90138377c20049060200160405180910390a35050610af4600160c955565b60fb54604051635750ec5360e01b81523060048201526001600160a01b0383811660248301526000928392911690635750ec53906044016040805180830381865afa1580156111cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f09190612b54565b509392505050565b611200612097565b610b3f600061228d565b600054610100900460ff161580801561122a5750600054600160ff909116105b806112445750303b158015611244575060005460ff166001145b6112ac5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156112cf576000805461ff0019166101001790555b6112d76122df565b6112df61230e565b6112e761233d565b61133d60405180604001604052806013815260200172566f7465204c6f636b65642043616b6570696560681b81525060405180604001604052806009815260200168766c43616b6570696560b81b81525061236c565b8360000361135e57604051633585356d60e01b815260040160405180910390fd5b60fc84905560fb80546001600160a01b038088166001600160a01b03199283161790925560fd80549286169290911691909117905560fe82905580156113de576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6113ed612097565b61010180546001600160a01b0319166001600160a01b0383169081179091556040519081527f9db59ef0c27af01d2c275b336b0e8f95fa3b1def6693975bb9e009b44a889db790602001611042565b611444612097565b60fc5481116114665760405163877fccab60e01b815260040160405180910390fd5b60fc8190556040518181527fd47c02f96c4a46c9f2a757a1a8ae44a229f63b9c50b540380d92dea51bb81eaa90602001611042565b6114a3611f14565b6114ab611f5a565b6114b533826121ab565b336000908152610100602052604081208054839081106114d7576114d7612b0f565b906000526020600020906003020190506114f1338361239d565b6114fa33611fb3565b806002015460ff60008282546115109190612b78565b909155505060006002820181905560405133917f176d0e0791987dcc139357460456c1f2b69cbc86efe54327be336cc1a9441ddc9161155791868252602082015260400190565b60405180910390a250610af4600160c955565b611572612097565b610b3f612421565b610100602052816000526040600020818154811061159757600080fd5b600091825260209091206003909102018054600182015460029092015490935090915083565b6115c5612097565b600081116115e65760405163844e73fb60e01b815260040160405180910390fd5b60fe8190556040518181527f383fa804824389da2cf426b0412ba9268441cff39e81a861284fe8acd2ee204890602001611042565b6001600160a01b03166000908152610100602052604090205490565b6060603780546106c190612abf565b61164e612097565b61010380546001600160a01b0319166001600160a01b0383169081179091556040517fb03b8f73f2decd07b6bad9c38e8319ae5a96aadd00219bb91667f130ef50a35e90600090a250565b6001600160a01b038216600090815261010060205260408120805482918291829190869081106116cb576116cb612b0f565b90600052602060002090600302019050806000015493508060010154925080600201549150509250925092565b600033816117068286611a8b565b9050838110156117665760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016112a3565b61092f8286868403611bc0565b60008061177f8361161b565b905060fc548110156117915792915050565b60005b818110156117f9576001600160a01b0384166000908152610100602052604090208054829081106117c7576117c7612b0f565b9060005260206000209060030201600201546000036117e7579392505050565b806117f181612b3b565b915050611794565b50604051630435bc5b60e41b815260040160405180910390fd5b600033610752818585611d5e565b611829612097565b6001600160a01b0381166118505760405163e6c4247b60e01b815260040160405180910390fd5b60fb80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fcd1ab9979de275eecc4b594763b2c80798987665ab652a549cfea6686876a788910160405180910390a15050565b6000806118bd8361161b565b90506000805b828110156111f0576001600160a01b0385166000908152610100602052604090208054829081106118f6576118f6612b0f565b906000526020600020906003020160020154826119139190612b8b565b91508061191f81612b3b565b9150506118c3565b61192f611f14565b611937611f5a565b61194133826121ab565b61194b338261239d565b61195433611fb3565b3360009081526101006020526040812080548390811061197657611976612b0f565b9060005260206000209060030201905060008061199284610af7565b915091506119a383600201546121f5565b60fd546119ba906001600160a01b03163383612143565b8161010260008282546119cd9190612b8b565b909155505060006002840155426001840155604080518581526020810183905290810183905233907f79877461713348f098b74e44ee7f5085e25a32a5971d785177812b1b31fd8ad69060600160405180910390a2505050610af4600160c955565b611a37611f14565b611a3f611f5a565b611a4a33338361245e565b604051818152429033907f7879fe07a34927cf93a00574a8c2e55740a44179eb359ed6850e486df16c52229060200160405180910390a3610af4600160c955565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b611abe612097565b6001600160a01b038116611b235760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016112a3565b610af48161228d565b611b34611f14565b611b3c611f5a565b6001600160a01b038116611b635760405163e6c4247b60e01b815260040160405180910390fd5b611b6e33828461245e565b42816001600160a01b03167f7879fe07a34927cf93a00574a8c2e55740a44179eb359ed6850e486df16c522284604051611baa91815260200190565b60405180910390a3611bbc600160c955565b5050565b6001600160a01b038316611c225760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016112a3565b6001600160a01b038216611c835760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016112a3565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000611cf08484611a8b565b90506000198114611d585781811015611d4b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016112a3565b611d588484848403611bc0565b50505050565b6001600160a01b038316611dc25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016112a3565b6001600160a01b038216611e245760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016112a3565b611e2f8383836124f9565b6001600160a01b03831660009081526033602052604090205481811015611ea75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016112a3565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f079086815260200190565b60405180910390a3611d58565b60975460ff1615610b3f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016112a3565b600260c95403611fac5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016112a3565b600260c955565b6040805160018082528183019092526000916020808301908036833750506040805160018082528183019092529293506000929150602082015b6060815260200190600190039081611fed579050509050308260008151811061201857612018612b0f565b6001600160a01b03928316602091820292909201015260fb546040516338508cc760e11b81529116906370a1198e9061205990859085908890600401612d0e565b600060405180830381600087803b15801561207357600080fd5b505af1158015612087573d6000803e3d6000fd5b50505050505050565b600160c955565b6065546001600160a01b03163314610b3f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016112a3565b6120f9612512565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6040516001600160a01b0383166024820152604481018290526121a690849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261255b565b505050565b60fc5481106121cd57604051632116012b60e11b815260040160405180910390fd5b6121d68261161b565b8110611bbc576040516317aefd4360e31b815260040160405180910390fd5b60fb5460405163126150f560e11b8152600481018390523360248201526001600160a01b03909116906324c2a1ea90604401600060405180830381600087803b15801561224157600080fd5b505af1158015612255573d6000803e3d6000fd5b505050508060ff600082825461226b9190612b78565b925050819055508061010460008282546122859190612b78565b909155505050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166123065760405162461bcd60e51b81526004016112a390612d95565b610b3f61262d565b600054610100900460ff166123355760405162461bcd60e51b81526004016112a390612d95565b610b3f61265d565b600054610100900460ff166123645760405162461bcd60e51b81526004016112a390612d95565b610b3f612690565b600054610100900460ff166123935760405162461bcd60e51b81526004016112a390612d95565b611bbc82826126b7565b6001600160a01b0382166000908152610100602052604081208054839081106123c8576123c8612b0f565b9060005260206000209060030201905080600201546000036123fd57604051634204906960e11b815260040160405180910390fd5b428160010154116121a65760405163708ccf9760e01b815260040160405180910390fd5b612429611f14565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121263390565b60fd54612476906001600160a01b03168430846126f7565b60fb5460405163b2a1541360e01b8152600481018390526001600160a01b0384811660248301529091169063b2a1541390604401600060405180830381600087803b1580156124c457600080fd5b505af11580156124d8573d6000803e3d6000fd5b505050508061010460008282546124ef9190612b8b565b9091555050505050565b604051638cd22d1960e01b815260040160405180910390fd5b60975460ff16610b3f5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016112a3565b60006125b0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661272f9092919063ffffffff16565b8051909150156121a657808060200190518101906125ce9190612de0565b6121a65760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016112a3565b600054610100900460ff166126545760405162461bcd60e51b81526004016112a390612d95565b610b3f3361228d565b600054610100900460ff166126845760405162461bcd60e51b81526004016112a390612d95565b6097805460ff19169055565b600054610100900460ff166120905760405162461bcd60e51b81526004016112a390612d95565b600054610100900460ff166126de5760405162461bcd60e51b81526004016112a390612d95565b60366126ea8382612e50565b5060376121a68282612e50565b6040516001600160a01b0380851660248301528316604482015260648101829052611d589085906323b872dd60e01b9060840161216f565b606061273e8484600085612746565b949350505050565b6060824710156127a75760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016112a3565b600080866001600160a01b031685876040516127c39190612f10565b60006040518083038185875af1925050503d8060008114612800576040519150601f19603f3d011682016040523d82523d6000602084013e612805565b606091505b509150915061281687838387612821565b979650505050505050565b60608315612890578251600003612889576001600160a01b0385163b6128895760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016112a3565b508161273e565b61273e83838151156128a55781518083602001fd5b8060405162461bcd60e51b81526004016112a391906128e3565b60005b838110156128da5781810151838201526020016128c2565b50506000910152565b60208152600082518060208401526129028160408501602087016128bf565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461292d57600080fd5b919050565b6000806040838503121561294557600080fd5b61294e83612916565b946020939093013593505050565b60006020828403121561296e57600080fd5b61090f82612916565b602080825282518282018190526000919060409081850190868401855b828110156129c35781518051855286810151878601528501518585015260609093019290850190600101612994565b5091979650505050505050565b6000806000606084860312156129e557600080fd5b6129ee84612916565b92506129fc60208501612916565b9150604084013590509250925092565b600060208284031215612a1e57600080fd5b5035919050565b60008060008060808587031215612a3b57600080fd5b612a4485612916565b935060208501359250612a5960408601612916565b9396929550929360600135925050565b60008060408385031215612a7c57600080fd5b612a8583612916565b9150612a9360208401612916565b90509250929050565b60008060408385031215612aaf57600080fd5b82359150612a9360208401612916565b600181811c90821680612ad357607f821691505b602082108103612af357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612b4d57612b4d612b25565b5060010190565b60008060408385031215612b6757600080fd5b505080516020909101519092909150565b8181038181111561075857610758612b25565b8082018082111561075857610758612b25565b808202811582820484141761075857610758612b25565b600082612bd257634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115612c12578160001904821115612bf857612bf8612b25565b80851615612c0557918102915b93841c9390800290612bdc565b509250929050565b600082612c2957506001610758565b81612c3657506000610758565b8160018114612c4c5760028114612c5657612c72565b6001915050610758565b60ff841115612c6757612c67612b25565b50506001821b610758565b5060208310610133831016604e8410600b8410161715612c95575081810a610758565b612c9f8383612bd7565b8060001904821115612cb357612cb3612b25565b029392505050565b600061090f60ff841683612c1a565b600081518084526020808501945080840160005b83811015612d035781516001600160a01b031687529582019590820190600101612cde565b509495945050505050565b606081526000612d216060830186612cca565b6020838203818501528186518084528284019150828160051b85010183890160005b83811015612d7157601f19878403018552612d5f838351612cca565b94860194925090850190600101612d43565b50506001600160a01b03979097166040969096019590955250939695505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600060208284031215612df257600080fd5b8151801515811461090f57600080fd5b601f8211156121a657600081815260208120601f850160051c81016020861015612e295750805b601f850160051c820191505b81811015612e4857828155600101612e35565b505050505050565b815167ffffffffffffffff811115612e6a57612e6a612af9565b612e7e81612e788454612abf565b84612e02565b602080601f831160018114612eb35760008415612e9b5750858301515b600019600386901b1c1916600185901b178555612e48565b600085815260208120601f198616915b82811015612ee257888601518255948401946001909101908401612ec3565b5085821015612f005787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251612f228184602087016128bf565b919091019291505056fea26469706673582212205ae079645f5a10bde3441d7a8d5f746610868268a74ee5022a754172426a1fd664736f6c63430008130033