0 txs
1.31m calls
constructor
constructor(address emissionManager)
functions
EMISSION_MANAGER
viewfunction EMISSION_MANAGER() view returns (address)
getAllUserRewards
viewfunction getAllUserRewards(address[] assets, address user) view returns (address[] rewardsList, uint256[] unclaimedAmounts)
getAssetDecimals
viewfunction getAssetDecimals(address asset) view returns (uint8)
getAssetIndex
viewfunction getAssetIndex(address asset, address reward) view returns (uint256, uint256)
getClaimer
viewfunction getClaimer(address user) view returns (address)
getDistributionEnd
viewfunction getDistributionEnd(address asset, address reward) view returns (uint256)
getEmissionManager
viewfunction getEmissionManager() view returns (address)
getRewardOracle
viewfunction getRewardOracle(address reward) view returns (address)
getRewardsByAsset
viewfunction getRewardsByAsset(address asset) view returns (address[])
getRewardsData
viewfunction getRewardsData(address asset, address reward) view returns (uint256, uint256, uint256, uint256)
getRewardsList
viewfunction getRewardsList() view returns (address[])
getTransferStrategy
viewfunction getTransferStrategy(address reward) view returns (address)
getUserAccruedRewards
viewfunction getUserAccruedRewards(address user, address reward) view returns (uint256)
getUserAssetIndex
viewfunction getUserAssetIndex(address user, address asset, address reward) view returns (uint256)
getUserRewards
viewfunction getUserRewards(address[] assets, address user, address reward) view returns (uint256)
REVISION
viewfunction REVISION() view returns (uint256)
temporaryOverrideAdmin
viewfunction temporaryOverrideAdmin() view returns (address)
claimAllRewards
nonpayablefunction claimAllRewards(address[] assets, address to) returns (address[] rewardsList, uint256[] claimedAmounts)
claimAllRewardsOnBehalf
nonpayablefunction claimAllRewardsOnBehalf(address[] assets, address user, address to) returns (address[] rewardsList, uint256[] claimedAmounts)
claimAllRewardsToSelf
nonpayablefunction claimAllRewardsToSelf(address[] assets) returns (address[] rewardsList, uint256[] claimedAmounts)
claimRewards
nonpayablefunction claimRewards(address[] assets, uint256 amount, address to, address reward) returns (uint256)
claimRewardsOnBehalf
nonpayablefunction claimRewardsOnBehalf(address[] assets, uint256 amount, address user, address to, address reward) returns (uint256)
claimRewardsToSelf
nonpayablefunction claimRewardsToSelf(address[] assets, uint256 amount, address reward) returns (uint256)
configureAssets
nonpayablefunction configureAssets(tuple[] config)
handleAction
nonpayablefunction handleAction(address user, uint256 totalSupply, uint256 userBalance)
initialize
nonpayablefunction initialize(address)
renounceTemporaryOverrideAdmin
nonpayablefunction renounceTemporaryOverrideAdmin()
setClaimer
nonpayablefunction setClaimer(address user, address caller)
setDistributionEnd
nonpayablefunction setDistributionEnd(address asset, address reward, uint32 newDistributionEnd)
setEmissionPerSecond
nonpayablefunction setEmissionPerSecond(address asset, address[] rewards, uint88[] newEmissionsPerSecond)
setRewardOracle
nonpayablefunction setRewardOracle(address reward, address rewardOracle)
setTransferStrategy
nonpayablefunction setTransferStrategy(address reward, address transferStrategy)
setUserData
nonpayablefunction setUserData(address[] assets, address[] rewards, address[] users, uint256[] indexes, uint128[] accruedAmounts)
events
Accrued
event Accrued(address indexed asset, address indexed reward, address indexed user, uint256 assetIndex, uint256 userIndex, uint256 rewardsAccrued)
AccruedIndexChange
event AccruedIndexChange(address indexed asset, address indexed reward, address indexed user, uint256 oldUserIndex, uint256 oldRewardsAccrued, uint256 newUserIndex, uint256 newRewardsAccrued)
AssetConfigUpdated
event AssetConfigUpdated(address indexed asset, address indexed reward, uint256 oldEmission, uint256 newEmission, uint256 oldDistributionEnd, uint256 newDistributionEnd, uint256 assetIndex)
ClaimerSet
event ClaimerSet(address indexed user, address indexed claimer)
RewardOracleUpdated
event RewardOracleUpdated(address indexed reward, address indexed rewardOracle)
RewardsClaimed
event RewardsClaimed(address indexed user, address indexed reward, address indexed to, address claimer, uint256 amount)
TemporaryOverrideAdminSet
event TemporaryOverrideAdminSet(address indexed previousAdmin, address indexed newAdmin)
TransferStrategyInstalled
event TransferStrategyInstalled(address indexed reward, address indexed transferStrategy)
errors
No errors.
creation bytecode
0x60a060405260006005553480156200001657600080fd5b50604051620053843803806200538483398101604081905262000039916200004b565b6001600160a01b03166080526200007d565b6000602082840312156200005e57600080fd5b81516001600160a01b03811681146200007657600080fd5b9392505050565b6080516152ba620000ca600039600081816105060152818161061e015281816114830152818161177701528181611e8a0152818161202f015281816120d801526121f301526152ba6000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c8063886fe70b1161012a578063bb492bf5116100bd578063cbcbb5071161008c578063e15ac62311610071578063e15ac62314610648578063f5cf673b1461065b578063f996868b1461066e57600080fd5b8063cbcbb50714610619578063dde43cba1461064057600080fd5b8063bb492bf5146105cd578063bf90f63a146105e0578063c4d66de8146105f3578063c5a7b5381461060657600080fd5b80639efd6f72116100f95780639efd6f721461053d5780639ff55db91461059f578063b022418c146105b2578063b45ac1a9146105c557600080fd5b8063886fe70b146104bc5780639085c503146104e457806392074b0814610504578063955c2ad71461052a57600080fd5b8063533f542a116101a25780636657732f116101715780636657732f1461037d57806370674ab91461039d57806374d945ec146103b05780637eff4ba8146103e957600080fd5b8063533f542a1461030b5780635453ba101461031e57806357b89883146103315780635f130b241461034457600080fd5b806331873e2e116101de57806331873e2e146102bc57806333028b99146102cf5780634a7f3644146102e25780634c0369c3146102ea57600080fd5b806311d78daa146102105780631b839c7714610225578063236300dc1461024b5780632a17bf601461025e575b600080fd5b61022361021e366004614764565b610681565b005b610238610233366004614877565b610c02565b6040519081526020015b60405180910390f35b6102386102593660046148b0565b610c62565b61029761026c366004614924565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152603b60205260409020541690565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610242565b6102236102ca366004614948565b610cfa565b6102386102dd36600461497d565b610d0b565b610223610eb7565b6102fd6102f8366004614a02565b610fab565b604051610242929190614aaa565b610238610319366004614b01565b6112fb565b61022361032c366004614877565b61146b565b61023861033f366004614b41565b611518565b610297610352366004614924565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152603a60205260409020541690565b61039061038b366004614924565b611532565b6040516102429190614ba0565b6102386103ab366004614bb3565b611684565b6102976103be366004614924565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152603960205260409020541690565b61049c6103f7366004614877565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152206002810154905490916affffffffffffffffffffff6d01000000000000000000000000008304169163ffffffff780100000000000000000000000000000000000000000000000082048116927c01000000000000000000000000000000000000000000000000000000009092041690565b604080519485526020850193909352918301526060820152608001610242565b6104cf6104ca366004614877565b61169b565b60408051928352602083019190915201610242565b603c546102979073ffffffffffffffffffffffffffffffffffffffff1681565b7f0000000000000000000000000000000000000000000000000000000000000000610297565b610223610538366004614ceb565b61175f565b61058d61054b366004614924565b73ffffffffffffffffffffffffffffffffffffffff16600090815260016020526040902060020154700100000000000000000000000000000000900460ff1690565b60405160ff9091168152602001610242565b6102fd6105ad366004614bb3565b61195f565b6102386105c0366004614877565b611b0e565b610390611bc7565b6102fd6105db366004614a02565b611c36565b6102fd6105ee366004614e19565b611ccf565b610223610601366004614924565b611cea565b610223610614366004614e4f565b611e72565b6102977f000000000000000000000000000000000000000000000000000000000000000081565b610238600381565b610223610656366004614877565b612017565b610223610669366004614877565b6120c0565b61022361067c366004614e96565b6121db565b603c5473ffffffffffffffffffffffffffffffffffffffff163314610707576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4f4e4c595f54454d504f524152595f4f564552524944455f41444d494e00000060448201526064015b60405180910390fd5b888714801561071557508483145b801561072057508089145b801561072b57508489145b610791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f494e56414c49445f504152414d455445525f4c454e475448000000000000000060448201526064016106fe565b60005b89811015610bf5576000600160008d8d858181106107b4576107b4614f19565b90506020020160208101906107c99190614924565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008b8b8581811061081a5761081a614f19565b905060200201602081019061082f9190614924565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010160008a8a8681811061088557610885614f19565b905060200201602081019061089a9190614924565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905060008260010160008b8b878181106108f4576108f4614f19565b90506020020160208101906109099190614924565b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020546d010000000000000000000000000090046fffffffffffffffffffffffffffffffff16905087878581811061096757610967614f19565b905060200201358360010160008c8c8881811061098657610986614f19565b905060200201602081019061099b9190614924565b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020600101558585858181106109d7576109d7614f19565b90506020020160208101906109ec9190614f48565b8360010160008c8c88818110610a0457610a04614f19565b9050602002016020810190610a199190614924565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080546fffffffffffffffffffffffffffffffff929092166d0100000000000000000000000000027fffffff00000000000000000000000000000000ffffffffffffffffffffffffff909216919091179055898985818110610aa257610aa2614f19565b9050602002016020810190610ab79190614924565b73ffffffffffffffffffffffffffffffffffffffff168c8c86818110610adf57610adf614f19565b9050602002016020810190610af49190614924565b73ffffffffffffffffffffffffffffffffffffffff168f8f87818110610b1c57610b1c614f19565b9050602002016020810190610b319190614924565b73ffffffffffffffffffffffffffffffffffffffff167f8b9ba7b93d28c8cc75b6cd35f99111e3e3baea0ff08211126ef1aa29eb8352a685858d8d8b818110610b7c57610b7c614f19565b905060200201358c8c8c818110610b9557610b95614f19565b9050602002016020810190610baa9190614f48565b604080519485526020850193909352918301526fffffffffffffffffffffffffffffffff16606082015260800160405180910390a45050508080610bed90614fa9565b915050610794565b5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600160209081526040808320938516835292905220547c0100000000000000000000000000000000000000000000000000000000900463ffffffff165b92915050565b600073ffffffffffffffffffffffffffffffffffffffff8316610ce1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f494e56414c49445f544f5f41444452455353000000000000000000000000000060448201526064016106fe565b610cf086868633338888612644565b9695505050505050565b610d06338483856128db565b505050565b73ffffffffffffffffffffffffffffffffffffffff808416600090815260396020526040812054909133918691168214610da1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f434c41494d45525f554e415554484f52495a454400000000000000000000000060448201526064016106fe565b73ffffffffffffffffffffffffffffffffffffffff8616610e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f494e56414c49445f555345525f4144445245535300000000000000000000000060448201526064016106fe565b73ffffffffffffffffffffffffffffffffffffffff8516610e9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f494e56414c49445f544f5f41444452455353000000000000000000000000000060448201526064016106fe565b610eaa898989338a8a8a612644565b9998505050505050505050565b603c5473ffffffffffffffffffffffffffffffffffffffff163314610f38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4f4e4c595f54454d504f524152595f4f564552524944455f41444d494e00000060448201526064016106fe565b603c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000811690915560405173ffffffffffffffffffffffffffffffffffffffff9091169060009082907f6622677f7aa2d83adfa9d1296da4d78318036d992ef624d17c5034fb1f02d315908390a350565b6060806000610fbb868686612a92565b60035490915067ffffffffffffffff811115610fd957610fd9614c10565b604051908082528060200260200182016040528015611002578160200160208202803683370190505b509250825167ffffffffffffffff81111561101f5761101f614c10565b604051908082528060200260200182016040528015611048578160200160208202803683370190505b50915060005b81518110156112f15760005b84518110156112de576003818154811061107657611076614f19565b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168582815181106110b3576110b3614f19565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001600084848151811061110357611103614f19565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600086838151811061116057611160614f19565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600d9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1684828151811061122657611226614f19565b6020026020010181815161123a9190614fe1565b905250825183908390811061125157611251614f19565b602002602001015160200151600003156112cc576112a28686838151811061127b5761127b614f19565b602002602001015185858151811061129557611295614f19565b6020026020010151612c90565b8482815181106112b4576112b4614f19565b602002602001018181516112c89190614fe1565b9052505b806112d681614fa9565b91505061105a565b50806112e981614fa9565b91505061104e565b5050935093915050565b73ffffffffffffffffffffffffffffffffffffffff80831660009081526001602081815260408084208686168552825280842094881684529382019052918120909101548015801561139a575073ffffffffffffffffffffffffffffffffffffffff808516600090815260016020818152604080842088861685528252808420948a16845293909101905220546cffffffffffffffffffffffffff1615155b156114635773ffffffffffffffffffffffffffffffffffffffff84166000908152600160205260408120600201546113ea90700100000000000000000000000000000000900460ff16600a615114565b73ffffffffffffffffffffffffffffffffffffffff80871660009081526001602081815260408084208a861685528252808420948c16845293909101905220549091508190611455906b033b2e3c9fd0803ce8000000906cffffffffffffffffffffffffff16615123565b61145f919061513a565b9150505b949350505050565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461150a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f4e4c595f454d495353494f4e5f4d414e41474552000000000000000000000060448201526064016106fe565b6115148282612e0e565b5050565b600061152985858533333388612644565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600160205260408120600201546060916fffffffffffffffffffffffffffffffff909116908167ffffffffffffffff81111561158c5761158c614c10565b6040519080825280602002602001820160405280156115b5578160200160208202803683370190505b50905060005b826fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16101561167c5773ffffffffffffffffffffffffffffffffffffffff80861660009081526001602081815260408084206fffffffffffffffffffffffffffffffff87168086529301909152909120548451921691849190811061164557611645614f19565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101528061167481615175565b9150506115bb565b509392505050565b60006115298383611696888888612a92565b612f62565b73ffffffffffffffffffffffffffffffffffffffff8083166000818152600160209081526040808320948616835293815283822084517fb1bf962d00000000000000000000000000000000000000000000000000000000815294519294859491936117529385939263b1bf962d92600480830193928290030181865afa158015611729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174d91906151a4565b613100565b92509250505b9250929050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146117fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f4e4c595f454d495353494f4e5f4d414e41474552000000000000000000000060448201526064016106fe565b60005b81518110156119525781818151811061181c5761181c614f19565b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff1663b1bf962d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611872573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189691906151a4565b8282815181106118a8576118a8614f19565b602002602001015160200181815250506118fc8282815181106118cd576118cd614f19565b6020026020010151608001518383815181106118eb576118eb614f19565b602002602001015160a0015161320b565b61194082828151811061191157611911614f19565b60200260200101516080015183838151811061192f5761192f614f19565b602002602001015160c00151612e0e565b8061194a81614fa9565b915050611801565b5061195c81613371565b50565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152603960205260409020546060918291339186911682146119f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f434c41494d45525f554e415554484f52495a454400000000000000000000000060448201526064016106fe565b73ffffffffffffffffffffffffffffffffffffffff8616611a75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f494e56414c49445f555345525f4144445245535300000000000000000000000060448201526064016106fe565b73ffffffffffffffffffffffffffffffffffffffff8516611af2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f494e56414c49445f544f5f41444452455353000000000000000000000000000060448201526064016106fe565b611aff8888338989613c22565b93509350505094509492505050565b60008060005b60045481101561167c576001600060048381548110611b3557611b35614f19565b60009182526020808320919091015473ffffffffffffffffffffffffffffffffffffffff908116845283820194909452604092830182208885168352815282822093891682526001909301909252902054611bb3906d010000000000000000000000000090046fffffffffffffffffffffffffffffffff1683614fe1565b915080611bbf81614fa9565b915050611b14565b60606003805480602002602001604051908101604052809291908181526020018280548015611c2c57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611c01575b5050505050905090565b60608073ffffffffffffffffffffffffffffffffffffffff8316611cb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f494e56414c49445f544f5f41444452455353000000000000000000000000000060448201526064016106fe565b611cc38585333387613c22565b91509150935093915050565b606080611cdf8484333333613c22565b915091509250929050565b60065460039060ff1680611cfd5750303b155b80611d09575060055481115b611d95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201527f656e20696e697469616c697a656400000000000000000000000000000000000060648201526084016106fe565b60065460ff16158015611dd357600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560058290555b603c80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673a1b5f2cc9b407177cd8a4acf1699fa0b99955a229081179091556040516000907f6622677f7aa2d83adfa9d1296da4d78318036d992ef624d17c5034fb1f02d315908290a38015610d0657600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611f11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f4e4c595f454d495353494f4e5f4d414e41474552000000000000000000000060448201526064016106fe565b73ffffffffffffffffffffffffffffffffffffffff838116600081815260016020908152604080832094871680845294825291829020805463ffffffff8781167c01000000000000000000000000000000000000000000000000000000008181027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff85161780865560029095015487516affffffffffffffffffffff6d010000000000000000000000000090970496909616808752968601969096529092041693820184905260608201526080810191909152909291907fac1777479f07f3e7c34da8402139d54027a6a260caaae168bdee825ca5580dc59060a00160405180910390a350505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146120b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f4e4c595f454d495353494f4e5f4d414e41474552000000000000000000000060448201526064016106fe565b611514828261320b565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461215f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f4e4c595f454d495353494f4e5f4d414e41474552000000000000000000000060448201526064016106fe565b73ffffffffffffffffffffffffffffffffffffffff82811660008181526039602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169486169485179055517f4925eafc82d0c4d67889898eeed64b18488ab19811e61620f387026dec126a289190a35050565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461227a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f4e4c595f454d495353494f4e5f4d414e41474552000000000000000000000060448201526064016106fe565b8281146122e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f494e56414c49445f494e5055540000000000000000000000000000000000000060448201526064016106fe565b60005b8381101561263c5773ffffffffffffffffffffffffffffffffffffffff8616600090815260016020526040812090818188888681811061232857612328614f19565b905060200201602081019061233d9190614924565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000206002830154909150700100000000000000000000000000000000900460ff1680158015906123b3575081547801000000000000000000000000000000000000000000000000900463ffffffff1615155b612419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f444953545249425554494f4e5f444f45535f4e4f545f4558495354000000000060448201526064016106fe565b6000612493838b73ffffffffffffffffffffffffffffffffffffffff1663b1bf962d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561246a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248e91906151a4565b614109565b5083549091506d010000000000000000000000000090046affffffffffffffffffffff168787878181106124c9576124c9614f19565b90506020020160208101906124de91906151bd565b84546affffffffffffffffffffff919091166d0100000000000000000000000000027fffffffffffffffff0000000000000000000000ffffffffffffffffffffffffff90911617845589898781811061253957612539614f19565b905060200201602081019061254e9190614924565b73ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fac1777479f07f3e7c34da8402139d54027a6a260caaae168bdee825ca5580dc5838b8b8b8181106125af576125af614f19565b90506020020160208101906125c491906151bd565b8854604080519384526affffffffffffffffffffff90921660208401527c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690820181905260608201526080810186905260a00160405180910390a35050505050808061263490614fa9565b9150506122e6565b505050505050565b600085600003612656575060006128d0565b600061266c856126678b8b89612a92565b6141ee565b60005b888110156128535760008a8a8381811061268b5761268b614f19565b90506020020160208101906126a09190614924565b73ffffffffffffffffffffffffffffffffffffffff81811660009081526001602081815260408084208b861685528252808420948d1684529390910190522054909150612710906d010000000000000000000000000090046fffffffffffffffffffffffffffffffff1684614fe1565b92508883116127835773ffffffffffffffffffffffffffffffffffffffff80821660009081526001602081815260408084208a861685528252808420948c1684529390910190522080547fffffff00000000000000000000000000000000ffffffffffffffffffffffffff169055612840565b600061278f8a856151d8565b905061279b81856151d8565b93506127a68161426f565b73ffffffffffffffffffffffffffffffffffffffff92831660009081526001602081815260408084208b881685528252808420968d1684529590910190529290922080546fffffffffffffffffffffffffffffffff939093166d0100000000000000000000000000027fffffff00000000000000000000000000000000ffffffffffffffffffffffffff9093169290921790915550612853565b508061284b81614fa9565b91505061266f565b50806000036128665760009150506128d0565b612871848483614315565b6040805173ffffffffffffffffffffffffffffffffffffffff8881168252602082018490528087169286821692918916917fc052130bc4ef84580db505783484b067ea8b71b3bca78a7e12db7aea8658f004910160405180910390a490505b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602052604081206002015460ff700100000000000000000000000000000000820416600a0a916fffffffffffffffffffffffffffffffff90911690819003612942575050612a8c565b60005b81816fffffffffffffffffffffffffffffffff161015612a885773ffffffffffffffffffffffffffffffffffffffff80881660009081526001602081815260408084206fffffffffffffffffffffffffffffffff8716855292830182528084205490941680845291905291812090806129be8389614109565b915091506000806129d2858d8d878d614441565b9150915082806129df5750805b15612a76578b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff167f3303facd24627943a92e9dc87cfbb34b15c49b726eec3ad3487c16be9ab8efe8878887604051612a6d939291909283526020830191909152604082015260600190565b60405180910390a45b50506001909401935061294592505050565b5050505b50505050565b60608267ffffffffffffffff811115612aad57612aad614c10565b604051908082528060200260200182016040528015612b1857816020015b612b056040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b815260200190600190039081612acb5790505b50905060005b8381101561167c57848482818110612b3857612b38614f19565b9050602002016020810190612b4d9190614924565b828281518110612b5f57612b5f614f19565b602090810291909101015173ffffffffffffffffffffffffffffffffffffffff9091169052848482818110612b9657612b96614f19565b9050602002016020810190612bab9190614924565b6040517f0afbcdc900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529190911690630afbcdc9906024016040805180830381865afa158015612c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c3c91906151eb565b838381518110612c4e57612c4e614f19565b6020026020010151602001848481518110612c6b57612c6b614f19565b6020908102919091010151604001919091525280612c8881614fa9565b915050612b1e565b805173ffffffffffffffffffffffffffffffffffffffff90811660009081526001602090815260408083209386168352929052818120918301519091908290612cda908390613100565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600180860160205260409091200154909250905080158015612d4d575073ffffffffffffffffffffffffffffffffffffffff871660009081526001840160205260409020546cffffffffffffffffffffffffff1615155b15612dff57845173ffffffffffffffffffffffffffffffffffffffff16600090815260016020526040812060020154612d9e90700100000000000000000000000000000000900460ff16600a615114565b73ffffffffffffffffffffffffffffffffffffffff891660009081526001860160205260409020549091508190612df1906b033b2e3c9fd0803ce8000000906cffffffffffffffffffffffffff16615123565b612dfb919061513a565b9150505b6128d08560200151838361465a565b60008173ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7f91906151a4565b13612ee6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4f5241434c455f4d5553545f52455455524e5f5052494345000000000000000060448201526064016106fe565b73ffffffffffffffffffffffffffffffffffffffff8281166000818152603b602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169486169485179055517f1a1cd5483e52e60b9ff7f3b9d1db3bbd9e9d21c6324ad3a8c79dba9b75e62f4d9190a35050565b6000805b825181101561167c57828181518110612f8157612f81614f19565b60200260200101516020015160000361302f5760016000848381518110612faa57612faa614f19565b6020908102919091018101515173ffffffffffffffffffffffffffffffffffffffff9081168352828201939093526040918201600090812088851682528252828120938916815260019093019052902054613028906d010000000000000000000000000090046fffffffffffffffffffffffffffffffff1683614fe1565b91506130ee565b6001600084838151811061304557613045614f19565b6020908102919091018101515173ffffffffffffffffffffffffffffffffffffffff908116835282820193909352604091820160009081208885168252825282812093891681526001909301905290205483516d01000000000000000000000000009091046fffffffffffffffffffffffffffffffff16906130d7908790879087908690811061129557611295614f19565b6130e19190614fe1565b6130eb9083614fe1565b91505b806130f881614fa9565b915050612f66565b60028201548254600091829163ffffffff7c010000000000000000000000000000000000000000000000000000000082048116916affffffffffffffffffffff6d01000000000000000000000000008204169178010000000000000000000000000000000000000000000000009091041681158061317c575086155b8061318657504281145b806131915750828110155b156131a55783849550955050505050611758565b60008342116131b457426131b6565b835b905060006131c483836151d8565b905060006b033b2e3c9fd0803ce80000006131df8387615123565b6131e99190615123565b8a90049050866131f98183614fe1565b98509850505050505050509250929050565b73ffffffffffffffffffffffffffffffffffffffff8116613288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f53545241544547595f43414e5f4e4f545f42455f5a45524f000000000000000060448201526064016106fe565b6001813b1515146132f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f53545241544547595f4d5553545f42455f434f4e54524143540000000000000060448201526064016106fe565b73ffffffffffffffffffffffffffffffffffffffff8281166000818152603a602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169486169485179055517f8ca1d928f1d72493a6b78c4f74aabde976bc37ffe2570f2a1ce5a8abd3dde0aa9190a35050565b60005b8151811015611514576001600083838151811061339357613393614f19565b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160109054906101000a900460ff1660ff1660000361346d57600482828151811061340857613408614f19565b6020908102919091018101516060015182546001810184556000938452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790555b81818151811061347f5761347f614f19565b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134f9919061520f565b6001600084848151811061350f5761350f614f19565b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160106101000a81548160ff021916908360ff16021790555060006001600084848151811061358857613588614f19565b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008484815181106135e5576135e5614f19565b60200260200101516080015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160189054906101000a900463ffffffff1663ffffffff1660000361385f5782828151811061366157613661614f19565b6020026020010151608001516001600085858151811061368357613683614f19565b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000600160008787815181106136e4576136e4614f19565b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008484815181106137d0576137d0614f19565b6020908102919091018101516060015173ffffffffffffffffffffffffffffffffffffffff168252810191909152604001600090812060020180546fffffffffffffffffffffffffffffffff169161382783615175565b91906101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505b6002600084848151811061387557613875614f19565b6020908102919091018101516080015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160009081205460ff16151590036139a5576001600260008585815181106138cf576138cf614f19565b60200260200101516080015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600383838151811061394057613940614f19565b6020908102919091018101516080015182546001810184556000938452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790555b60006139ce828585815181106139bd576139bd614f19565b602002602001015160200151614109565b50825485519192506d010000000000000000000000000081046affffffffffffffffffffff16917c010000000000000000000000000000000000000000000000000000000090910463ffffffff1690869086908110613a2f57613a2f614f19565b60209081029190910101515184546affffffffffffffffffffff9091166d0100000000000000000000000000027fffffffffffffffff0000000000000000000000ffffffffffffffffffffffffff9091161784558551869086908110613a9757613a97614f19565b602090810291909101015160400151845463ffffffff9091167c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091161784558551869086908110613b0657613b06614f19565b60200260200101516080015173ffffffffffffffffffffffffffffffffffffffff16868681518110613b3a57613b3a614f19565b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff167fac1777479f07f3e7c34da8402139d54027a6a260caaae168bdee825ca5580dc584898981518110613b9057613b90614f19565b602002602001015160000151858b8b81518110613baf57613baf614f19565b60200260200101516040015189604051613c039594939291906affffffffffffffffffffff958616815293909416602084015263ffffffff9182166040840152166060820152608081019190915260a00190565b60405180910390a3505050508080613c1a90614fa9565b915050613374565b60035460609081908067ffffffffffffffff811115613c4357613c43614c10565b604051908082528060200260200182016040528015613c6c578160200160208202803683370190505b5092508067ffffffffffffffff811115613c8857613c88614c10565b604051908082528060200260200182016040528015613cb1578160200160208202803683370190505b509150613cc3856126678a8a89612a92565b60005b87811015613fd1576000898983818110613ce257613ce2614f19565b9050602002016020810190613cf79190614924565b905060005b83811015613fbc57600073ffffffffffffffffffffffffffffffffffffffff16868281518110613d2e57613d2e614f19565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603613ddc5760038181548110613d6457613d64614f19565b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868281518110613da157613da1614f19565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040812087518290899085908110613e1757613e17614f19565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff90811683528282019390935260409182016000908120938d168152600190930190529020546d010000000000000000000000000090046fffffffffffffffffffffffffffffffff1690508015613fa95780868381518110613e9b57613e9b614f19565b60200260200101818151613eaf9190614fe1565b90525073ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260408120885182908a9086908110613eed57613eed614f19565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600d6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b5080613fb481614fa9565b915050613cfc565b50508080613fc990614fa9565b915050613cc6565b5060005b818110156140fd5761401a85858381518110613ff357613ff3614f19565b602002602001015185848151811061400d5761400d614f19565b6020026020010151614315565b8473ffffffffffffffffffffffffffffffffffffffff1684828151811061404357614043614f19565b602002602001015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fc052130bc4ef84580db505783484b067ea8b71b3bca78a7e12db7aea8658f0048a8786815181106140ac576140ac614f19565b60200260200101516040516140e392919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b60405180910390a4806140f581614fa9565b915050613fd5565b50509550959350505050565b6000806000806141198686613100565b91509150600082821461418b575060028601819055600161413942614689565b875463ffffffff919091167801000000000000000000000000000000000000000000000000027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff9091161787556141e2565b61419442614689565b875463ffffffff919091167801000000000000000000000000000000000000000000000000027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff9091161787555b90969095509350505050565b60005b8151811015610d065761425d82828151811061420f5761420f614f19565b6020026020010151600001518484848151811061422e5761422e614f19565b60200260200101516020015185858151811061424c5761424c614f19565b6020026020010151604001516128db565b8061426781614fa9565b9150506141f1565b60006fffffffffffffffffffffffffffffffff821115614311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f323820626974730000000000000000000000000000000000000000000000000060648201526084016106fe565b5090565b73ffffffffffffffffffffffffffffffffffffffff8281166000818152603a60205260408082205490517f16beb9820000000000000000000000000000000000000000000000000000000081528785166004820152602481019390935260448301859052909216919082906316beb982906064016020604051808303816000875af11580156143a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143cc9190615232565b905060018115151461443a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f5452414e534645525f4552524f5200000000000000000000000000000000000060448201526064016106fe565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260018087016020526040822001548190801580156144b0575073ffffffffffffffffffffffffffffffffffffffff871660009081526001890160205260409020546cffffffffffffffffffffffffff1615155b156145655773ffffffffffffffffffffffffffffffffffffffff871660009081526001890160205260409020548490614505906b033b2e3c9fd0803ce8000000906cffffffffffffffffffffffffff16615123565b61450f919061513a565b73ffffffffffffffffffffffffffffffffffffffff881660009081526001808b01602052604090912080547fffffffffffffffffffffffffffffffffffffff000000000000000000000000001681550181905590505b600081861480159061464b5773ffffffffffffffffffffffffffffffffffffffff891660009081526001808c01602052604090912001879055871561464b576145af88888561465a565b91506145ba8261426f565b73ffffffffffffffffffffffffffffffffffffffff8a16600090815260018c01602052604090208054600d906146149084906d010000000000000000000000000090046fffffffffffffffffffffffffffffffff16615254565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b90999098509650505050505050565b60008061466783856151d8565b6146719086615123565b6b033b2e3c9fd0803ce8000000900495945050505050565b600063ffffffff821115614311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f322062697473000000000000000000000000000000000000000000000000000060648201526084016106fe565b60008083601f84011261473157600080fd5b50813567ffffffffffffffff81111561474957600080fd5b6020830191508360208260051b850101111561175857600080fd5b60008060008060008060008060008060a08b8d03121561478357600080fd5b8a3567ffffffffffffffff8082111561479b57600080fd5b6147a78e838f0161471f565b909c509a5060208d01359150808211156147c057600080fd5b6147cc8e838f0161471f565b909a50985060408d01359150808211156147e557600080fd5b6147f18e838f0161471f565b909850965060608d013591508082111561480a57600080fd5b6148168e838f0161471f565b909650945060808d013591508082111561482f57600080fd5b5061483c8d828e0161471f565b915080935050809150509295989b9194979a5092959850565b73ffffffffffffffffffffffffffffffffffffffff8116811461195c57600080fd5b6000806040838503121561488a57600080fd5b823561489581614855565b915060208301356148a581614855565b809150509250929050565b6000806000806000608086880312156148c857600080fd5b853567ffffffffffffffff8111156148df57600080fd5b6148eb8882890161471f565b90965094505060208601359250604086013561490681614855565b9150606086013561491681614855565b809150509295509295909350565b60006020828403121561493657600080fd5b813561494181614855565b9392505050565b60008060006060848603121561495d57600080fd5b833561496881614855565b95602085013595506040909401359392505050565b60008060008060008060a0878903121561499657600080fd5b863567ffffffffffffffff8111156149ad57600080fd5b6149b989828a0161471f565b9097509550506020870135935060408701356149d481614855565b925060608701356149e481614855565b915060808701356149f481614855565b809150509295509295509295565b600080600060408486031215614a1757600080fd5b833567ffffffffffffffff811115614a2e57600080fd5b614a3a8682870161471f565b9094509250506020840135614a4e81614855565b809150509250925092565b600081518084526020808501945080840160005b83811015614a9f57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614a6d565b509495945050505050565b604081526000614abd6040830185614a59565b82810360208481019190915284518083528582019282019060005b81811015614af457845183529383019391830191600101614ad8565b5090979650505050505050565b600080600060608486031215614b1657600080fd5b8335614b2181614855565b92506020840135614b3181614855565b91506040840135614a4e81614855565b60008060008060608587031215614b5757600080fd5b843567ffffffffffffffff811115614b6e57600080fd5b614b7a8782880161471f565b909550935050602085013591506040850135614b9581614855565b939692955090935050565b6020815260006149416020830184614a59565b60008060008060608587031215614bc957600080fd5b843567ffffffffffffffff811115614be057600080fd5b614bec8782880161471f565b9095509350506020850135614c0081614855565b91506040850135614b9581614855565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715614c6257614c62614c10565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614caf57614caf614c10565b604052919050565b80356affffffffffffffffffffff81168114614cd257600080fd5b919050565b803563ffffffff81168114614cd257600080fd5b60006020808385031215614cfe57600080fd5b823567ffffffffffffffff80821115614d1657600080fd5b818501915085601f830112614d2a57600080fd5b813581811115614d3c57614d3c614c10565b614d4a848260051b01614c68565b818152848101925060e0918202840185019188831115614d6957600080fd5b938501935b82851015614e0d5780858a031215614d865760008081fd5b614d8e614c3f565b614d9786614cb7565b815286860135878201526040614dae818801614cd7565b90820152606086810135614dc181614855565b90820152608086810135614dd481614855565b9082015260a086810135614de781614855565b9082015260c086810135614dfa81614855565b9082015284529384019392850192614d6e565b50979650505050505050565b60008060208385031215614e2c57600080fd5b823567ffffffffffffffff811115614e4357600080fd5b6141e28582860161471f565b600080600060608486031215614e6457600080fd5b8335614e6f81614855565b92506020840135614e7f81614855565b9150614e8d60408501614cd7565b90509250925092565b600080600080600060608688031215614eae57600080fd5b8535614eb981614855565b9450602086013567ffffffffffffffff80821115614ed657600080fd5b614ee289838a0161471f565b90965094506040880135915080821115614efb57600080fd5b50614f088882890161471f565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215614f5a57600080fd5b81356fffffffffffffffffffffffffffffffff8116811461494157600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614fda57614fda614f7a565b5060010190565b80820180821115610c5c57610c5c614f7a565b600181815b8085111561504d57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561503357615033614f7a565b8085161561504057918102915b93841c9390800290614ff9565b509250929050565b60008261506457506001610c5c565b8161507157506000610c5c565b81600181146150875760028114615091576150ad565b6001915050610c5c565b60ff8411156150a2576150a2614f7a565b50506001821b610c5c565b5060208310610133831016604e8410600b84101617156150d0575081810a610c5c565b6150da8383614ff4565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561510c5761510c614f7a565b029392505050565b600061494160ff841683615055565b8082028115828204841417610c5c57610c5c614f7a565b600082615170577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006fffffffffffffffffffffffffffffffff80831681810361519a5761519a614f7a565b6001019392505050565b6000602082840312156151b657600080fd5b5051919050565b6000602082840312156151cf57600080fd5b61494182614cb7565b81810381811115610c5c57610c5c614f7a565b600080604083850312156151fe57600080fd5b505080516020909101519092909150565b60006020828403121561522157600080fd5b815160ff8116811461494157600080fd5b60006020828403121561524457600080fd5b8151801515811461494157600080fd5b6fffffffffffffffffffffffffffffffff81811683821601908082111561527d5761527d614f7a565b509291505056fea26469706673582212200de928c2a99fbdf424e37e7c773a87ba0d877bb2c673c6fe239c4d0119d70ba164736f6c634300081500330000000000000000000000006e081f9ebb2b2f07c2f771074ebb32ddac141d14