0 txs
1 call
constructor
constructor(address _nonfungiblePositionManager, address _universalRouter, address _zeroxAllowanceHolder, address _permit2)
functions
factory
viewfunction factory() view returns (address)
nonfungiblePositionManager
viewfunction nonfungiblePositionManager() view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
permit2
viewfunction permit2() view returns (address)
universalRouter
viewfunction universalRouter() view returns (address)
vaults
viewfunction vaults(address) view returns (bool)
weth
viewfunction weth() view returns (address)
zeroxAllowanceHolder
viewfunction zeroxAllowanceHolder() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
execute
nonpayablefunction execute(uint256 tokenId, tuple instructions) returns (uint256 newTokenId)
executeWithPermit
nonpayablefunction executeWithPermit(uint256 tokenId, tuple instructions, uint8 v, bytes32 r, bytes32 s) returns (uint256 newTokenId)
onERC721Received
nonpayablefunction onERC721Received(address, address from, uint256 tokenId, bytes data) returns (bytes4)
renounceOwnership
nonpayablefunction renounceOwnership()
setVault
nonpayablefunction setVault(address _vault)
swap
payablefunction swap(tuple params) payable returns (uint256 amountOut)
swapAndIncreaseLiquidity
payablefunction swapAndIncreaseLiquidity(tuple params) payable returns (uint128 liquidity, uint256 amount0, uint256 amount1)
swapAndMint
payablefunction swapAndMint(tuple params) payable returns (uint256 tokenId, uint128 liquidity, uint256 amount0, uint256 amount1)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
uniswapV3SwapCallback
nonpayablefunction uniswapV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes data)
events
ChangeRange
event ChangeRange(uint256 indexed tokenId, uint256 newTokenId)
CompoundFees
event CompoundFees(uint256 indexed tokenId, uint128 liquidity, uint256 amount0, uint256 amount1)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Swap
event Swap(address indexed tokenIn, address indexed tokenOut, uint256 amountIn, uint256 amountOut)
SwapAndIncreaseLiquidity
event SwapAndIncreaseLiquidity(uint256 indexed tokenId, uint128 liquidity, uint256 amount0, uint256 amount1)
SwapAndMint
event SwapAndMint(uint256 indexed tokenId, uint128 liquidity, uint256 amount0, uint256 amount1)
VaultSet
event VaultSet(address newVault)
WithdrawAndCollectAndSwap
event WithdrawAndCollectAndSwap(uint256 indexed tokenId, address token, uint256 amount)
errors
AmountError
error AmountError()
ChainlinkPriceError
error ChainlinkPriceError()
CollateralFactorExceedsMax
error CollateralFactorExceedsMax()
CollateralFail
error CollateralFail()
CollateralValueLimit
error CollateralValueLimit()
CollectError
error CollectError()
DailyDebtIncreaseLimit
error DailyDebtIncreaseLimit()
DailyLendIncreaseLimit
error DailyLendIncreaseLimit()
DebtChanged
error DebtChanged()
EtherSendFailed
error EtherSendFailed()
ExceedsMaxReward
error ExceedsMaxReward()
GlobalDebtLimit
error GlobalDebtLimit()
GlobalLendLimit
error GlobalLendLimit()
InsufficientLiquidity
error InsufficientLiquidity()
InterestNotUpdated
error InterestNotUpdated()
InvalidAllowanceHolder
error InvalidAllowanceHolder()
InvalidConfig
error InvalidConfig()
InvalidPool
error InvalidPool()
InvalidToken
error InvalidToken()
MinLoanSize
error MinLoanSize()
MissingSwapData
error MissingSwapData()
NeedsRepay
error NeedsRepay()
NoEtherToken
error NoEtherToken()
NoLiquidity
error NoLiquidity()
NoSharesRepayed
error NoSharesRepayed()
NotConfigured
error NotConfigured()
NotEnoughReward
error NotEnoughReward()
NotLiquidatable
error NotLiquidatable()
NotReady
error NotReady()
NotSupportedFeeTier
error NotSupportedFeeTier()
NotSupportedWhatToDo
error NotSupportedWhatToDo()
NotWETH
error NotWETH()
PriceDifferenceExceeded
error PriceDifferenceExceeded()
Reentrancy
error Reentrancy()
SameRange
error SameRange()
SameToken
error SameToken()
SelfSend
error SelfSend()
SequencerDown
error SequencerDown()
SequencerGracePeriodNotOver
error SequencerGracePeriodNotOver()
SlippageError
error SlippageError()
SwapAmountTooLarge
error SwapAmountTooLarge()
SwapFailed
error SwapFailed()
TooMuchEtherSent
error TooMuchEtherSent()
TransferError
error TransferError()
TransformFailed
error TransformFailed()
TransformNotAllowed
error TransformNotAllowed()
TWAPCheckFailed
error TWAPCheckFailed()
Unauthorized
error Unauthorized()
WrongContract
error WrongContract()
creation bytecode
0x61014060405234801562000011575f80fd5b5060405162005245380380620052458339810160408190526200003491620001d2565b838383620000423362000150565b826001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200007f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000a5919062000237565b6001600160a01b03166080816001600160a01b031681525050826001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000121919062000237565b6001600160a01b0390811660a05292831660c05290821660e0528116610100521661012052506200025c915050565b600180546001600160a01b03191690556200016b816200016e565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200016b575f80fd5b5f805f8060808587031215620001e6575f80fd5b8451620001f381620001bd565b60208601519094506200020681620001bd565b60408601519093506200021981620001bd565b60608601519092506200022c81620001bd565b939692955090935050565b5f6020828403121562000248575f80fd5b81516200025581620001bd565b9392505050565b60805160a05160c05160e0516101005161012051614ec86200037d5f395f81816101830152611c8001525f818161042b015281816121750152818161221101526122bb01525f818161023801528181612065015281816120bc015261210801525f818161038d015281816104d3015281816105710152818161060c015281816106dc01528181610bd401528181610d1e01528181610d480152818161264a015281816127020152818161294101528181612c4601528181612e6f015281816138510152818161387e015281816138b301526138e201525f81816103c0015261301801525f818161012e0152818161026b01528181612472015281816124b70152818161310f01528181613189015281816131eb01526132480152614ec85ff3fe60806040526004361061011e575f3560e01c8063a622ee7c1161009d578063d2a5e66d11610062578063d2a5e66d1461041a578063dc3253a01461044d578063e30c39781461046c578063f2fde38b14610489578063fa461e33146104a8575f80fd5b8063a622ee7c14610303578063b1902ece14610341578063b44a27221461037c578063c45a0155146103af578063c5f5280a146103e2575f80fd5b80636817031b116100e35780636817031b1461028d578063715018a6146102ac57806379ba5097146102c05780638176835d146102d45780638da5cb5b146102e7575f80fd5b806312261ee714610172578063150b7a02146101c257806321729922146101fa57806335a9e4df146102275780633fc8cef31461025a575f80fd5b3661016e57336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461016c57604051635724f38560e01b815260040160405180910390fd5b005b5f80fd5b34801561017d575f80fd5b506101a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101cd575f80fd5b506101e16101dc366004613ced565b6104c7565b6040516001600160e01b031990911681526020016101b9565b348015610205575f80fd5b50610219610214366004614131565b6105ea565b6040519081526020016101b9565b348015610232575f80fd5b506101a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610265575f80fd5b506101a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610298575f80fd5b5061016c6102a736600461419b565b61074f565b3480156102b7575f80fd5b5061016c6107b6565b3480156102cb575f80fd5b5061016c6107c9565b6102196102e23660046141bd565b610848565b3480156102f2575f80fd5b505f546001600160a01b03166101a5565b34801561030e575f80fd5b5061033161031d36600461419b565b60026020525f908152604090205460ff1681565b60405190151581526020016101b9565b61035461034f3660046141f4565b610a4e565b604080519485526001600160801b0390931660208501529183015260608201526080016101b9565b348015610387575f80fd5b506101a57f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ba575f80fd5b506101a57f000000000000000000000000000000000000000000000000000000000000000081565b6103f56103f036600461422b565b610bac565b604080516001600160801b0390941684526020840192909252908201526060016101b9565b348015610425575f80fd5b506101a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610458575f80fd5b50610219610467366004614262565b610d18565b348015610477575f80fd5b506001546001600160a01b03166101a5565b348015610494575f80fd5b5061016c6104a336600461419b565b611829565b3480156104b3575f80fd5b5061016c6104c23660046142a5565b611899565b5f336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461051157604051630d348b9b60e41b815260040160405180910390fd5b306001600160a01b0386160361053a57604051632797715160e01b815260040160405180910390fd5b5f610547838501856142f3565b90506105538582610d18565b506102c0810151604051635c46a7ef60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163b88d4fde916105aa9130918b918b91600401614371565b5f604051808303815f87803b1580156105c1575f80fd5b505af11580156105d3573d5f803e3d5ffd5b50630a85bd0160e11b9a9950505050505050505050565b6040516331a9108f60e11b8152600481018690525f9033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610651573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067591906143ae565b6001600160a01b03161461069b576040516282b42960e81b815260040160405180910390fd5b610240850151604051637ac2ff7b60e01b815230600482015260248101889052604481019190915260ff851660648201526084810184905260a481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637ac2ff7b9060c4015f604051808303815f87803b158015610725575f80fd5b505af1158015610737573d5f803e3d5ffd5b505050506107458686610d18565b9695505050505050565b610757611917565b6040516001600160a01b03821681527fe7ae49f883c825b05681b3e00e8be6fdea9ed2a8a45e4c6ecb9390fc44cce6159060200160405180910390a16001600160a01b03165f908152600260205260409020805460ff19166001179055565b6107be611917565b6107c75f611970565b565b60015433906001600160a01b0316811461083c5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084015b60405180910390fd5b61084581611970565b50565b5f610859604083016020840161419b565b6001600160a01b031661086f602084018461419b565b6001600160a01b0316036108965760405163100dac0560e11b815260040160405180910390fd5b6108a360e08301836143c9565b1590506108f2575f806108b960e08501856143c9565b8101906108c6919061442d565b90925090506108eb6108db602086018661419b565b5f8087604001355f808888611989565b5050610910565b610910610902602084018461419b565b5f8085604001355f80611ed9565b6040805160a081019091525f906109bc908061092f602087018761419b565b6001600160a01b03168152602001856020016020810190610950919061419b565b6001600160a01b031681526020018560400135815260200185606001358152602001858060a0019061098291906143c9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250611f32565b9250905081156109ff576109ff6109d960a085016080860161419b565b6109e9604086016020870161419b565b846109fa60e0880160c0890161453c565b61245e565b5f610a0e82604086013561456b565b90508015610a4757610a47610a2960a086016080870161419b565b610a36602087018761419b565b836109fa60e0890160c08a0161453c565b5050919050565b5f808080610a62604086016020870161419b565b6001600160a01b0316610a78602087018761419b565b6001600160a01b031603610a9f5760405163100dac0560e11b815260040160405180910390fd5b610aad6102808601866143c9565b159050610b34575f80610ac46102808801886143c9565b810190610ad1919061442d565b9092509050610b2d610ae6602089018961419b565b610af660408a0160208b0161419b565b610b086101608b016101408c0161419b565b60a08b013560c08c0135610b266101c08e01356101608f0135614584565b8888611989565b5050610b89565b610b89610b44602087018761419b565b610b54604088016020890161419b565b610b6661016089016101408a0161419b565b60a089013560c08a0135610b846101c08c01356101608d0135614584565b611ed9565b610b9d610b9586614597565b34151561259d565b92989197509550909350915050565b60405163133f757160e31b8152813560048201525f9081908190819081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906399fbab889060240161018060405180830381865afa158015610c1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c3e9190614765565b505050505050505093509350505085806101c00190610c5d91906143c9565b159050610cc1575f80610c746101c08901896143c9565b810190610c81919061442d565b9092509050610cba8484610c9b60c08c0160a08d0161419b565b8b602001358c604001358d61012001358e60c00135610b269190614584565b5050610cf3565b610cf38282610cd660c08a0160a08b0161419b565b60208a013560408b0135610b846101208d013560c08e0135614584565b610d09610cff8761483e565b83833415156127db565b91989097509095509350505050565b5f610d437f000000000000000000000000000000000000000000000000000000000000000084612a7f565b5f805f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166399fbab88876040518263ffffffff1660e01b8152600401610d9491815260200190565b61018060405180830381865afa158015610db0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd49190614765565b5050505097505050509450945050505f80866101e001516001600160801b03165f14610e1f57610e1988886101e001518961024001518a604001518b60600151612bc7565b90925090505b610eb88886866001600160801b0380168b61014001516001600160801b031614610e6a57610e658b61014001516001600160801b031687610e609190614584565b612cbf565b610e73565b6001600160801b035b6101608c01516001600160801b0390811614610eab57610ea68c61016001516001600160801b031687610e609190614584565b612d2b565b6001600160801b03612d2b565b60808901519193509150821080610ed257508660e0015181105b15610ef057604051634ff64a9f60e01b815260040160405180910390fd5b600287516002811115610f0557610f05614948565b036111f457846001600160a01b031687602001516001600160a01b031603610ff757610feb604051806101e001604052808a81526020018481526020018381526020018961026001516001600160a01b031681526020018961024001518152602001866001600160a01b031681526020018960e001518152602001896101000151815260200189610120015181526020015f81526020015f815260200160405180602001604052805f81525081526020018961020001518152602001896102200151815260200160405180602001604052805f81525081525086868a6102a001516127db565b919450925090506111a2565b836001600160a01b031687602001516001600160a01b0316036110d657610feb604051806101e001604052808a81526020018481526020018381526020018961026001516001600160a01b031681526020018961024001518152602001876001600160a01b031681526020015f81526020015f815260200160405180602001604052805f8152508152602001896080015181526020018960a0015181526020018960c0015181526020018961020001518152602001896102200151815260200160405180602001604052805f81525081525086868a6102a001516127db565b61119a604051806101e001604052808a81526020018481526020018381526020018961026001516001600160a01b0316815260200189610240015181526020015f6001600160a01b031681526020015f81526020015f815260200160405180602001604052805f81525081526020015f81526020015f815260200160405180602001604052805f81525081526020018961020001518152602001896102200151815260200160405180602001604052805f81525081525086868a6102a001516127db565b919450925090505b604080516001600160801b03851681526020810184905290810182905288907faede78842f79342b251fe687b26b9f00d35eec5b0d21d44c283dd01a5ad7c136906060015b60405180910390a261181e565b5f8751600281111561120857611208614948565b036115f957846001600160a01b031687602001516001600160a01b03160361135b5761134f604051806102a00160405280876001600160a01b03168152602001866001600160a01b0316815260200189610180015162ffffff168152602001896101a0015160020b8152602001896101c0015160020b81526020018481526020018381526020018961026001516001600160a01b031681526020018961028001516001600160a01b031681526020018961024001518152602001866001600160a01b031681526020018960e001518152602001896101000151815260200189610120015181526020015f81526020015f815260200160405180602001604052805f815250815260200189610200015181526020018961022001518152602001896102e00151815260200160405180602001604052805f815250815250886102a0015161259d565b509197506115c7915050565b836001600160a01b031687602001516001600160a01b03160361149b5761134f604051806102a00160405280876001600160a01b03168152602001866001600160a01b0316815260200189610180015162ffffff168152602001896101a0015160020b8152602001896101c0015160020b81526020018481526020018381526020018961026001516001600160a01b031681526020018961028001516001600160a01b031681526020018961024001518152602001876001600160a01b031681526020015f81526020015f815260200160405180602001604052805f8152508152602001896080015181526020018960a0015181526020018960c00151815260200189610200015181526020018961022001518152602001896102e00151815260200160405180602001604052805f815250815250886102a0015161259d565b6115c0604051806102a00160405280876001600160a01b03168152602001866001600160a01b0316815260200189610180015162ffffff168152602001896101a0015160020b8152602001896101c0015160020b81526020018481526020018381526020018961026001516001600160a01b031681526020018961028001516001600160a01b0316815260200189610240015181526020015f6001600160a01b031681526020015f81526020015f815260200160405180602001604052805f81525081526020015f81526020015f815260200160405180602001604052805f815250815260200189610200015181526020018961022001518152602001896102e00151815260200160405180602001604052805f815250815250886102a0015161259d565b5091975050505b877f2d3b242342e1e892c96167e80cea1f82a3961348e1576320d5e93deaa75d3689876040516111e791815260200190565b60018751600281111561160e5761160e614948565b03611805575f87602001516001600160a01b0316866001600160a01b0316146116bf575f806116806040518060a001604052808a6001600160a01b031681526020018c602001516001600160a01b031681526020018781526020018c60a0015181526020018c60c00151815250611f32565b91509150848210156116ac576102608a01516116ac90896116a1858961456b565b8d6102a0015161245e565b6116b68184614584565b925050506116cc565b6116c98382614584565b90505b87602001516001600160a01b0316856001600160a01b03161461176e575f8061173a6040518060a00160405280896001600160a01b031681526020018c602001516001600160a01b031681526020018681526020018c610100015181526020018c6101200151815250611f32565b915091508382101561175b576102608a015161175b90886116a1858861456b565b6117658184614584565b9250505061177b565b6117788282614584565b90505b8015801590611796575060208801516001600160a01b031615155b156117b5576117b58861026001518960200151838b6102a0015161245e565b602080890151604080516001600160a01b0390921682529181018390528a917ff8aacb16b34d229aa53d44a7759a3741b5c098e099666e51a4ae9d66a5956c43910160405180910390a25061181e565b60405163290db76760e01b815260040160405180910390fd5b505050505092915050565b611831611917565b600180546001600160a01b0383166001600160a01b031990911681179091556118615f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f8413806118a657505f83135b6118ae575f80fd5b5f80806118bd8486018661495c565b91945092509050336118d0848484613012565b6001600160a01b0316146118f6576040516282b42960e81b815260040160405180910390fd5b61190e83335f8a13611908578861304f565b8961304f565b50505050505050565b5f546001600160a01b031633146107c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610833565b600180546001600160a01b0319169055610845816130b2565b6119c26040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6119d0898989898989613101565b6040840152602083015281528251515f906001600160401b038111156119f8576119f8613d5a565b604051908082528060200260200182016040528015611a3c57816020015b604080518082019091525f8082526020820152815260200190600190039081611a165790505b50825190915015611af5576040516370a0823160e01b81523060048201526001600160a01b038b16906370a0823190602401602060405180830381865afa158015611a89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aad91906149a4565b608083015260408051808201909152308152825160208201526060830180518391611ad7826149bb565b905281518110611ae957611ae96149d3565b60200260200101819052505b602082015115611bb0576040516370a0823160e01b81523060048201526001600160a01b038a16906370a0823190602401602060405180830381865afa158015611b41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b6591906149a4565b60a083015260408051808201909152308152602080840151908201526060830180518391611b92826149bb565b905281518110611ba457611ba46149d3565b60200260200101819052505b604082015115611c69576040516370a0823160e01b81523060048201526001600160a01b038916906370a0823190602401602060405180830381865afa158015611bfc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c2091906149a4565b60c08301526040805180820182523081529083015160208201526060830180518391611c4b826149bb565b905281518110611c5d57611c5d6149d3565b60200260200101819052505b60405163edd9444b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063edd9444b90611cbb908790859033908990600401614a3e565b5f604051808303815f87803b158015611cd2575f80fd5b505af1158015611ce4573d5f803e3d5ffd5b50508351159150611d86905057815160808301516040516370a0823160e01b81523060048201526001600160a01b038d16906370a0823190602401602060405180830381865afa158015611d3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d5e91906149a4565b611d68919061456b565b14611d86576040516313ff771f60e21b815260040160405180910390fd5b602082015115611e2857602082015160a08301516040516370a0823160e01b81523060048201526001600160a01b038c16906370a0823190602401602060405180830381865afa158015611ddc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e0091906149a4565b611e0a919061456b565b14611e28576040516313ff771f60e21b815260040160405180910390fd5b604082015115611ecd5760408083015160c084015191516370a0823160e01b81523060048201529091906001600160a01b038b16906370a0823190602401602060405180830381865afa158015611e81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ea591906149a4565b611eaf919061456b565b14611ecd576040516313ff771f60e21b815260040160405180910390fd5b50505050505050505050565b5f805f611eea898989898989613101565b925092509250825f14611f0357611f038933308661334f565b8115611f1557611f158833308561334f565b8015611f2757611f278733308461334f565b505050505050505050565b5f8082604001515f14158015611f4c575060808301515115155b8015611f64575060208301516001600160a01b031615155b156124595782516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611fae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fd291906149a4565b60208501516040516370a0823160e01b81523060048201529192505f916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561201f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061204391906149a4565b90505f80866080015180602001905181019061205f9190614b37565b915091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603612173575f818060200190518101906120b19190614b7a565b90506120e5885f01517f00000000000000000000000000000000000000000000000000000000000000008a6040015161304f565b805160208201516040808401519051630d64d59360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693633593564c93612140939192909190600401614c7c565b5f604051808303815f87803b158015612157575f80fd5b505af1158015612169573d5f803e3d5ffd5b50505050506122e2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146122085760405162461bcd60e51b815260206004820152602b60248201527f496e76616c696420746172676574202d206d75737420626520307820416c6c6f60448201526a3bb0b731b2a437b63232b960a91b6064820152608401610833565b61223a875f01517f00000000000000000000000000000000000000000000000000000000000000008960400151613387565b5f826001600160a01b0316826040516122539190614cf5565b5f604051808303815f865af19150503d805f811461228c576040519150601f19603f3d011682016040523d82523d5f602084013e612291565b606091505b50509050806122b35760405163081ceff360e41b815260040160405180910390fd5b87516122e0907f00000000000000000000000000000000000000000000000000000000000000005f613431565b505b86516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612327573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061234b91906149a4565b612355908561456b565b60208801516040516370a0823160e01b815230600482015291975084916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156123a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123c691906149a4565b6123d0919061456b565b945086606001518510156123f757604051630d4205a160e11b815260040160405180910390fd5b86602001516001600160a01b0316875f01516001600160a01b03167ffa2dda1cc1b86e41239702756b13effbc1a092b5c57e3ad320fbe4f3b13fe235888860405161244c929190918252602082015260400190565b60405180910390a3505050505b915091565b80801561249c5750826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316145b1561258c57604051632e1a7d4d60e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d906024015f604051808303815f87803b158015612500575f80fd5b505af1158015612512573d5f803e3d5ffd5b505050505f846001600160a01b0316836040515f6040518083038185875af1925050503d805f811461255f576040519150601f19603f3d011682016040523d82523d5f602084013e612564565b606091505b505090508061258657604051637cd69c3960e11b815260040160405180910390fd5b50612597565b61259783858461304f565b50505050565b5f805f805f806125ad8888613544565b915091505f6040518061016001604052808a5f01516001600160a01b031681526020018a602001516001600160a01b031681526020018a6040015162ffffff1681526020018a6060015160020b81526020018a6080015160020b81526020018481526020018381526020018a610220015181526020018a61024001518152602001306001600160a01b031681526020018a610120015181525090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166388316456826040518263ffffffff1660e01b81526004016126949190614d10565b6080604051808303815f875af11580156126b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126d49190614dd4565b6101008d01516102608e0151604051635c46a7ef60e11b8152959c50939a5091985096506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263b88d4fde9261273b92309290918d91600401614371565b5f604051808303815f87803b158015612752575f80fd5b505af1158015612764573d5f803e3d5ffd5b5050604080516001600160801b038a168152602081018990529081018790528992507fdbed0571af71402c681d3b0a1f08d80aa2245c9adb30e12d215356c7a274fcf9915060600160405180910390a26127cf8960e001518a5f01518b6020015186868a8a8f61390e565b50505092959194509250565b5f805f805f6128fa604051806102a001604052808a6001600160a01b03168152602001896001600160a01b031681526020015f62ffffff1681526020015f60020b81526020015f60020b81526020018b6020015181526020018b6040015181526020018b606001516001600160a01b031681526020018b606001516001600160a01b031681526020018b6080015181526020018b60a001516001600160a01b031681526020018b60c0015181526020018b60e0015181526020018b610100015181526020018b610120015181526020018b610140015181526020018b610160015181526020018b610180015181526020018b6101a00151815260200160405180602001604052805f81525081526020018b6101c0015181525087613544565b915091505f6040518060c001604052808b5f015181526020018481526020018381526020018b610180015181526020018b6101a0015181526020018b6080015181525090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663219f5d17826040518263ffffffff1660e01b81526004016129c991905f60c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015292915050565b6060604051808303815f875af11580156129e5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a099190614e0f565b8c51604080516001600160801b0386168152602081018590529081018390529399509197509550907f1aa7d7662b161a8d4058004091e4c60474753d2f085db526dfb22da59838d0a79060600160405180910390a2612a728a606001518a8a86868a8a8e61390e565b5050509450945094915050565b335f9081526002602052604090205460ff1615612b1d575f336001600160a01b031663ae41abab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af791906149a4565b9050808214612b18576040516282b42960e81b815260040160405180910390fd5b505050565b6040516331a9108f60e11b8152600481018290525f906001600160a01b03841690636352211e90602401602060405180830381865afa158015612b62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b8691906143ae565b90506001600160a01b0381163314801590612baa57506001600160a01b0381163014155b15612b18576040516282b42960e81b815260040160405180910390fd5b5f806001600160801b03861615612cb5576040805160a0810182528881526001600160801b038089166020830190815282840188815260608401888152608085018b81529551630624e65f60e11b8152945160048601529151909216602484015290516044830152516064820152905160848201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630c49ccbe9060a40160408051808303815f875af1158015612c8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612caf9190614e43565b90925090505b9550959350505050565b5f6001600160801b03821115612d275760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401610833565b5090565b6040516370a0823160e01b81523060048201525f90819081906001600160a01b038816906370a0823190602401602060405180830381865afa158015612d73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d9791906149a4565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038816906370a0823190602401602060405180830381865afa158015612dde573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e0291906149a4565b604080516080810182528b815230602082019081526001600160801b038a81168385019081528a821660608501908152945163fc6f786560e01b81529351600485015291516001600160a01b039081166024850152915181166044840152925190921660648201529192507f0000000000000000000000000000000000000000000000000000000000000000169063fc6f78659060840160408051808303815f875af1158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190614e43565b6040516370a0823160e01b815230600482015291955093505f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612f21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f4591906149a4565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612f8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fb091906149a4565b905085612fbd858461456b565b14612fdb57604051638ad721cb60e01b815260040160405180910390fd5b84612fe6848361456b565b1461300457604051638ad721cb60e01b815260040160405180910390fd5b505050509550959350505050565b5f6130477f000000000000000000000000000000000000000000000000000000000000000061304286868661394c565b6139b6565b949350505050565b6040516001600160a01b038316602482015260448101829052612b1890849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613a9c565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f808080808034156132b1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015613166575f80fd5b505af1158015613178573d5f803e3d5ffd5b50505050508b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036131df57349250888311156131da576040516307e205e160e41b815260040160405180910390fd5b6132b1565b8a6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03160361323c57349150878211156131da576040516307e205e160e41b815260040160405180910390fd5b896001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603613298575034868111156131da576040516307e205e160e41b815260040160405180910390fd5b6040516392b0337360e01b815260040160405180910390fd5b828911156132c6576132c3838a61456b565b95505b818811156132db576132d8828961456b565b94505b80871180156132f257506001600160a01b038a1615155b80156133105750896001600160a01b03168c6001600160a01b031614155b801561332e5750896001600160a01b03168b6001600160a01b031614155b156133405761333d818861456b565b93505b50505096509650969350505050565b6040516001600160a01b03808516602483015283166044820152606481018290526125979085906323b872dd60e01b9060840161307b565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301525f919085169063dd62ed3e90604401602060405180830381865afa1580156133d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133f891906149a4565b90506125978463095ea7b360e01b856134118686614584565b6040516001600160a01b039092166024830152604482015260640161307b565b8015806134a95750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015613483573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134a791906149a4565b155b6135145760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610833565b6040516001600160a01b038316602482015260448101829052612b1890849063095ea7b360e01b9060640161307b565b5f80835f01516001600160a01b03168461014001516001600160a01b03160361361957836101c001518460a00151101561359157604051634ff64a9f60e01b815260040160405180910390fd5b5f806135ea6040518060a00160405280885f01516001600160a01b0316815260200188602001516001600160a01b03168152602001886101c001518152602001886101e001518152602001886102000151815250611f32565b91509150818660a001516135fe919061456b565b9350808660c001516136109190614584565b92505050613843565b83602001516001600160a01b03168461014001516001600160a01b0316036136ed578361016001518460c00151101561366557604051634ff64a9f60e01b815260040160405180910390fd5b5f806136be6040518060a0016040528088602001516001600160a01b03168152602001885f01516001600160a01b0316815260200188610160015181526020018861018001518152602001886101a00151815250611f32565b91509150818660c001516136d2919061456b565b9250808660a001516136e49190614584565b93505050613843565b6101408401516001600160a01b031615613836575f8061375b6040518060a001604052808861014001516001600160a01b03168152602001885f01516001600160a01b0316815260200188610160015181526020018861018001518152602001886101a00151815250611f32565b915091505f806137ba6040518060a001604052808a61014001516001600160a01b031681526020018a602001516001600160a01b031681526020018a6101c0015181526020018a6101e0015181526020018a6102000151815250611f32565b91509150828860a001516137ce9190614584565b9550808860c001516137e09190614584565b94505f82858a6101c001518b61016001516137fb9190614584565b613805919061456b565b61380f919061456b565b9050801561382c5761382c8960e001518a6101400151838b61245e565b5050505050613843565b505060a082015160c08301515b81156138a3578351613876907f00000000000000000000000000000000000000000000000000000000000000005f613431565b83516138a3907f000000000000000000000000000000000000000000000000000000000000000084613387565b8015613907576138d884602001517f00000000000000000000000000000000000000000000000000000000000000005f613431565b61390784602001517f000000000000000000000000000000000000000000000000000000000000000083613387565b9250929050565b5f613919848761456b565b90505f613926848761456b565b9050811561393a5761393a8a8a848661245e565b8015611ecd57611ecd8a89838661245e565b604080516060810182525f8082526020820181905291810191909152826001600160a01b0316846001600160a01b03161115613986579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b5f81602001516001600160a01b0316825f01516001600160a01b0316106139db575f80fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b5f613af0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613b6f9092919063ffffffff16565b905080515f1480613b10575080806020019051810190613b109190614e65565b612b185760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610833565b606061304784845f85855f80866001600160a01b03168587604051613b949190614cf5565b5f6040518083038185875af1925050503d805f8114613bce576040519150601f19603f3d011682016040523d82523d5f602084013e613bd3565b606091505b5091509150613be487838387613bef565b979650505050505050565b60608315613c5d5782515f03613c56576001600160a01b0385163b613c565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610833565b5081613047565b6130478383815115613c725781518083602001fd5b8060405162461bcd60e51b81526004016108339190614e80565b6001600160a01b0381168114610845575f80fd5b8035613cab81613c8c565b919050565b5f8083601f840112613cc0575f80fd5b5081356001600160401b03811115613cd6575f80fd5b602083019150836020828501011115613907575f80fd5b5f805f805f60808688031215613d01575f80fd5b8535613d0c81613c8c565b94506020860135613d1c81613c8c565b93506040860135925060608601356001600160401b03811115613d3d575f80fd5b613d4988828901613cb0565b969995985093965092949392505050565b634e487b7160e01b5f52604160045260245ffd5b60405161030081016001600160401b0381118282101715613d9157613d91613d5a565b60405290565b604051606081016001600160401b0381118282101715613d9157613d91613d5a565b604080519081016001600160401b0381118282101715613d9157613d91613d5a565b6040516102a081016001600160401b0381118282101715613d9157613d91613d5a565b6040516101e081016001600160401b0381118282101715613d9157613d91613d5a565b604051601f8201601f191681016001600160401b0381118282101715613e4957613e49613d5a565b604052919050565b803560038110613cab575f80fd5b5f6001600160401b03821115613e7757613e77613d5a565b50601f01601f191660200190565b5f82601f830112613e94575f80fd5b8135613ea7613ea282613e5f565b613e21565b818152846020838601011115613ebb575f80fd5b816020850160208301375f918101602001919091529392505050565b6001600160801b0381168114610845575f80fd5b8035613cab81613ed7565b62ffffff81168114610845575f80fd5b8035613cab81613ef6565b8060020b8114610845575f80fd5b8035613cab81613f11565b8015158114610845575f80fd5b8035613cab81613f2a565b5f6103008284031215613f53575f80fd5b613f5b613d6e565b9050613f6682613e51565b8152613f7460208301613ca0565b602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c08201356001600160401b0380821115613fba575f80fd5b613fc685838601613e85565b60c084015260e08481013590840152610100808501359084015261012091508184013581811115613ff5575f80fd5b61400186828701613e85565b83850152506101409150614016828501613eeb565b82840152610160915061402a828501613eeb565b82840152610180915061403e828501613f06565b828401526101a09150614052828501613f1f565b828401526101c09150614066828501613f1f565b828401526101e0915061407a828501613eeb565b91830191909152610200838101359083015261022080840135908301526102408084013590830152610260906140b1828501613ca0565b8284015261028091506140c5828501613ca0565b828401526102a091506140d9828501613f37565b828401526102c0915081840135818111156140f2575f80fd5b6140fe86828701613e85565b83850152506102e091508184013581811115614118575f80fd5b61412486828701613e85565b8385015250505092915050565b5f805f805f60a08688031215614145575f80fd5b8535945060208601356001600160401b03811115614161575f80fd5b61416d88828901613f42565b945050604086013560ff81168114614183575f80fd5b94979396509394606081013594506080013592915050565b5f602082840312156141ab575f80fd5b81356141b681613c8c565b9392505050565b5f602082840312156141cd575f80fd5b81356001600160401b038111156141e2575f80fd5b820161010081850312156141b6575f80fd5b5f60208284031215614204575f80fd5b81356001600160401b03811115614219575f80fd5b82016102a081850312156141b6575f80fd5b5f6020828403121561423b575f80fd5b81356001600160401b03811115614250575f80fd5b82016101e081850312156141b6575f80fd5b5f8060408385031215614273575f80fd5b8235915060208301356001600160401b0381111561428f575f80fd5b61429b85828601613f42565b9150509250929050565b5f805f80606085870312156142b8575f80fd5b843593506020850135925060408501356001600160401b038111156142db575f80fd5b6142e787828801613cb0565b95989497509550505050565b5f60208284031215614303575f80fd5b81356001600160401b03811115614318575f80fd5b61304784828501613f42565b5f5b8381101561433e578181015183820152602001614326565b50505f910152565b5f815180845261435d816020860160208601614324565b601f01601f19169290920160200192915050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061074590830184614346565b8051613cab81613c8c565b5f602082840312156143be575f80fd5b81516141b681613c8c565b5f808335601e198436030181126143de575f80fd5b8301803591506001600160401b038211156143f7575f80fd5b602001915036819003821315613907575f80fd5b5f6001600160401b0382111561442357614423613d5a565b5060051b60200190565b5f80604080848603121561443f575f80fd5b83356001600160401b0380821115614455575f80fd5b9085019060608288031215614468575f80fd5b614470613d97565b82358281111561447e575f80fd5b8301601f8101891361448e575f80fd5b8035602061449e613ea28361440b565b82815260069290921b8301810191818101908c8411156144bc575f80fd5b938201935b838510156145035788858e0312156144d7575f80fd5b6144df613db9565b85356144ea81613c8c565b81528584013584820152825293880193908201906144c1565b855250858101358185015260408087013590850152929750505086013592508083111561452e575f80fd5b505061429b85828601613e85565b5f6020828403121561454c575f80fd5b81356141b681613f2a565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561457e5761457e614557565b92915050565b8082018082111561457e5761457e614557565b5f6102a082360312156145a8575f80fd5b6145b0613ddb565b6145b983613ca0565b81526145c760208401613ca0565b60208201526145d860408401613f06565b60408201526145e960608401613f1f565b60608201526145fa60808401613f1f565b608082015260a083013560a082015260c083013560c082015261461f60e08401613ca0565b60e0820152610100614632818501613ca0565b90820152610120838101359082015261014061464f818501613ca0565b90820152610160838101359082015261018080840135908201526101a0808401356001600160401b0380821115614684575f80fd5b61469036838801613e85565b92840192909252506101c084810135908301526101e08085013590830152610200908185013590808211156146c3575f80fd5b6146cf36838801613e85565b92840192909252506102208481013590830152610240808501359083015261026090818501359080821115614702575f80fd5b61470e36838801613e85565b83850152610280925082860135915080821115614729575f80fd5b5061473636828701613e85565b918301919091525092915050565b8051613cab81613ef6565b8051613cab81613f11565b8051613cab81613ed7565b5f805f805f805f805f805f806101808d8f031215614781575f80fd5b8c516bffffffffffffffffffffffff8116811461479c575f80fd5b9b506147aa60208e016143a3565b9a506147b860408e016143a3565b99506147c660608e016143a3565b98506147d460808e01614744565b97506147e260a08e0161474f565b96506147f060c08e0161474f565b95506147fe60e08e0161475a565b94506101008d015193506101208d0151925061481d6101408e0161475a565b915061482c6101608e0161475a565b90509295989b509295989b509295989b565b5f6101e0823603121561484f575f80fd5b614857613dfe565b82358152602083013560208201526040830135604082015261487b60608401613ca0565b60608201526080830135608082015261489660a08401613ca0565b60a082015260c083013560c082015260e083013560e0820152610100808401356001600160401b03808211156148ca575f80fd5b6148d636838801613e85565b92840192909252506101208481013590830152610140808501359083015261016090818501359080821115614909575f80fd5b61491536838801613e85565b928401929092525061018084810135908301526101a080850135908301526101c090818501359080821115614729575f80fd5b634e487b7160e01b5f52602160045260245ffd5b5f805f6060848603121561496e575f80fd5b833561497981613c8c565b9250602084013561498981613c8c565b9150604084013561499981613ef6565b809150509250925092565b5f602082840312156149b4575f80fd5b5051919050565b5f600182016149cc576149cc614557565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b83811015614a3357614a2087835180516001600160a01b03168252602090810151910152565b60409690960195908201906001016149fa565b509495945050505050565b608081525f60e0820186516060608085015281815180845261010086019150602093506020830192505f5b81811015614aa257614a8f83855180516001600160a01b03168252602090810151910152565b9284019260409290920191600101614a69565b5050602089015160a0860152604089015160c08601528481036020860152614aca81896149e7565b92505050614ae360408401866001600160a01b03169052565b8281036060840152613be48185614346565b5f82601f830112614b04575f80fd5b8151614b12613ea282613e5f565b818152846020838601011115614b26575f80fd5b613047826020830160208701614324565b5f8060408385031215614b48575f80fd5b8251614b5381613c8c565b60208401519092506001600160401b03811115614b6e575f80fd5b61429b85828601614af5565b5f6020808385031215614b8b575f80fd5b82516001600160401b0380821115614ba1575f80fd5b9084019060608287031215614bb4575f80fd5b614bbc613d97565b825182811115614bca575f80fd5b614bd688828601614af5565b8252508383015182811115614be9575f80fd5b8301601f81018813614bf9575f80fd5b8051614c07613ea28261440b565b81815260059190911b8201860190868101908a831115614c25575f80fd5b8784015b83811015614c5b57805187811115614c3f575f80fd5b614c4d8d8b83890101614af5565b845250918801918801614c29565b50808886015250505050604083015160408201528094505050505092915050565b606081525f614c8e6060830186614346565b6020838203818501528186518084528284019150828160051b8501018389015f5b83811015614cdd57601f19878403018552614ccb838351614346565b94860194925090850190600101614caf565b50508095505050505050826040830152949350505050565b5f8251614d06818460208701614324565b9190910192915050565b81516001600160a01b0316815261016081016020830151614d3c60208401826001600160a01b03169052565b506040830151614d53604084018262ffffff169052565b506060830151614d68606084018260020b9052565b506080830151614d7d608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151614dc3828501826001600160a01b03169052565b505061014092830151919092015290565b5f805f8060808587031215614de7575f80fd5b845193506020850151614df981613ed7565b6040860151606090960151949790965092505050565b5f805f60608486031215614e21575f80fd5b8351614e2c81613ed7565b602085015160409095015190969495509392505050565b5f8060408385031215614e54575f80fd5b505080516020909101519092909150565b5f60208284031215614e75575f80fd5b81516141b681613f2a565b602081525f6141b6602083018461434656fea2646970667358221220ae23e9bce54bdd0e812f82995bdd293469143360843969642a5a0fefeef3323064736f6c63430008180033000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88000000000000000000000000a51afafe0263b40edaef0df8781ea9aa03e381a30000000000000000000000000000000000001ff3684f28c67538d4d072c22734000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3