0 txs
1.3k calls
constructor
constructor()
functions
asset
viewfunction asset() view returns (address)
completedEpochCount
viewfunction completedEpochCount() view returns (uint256)
getEpochByIndex
viewfunction getEpochByIndex(uint256 index) view returns (tuple)
getEpochsLength
viewfunction getEpochsLength() view returns (uint256)
getPendingRewards
viewfunction getPendingRewards() view returns (uint256)
lastUpdatedTs
viewfunction lastUpdatedTs() view returns (uint256)
MAX_ACTIVE_EPOCHS
viewfunction MAX_ACTIVE_EPOCHS() view returns (uint256)
owner
viewfunction owner() view returns (address)
stakingVault
viewfunction stakingVault() view returns (address)
unclaimedRewards
viewfunction unclaimedRewards() view returns (uint256)
addNewEpoch
nonpayablefunction addNewEpoch(uint32 startTs, uint32 endTs, uint128 rewardsPerSec)
claim
nonpayablefunction claim() returns (uint256)
initialize
nonpayablefunction initialize(address stakingVault_)
modifyLastEpoch
nonpayablefunction modifyLastEpoch(uint32 newStartTs, uint32 newEndTs, uint128 newRewardsPerSec)
removeLastEpoch
nonpayablefunction removeLastEpoch()
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawUnclaimedRewards
nonpayablefunction withdrawUnclaimedRewards() returns (uint256)
events
EpochAdded
event EpochAdded(uint256 indexed index, uint256 startTs, uint256 endTs, uint256 rewardsPerSec, uint256 totalRewards)
EpochModified
event EpochModified(uint256 indexed index, uint256 startTs, uint256 endTs, uint256 rewardsPerSec, uint256 totalRewards)
EpochRemoved
event EpochRemoved(uint256 indexed index, uint256 startTs, uint256 endTs, uint256 totalRewards)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardsClaimed
event RewardsClaimed(uint256 amount)
errors
ActiveEpochCannotBeModifiedRewardsPerSec
error ActiveEpochCannotBeModifiedRewardsPerSec()
ActiveEpochCannotBeModifiedStartTime
error ActiveEpochCannotBeModifiedStartTime()
ActiveEpochsLimit
error ActiveEpochsLimit()
EndTimeLessThanCurrentTimestamp
error EndTimeLessThanCurrentTimestamp()
EndTimeNotChanged
error EndTimeNotChanged()
EpochEnded
error EpochEnded()
EpochNotFound
error EpochNotFound()
EpochOverlap
error EpochOverlap()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
NotStakingVault
error NotStakingVault()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeCastOverflowedUintToInt
error SafeCastOverflowedUintToInt(uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
StartTimeGreaterThanEndTime
error StartTimeGreaterThanEndTime()
StartTimeLessThanCurrentTimestamp
error StartTimeLessThanCurrentTimestamp()
ZeroAddress
error ZeroAddress()
ZeroAmount
error ZeroAmount()
creation bytecode
0x608060405234801561000f575f5ffd5b5061001e61002360201b60201c565b61019e565b5f61003261012160201b60201c565b9050805f0160089054906101000a900460ff161561007c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8016815f015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff161461011e5767ffffffffffffffff815f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516101159190610185565b60405180910390a15b50565b5f5f61013161013a60201b60201c565b90508091505090565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b5f67ffffffffffffffff82169050919050565b61017f81610163565b82525050565b5f6020820190506101985f830184610176565b92915050565b6125f5806101ab5f395ff3fe608060405234801561000f575f5ffd5b5060043610610114575f3560e01c8063afbeb7b1116100a0578063ce5feeca1161006f578063ce5feeca14610282578063d9621f9e146102a0578063f2fde38b146102be578063f38ab459146102da578063f85f91b4146102f857610114565b8063afbeb7b11461020e578063b8d7e0901461022c578063bb56152414610248578063c4d66de81461026657610114565b80634e71d92d116100e75780634e71d92d146101a2578063715018a6146101c05780637566be46146101ca5780637ea78383146101d45780638da5cb5b146101f057610114565b80631bdc7e2f1461011857806324e7964a1461014857806338d52e0f146101665780634213a4ed14610184575b5f5ffd5b610132600480360381019061012d9190611e7b565b610316565b60405161013f9190611f2e565b60405180910390f35b61015061041c565b60405161015d9190611fc1565b60405180910390f35b61016e610441565b60405161017b9190611ffa565b60405180910390f35b61018c610465565b6040516101999190612022565b60405180910390f35b6101aa61046b565b6040516101b79190612022565b60405180910390f35b6101c8610657565b005b6101d261066a565b005b6101ee60048036038101906101e9919061208f565b6108d1565b005b6101f8610eba565b60405161020591906120ff565b60405180910390f35b610216610eef565b6040516102239190612022565b60405180910390f35b6102466004803603810190610241919061208f565b610ef5565b005b610250611228565b60405161025d9190612022565b60405180910390f35b610280600480360381019061027b9190612142565b6112c9565b005b61028a61160b565b6040516102979190612022565b60405180910390f35b6102a8611617565b6040516102b59190612022565b60405180910390f35b6102d860048036038101906102d39190612142565b6116c8565b005b6102e261174c565b6040516102ef9190612022565b60405180910390f35b610300611751565b60405161030d9190612022565b60405180910390f35b61031e611e08565b600580549050821061035c576040517f86d1007700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600582815481106103705761036f61216d565b5b905f5260205f20016040518060600160405290815f82015f9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020015f820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020015f820160089054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050919050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104f2576040517f19c400a400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f6104fc611757565b9150915080600281905550426003819055505f821461064e575f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610580573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a491906121ae565b14610635576105f433835f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118e19092919063ffffffff16565b7fed6771ea2f01816faa7ccf034b76201581d0b4374e86f83b06a8b4191c6b9f89826040516106239190612022565b60405180910390a18192505050610654565b8160045f8282546106469190612206565b925050819055505b5f925050505b90565b61065f611960565b6106685f6119e7565b565b610672611960565b5f600580549050036106b0576040517f86d1007700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60016005805490506106c39190612239565b90505f600582815481106106da576106d961216d565b5b905f5260205f20016040518060600160405290815f82015f9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020015f820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020015f820160089054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905042815f015163ffffffff1610156107c4576040517f707d7fb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6107fd825f015183602001516107db919061226c565b63ffffffff1683604001516fffffffffffffffffffffffffffffffff16611ab8565b90506005805480610811576108106122a3565b5b600190038181905f5260205f20015f5f82015f6101000a81549063ffffffff02191690555f820160046101000a81549063ffffffff02191690555f820160086101000a8154906fffffffffffffffffffffffffffffffff0219169055505090558060045f8282546108829190612206565b92505081905550827f399fde95a3d2071ebdd9a6db1ded8e733235ed06d2f49c3c1a6b3326913f8fea835f01518460200151846040516108c493929190612300565b60405180910390a2505050565b6108d9611960565b5f60058054905003610917576040517f86d1007700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600160058054905061092a9190612239565b90505f600582815481106109415761094061216d565b5b905f5260205f20016040518060600160405290815f82015f9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020015f820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020015f820160089054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905042815f015163ffffffff161015610b735742816020015163ffffffff1611610a3c576040517fd7d80fae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f015163ffffffff168563ffffffff1614610a84576040517f7d68f88d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80604001516fffffffffffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff1614610ae5576040517fe068eb0000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806020015163ffffffff168463ffffffff1603610b2e576040517fcce4f1f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b428463ffffffff161015610b6e576040517f2431c3a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bb4565b428563ffffffff161015610bb3576040517f707d7fb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b8363ffffffff168563ffffffff1610610bf9576040517f7afb02cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f821480610c4d57506005600183610c119190612239565b81548110610c2257610c2161216d565b5b905f5260205f20015f0160049054906101000a900463ffffffff1663ffffffff168563ffffffff1610155b610c83576040517fde0859ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610cbc825f01518360200151610c9a919061226c565b63ffffffff1683604001516fffffffffffffffffffffffffffffffff16611ab8565b90505f610cec8787610cce919061226c565b63ffffffff16866fffffffffffffffffffffffffffffffff16611ab8565b90505f610cf883611acd565b610d0183611acd565b610d0b919061233e565b905060405180606001604052808963ffffffff1681526020018863ffffffff168152602001876fffffffffffffffffffffffffffffffff1681525060058681548110610d5a57610d5961216d565b5b905f5260205f20015f820151815f015f6101000a81548163ffffffff021916908363ffffffff1602179055506020820151815f0160046101000a81548163ffffffff021916908363ffffffff1602179055506040820151815f0160086101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050505f811315610e4757610e423330835f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b3b909392919063ffffffff16565b610e72565b5f811215610e715780610e599061237e565b60045f828254610e699190612206565b925050819055505b5b847f6eaf80522f5e265ddf570afef686031932a9431e0f393737585c8ec638c2d21289898986604051610ea894939291906123f4565b60405180910390a25050505050505050565b5f5f610ec4611bbd565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60035481565b610efd611960565b8163ffffffff168363ffffffff1610610f42576040517f7afb02cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b428363ffffffff161015610f82576040517f707d7fb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60058054905090505f610f94611757565b91505060148183610fa59190612239565b10610fdc576040517f94a5b9fe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f82148061103057506005600183610ff49190612239565b815481106110055761100461216d565b5b905f5260205f20015f0160049054906101000a900463ffffffff1663ffffffff168563ffffffff1610155b611066576040517fde0859ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180606001604052808763ffffffff1681526020018663ffffffff168152602001856fffffffffffffffffffffffffffffffff168152509050600581908060018154018082558091505060019003905f5260205f20015f909190919091505f820151815f015f6101000a81548163ffffffff021916908363ffffffff1602179055506020820151815f0160046101000a81548163ffffffff021916908363ffffffff1602179055506040820151815f0160086101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505f61117f8787611161919061226c565b63ffffffff16866fffffffffffffffffffffffffffffffff16611ab8565b90505f81146111d6576111d53330835f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b3b909392919063ffffffff16565b5b837f3419ea3aff78ce5b4a5073f09f7918d18a8b6bd25de3b3226f25309c4f13ea74835f0151846020015185604001518560405161121794939291906123f4565b60405180910390a250505050505050565b5f611231611960565b5f60045490505f8103611270576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6004819055506112c233825f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118e19092919063ffffffff16565b8091505090565b5f6112d2611be4565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f5f8267ffffffffffffffff1614801561131a5750825b90505f60018367ffffffffffffffff1614801561134d57505f3073ffffffffffffffffffffffffffffffffffffffff163b145b90508115801561135b575080155b15611392576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156113df576001855f0160086101000a81548160ff0219169083151502179055505b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611444576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8673ffffffffffffffffffffffffffffffffffffffff166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561148e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b2919061244b565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611519576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61152233611bf7565b8660015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600381905550508315611603575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516115fa91906124c2565b60405180910390a15b505050505050565b5f600580549050905090565b5f5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611683573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a791906121ae565b036116b4575f90506116c5565b5f6116bd611757565b509050809150505b90565b6116d0611960565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611740575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161173791906120ff565b60405180910390fd5b611749816119e7565b50565b601481565b60045481565b5f5f5f91505f600354905060025491505f8290505b6005805490508110156118db575f6005828154811061178e5761178d61216d565b5b905f5260205f20016040518060600160405290815f82015f9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020015f820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020015f820160089054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050805f015163ffffffff1642101561184c57506118db565b61185f83825f015163ffffffff16611c0b565b92505f61187642836020015163ffffffff16611c21565b90506118a384826118879190612239565b83604001516fffffffffffffffffffffffffffffffff16611ab8565b866118ae9190612206565b9550816020015163ffffffff1642106118ce57846118cb906124db565b94505b505080600101905061176c565b50509091565b61195b838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401611914929190612522565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611c37565b505050565b611968611cd2565b73ffffffffffffffffffffffffffffffffffffffff16611986610eba565b73ffffffffffffffffffffffffffffffffffffffff16146119e5576119a9611cd2565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016119dc91906120ff565b60405180910390fd5b565b5f6119f0611bbd565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b5f8183611ac59190612549565b905092915050565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611b3357816040517f24775e06000000000000000000000000000000000000000000000000000000008152600401611b2a9190612022565b60405180910390fd5b819050919050565b611bb7848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401611b709392919061258a565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611c37565b50505050565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f5f611bee611cd9565b90508091505090565b611bff611d02565b611c0881611d42565b50565b5f611c198284118484611dc6565b905092915050565b5f611c2f8284108484611dc6565b905092915050565b5f5f60205f8451602086015f885af180611c56576040513d5f823e3d81fd5b3d92505f519150505f8214611c6f576001811415611c8a565b5f8473ffffffffffffffffffffffffffffffffffffffff163b145b15611ccc57836040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401611cc391906120ff565b60405180910390fd5b50505050565b5f33905090565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b611d0a611ddf565b611d40576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611d4a611d02565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dba575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611db191906120ff565b60405180910390fd5b611dc3816119e7565b50565b5f611dd084611dfd565b82841802821890509392505050565b5f611de8611be4565b5f0160089054906101000a900460ff16905090565b5f8115159050919050565b60405180606001604052805f63ffffffff1681526020015f63ffffffff1681526020015f6fffffffffffffffffffffffffffffffff1681525090565b5f5ffd5b5f819050919050565b611e5a81611e48565b8114611e64575f5ffd5b50565b5f81359050611e7581611e51565b92915050565b5f60208284031215611e9057611e8f611e44565b5b5f611e9d84828501611e67565b91505092915050565b5f63ffffffff82169050919050565b611ebe81611ea6565b82525050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b611ee881611ec4565b82525050565b606082015f820151611f025f850182611eb5565b506020820151611f156020850182611eb5565b506040820151611f286040850182611edf565b50505050565b5f606082019050611f415f830184611eee565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f611f89611f84611f7f84611f47565b611f66565b611f47565b9050919050565b5f611f9a82611f6f565b9050919050565b5f611fab82611f90565b9050919050565b611fbb81611fa1565b82525050565b5f602082019050611fd45f830184611fb2565b92915050565b5f611fe482611f90565b9050919050565b611ff481611fda565b82525050565b5f60208201905061200d5f830184611feb565b92915050565b61201c81611e48565b82525050565b5f6020820190506120355f830184612013565b92915050565b61204481611ea6565b811461204e575f5ffd5b50565b5f8135905061205f8161203b565b92915050565b61206e81611ec4565b8114612078575f5ffd5b50565b5f8135905061208981612065565b92915050565b5f5f5f606084860312156120a6576120a5611e44565b5b5f6120b386828701612051565b93505060206120c486828701612051565b92505060406120d58682870161207b565b9150509250925092565b5f6120e982611f47565b9050919050565b6120f9816120df565b82525050565b5f6020820190506121125f8301846120f0565b92915050565b612121816120df565b811461212b575f5ffd5b50565b5f8135905061213c81612118565b92915050565b5f6020828403121561215757612156611e44565b5b5f6121648482850161212e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506121a881611e51565b92915050565b5f602082840312156121c3576121c2611e44565b5b5f6121d08482850161219a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61221082611e48565b915061221b83611e48565b9250828201905080821115612233576122326121d9565b5b92915050565b5f61224382611e48565b915061224e83611e48565b9250828203905081811115612266576122656121d9565b5b92915050565b5f61227682611ea6565b915061228183611ea6565b9250828203905063ffffffff81111561229d5761229c6121d9565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f6122ea6122e56122e084611ea6565b611f66565b611e48565b9050919050565b6122fa816122d0565b82525050565b5f6060820190506123135f8301866122f1565b61232060208301856122f1565b61232d6040830184612013565b949350505050565b5f819050919050565b5f61234882612335565b915061235383612335565b925082820390508181125f8412168282135f851215161715612378576123776121d9565b5b92915050565b5f61238882612335565b91507f800000000000000000000000000000000000000000000000000000000000000082036123ba576123b96121d9565b5b815f039050919050565b5f6123de6123d96123d484611ec4565b611f66565b611e48565b9050919050565b6123ee816123c4565b82525050565b5f6080820190506124075f8301876122f1565b61241460208301866122f1565b61242160408301856123e5565b61242e6060830184612013565b95945050505050565b5f8151905061244581612118565b92915050565b5f602082840312156124605761245f611e44565b5b5f61246d84828501612437565b91505092915050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f6124ac6124a76124a284612476565b611f66565b61247f565b9050919050565b6124bc81612492565b82525050565b5f6020820190506124d55f8301846124b3565b92915050565b5f6124e582611e48565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612517576125166121d9565b5b600182019050919050565b5f6040820190506125355f8301856120f0565b6125426020830184612013565b9392505050565b5f61255382611e48565b915061255e83611e48565b925082820261256c81611e48565b91508282048414831517612583576125826121d9565b5b5092915050565b5f60608201905061259d5f8301866120f0565b6125aa60208301856120f0565b6125b76040830184612013565b94935050505056fea264697066735822122096595fbc604efee7d980dfe689933f3f748c5cd671f29999aab718ac675d669864736f6c634300081e0033