5 txs
10 calls
constructor
constructor(address _dailyEpochGauge, address _incentiveGauge, address _positionManager, address _poolManager)
functions
dailyEpochGauge
viewfunction dailyEpochGauge() view returns (address)
getHandler
viewfunction getHandler(uint256 tokenId) view returns (address)
getPoolAndPositionInfo
viewfunction getPoolAndPositionInfo(uint256 tokenId) view returns (tuple key, uint256 info)
getPoolKeyFromPoolId
viewfunction getPoolKeyFromPoolId(bytes32 poolId) view returns (tuple)
getPoolKeyFromPositionInfo
viewfunction getPoolKeyFromPositionInfo(uint256 info) view returns (tuple)
getPositionLiquidity
viewfunction getPositionLiquidity(uint256 tokenId) view returns (uint128 liquidity)
handlerIndex
viewfunction handlerIndex(string) view returns (uint256)
handlers
viewfunction handlers(uint256) view returns (address)
incentiveGauge
viewfunction incentiveGauge() view returns (address)
isAuthorizedCaller
viewfunction isAuthorizedCaller(address) view returns (bool)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
POOL_MANAGER
viewfunction POOL_MANAGER() view returns (address)
POSITION_MANAGER
viewfunction POSITION_MANAGER() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
addHandler
nonpayablefunction addHandler(address handler)
notifyBurn
nonpayablefunction notifyBurn(uint256 tokenId, address ownerAddr, uint256 info, uint256 liquidity, int256)
notifyModifyLiquidity
nonpayablefunction notifyModifyLiquidity(uint256 tokenId, int256 liquidityChange, int256)
notifySubscribe
nonpayablefunction notifySubscribe(uint256 tokenId, bytes)
notifyUnsubscribe
nonpayablefunction notifyUnsubscribe(uint256 tokenId)
removeHandler
nonpayablefunction removeHandler(string handlerType)
renounceOwnership
nonpayablefunction renounceOwnership()
setAuthorizedCaller
nonpayablefunction setAuthorizedCaller(address caller, bool authorized)
setGauges
nonpayablefunction setGauges(address _dailyGauge, address _incentiveGauge)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
CallerAuthorized
event CallerAuthorized(address indexed caller, bool authorized)
GaugesUpdated
event GaugesUpdated(address dailyGauge, address incentiveGauge)
HandlerAdded
event HandlerAdded(address indexed handler, string handlerType)
HandlerRemoved
event HandlerRemoved(address indexed handler, string handlerType)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
errors
HandlerAlreadyExists
error HandlerAlreadyExists()
HandlerNotFound
error HandlerNotFound()
NotAuthorized
error NotAuthorized()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
PoolNotFound
error PoolNotFound()
ZeroAddress
error ZeroAddress()
creation bytecode
0x60c060405234801561000f575f80fd5b50604051612b9d380380612b9d83398101604081905261002e91610180565b338061005357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005c816100fa565b506001600160a01b038416158061007a57506001600160a01b038316155b8061008c57506001600160a01b038216155b8061009e57506001600160a01b038116155b156100bc5760405163d92e233d60e01b815260040160405180910390fd5b600480546001600160a01b03199081166001600160a01b0396871617909155600580549091169385169390931790925582166080521660a0526101d1565b600180546001600160a01b031916905561011381610116565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461017b575f80fd5b919050565b5f805f8060808587031215610193575f80fd5b61019c85610165565b93506101aa60208601610165565b92506101b860408601610165565b91506101c660608601610165565b905092959194509250565b60805160a05161297361022a5f395f81816102e3015281816119890152611afd01525f81816101c301528181610a9901528181610c8901528181610e880152818161105e0152818161154301526115c201526129735ff3fe608060405234801561000f575f80fd5b50600436106101a5575f3560e01c806379ba5097116100e8578063d8865c2711610093578063e59b1bc21161006e578063e59b1bc2146103ef578063f208411f14610402578063f2fde38b14610415578063fb7d8a1e14610428575f80fd5b8063d8865c2714610392578063e16e6d50146103a5578063e30c3978146103de575f80fd5b80638da5cb5b116100c35780638da5cb5b1461035c578063af45dd141461036c578063b1a9116f1461037f575f80fd5b806379ba5097146103205780637ba03aad146103285780638d57f6b214610349575f80fd5b8063454bbd291161015357806359d14b411161012e57806359d14b41146102ac57806362308e85146102de5780636352211e14610305578063715018a614610318575f80fd5b8063454bbd2914610273578063534674a61461028657806355be489c14610299575f80fd5b80631f19ab50116101835780631f19ab501461022d57806329b482fe1461024057806342659bdc14610260575f80fd5b806315e41711146101a95780631bea83fe146101be5780631efeed3314610202575b5f80fd5b6101bc6101b73660046122eb565b61043b565b005b6101e57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b610215610210366004612359565b61068a565b6040516001600160801b0390911681526020016101f9565b6005546101e5906001600160a01b031681565b61025361024e366004612359565b610708565b6040516101f99190612370565b6101e561026e366004612359565b610743565b6101bc6102813660046123ed565b61076b565b610253610294366004612359565b6107d1565b6101e56102a7366004612359565b61080f565b6102ce6102ba366004612424565b60066020525f908152604090205460ff1681565b60405190151581526020016101f9565b6101e57f000000000000000000000000000000000000000000000000000000000000000081565b6101e5610313366004612359565b610913565b6101bc610988565b6101bc61099b565b61033b610336366004612359565b6109e4565b6040516101f992919061243f565b6101bc610357366004612578565b610a8e565b5f546001600160a01b03166101e5565b6101bc61037a366004612359565b610c7e565b6101bc61038d3660046125cf565b610e7d565b6101bc6103a0366004612613565b611053565b6103d06103b336600461263c565b805160208183018101805160038252928201919093012091525481565b6040519081526020016101f9565b6001546001600160a01b03166101e5565b6101bc6103fd366004612689565b611228565b6004546101e5906001600160a01b031681565b6101bc610423366004612424565b6112d9565b6101bc610436366004612424565b611349565b6104436114eb565b5f600383836040516104569291906126b5565b9081526020016040518091039020549050805f03610487576040516325fa6f2760e11b815260040160405180910390fd5b5f6104936001836126c4565b90505f600282815481106104a9576104a96126e3565b5f9182526020822001546002546001600160a01b0390911692506104cf906001906126c4565b90508083146105ea57600281815481106104eb576104eb6126e3565b5f91825260209091200154600280546001600160a01b039092169185908110610516576105166126e3565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505f60028481548110610555576105556126e3565b5f918252602082200154604080516392e33a3360e01b815290516001600160a01b03909216926392e33a33926004808401938290030181865afa15801561059e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105c591908101906126f7565b9050846003826040516105d8919061276c565b90815260405190819003602001902055505b60028054806105fb576105fb612782565b5f8281526020902081015f1990810180546001600160a01b031916905501905560405160039061062e90889088906126b5565b90815260200160405180910390205f9055816001600160a01b03167fa15858ae37c624e48e7afeb6d1180630b018360fa1e55261179012b1c5e1d519878760405161067a929190612796565b60405180910390a2505050505050565b5f806106958361080f565b604051636a3b216960e01b8152600481018590529091506001600160a01b03821690636a3b21699060240160e060405180830381865afa1580156106db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ff9190612858565b95945050505050565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091528161073c81611517565b9392505050565b60028181548110610752575f80fd5b5f918252602090912001546001600160a01b0316905081565b6107736114eb565b6001600160a01b0382165f81815260066020908152604091829020805460ff191685151590811790915591519182527f100c9fd652c7b273c9266f92f22ac2352eb8d7232013ac0439e9066a9227f369910160405180910390a25050565b6040805160a0810182525f8082526020820181905291810182905260608101829052608081019190915266ffffffffffffff19821661073c81611517565b6002545f90815b818110156108f95760028181548110610831576108316126e3565b5f918252602090912001546040517fc0fa19b8000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b039091169063c0fa19b890602401602060405180830381865afa158015610899573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108bd91906128a1565b156108f157600281815481106108d5576108d56126e3565b5f918252602090912001546001600160a01b0316949350505050565b600101610816565b506040516325fa6f2760e11b815260040160405180910390fd5b5f8061091e8361080f565b6040516331a9108f60e11b8152600481018590529091506001600160a01b03821690636352211e90602401602060405180830381865afa158015610964573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073c91906128bc565b6109906114eb565b6109995f611845565b565b60015433906001600160a01b031681146109d85760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b6109e181611845565b50565b6040805160a0810182525f8082526020820181905291810182905260608101829052608081018290529080610a188461080f565b604051636a3b216960e01b8152600481018690529091506001600160a01b03821690636a3b21699060240160e060405180830381865afa158015610a5e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a829190612858565b50909590945092505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610ad65750335f9081526006602052604090205460ff16155b15610af45760405163ea8e4eb560e01b815260040160405180910390fd5b5f610b0083600161185e565b60048054604083810151602085015160c08601516060870151608088015160a089015160e08a0151965163e32cc1c760e01b81529889018d905260248901959095526044880193909352600291820b6064880152810b60848701520b60a48501526001600160801b031660c48401526001600160a01b0390811660e4840152929350919091169063e32cc1c790610104015f604051808303815f87803b158015610ba8575f80fd5b505af1158015610bba573d5f803e3d5ffd5b5050600554604084810151602086015160c08701516060880151608089015160a08a015160e08b0151965163e32cc1c760e01b8152600481018e905260248101969096526044860194909452600292830b606486015290820b6084850152900b60a48301526001600160801b031660c48201526001600160a01b0391821660e48201529116925063e32cc1c79150610104015f604051808303815f87803b158015610c63575f80fd5b505af1158015610c75573d5f803e3d5ffd5b50505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610cc65750335f9081526006602052604090205460ff16155b15610ce45760405163ea8e4eb560e01b815260040160405180910390fd5b5f610cf082600161185e565b60048054604083810151602085015160c086015160e08701516060880151608089015160a08a015196517fe4191908000000000000000000000000000000000000000000000000000000008152988901959095526024880193909352600291820b60448801526001600160a01b03908116606488015291810b60848701529190910b60a48501526001600160801b0390911660c4840152929350919091169063e41919089060e4015f604051808303815f87803b158015610daf575f80fd5b505af1158015610dc1573d5f803e3d5ffd5b505060055460408481015160208601516060870151608088015160a089015194517fee79cbc900000000000000000000000000000000000000000000000000000000815260048101949094526024840192909252600290810b60448401520b60648201526001600160801b0390911660848201526001600160a01b03909116925063ee79cbc9915060a4015f604051808303815f87803b158015610e63575f80fd5b505af1158015610e75573d5f803e3d5ffd5b505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610ec55750335f9081526006602052604090205460ff16155b15610ee35760405163ea8e4eb560e01b815260040160405180910390fd5b5f610eee8685611a4d565b60048054604083810151602085015160c0860151606087015160808801519451631fa69a0560e21b81529687019390935260248601919091526001600160a01b038b81166044870152600291820b606487015291810b60848601529190910b60a48401526001600160801b03871660c48401529293509190911690637e9a68149060e4015f604051808303815f87803b158015610f89575f80fd5b505af1158015610f9b573d5f803e3d5ffd5b5050600554604084810151602086015160c0870151606088015160808901519451631fa69a0560e21b8152600481019490945260248401929092526001600160a01b038c81166044850152600291820b606485015291810b60848401529290920b60a48201526001600160801b03881660c482015291169250637e9a6814915060e4015f604051808303815f87803b158015611035575f80fd5b505af1158015611047573d5f803e3d5ffd5b50505050505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480159061109b5750335f9081526006602052604090205460ff16155b156110b95760405163ea8e4eb560e01b815260040160405180910390fd5b5f6110c4845f61185e565b60048054604083810151602085015160c08601516060870151608088015160a0890151955163dccab59160e01b8152978801949094526024870192909252600290810b604487015290810b60648601520b608484015260a483018790526001600160801b031660c48301529192506001600160a01b039091169063dccab5919060e4015f604051808303815f87803b15801561115e575f80fd5b505af1158015611170573d5f803e3d5ffd5b5050600554604084810151602086015160c08701516060880151608089015160a08a0151955163dccab59160e01b815260048101959095526024850193909352600291820b6044850152810b60648401520b608482015260a481018890526001600160801b0390911660c48201526001600160a01b03909116925063dccab591915060e4015f604051808303815f87803b15801561120c575f80fd5b505af115801561121e573d5f803e3d5ffd5b5050505050505050565b6112306114eb565b6001600160a01b038216158061124d57506001600160a01b038116155b1561126b5760405163d92e233d60e01b815260040160405180910390fd5b600480546001600160a01b038481166001600160a01b03199283168117909355600580549185169190921681179091556040805192835260208301919091527fa96d486927e973ce525df084882fc0a3a860f5e5507b61a2ab604265b91b52fb910160405180910390a15050565b6112e16114eb565b600180546001600160a01b0383166001600160a01b031990911681179091556113115f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6113516114eb565b6001600160a01b0381166113785760405163d92e233d60e01b815260040160405180910390fd5b5f8190505f816001600160a01b03166392e33a336040518163ffffffff1660e01b81526004015f60405180830381865afa1580156113b8573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526113df91908101906126f7565b90506003816040516113f1919061276c565b9081526020016040518091039020545f14611438576040517fcfbaaf7f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280546001810182555f8290527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0385161790555460405160039061149390849061276c565b908152602001604051809103902081905550826001600160a01b03167fa06939166614fd57d68baeeb04385cb07f69c6b1d2fd88ae1f36b9da990ea444826040516114de91906128d7565b60405180910390a2505050565b5f546001600160a01b031633146109995760405163118cdaa760e01b81523360048201526024016109cf565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166115885760405163d92e233d60e01b815260040160405180910390fd5b6040517f86b6be7d00000000000000000000000000000000000000000000000000000000815266ffffffffffffff19831660048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906386b6be7d9060240160a060405180830381865afa15801561160f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611633919061290c565b9050806060015160020b5f0361183f576002545f5b8181101561180c5760408051808201909152601381527f56325f434f4e5354414e545f50524f44554354000000000000000000000000006020909101527fb69b15f43710ce1de7dad1ffcba932d4b145aeb631787a463ca90db6e94ebfa6611737600283815481106116bc576116bc6126e3565b5f918252602082200154604080516392e33a3360e01b815290516001600160a01b03909216926392e33a33926004808401938290030181865afa158015611705573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261172c91908101906126f7565b805160209091012090565b03611804575f60028281548110611750576117506126e3565b5f918252602090912001546040517f1f7f1eb900000000000000000000000000000000000000000000000000000000815266ffffffffffffff19881660048201526001600160a01b0390911691508190631f7f1eb99060240160a060405180830381865afa1580156117c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e8919061290c565b9350836060015160020b5f14611802575091949350505050565b505b600101611648565b506040517f76ecffc000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b600180546001600160a01b03191690556109e181611b43565b60408051610100810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052906118a78461080f565b90505f805f836001600160a01b0316636a3b2169886040518263ffffffff1660e01b81526004016118da91815260200190565b60e060405180830381865afa1580156118f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119199190612858565b9250925092505f61192b8460a0902090565b808752602087018190529050806119458460081c60020b90565b60020b606088015261195a8460201c60020b90565b60020b60808801525f89815260208290526040902060408801526001600160801b03831660a08801525f6119ae7f000000000000000000000000000000000000000000000000000000000000000084611b92565b50505090506119bc81611c5d565b60020b60c08901528815611a40576040516331a9108f60e11b8152600481018b90526001600160a01b03881690636352211e90602401602060405180830381865afa158015611a0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3191906128bc565b6001600160a01b031660e08901525b5050505050505092915050565b60408051610100810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905290611aa066ffffffffffffff198416611517565b90505f611aae8260a0902090565b80845260208401819052905080611ac88560081c60020b90565b60020b6060850152611add8560201c60020b90565b60020b60808501525f86815260208290526040902060408501525f611b227f000000000000000000000000000000000000000000000000000000000000000084611b92565b5050509050611b3081611c5d565b60020b60c0860152509295945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f805f805f611ba086611f22565b6040517f1e2eaeaf000000000000000000000000000000000000000000000000000000008152600481018290529091505f906001600160a01b03891690631e2eaeaf90602401602060405180830381865afa158015611c01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c259190612926565b90506001600160a01b03811695508060a01c60020b945062ffffff8160b81c16935062ffffff8160d01c169250505092959194509250565b5f73fffd8963efd1fc6a506488495d951d51639616826401000276a21983016001600160a01b03161115611cb557611cb57f614875240000000000000000000000000000000000000000000000000000000083611f5e565b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b16805f611cdf82611f73565b60ff16905060808110611cfa57607f810383901c9150611d04565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581027ffffffffffffffffffffffffffffffffffd709b7e5480fba5a50fed5e62ffc5568101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b14611f1357886001600160a01b0316611ef882611ffe565b6001600160a01b03161115611f0d5781611f15565b80611f15565b815b9998505050505050505050565b6040515f90611f41908390600690602001918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b815f526001600160a01b03811660045260245ffd5b5f808211611f7f575f80fd5b507f0706060506020500060203020504000106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c67ffffffffffffffff1060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b60020b5f60ff82901d80830118620d89e8811115612040576120407f8b86327a00000000000000000000000000000000000000000000000000000000846122dc565b7001fffcb933bd6fad37aa2d162d1a5940016001821602700100000000000000000000000000000000186002821615612089576ffff97272373d413259a46990580e213a0260801c5b60048216156120a8576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156120c7576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156120e6576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612105576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612124576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612143576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612163576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612183576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156121a3576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156121c3576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156121e3576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612203576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612223576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612243576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612264576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615612284576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156122a3576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156122c0576b048a170391f7dc42444e8fa20260801c5b5f8413156122cc575f19045b63ffffffff0160201c9392505050565b815f528060020b60045260245ffd5b5f80602083850312156122fc575f80fd5b823567ffffffffffffffff811115612312575f80fd5b8301601f81018513612322575f80fd5b803567ffffffffffffffff811115612338575f80fd5b856020828401011115612349575f80fd5b6020919091019590945092505050565b5f60208284031215612369575f80fd5b5035919050565b60a0810161183f82846001600160a01b0381511682526001600160a01b03602082015116602083015262ffffff6040820151166040830152606081015160020b60608301526001600160a01b0360808201511660808301525050565b6001600160a01b03811681146109e1575f80fd5b80151581146109e1575f80fd5b5f80604083850312156123fe575f80fd5b8235612409816123cc565b91506020830135612419816123e0565b809150509250929050565b5f60208284031215612434575f80fd5b813561073c816123cc565b60c0810161249b82856001600160a01b0381511682526001600160a01b03602082015116602083015262ffffff6040820151166040830152606081015160020b60608301526001600160a01b0360808201511660808301525050565b8260a08301529392505050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156124df576124df6124a8565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561250e5761250e6124a8565b604052919050565b5f67ffffffffffffffff82111561252f5761252f6124a8565b50601f01601f191660200190565b5f61254f61254a84612516565b6124e5565b9050828152838383011115612562575f80fd5b828260208301375f602084830101529392505050565b5f8060408385031215612589575f80fd5b82359150602083013567ffffffffffffffff8111156125a6575f80fd5b8301601f810185136125b6575f80fd5b6125c58582356020840161253d565b9150509250929050565b5f805f805f60a086880312156125e3575f80fd5b8535945060208601356125f5816123cc565b94979496505050506040830135926060810135926080909101359150565b5f805f60608486031215612625575f80fd5b505081359360208301359350604090920135919050565b5f6020828403121561264c575f80fd5b813567ffffffffffffffff811115612662575f80fd5b8201601f81018413612672575f80fd5b6126818482356020840161253d565b949350505050565b5f806040838503121561269a575f80fd5b82356126a5816123cc565b91506020830135612419816123cc565b818382375f9101908152919050565b8181038181111561183f57634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612707575f80fd5b815167ffffffffffffffff81111561271d575f80fd5b8201601f8101841361272d575f80fd5b805161273b61254a82612516565b81815285602083850101111561274f575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b5f82518060208501845e5f920191825250919050565b634e487b7160e01b5f52603160045260245ffd5b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b80516127cf816123cc565b919050565b5f60a082840312156127e4575f80fd5b6127ec6124bc565b905081516127f9816123cc565b81526020820151612809816123cc565b6020820152604082015162ffffff81168114612823575f80fd5b60408201526060820151600281900b811461283c575f80fd5b606082015261284d608083016127c4565b608082015292915050565b5f805f60e0848603121561286a575f80fd5b61287485856127d4565b925060a0840151915060c08401516001600160801b0381168114612896575f80fd5b809150509250925092565b5f602082840312156128b1575f80fd5b815161073c816123e0565b5f602082840312156128cc575f80fd5b815161073c816123cc565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60a0828403121561291c575f80fd5b61073c83836127d4565b5f60208284031215612936575f80fd5b505191905056fea26469706673582212201c1030e4a918502ab19bfceb2c3783dbd7d3e0168851e663ccb4179003a12f4b64736f6c634300081a003300000000000000000000000039909c3fdb684228e9d2ba31b6d17148b8e3589f0000000000000000000000008546b46a2d7a627a229784d4f59fc5c666861c600000000000000000000000007c5f5a4bbd8fd63184577525326123b519429bdc000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b