636 txs
1.2k calls
constructor
constructor(address _owner, address _stakingToken, address _zapContract)
functions
balanceOf
viewfunction balanceOf(address _account) view returns (uint256)
balanceOfUnderlying
viewfunction balanceOfUnderlying(address _account) view returns (uint256)
earned
viewfunction earned(address _account, address _rewardsToken) view returns (uint256 pending)
earnedMulti
viewfunction earnedMulti(address _account) view returns (uint256[] pending)
getRewardForDuration
viewfunction getRewardForDuration(address _rewardsToken) view returns (uint256)
isOriginal
viewfunction isOriginal() view returns (bool)
isRetired
viewfunction isRetired() view returns (bool)
lastTimeRewardApplicable
viewfunction lastTimeRewardApplicable(address _rewardsToken) view returns (uint256)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
rewardData
viewfunction rewardData(address) view returns (address rewardsDistributor, uint256 rewardsDuration, uint256 periodFinish, uint256 rewardRate, uint256 lastUpdateTime, uint256 rewardPerTokenStored)
rewardPerToken
viewfunction rewardPerToken(address _rewardsToken) view returns (uint256 rewardAmount)
rewards
viewfunction rewards(address, address) view returns (uint256)
rewardTokens
viewfunction rewardTokens(uint256) view returns (address)
rewardTokensLength
viewfunction rewardTokensLength() view returns (uint256)
stakerVersion
viewfunction stakerVersion() view returns (string)
stakingToken
viewfunction stakingToken() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
userRewardPerTokenPaid
viewfunction userRewardPerTokenPaid(address, address) view returns (uint256)
zapContract
viewfunction zapContract() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
addReward
nonpayablefunction addReward(address _rewardsToken, address _rewardsDistributor, uint256 _rewardsDuration)
cloneStakingPool
nonpayablefunction cloneStakingPool(address _owner, address _stakingToken, address _zapContract) returns (address newStakingPool)
exit
nonpayablefunction exit()
getOneReward
nonpayablefunction getOneReward(address _rewardsToken)
getReward
nonpayablefunction getReward()
initialize
nonpayablefunction initialize(address _owner, address _stakingToken, address _zapContract)
notifyRewardAmount
nonpayablefunction notifyRewardAmount(address _rewardsToken, uint256 _rewardAmount)
recoverERC20
nonpayablefunction recoverERC20(address _tokenAddress, uint256 _tokenAmount)
renounceOwnership
nonpayablefunction renounceOwnership()
setRewardsDistributor
nonpayablefunction setRewardsDistributor(address _rewardsToken, address _rewardsDistributor)
setRewardsDuration
nonpayablefunction setRewardsDuration(address _rewardsToken, uint256 _rewardsDuration)
stake
nonpayablefunction stake(uint256 _amount)
stakeFor
nonpayablefunction stakeFor(address _recipient, uint256 _amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(uint256 _amount)
withdrawFor
nonpayablefunction withdrawFor(address _recipient, uint256 _amount, bool _exit)
events
Cloned
event Cloned(address indexed clone)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Recovered
event Recovered(address token, uint256 amount)
RewardAdded
event RewardAdded(address indexed rewardToken, uint256 amount)
RewardPaid
event RewardPaid(address indexed user, address indexed rewardToken, uint256 reward)
RewardsDurationUpdated
event RewardsDurationUpdated(address token, uint256 newDuration)
Staked
event Staked(address indexed user, uint256 amount)
StakedFor
event StakedFor(address indexed user, uint256 amount)
Withdrawn
event Withdrawn(address indexed user, uint256 amount)
WithdrawnFor
event WithdrawnFor(address indexed user, uint256 amount)
ZapContractUpdated
event ZapContractUpdated(address _zapContract)
errors
No errors.
creation bytecode
0x60806040526002805460ff60a81b1916600160a81b17905534801562000023575f80fd5b5060405162002a5b38038062002a5b833981016040819052620000469162000194565b60015f5562000055336200006b565b6200006283838362000089565b505050620001db565b600280546001600160a01b0319169055620000868162000127565b50565b6003546001600160a01b031615620000e75760405162461bcd60e51b815260206004820152601360248201527f616c726561647920696e697469616c697a656400000000000000000000000000604482015260640160405180910390fd5b600380546001600160a01b038085166001600160a01b031992831617909255600580549284169290911691909117905562000122836200006b565b505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b80516001600160a01b03811681146200018f575f80fd5b919050565b5f805f60608486031215620001a7575f80fd5b620001b28462000178565b9250620001c26020850162000178565b9150620001d26040850162000178565b90509250925092565b61287280620001e95f395ff3fe608060405234801561000f575f80fd5b506004361061021e575f3560e01c8063715018a61161012a578063bcd11014116100b4578063e70b9e2711610079578063e70b9e2714610540578063e9fad8ee1461056a578063f122977714610572578063f2fde38b14610585578063ff342e0914610598575f80fd5b8063bcd11014146104ee578063bf199e6214610501578063c0c53b8b14610509578063d0ed26ae1461051c578063e30c39781461052f575f80fd5b80637bb7bed1116100fa5780637bb7bed1146104915780638980f11f146104a45780638da5cb5b146104b7578063a694fc3a146104c8578063b66503cf146104db575f80fd5b8063715018a61461045b57806372f702f314610463578063754a0fdc1461047657806379ba509714610489575f80fd5b80633d18b912116101ab5780634ef523051161017b5780634ef52305146103cf578063638634ee146103e25780636f392ce7146103f55780637035ab981461040957806370a0823114610433575f80fd5b80633d18b9121461030d5780633f695b451461031557806348e5d9f81461032857806349343cee146103ab575f80fd5b80632378bea6116101f15780632378bea6146102965780632549dad9146102a95780632e1a7d4d146102d45780632ee40908146102e75780633af9e669146102fa575f80fd5b80630638ca2a146102225780630e19c6991461025c57806318160ddd14610271578063211dc32d14610283575b5f80fd5b610246604051806040016040528060058152602001640312e312e360dc1b81525081565b604051610253919061252b565b60405180910390f35b61026f61026a366004612585565b6105b8565b005b6009545b604051908152602001610253565b6102756102913660046125c2565b6107b6565b61026f6102a43660046125f3565b61086a565b6005546102bc906001600160a01b031681565b6040516001600160a01b039091168152602001610253565b61026f6102e236600461261b565b6109ab565b61026f6102f53660046125f3565b610b69565b610275610308366004612632565b610d6e565b61026f610e79565b61026f6103233660046125c2565b610f80565b610374610336366004612632565b60066020525f90815260409020805460018201546002830154600384015460048501546005909501546001600160a01b039094169492939192909186565b604080516001600160a01b0390971687526020870195909552938501929092526060840152608083015260a082015260c001610253565b6002546103bf90600160a01b900460ff1681565b6040519015158152602001610253565b61026f6103dd366004612632565b611013565b6102756103f0366004612632565b6111aa565b6002546103bf90600160a81b900460ff1681565b6102756104173660046125c2565b600760209081525f928352604080842090915290825290205481565b610275610441366004612632565b6001600160a01b03165f908152600a602052604090205490565b61026f6111d6565b6003546102bc906001600160a01b031681565b6102bc61048436600461264b565b6111e7565b61026f611316565b6102bc61049f36600461261b565b61138d565b61026f6104b23660046125f3565b6113b5565b6001546001600160a01b03166102bc565b61026f6104d636600461261b565b611641565b61026f6104e93660046125f3565b61181e565b6102756104fc366004612632565b611ba2565b600454610275565b61026f61051736600461264b565b611bce565b61026f61052a36600461268b565b611bd9565b6002546001600160a01b03166102bc565b61027561054e3660046125c2565b600860209081525f928352604080842090915290825290205481565b61026f611d2a565b610275610580366004612632565b611d4b565b61026f610593366004612632565b611e12565b6105ab6105a6366004612632565b611e83565b60405161025391906126c4565b6105c0611f84565b825f5b6004548110156106a9575f600482815481106105e1576105e1612707565b5f918252602090912001546001600160a01b0316905061060081611d4b565b6001600160a01b0382165f90815260066020526040902060050155610624816111aa565b6001600160a01b038083165f908152600660205260409020600401919091558316156106a05761065483826107b6565b6001600160a01b038085165f8181526008602090815260408083209487168084529482528083209590955560068152848220600501549282526007815284822093825292909252919020555b506001016105c3565b506005546001600160a01b031633146106dd5760405162461bcd60e51b81526004016106d49061271b565b60405180910390fd5b5f83116106fc5760405162461bcd60e51b81526004016106d490612740565b8260095f82825461070d9190612778565b90915550506001600160a01b0384165f908152600a602052604081208054859290610739908490612778565b9091555050600354610755906001600160a01b03163385611fdb565b836001600160a01b03167f04de67fe258683d541c77f7275134560914ac5eb0fe853df87c0946439c2e7068460405161079091815260200190565b60405180910390a281156107a7576107a78461203e565b506107b160015f55565b505050565b6002545f90600160a01b900460ff16156107d157505f610864565b6001600160a01b038084165f81815260086020908152604080832094871680845294825280832054938352600782528083209483529390529190912054670de0b6b3a76400009061082185611d4b565b61082b9190612778565b6001600160a01b0386165f908152600a602052604090205461084d919061278b565b61085791906127a2565b61086191906127c1565b90505b92915050565b6001600160a01b038083165f90815260066020908152604091829020825160c08101845281549094168452600181015491840191909152600281015491830182905260038101546060840152600481015460808401526005015460a083015242116109085760405162461bcd60e51b815260206004820152600e60248201526d526577617264732061637469766560901b60448201526064016106d4565b80516001600160a01b031633146109315760405162461bcd60e51b81526004016106d49061271b565b5f82116109505760405162461bcd60e51b81526004016106d490612740565b6001600160a01b0383165f81815260066020908152604091829020600101859055815192835282018490527fad2f86b01ed93b4b3a150d448c61a4f5d8d38075d3c0c64cc0a26fd6e1f49545910160405180910390a1505050565b6109b3611f84565b335f5b600454811015610a9c575f600482815481106109d4576109d4612707565b5f918252602090912001546001600160a01b031690506109f381611d4b565b6001600160a01b0382165f90815260066020526040902060050155610a17816111aa565b6001600160a01b038083165f90815260066020526040902060040191909155831615610a9357610a4783826107b6565b6001600160a01b038085165f8181526008602090815260408083209487168084529482528083209590955560068152848220600501549282526007815284822093825292909252919020555b506001016109b6565b505f8211610abc5760405162461bcd60e51b81526004016106d490612740565b5f198203610ad657335f908152600a602052604090205491505b8160095f828254610ae79190612778565b9091555050335f908152600a602052604081208054849290610b0a908490612778565b9091555050600354610b26906001600160a01b03163384611fdb565b60405182815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5906020015b60405180910390a250610b6660015f55565b50565b610b71611f84565b815f5b600454811015610c5a575f60048281548110610b9257610b92612707565b5f918252602090912001546001600160a01b03169050610bb181611d4b565b6001600160a01b0382165f90815260066020526040902060050155610bd5816111aa565b6001600160a01b038083165f90815260066020526040902060040191909155831615610c5157610c0583826107b6565b6001600160a01b038085165f8181526008602090815260408083209487168084529482528083209590955560068152848220600501549282526007815284822093825292909252919020555b50600101610b74565b505f8211610c7a5760405162461bcd60e51b81526004016106d490612740565b600254600160a01b900460ff1615610cc35760405162461bcd60e51b815260206004820152600c60248201526b141bdbdb081c995d1a5c995960a21b60448201526064016106d4565b8160095f828254610cd491906127c1565b90915550506001600160a01b0383165f908152600a602052604081208054849290610d009084906127c1565b9091555050600354610d1d906001600160a01b0316333085612122565b826001600160a01b03167fd185ae938da574e9cd1073962e1972c75ec585ab222b200a88c0abe2bf0cfe6783604051610d5891815260200190565b60405180910390a250610d6a60015f55565b5050565b600354604080516318160ddd60e01b815290515f926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610db5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd991906127d4565b60035f9054906101000a90046001600160a01b03166001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e29573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e4d91906127d4565b6001600160a01b0384165f908152600a6020526040902054610e6f919061278b565b61086491906127a2565b610e81611f84565b335f5b600454811015610f6a575f60048281548110610ea257610ea2612707565b5f918252602090912001546001600160a01b03169050610ec181611d4b565b6001600160a01b0382165f90815260066020526040902060050155610ee5816111aa565b6001600160a01b038083165f90815260066020526040902060040191909155831615610f6157610f1583826107b6565b6001600160a01b038085165f8181526008602090815260408083209487168084529482528083209590955560068152848220600501549282526007815284822093825292909252919020555b50600101610e84565b50610f743361203e565b50610f7e60015f55565b565b610f88612160565b6001600160a01b03821615801590610fa857506001600160a01b03811615155b610fe65760405162461bcd60e51b815260206004820152600f60248201526e4e6f207a65726f206164647265737360881b60448201526064016106d4565b6001600160a01b039182165f90815260066020526040902080546001600160a01b03191691909216179055565b61101b611f84565b335f5b600454811015611104575f6004828154811061103c5761103c612707565b5f918252602090912001546001600160a01b0316905061105b81611d4b565b6001600160a01b0382165f9081526006602052604090206005015561107f816111aa565b6001600160a01b038083165f908152600660205260409020600401919091558316156110fb576110af83826107b6565b6001600160a01b038085165f8181526008602090815260408083209487168084529482528083209590955560068152848220600501549282526007815284822093825292909252919020555b5060010161101e565b50335f9081526008602090815260408083206001600160a01b0386168452909152902054801561119f57335f8181526008602090815260408083206001600160a01b038816808552925282209190915561115e9183611fdb565b6040518181526001600160a01b0384169033907f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e9060200160405180910390a35b5050610b6660015f55565b6001600160a01b0381165f90815260066020526040812060020154610864904290808218908211021890565b6111de612160565b610f7e5f6121ba565b6002545f90600160a81b900460ff1661122a5760405162461bcd60e51b8152602060048201526005602482015264636c6f6e6560d81b60448201526064016106d4565b604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81523060601b601482018190526e5af43d82803e903d91602b57fd5bf360881b6028830152906037815ff060405163c0c53b8b60e01b81526001600160a01b03888116600483015287811660248301528681166044830152919450908416915063c0c53b8b906064015f604051808303815f87803b1580156112c5575f80fd5b505af11580156112d7573d5f803e3d5ffd5b50506040516001600160a01b03851692507f783540fb4221a3238720dc7038937d0d79982bcf895274aa6ad179f82cf0d53c91505f90a2509392505050565b60025433906001600160a01b031681146113845760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016106d4565b610b66816121ba565b6004818154811061139c575f80fd5b5f918252602090912001546001600160a01b0316905081565b6113bd612160565b6003546001600160a01b039081169083160361140c5760405162461bcd60e51b815260206004820152600e60248201526d10b9ba30b5b4b733903a37b5b2b760911b60448201526064016106d4565b5f80600480548060200260200160405190810160405280929190818152602001828054801561146257602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611444575b505050505090505f805b8251811015611504575f60065f85848151811061148b5761148b612707565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20600201549050828111156114c4578092505b866001600160a01b03168483815181106114e0576114e0612707565b60200260200101516001600160a01b0316036114fb57600194505b5060010161146c565b5082156115d257611518816276a7006127c1565b42116115565760405162461bcd60e51b815260206004820152600d60248201526c77616974203e3930206461797360981b60448201526064016106d4565b6040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa158015611598573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115bc91906127d4565b6002805460ff60a01b1916600160a01b17905593505b6115f86115e76001546001600160a01b031690565b6001600160a01b0387169086611fdb565b604080516001600160a01b0387168152602081018690527f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28910160405180910390a15050505050565b611649611f84565b335f5b600454811015611732575f6004828154811061166a5761166a612707565b5f918252602090912001546001600160a01b0316905061168981611d4b565b6001600160a01b0382165f908152600660205260409020600501556116ad816111aa565b6001600160a01b038083165f90815260066020526040902060040191909155831615611729576116dd83826107b6565b6001600160a01b038085165f8181526008602090815260408083209487168084529482528083209590955560068152848220600501549282526007815284822093825292909252919020555b5060010161164c565b505f82116117525760405162461bcd60e51b81526004016106d490612740565b600254600160a01b900460ff161561179b5760405162461bcd60e51b815260206004820152600c60248201526b141bdbdb081c995d1a5c995960a21b60448201526064016106d4565b8160095f8282546117ac91906127c1565b9091555050335f908152600a6020526040812080548492906117cf9084906127c1565b90915550506003546117ec906001600160a01b0316333085612122565b60405182815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d90602001610b54565b5f805b600454811015611907575f6004828154811061183f5761183f612707565b5f918252602090912001546001600160a01b0316905061185e81611d4b565b6001600160a01b0382165f90815260066020526040902060050155611882816111aa565b6001600160a01b038083165f908152600660205260409020600401919091558316156118fe576118b283826107b6565b6001600160a01b038085165f8181526008602090815260408083209487168084529482528083209590955560068152848220600501549282526007815284822093825292909252919020555b50600101611821565b506001600160a01b038084165f90815260066020908152604091829020825160c0810184528154909416808552600182015492850192909252600281015492840192909252600382015460608401526004820154608084015260059091015460a083015233146119895760405162461bcd60e51b81526004016106d49061271b565b5f83116119a85760405162461bcd60e51b81526004016106d490612740565b6119bd6001600160a01b038516333086612122565b5f816040015142106119df5760208201516119d890856127a2565b9050611a1a565b816020015182606001514284604001516119f99190612778565b611a03919061278b565b611a0d90866127c1565b611a1791906127a2565b90505b60208201516040516370a0823160e01b81523060048201526001600160a01b038716906370a0823190602401602060405180830381865afa158015611a61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8591906127d4565b611a8f91906127a2565b811115611ade5760405162461bcd60e51b815260206004820152601860248201527f50726f76696465642072657761726420746f6f2068696768000000000000000060448201526064016106d4565b6060820181905242608083018190526020830151611afb916127c1565b60408084019182526001600160a01b038088165f81815260066020908152908490208751815494166001600160a01b0319909416939093178355860151600183015592516002820155606085015160038201556080850151600482015560a0850151600590910155517fac24935fd910bc682b5ccb1a07b718cadf8cf2f6d1404c4f3ddc3662dae40e2990611b939087815260200190565b60405180910390a25050505050565b6001600160a01b0381165f9081526006602052604081206001810154600390910154610864919061278b565b6107b18383836121d3565b611be1612160565b6001600160a01b03831615801590611c0157506001600160a01b03821615155b611c3f5760405162461bcd60e51b815260206004820152600f60248201526e4e6f207a65726f206164647265737360881b60448201526064016106d4565b5f8111611c5e5760405162461bcd60e51b81526004016106d490612740565b6001600160a01b0383165f9081526006602052604090206001015415611cbd5760405162461bcd60e51b815260206004820152601460248201527314995dd85c9908185b1c9958591e48185919195960621b60448201526064016106d4565b6004805460018181019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b039586166001600160a01b031991821681179092555f918252600660205260409091208054949095169316929092178355910155565b335f908152600a6020526040902054611d42906109ab565b610f7e3361203e565b5f6009545f03611d7357506001600160a01b03165f9081526006602052604090206005015490565b600254600160a01b900460ff1615611d8c57505f919050565b6009546001600160a01b0383165f9081526006602052604090206003810154600490910154670de0b6b3a76400009190611dc5866111aa565b611dcf9190612778565b611dd9919061278b565b611de3919061278b565b611ded91906127a2565b6001600160a01b0383165f9081526006602052604090206005015461086491906127c1565b611e1a612160565b600280546001600160a01b0383166001600160a01b03199091168117909155611e4b6001546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60605f6004805480602002602001604051908101604052809291908181526020018280548015611eda57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611ebc575b50508351939450839250505067ffffffffffffffff811115611efe57611efe6127eb565b604051908082528060200260200182016040528015611f27578160200160208202803683370190505b5092505f5b81811015611f7c57611f5785848381518110611f4a57611f4a612707565b60200260200101516107b6565b848281518110611f6957611f69612707565b6020908102919091010152600101611f2c565b505050919050565b60025f5403611fd55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106d4565b60025f55565b6040516001600160a01b0383166024820152604481018290526107b190849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261225b565b5f5b600454811015610d6a575f6004828154811061205e5761205e612707565b5f9182526020808320909101546001600160a01b038681168452600883526040808520919092168085529252909120549091508015612118576001600160a01b038085165f908152600860209081526040808320938616808452939091528120556120ca908583611fdb565b816001600160a01b0316846001600160a01b03167f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e8360405161210f91815260200190565b60405180910390a35b5050600101612040565b6040516001600160a01b038085166024830152831660448201526064810182905261215a9085906323b872dd60e01b90608401612007565b50505050565b6001546001600160a01b03163314610f7e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d4565b600280546001600160a01b0319169055610b668161232e565b6003546001600160a01b0316156122225760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016106d4565b600380546001600160a01b038085166001600160a01b03199283161790925560058054928416929091169190911790556107b1836121ba565b5f6122af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661237f9092919063ffffffff16565b905080515f14806122cf5750808060200190518101906122cf91906127ff565b6107b15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106d4565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606061238d84845f85612395565b949350505050565b6060824710156123f65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106d4565b5f80866001600160a01b031685876040516124119190612821565b5f6040518083038185875af1925050503d805f811461244b576040519150601f19603f3d011682016040523d82523d5f602084013e612450565b606091505b50915091506124618783838761246c565b979650505050505050565b606083156124da5782515f036124d3576001600160a01b0385163b6124d35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106d4565b508161238d565b61238d83838151156124ef5781518083602001fd5b8060405162461bcd60e51b81526004016106d4919061252b565b5f5b8381101561252357818101518382015260200161250b565b50505f910152565b602081525f8251806020840152612549816040850160208701612509565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612573575f80fd5b919050565b8015158114610b66575f80fd5b5f805f60608486031215612597575f80fd5b6125a08461255d565b92506020840135915060408401356125b781612578565b809150509250925092565b5f80604083850312156125d3575f80fd5b6125dc8361255d565b91506125ea6020840161255d565b90509250929050565b5f8060408385031215612604575f80fd5b61260d8361255d565b946020939093013593505050565b5f6020828403121561262b575f80fd5b5035919050565b5f60208284031215612642575f80fd5b6108618261255d565b5f805f6060848603121561265d575f80fd5b6126668461255d565b92506126746020850161255d565b91506126826040850161255d565b90509250925092565b5f805f6060848603121561269d575f80fd5b6126a68461255d565b92506126b46020850161255d565b9150604084013590509250925092565b602080825282518282018190525f9190848201906040850190845b818110156126fb578351835292840192918401916001016126df565b50909695505050505050565b634e487b7160e01b5f52603260045260245ffd5b6020808252600b908201526a08585d5d1a1bdc9a5e995960aa1b604082015260600190565b6020808252600a908201526904d757374206265203e360b41b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561086457610864612764565b808202811582820484141761086457610864612764565b5f826127bc57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561086457610864612764565b5f602082840312156127e4575f80fd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b5f6020828403121561280f575f80fd5b815161281a81612578565b9392505050565b5f8251612832818460208701612509565b919091019291505056fea2646970667358221220ae6f8a60223fb8e5eaa243f645c4cef41f153b2e2420e078787bbf41ce5fb7fa64736f6c63430008170033000000000000000000000000b1dd2fdb023cb54b7cc2a0f5d9e8d47a9f7723ce00000000000000000000000022c93c3cf38d6396041ec3ba7dd2d97fb2061e3f000000000000000000000000b6e64e19d043ca22691a28e4558c541b659af9e0