0 txs
234 calls
constructor
constructor(address carrot, address puffer)
functions
calculateClaimableAmount
viewfunction calculateClaimableAmount(address user) view returns (uint256)
CARROT
viewfunction CARROT() view returns (address)
EXCHANGE_RATE
viewfunction EXCHANGE_RATE() view returns (uint256)
getDuration
viewfunction getDuration() view returns (uint32)
getIsDismantled
viewfunction getIsDismantled() view returns (bool)
getNewDuration
viewfunction getNewDuration() view returns (uint32)
getNewSteps
viewfunction getNewSteps() view returns (uint32)
getStartTimestamp
viewfunction getStartTimestamp() view returns (uint48)
getSteps
viewfunction getSteps() view returns (uint32)
getTotalDepositedAmount
viewfunction getTotalDepositedAmount() view returns (uint128)
getUpgradeTimestamp
viewfunction getUpgradeTimestamp() view returns (uint48)
getVestings
viewfunction getVestings(address user) view returns (tuple[])
MAX_CARROT_AMOUNT
viewfunction MAX_CARROT_AMOUNT() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingOwner
viewfunction pendingOwner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
PUFFER
viewfunction PUFFER() view returns (address)
TOTAL_PUFFER_REWARDS
viewfunction TOTAL_PUFFER_REWARDS() view returns (uint256)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
acceptOwnership
nonpayablefunction acceptOwnership()
claim
nonpayablefunction claim() returns (uint128)
initialize
nonpayablefunction initialize(address initialOwner)
initializeVesting
nonpayablefunction initializeVesting(uint48 startTimestamp, uint32 duration, uint32 steps)
pause
nonpayablefunction pause()
recoverPuffer
nonpayablefunction recoverPuffer(address to) returns (uint256)
reinitializeVesting
nonpayablefunction reinitializeVesting(uint32 newDuration, uint32 newSteps)
renounceOwnership
nonpayablefunction renounceOwnership()
startVesting
nonpayablefunction startVesting(uint256 amount)
startVestingWithPermit
nonpayablefunction startVestingWithPermit(tuple permitData)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Claimed
event Claimed(address indexed user, uint256 claimedAmount)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
PufferRecovered
event PufferRecovered(uint256 pufferAmountWithdrawn)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
VestingInitialized
event VestingInitialized(uint256 startTimestamp, uint256 duration, uint256 steps)
VestingReinitialized
event VestingReinitialized(uint256 duration, uint256 steps)
VestingStarted
event VestingStarted(address indexed user, uint256 amount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
AlreadyDeposited
error AlreadyDeposited()
AlreadyDismantled
error AlreadyDismantled()
AlreadyInitialized
error AlreadyInitialized()
EnforcedPause
error EnforcedPause()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ExpectedPause
error ExpectedPause()
FailedInnerCall
error FailedInnerCall()
InvalidAddress
error InvalidAddress()
InvalidAmount
error InvalidAmount()
InvalidDuration
error InvalidDuration()
InvalidInitialization
error InvalidInitialization()
InvalidStartTimestamp
error InvalidStartTimestamp()
InvalidSteps
error InvalidSteps()
NoClaimableAmount
error NoClaimableAmount()
NotInitializing
error NotInitializing()
NotStarted
error NotStarted()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60e060405230608052348015610013575f5ffd5b506040516126503803806126508339810160408190526100329161016f565b6001600160a01b0382166100595760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0381166100805760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0380831660a052811660c05261009b6100a2565b50506101a0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100f25760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101515780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461016a575f5ffd5b919050565b5f5f60408385031215610180575f5ffd5b61018983610154565b915061019760208401610154565b90509250929050565b60805160a05160c05161244e6102025f395f81816104290152818161089401528181610b600152818161103001526110e101525f818161065e0152818161111b015261161901525f81816119440152818161196d0152611aac015261244e5ff3fe6080604052600436106101e6575f3560e01c80637274f7fd11610108578063a2ae2b301161009d578063c4d66de81161006d578063c4d66de81461062e578063ccc3aeec1461064d578063db7ac39914610680578063e30c3978146106b0578063f2fde38b146106c4575f5ffd5b8063a2ae2b3014610586578063ad2e8c9b146105a5578063ad3cb1cc146105d2578063c17c1e641461060f575f5ffd5b806386c27200116100d857806386c27200146104ea5780638da5cb5b1461051457806394fbb686146105285780639ea6a90c14610546575f5ffd5b80637274f7fd1461047757806379ba5097146104965780637a0c6dc0146104aa5780638456cb59146104d6575f5ffd5b80634e71d92d1161017e5780635c975abb1161014e5780635c975abb146103bc5780635da65ada146103eb57806364e29a0c14610418578063715018a614610463575f5ffd5b80634e71d92d1461034a5780634f1ef2861461037657806352d1902d1461038957806353a5041d1461039d575f5ffd5b8063310a8262116101b9578063310a82621461028b57806334e538fa146102dc5780633a4dc2fb146103175780633f4ba83a14610336575f5ffd5b80630e0c29b1146101ea57806314a8bd0d1461021b5780631e8cf0551461022f5780631f89f25e14610250575b5f5ffd5b3480156101f5575f5ffd5b506102086a2d7eb3f96e070d9700000081565b6040519081526020015b60405180910390f35b348015610226575f5ffd5b506102086106e3565b34801561023a575f5ffd5b5061024e610249366004611faa565b610719565b005b34801561025b575f5ffd5b505f5160206123995f395f51905f525465ffffffffffff165b60405165ffffffffffff9091168152602001610212565b348015610296575f5ffd5b507f99c0204d2f19059e8c922c8f9e67431492b83efddf8cd154a45548a1cb00c30254600160501b900463ffffffff165b60405163ffffffff9091168152602001610212565b3480156102e7575f5ffd5b507f99c0204d2f19059e8c922c8f9e67431492b83efddf8cd154a45548a1cb00c3025465ffffffffffff16610274565b348015610322575f5ffd5b5061024e610331366004611ff6565b610972565b348015610341575f5ffd5b5061024e61097e565b348015610355575f5ffd5b5061035e610990565b6040516001600160801b039091168152602001610212565b61024e610384366004612037565b610b97565b348015610394575f5ffd5b50610208610bb6565b3480156103a8575f5ffd5b5061024e6103b73660046120fb565b610bd1565b3480156103c7575f5ffd5b505f5160206123d95f395f51905f525460ff165b6040519015158152602001610212565b3480156103f6575f5ffd5b505f5160206123995f395f51905f5254600160501b900463ffffffff166102c7565b348015610423575f5ffd5b5061044b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610212565b34801561046e575f5ffd5b5061024e610ddf565b348015610482575f5ffd5b5061020861049136600461212c565b610df0565b3480156104a1575f5ffd5b5061024e610e53565b3480156104b5575f5ffd5b506104c96104c436600461212c565b610e9d565b6040516102129190612145565b3480156104e1575f5ffd5b5061024e610f7a565b3480156104f5575f5ffd5b505f5160206123995f395f51905f5254600160701b900460ff166103db565b34801561051f575f5ffd5b5061044b610f8a565b348015610533575f5ffd5b506102086a52b7d2dcc80cd2e400000081565b348015610551575f5ffd5b507f99c0204d2f19059e8c922c8f9e67431492b83efddf8cd154a45548a1cb00c30254600160301b900463ffffffff166102c7565b348015610591575f5ffd5b506102086105a036600461212c565b610fbe565b3480156105b0575f5ffd5b505f5160206123995f395f51905f5254600160301b900463ffffffff166102c7565b3480156105dd575f5ffd5b50610602604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161021291906121cf565b34801561061a575f5ffd5b5061024e610629366004612204565b611111565b348015610639575f5ffd5b5061024e61064836600461212c565b6111ec565b348015610658575f5ffd5b5061044b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561068b575f5ffd5b505f5160206123995f395f51905f5254600160781b90046001600160801b031661035e565b3480156106bb575f5ffd5b5061044b6112ff565b3480156106cf575f5ffd5b5061024e6106de36600461212c565b611327565b6a52b7d2dcc80cd2e400000061070c6a2d7eb3f96e070d97000000670de0b6b3a7640000612231565b610716919061225c565b81565b6107216113ac565b5f5160206123f95f395f51905f52805460029190600160401b900460ff16806107585750805467ffffffffffffffff808416911610155b156107765760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b1781554265ffffffffffff861610156107c1576040516307f5e89560e51b815260040160405180910390fd5b5f8463ffffffff16116107e757604051637616640160e01b815260040160405180910390fd5b5f8363ffffffff161161080d5760405163ae29451b60e01b815260040160405180910390fd5b8263ffffffff168463ffffffff16101561083a57604051637616640160e01b815260040160405180910390fd5b5f5160206123995f395f51905f52805465ffffffffffff871669ffffffffffffffffffff1990911617600160301b63ffffffff878116919091029190911763ffffffff60501b1916600160501b868316021782556108d4907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690339030906a2d7eb3f96e070d97000000906113de16565b6040805165ffffffffffff8816815263ffffffff878116602083015286168183015290517f25498c3f8d8cfe86325e99d60195600bb3950cd5f57eb18baa3afc5e272c0c329181900360600190a150805460ff60401b1916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050565b61097b8161144b565b50565b6109866113ac565b61098e611643565b565b5f6109996116a2565b5f5160206123995f395f51905f528054600160701b900460ff16156109d15760405163397ea7b160e11b815260040160405180910390fd5b5f80805b335f908152600185016020526040902054811015610aeb576109f88433836116d2565b91506001600160801b03821615610ae357335f9081526001850160205260409020805442919083908110610a2e57610a2e61226f565b5f918252602080832060016002909302018201805465ffffffffffff9590951665ffffffffffff1990951694909417909355338252860190915260409020805483919083908110610a8157610a8161226f565b5f91825260209091206002909102018054601090610ab0908490600160801b90046001600160801b0316612283565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508183610ae09190612283565b92505b6001016109d5565b50816001600160801b03165f03610b155760405163493c1ab760e01b815260040160405180910390fd5b6040516001600160801b038316815233907fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a9060200160405180910390a2610b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016336001600160801b038516611903565b5091505090565b610b9f611939565b610ba8826119dd565b610bb282826119e5565b5050565b5f610bbf611aa1565b505f5160206123b95f395f51905f5290565b610bd96113ac565b5f5160206123f95f395f51905f52805460039190600160401b900460ff1680610c105750805467ffffffffffffffff808416911610155b15610c2e5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b17815563ffffffff8416610c7457604051637616640160e01b815260040160405180910390fd5b5f8363ffffffff1611610c9a5760405163ae29451b60e01b815260040160405180910390fd5b8263ffffffff168463ffffffff161015610cc757604051637616640160e01b815260040160405180910390fd5b5f5160206123995f395f51905f528054600160701b900460ff1615610cff5760405163397ea7b160e11b815260040160405180910390fd5b6002810180546dffffffffffffffff0000000000001916600160301b63ffffffff88811691820263ffffffff60501b191692909217600160501b9288169283021765ffffffffffff19164265ffffffffffff16179092556040805192835260208301919091527fdf251883a5261009198e1ee614200b22b4bb370ca7c5ec3446656dcc6c159a90910160405180910390a150805460ff60401b1916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050565b610de76113ac565b61098e5f611aea565b5f5f5160206123995f395f51905f5281805b6001600160a01b0385165f908152600184016020526040902054811015610e4b57610e2e8386836116d2565b610e41906001600160801b0316836122a2565b9150600101610e02565b509392505050565b3380610e5d6112ff565b6001600160a01b031614610e945760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b61097b81611aea565b6001600160a01b0381165f9081527f99c0204d2f19059e8c922c8f9e67431492b83efddf8cd154a45548a1cb00c3016020908152604080832080548251818502810185019093528083526060945f5160206123995f395f51905f529484015b82821015610f6e575f848152602090819020604080516080810182526002860290920180546001600160801b038082168552600160801b909104168385015260019081015465ffffffffffff80821693850193909352600160301b900490911660608301529083529092019101610efc565b50505050915050919050565b610f826113ac565b61098e611b22565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f610fc76113ac565b6001600160a01b038216610fee5760405163e6c4247b60e01b815260040160405180910390fd5b5f5f5160206123995f395f51905f52805460ff60701b1916600160701b1781556040516370a0823160e01b81523060048201529091505f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611075573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109991906122b5565b90507f0b664031b3cfc7ed4fbf86a0579057b7ae704facc27fb3ce7ec832233d325ca0816040516110cc91815260200190565b60405180910390a16111086001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168583611903565b9150505b919050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663d505accf33306020850135853561115960608801604089016122cc565b6040516001600160e01b031960e088901b1681526001600160a01b0395861660048201529490931660248501526044840191909152606483015260ff166084820152606084013560a4820152608084013560c482015260e4015f604051808303815f87803b1580156111c9575f5ffd5b505af11580156111db573d5f5f3e3d5ffd5b5050505061097b816020013561144b565b5f5160206123f95f395f51905f528054600160401b810460ff16159067ffffffffffffffff165f8115801561121e5750825b90505f8267ffffffffffffffff16600114801561123a5750303b155b905081158015611248575080155b156112665760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561129057845460ff60401b1916600160401b1785555b61129986611b6a565b6112a1611b7b565b6112a9611b8b565b6112b1611b8b565b83156112f757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610fae565b61132f6113ac565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b0383169081178255611373610f8a565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336113b5610f8a565b6001600160a01b03161461098e5760405163118cdaa760e01b8152336004820152602401610e8b565b6040516001600160a01b0384811660248301528381166044830152606482018390526114459186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611b93565b50505050565b6114536116a2565b5f5160206123995f395f51905f528054600160701b900460ff161561148b5760405163397ea7b160e11b815260040160405180910390fd5b805465ffffffffffff16158015906114ac5750805465ffffffffffff164210155b6114c957604051636f312cbd60e01b815260040160405180910390fd5b5f82116114e95760405163162908e360e11b815260040160405180910390fd5b335f90815260018083016020908152604080842081516080810183526001600160801b03808916825281850187815265ffffffffffff428116958401868152606085019687528554808a018755958a5296909820925190518216600160801b0290821617600290930290910191825592519301805491518516600160301b026bffffffffffffffffffffffff19909216939094169290921791909117909155815483918391600f916115a5918591600160781b90910416612283565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550336001600160a01b03167f7b97dcefcb9fdae22321c09ae87ed7865e06d2477325d246f8f1ff039a701a3d8360405161160491815260200190565b60405180910390a2610bb26001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163361dead856113de565b61164b611bf4565b5f5160206123d95f395f51905f52805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b5f5160206123d95f395f51905f525460ff161561098e5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b0382165f90815260018401602052604081208054829190849081106117005761170061226f565b5f918252602080832060408051608081018252600290940290910180546001600160801b03808216808752600160801b90920416938501939093526001015465ffffffffffff80821692850192909252600160301b9004166060830152909250900361176f575f9150506118fc565b60028501545f90819065ffffffffffff16158061179f57506002870154606084015165ffffffffffff9182169116105b156117c4575050845463ffffffff600160301b8204811691600160501b9004166117e3565b5050600285015463ffffffff600160301b8204811691600160501b9004165b5f8263ffffffff1684606001516117fa91906122ec565b65ffffffffffff16905080846040015165ffffffffffff1610611823575f9450505050506118fc565b5f4282116118315781611833565b425b90505f611840848661230a565b63ffffffff16866060015165ffffffffffff168361185e9190612331565b611868919061225c565b90505f8463ffffffff1682885f01516001600160801b031661188a9190612231565b611894919061225c565b90505f670de0b6b3a76400006a52b7d2dcc80cd2e40000006118c16a2d7eb3f96e070d9700000083612231565b6118cb919061225c565b6118d59084612231565b6118df919061225c565b90508760200151816118f19190612344565b985050505050505050505b9392505050565b6040516001600160a01b0383811660248301526044820183905261193491859182169063a9059cbb90606401611413565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806119bf57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166119b35f5160206123b95f395f51905f52546001600160a01b031690565b6001600160a01b031614155b1561098e5760405163703e46dd60e11b815260040160405180910390fd5b61097b6113ac565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611a3f575060408051601f3d908101601f19168201909252611a3c918101906122b5565b60015b611a6757604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610e8b565b5f5160206123b95f395f51905f528114611a9757604051632a87526960e21b815260048101829052602401610e8b565b6119348383611c23565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461098e5760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319168155610bb282611c78565b611b2a6116a2565b5f5160206123d95f395f51905f52805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611684565b611b72611ce8565b61097b81611d1e565b611b83611ce8565b61098e611d4f565b61098e611ce8565b5f611ba76001600160a01b03841683611d6f565b905080515f14158015611bcb575080806020019051810190611bc99190612363565b155b1561193457604051635274afe760e01b81526001600160a01b0384166004820152602401610e8b565b5f5160206123d95f395f51905f525460ff1661098e57604051638dfc202b60e01b815260040160405180910390fd5b611c2c82611d85565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115611c70576119348282611de8565b610bb2611e5a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5160206123f95f395f51905f5254600160401b900460ff1661098e57604051631afcd79f60e31b815260040160405180910390fd5b611d26611ce8565b6001600160a01b038116610e9457604051631e4fbdf760e01b81525f6004820152602401610e8b565b611d57611ce8565b5f5160206123d95f395f51905f52805460ff19169055565b6060611d7c83835f611e79565b90505b92915050565b806001600160a01b03163b5f03611dba57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610e8b565b5f5160206123b95f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b031684604051611e049190612382565b5f60405180830381855af49150503d805f8114611e3c576040519150601f19603f3d011682016040523d82523d5f602084013e611e41565b606091505b5091509150611e51858383611f12565b95945050505050565b341561098e5760405163b398979f60e01b815260040160405180910390fd5b606081471015611e9e5760405163cd78605960e01b8152306004820152602401610e8b565b5f5f856001600160a01b03168486604051611eb99190612382565b5f6040518083038185875af1925050503d805f8114611ef3576040519150601f19603f3d011682016040523d82523d5f602084013e611ef8565b606091505b5091509150611f08868383611f12565b9695505050505050565b606082611f2757611f2282611f6e565b6118fc565b8151158015611f3e57506001600160a01b0384163b155b15611f6757604051639996b31560e01b81526001600160a01b0385166004820152602401610e8b565b50806118fc565b805115611f7e5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b803563ffffffff8116811461110c575f5ffd5b5f5f5f60608486031215611fbc575f5ffd5b833565ffffffffffff81168114611fd1575f5ffd5b9250611fdf60208501611f97565b9150611fed60408501611f97565b90509250925092565b5f60208284031215612006575f5ffd5b5035919050565b80356001600160a01b038116811461110c575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215612048575f5ffd5b6120518361200d565b9150602083013567ffffffffffffffff81111561206c575f5ffd5b8301601f8101851361207c575f5ffd5b803567ffffffffffffffff81111561209657612096612023565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156120c5576120c5612023565b6040528181528282016020018710156120dc575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f6040838503121561210c575f5ffd5b61211583611f97565b915061212360208401611f97565b90509250929050565b5f6020828403121561213c575f5ffd5b611d7c8261200d565b602080825282518282018190525f918401906040840190835b818110156121c45783516001600160801b0381511684526001600160801b03602082015116602085015265ffffffffffff604082015116604085015265ffffffffffff60608201511660608501525060808301925060208401935060018101905061215e565b509095945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60a0828403128015612215575f5ffd5b509092915050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611d7f57611d7f61221d565b634e487b7160e01b5f52601260045260245ffd5b5f8261226a5761226a612248565b500490565b634e487b7160e01b5f52603260045260245ffd5b6001600160801b038181168382160190811115611d7f57611d7f61221d565b80820180821115611d7f57611d7f61221d565b5f602082840312156122c5575f5ffd5b5051919050565b5f602082840312156122dc575f5ffd5b813560ff811681146118fc575f5ffd5b65ffffffffffff8181168382160190811115611d7f57611d7f61221d565b5f63ffffffff83168061231f5761231f612248565b8063ffffffff84160491505092915050565b81810381811115611d7f57611d7f61221d565b6001600160801b038281168282160390811115611d7f57611d7f61221d565b5f60208284031215612373575f5ffd5b815180151581146118fc575f5ffd5b5f82518060208501845e5f92019182525091905056fe99c0204d2f19059e8c922c8f9e67431492b83efddf8cd154a45548a1cb00c300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbccd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220790fc72fe3b7f11154a69d5fab1de03fe49dde600ff097e084d022e1bc81a79b64736f6c634300081e0033000000000000000000000000282a69142bac47855c3fbe1693fcc4ba3b4d5ed60000000000000000000000004d1c297d39c5c1277964d0e3f8aa901493664530