0 txs
0 calls
constructor
No constructor.
functions
allowedSlippageInBps
viewfunction allowedSlippageInBps() view returns (uint256)
compoundFee
viewfunction compoundFee() view returns (uint256)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
feeRecipient
viewfunction feeRecipient() view returns (address)
hookGasLimit
viewfunction hookGasLimit() view returns (uint256)
isValidSignature
viewfunction isValidSignature(bytes32 orderDigest, bytes encodedOrder) view returns (bytes4)
mamoStrategyRegistry
viewfunction mamoStrategyRegistry() view returns (address)
MAX_COMPOUND_FEE
viewfunction MAX_COMPOUND_FEE() view returns (uint256)
MAX_SLIPPAGE_IN_BPS
viewfunction MAX_SLIPPAGE_IN_BPS() view returns (uint256)
metaMorphoVault
viewfunction metaMorphoVault() view returns (address)
mToken
viewfunction mToken() view returns (address)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
slippagePriceChecker
viewfunction slippagePriceChecker() view returns (address)
SPLIT_TOTAL
viewfunction SPLIT_TOTAL() view returns (uint256)
splitMToken
viewfunction splitMToken() view returns (uint256)
splitVault
viewfunction splitVault() view returns (uint256)
strategyTypeId
viewfunction strategyTypeId() view returns (uint256)
token
viewfunction token() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
VAULT_RELAYER
viewfunction VAULT_RELAYER() view returns (address)
approveCowSwap
nonpayablefunction approveCowSwap(address tokenAddress, uint256 amount)
deposit
nonpayablefunction deposit(uint256 amount)
depositIdleTokens
nonpayablefunction depositIdleTokens() returns (uint256)
initialize
nonpayablefunction initialize(tuple params)
recoverERC20
nonpayablefunction recoverERC20(address tokenAddress, address to, uint256 amount)
recoverETH
nonpayablefunction recoverETH(address to)
renounceOwnership
nonpayablefunction renounceOwnership()
setFeeRecipient
nonpayablefunction setFeeRecipient(address _newFeeRecipient)
setSlippage
nonpayablefunction setSlippage(uint256 _newSlippageInBps)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updatePosition
nonpayablefunction updatePosition(uint256 splitMoonwell, uint256 splitMorpho)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdraw
nonpayablefunction withdraw(uint256 amount)
withdrawAll
nonpayablefunction withdrawAll()
events
Deposit
event Deposit(address indexed asset, uint256 amount)
DepositIdle
event DepositIdle(address indexed asset, uint256 amount)
FeeRecipientUpdated
event FeeRecipientUpdated(address indexed oldFeeRecipient, address indexed newFeeRecipient)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PositionUpdated
event PositionUpdated(uint256 splitMoonwell, uint256 splitMorpho)
SlippageUpdated
event SlippageUpdated(uint256 oldSlippage, uint256 newSlippage)
TokenRecovered
event TokenRecovered(address indexed token, address indexed to, uint256 amount)
Upgraded
event Upgraded(address indexed implementation)
Withdraw
event Withdraw(address indexed asset, uint256 amount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
StringsInsufficientHexLength
error StringsInsufficientHexLength(uint256 value, uint256 length)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a08060405234602957306080526139d5908161002e823960805181818161091301526124250152f35b5f80fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806307c99208146102495780630a6c3bb2146102445780631171bda91461023f578063134dfcd81461023a5780631626ba7e146102355780632626f294146102305780632e1a7d4d1461022b5780633644e515146102265780634301550014610221578063469048401461021c57806349c73b6f146102175780634f1ef2861461021257806352d1902d1461020d5780636b8bd87c146102085780637051271114610203578063715018a6146101fe578063759bfedf146101f9578063853828b6146101f45780638ad029f1146101ef5780638da5cb5b146101ea57806392b1d8ae146101e55780639472afab146101e0578063a3b31fb8146101db578063ad3cb1cc146101d6578063b6b55f25146101d1578063b6d3dd12146101cc578063c3b6f939146101c7578063e22591d6146101c2578063e74b981b146101bd578063edbfa4b0146101b8578063f0fa55a9146101b3578063f2fde38b146101ae578063f41f171d146101a9578063f83ebfec146101a45763fc0c546a0361000e57611672565b61164a565b61162d565b611594565b611531565b611398565b6112df565b6112c3565b61129b565b611274565b6111c0565b611181565b61113a565b61108f565b610fa6565b610f5f565b610f43565b610d14565b610a20565b6109ac565b610984565b610967565b610901565b610886565b610803565b6107db565b6107be565b610784565b6104b4565b610486565b610405565b61033c565b6102a5565b61026a565b34610266575f366003190112610266576020603654604051908152f35b5f80fd5b34610266575f366003190112610266576020603954604051908152f35b6001600160a01b0381160361026657565b35906102a382610287565b565b34610266576060366003190112610266576004356102c281610287565b6024356102ce81610287565b7f879f92dded0f26b83c3e00b12e0395dc72cfc3077343d1854ed6988edd1f909660206044356102fc612db1565b6001600160a01b0384169461033390829061031888151561169a565b6103238215156116e6565b6001600160a01b03169586612df7565b604051908152a3005b346102665760203660031901126102665760043561035981610287565b610361612db1565b6001600160a01b031661037581151561169a565b4780156103d0577f879f92dded0f26b83c3e00b12e0395dc72cfc3077343d1854ed6988edd1f90966103cb826103bb5f80808080988a5af16103b5611732565b50611761565b6040519081529081906020820190565b0390a3005b60405162461bcd60e51b815260206004820152600d60248201526c456d7074792062616c616e636560981b6044820152606490fd5b346102665760403660031901126102665760043560243567ffffffffffffffff8111610266573660238201121561026657806004013567ffffffffffffffff811161026657366024828401011161026657610482926024610467930190611ede565b6040516001600160e01b031990911681529081906020820190565b0390f35b34610266575f36600319011261026657602060405173c92e8bdf79f0507f65a392b0ab4667716bfe01108152f35b34610266576020366003190112610266576004356104d0612db1565b6104db8115156116e6565b6104ed816104e7613191565b116122f4565b60345461050a906001600160a01b03165b6001600160a01b031690565b6040516370a0823160e01b815230600482015290602090829060249082905afa908115610617575f91610765575b5081811061061c575b506034546040516370a0823160e01b81523060048201526001600160a01b0390911690602081602481855afa9182156106175761058d846105949481945f916105e8575b5010156123bf565b3390612df7565b6034547f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364906105e3906001600160a01b03906105d19082166104fe565b60405194855216929081906020820190565b0390a2005b61060a915060203d602011610610575b6106028183610833565b8101906119ea565b5f610585565b503d6105f8565b6119f9565b6106269082612366565b61063d61063560365483611cf6565b612710900490565b806106d9575b506106356106549160375490611cf6565b8015610541576033545f916020916106ab9190610679906001600160a01b03166104fe565b604051632d182be560e21b81526004810192909252306024830181905260448301529093849283919082906064820190565b03925af180156106175715610541576106d29060203d602011610610576106028183610833565b505f610541565b6032545f929160209161071b91906106f9906001600160a01b03166104fe565b9060405195868094819363852a12e360e01b8352600483019190602083019252565b03925af19081156106175761073f61063592610654945f91610746575b5015612373565b9150610643565b61075f915060203d602011610610576106028183610833565b5f610738565b61077e915060203d602011610610576106028183610833565b5f610538565b34610266575f3660031901126102665760206040517fd72ffa789b6fae41254d0b5a13e6e1e92ed947ec6a251edf1cf0b6c02c257b4b8152f35b34610266575f366003190112610266576020603754604051908152f35b34610266575f36600319011261026657603a546040516001600160a01b039091168152602090f35b34610266575f3660031901126102665760206040516127108152f35b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761085557604052565b61081f565b604051906102a361018083610833565b67ffffffffffffffff811161085557601f01601f191660200190565b60403660031901126102665760043561089e81610287565b6024359067ffffffffffffffff82116102665736602383011215610266578160040135906108cb8261086a565b916108d96040519384610833565b8083523660248286010111610266576020815f92602461001897018387013784010152612419565b34610266575f366003190112610266577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036109585760206040515f5160206139605f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b34610266575f366003190112610266576020603854604051908152f35b34610266575f366003190112610266576035546040516001600160a01b039091168152602090f35b34610266575f366003190112610266576109c4612db1565b60405162461bcd60e51b815260206004820152602e60248201527f4f776e6572736869702063616e6e6f742062652072656e6f756e63656420696e60448201526d081d1a1a5cc818dbdb9d1c9858dd60921b6064820152608490fd5b34610266576040366003190112610266576004356024355f546040516303b6ce6960e61b815290602090829060049082906001600160a01b03165afa801561061757610a7e915f91610ce5575b506001600160a01b0316331461258d565b610a94612710610a8e838561196b565b146125c7565b603254610aa9906001600160a01b03166104fe565b610abb6001600160a01b0382166104fe565b6040516370a0823160e01b81523060048201529190602090839060249082905afa918215610617575f92610cc4575b5081610c83575b5050603354610b08906001600160a01b03166104fe565b6040516370a0823160e01b815230600482015290602082602481845afa918215610617575f92610c62575b5081610c02575b5050603454610b51906001600160a01b03166104fe565b6040516370a0823160e01b81523060048201529290602090849060249082905afa928315610617577f396804cc530be039a91bbe137a3dc0b0435d63b2d287fe495c78d822fb538d4593610bc9915f91610be3575b50610bb2811515612627565b610bbb83603655565b610bc484603755565b613350565b60408051918252602082019290925290819081015b0390a1005b610bfc915060203d602011610610576106028183610833565b5f610ba6565b604051635d043b2960e11b8152600481019290925230602483018190526044830152602090829060649082905f905af1801561061757610c43575b80610b3a565b610c5b9060203d602011610610576106028183610833565b505f610c3d565b610c7c91925060203d602011610610576106028183610833565b905f610b33565b60405163db006a7560e01b81526004810192909252602090829060249082905f905af1801561061757610cbd915f91610746575015612373565b5f80610af1565b610cde91925060203d602011610610576106028183610833565b905f610aea565b610d07915060203d602011610d0d575b610cff8183610833565b810190612578565b5f610a6d565b503d610cf5565b34610266575f36600319011261026657610d2c612db1565b603254610d41906001600160a01b03166104fe565b610d536001600160a01b0382166104fe565b6040516370a0823160e01b815230600482015290602090829060249082905afa908115610617575f91610f24575b50603354610d97906001600160a01b03166104fe565b6040516370a0823160e01b81523060048201529290602090849060249082905afa928315610617575f93610f03575b5081610ec2575b505080610e43575b506034546040516370a0823160e01b8152306004820152906001600160a01b0316602082602481845afa918215610617575f92610e1e575b50816105949161058d82151561266a565b610594919250610e3c9060203d602011610610576106028183610833565b9190610e0d565b6033545f91602091610e949190610e62906001600160a01b03166104fe565b604051635d043b2960e11b81526004810192909252306024830181905260448301529093849283919082906064820190565b03925af180156106175715610dd557610ebb9060203d602011610610576106028183610833565b505f610dd5565b60405163db006a7560e01b81526004810192909252602090829060249082905f905af1801561061757610efc915f91610746575015612373565b5f80610dcd565b610f1d91935060203d602011610610576106028183610833565b915f610dc6565b610f3d915060203d602011610610576106028183610833565b5f610d81565b34610266575f3660031901126102665760206040516103e88152f35b34610266575f366003190112610266577f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b039091168152602090f35b34610266575f36600319011261026657603454610fcb906001600160a01b03166104fe565b6040516370a0823160e01b815230600482015290602090829060249082905afa801561061757610482915f91611070575b506110088115156126ae565b61101181613350565b6034546001600160a01b03906110289082166104fe565b167f90f968d1f29a5020182bc465efabf576f46565de496d7b39e1d7aebc309998c76040518061105d85829190602083019252565b0390a26040519081529081906020820190565b611089915060203d602011610610576106028183610833565b5f610ffc565b346102665760403660031901126102665760246004356110ae81610287565b8135906110b9612db1565b6035546040516316bfae7f60e31b81526001600160a01b0392831660048201819052909490926020928692918391165afa9283156106175761001893611106915f9161110b575b506134c9565b613719565b61112d915060203d602011611133575b6111258183610833565b810190611e67565b5f611100565b503d61111b565b34610266575f366003190112610266576020600154604051908152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b34610266575f366003190112610266576104826040516111a2604082610833565b60058152640352e302e360dc1b602082015260405191829182611157565b34610266576020366003190112610266576004356111df8115156116e6565b6034546040516323b872dd60e01b60208201523360248201523060448201526064810183905261122e916001600160a01b031661122982608481015b03601f198101845283610833565b613622565b61123781613350565b6034547fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c906105e3906001600160a01b03906105d19082166104fe565b34610266575f366003190112610266575f546040516001600160a01b039091168152602090f35b34610266575f366003190112610266576032546040516001600160a01b039091168152602090f35b34610266575f3660031901126102665760206040516109c48152f35b34610266576020366003190112610266576004356112fc81610287565b5f546040516303b6ce6960e61b815290602090829060049082906001600160a01b03165afa801561061757611342915f91610ce557506001600160a01b0316331461258d565b6001600160a01b03166113568115156126f1565b603a54816001600160a01b0382167faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d35f80a36001600160a01b03191617603a55005b346102665760203660031901126102665760043567ffffffffffffffff8111610266576101e06003198236030112610266575f5160206139805f395f51905f52549067ffffffffffffffff61140660ff604085901c16156113f8565b1590565b9367ffffffffffffffff1690565b1680159081611529575b600114908161151f575b159081611516575b506115075761146a908261145d600167ffffffffffffffff195f5160206139805f395f51905f525416175f5160206139805f395f51905f5255565b6114cd575b600401612afa565b61147057005b61149a60ff60401b195f5160206139805f395f51905f5254165f5160206139805f395f51905f5255565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2908060208101610bde565b6115026801000000000000000060ff60401b195f5160206139805f395f51905f525416175f5160206139805f395f51905f5255565b611462565b63f92ee8a960e01b5f5260045ffd5b9050155f611422565b303b15915061141a565b839150611410565b346102665760203660031901126102665760043561154d612db1565b61155b6109c4821115612a03565b60385460408051918252602082018390527f07af09e2b23ebab5dd29fa2271d6ca4795031f308caf26ca605f4a719ffeed6191a1603855005b34610266575f6020366003190112610266576004356115b281610287565b6115ba612db1565b5f546001600160a01b0316803b1561026657604051633ddad6e160e01b81526001600160a01b0383166004820152905f908290602490829084905af1801561061757611616575b506116139061160e612db1565b61359e565b80f35b6116239192505f90610833565b5f90611613611601565b34610266575f366003190112610266576020603b54604051908152f35b34610266575f366003190112610266576033546040516001600160a01b039091168152602090f35b34610266575f366003190112610266576034546040516001600160a01b039091168152602090f35b156116a157565b60405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f742073656e6420746f207a65726f206164647265737300000000006044820152606490fd5b156116ed57565b60405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606490fd5b3d1561175c573d906117438261086a565b916117516040519384610833565b82523d5f602084013e565b606090565b1561176857565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b359063ffffffff8216820361026657565b8015150361026657565b35906102a3826117b0565b9081610180910312610266576101606117dc61085a565b916117e681610298565b83526117f460208201610298565b602084015261180560408201610298565b6040840152606081013560608401526080810135608084015261182a60a0820161179f565b60a084015260c081013560c084015260e081013560e084015261010081013561010084015261185c61012082016117ba565b610120840152610140810135610140840152013561016082015290565b1561188057565b60405162461bcd60e51b815260206004820152602d60248201527f4f72646572206861736820646f6573206e6f74206d617463682074686520707260448201526c1bdd9a59195908191a59d95cdd609a1b6064820152608490fd5b156118e257565b60405162461bcd60e51b815260206004820152601a60248201527f4f72646572206d75737420626520612073656c6c206f726465720000000000006044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b9061012c820180921161194a57565b611927565b906001820180921161194a57565b906002820180921161194a57565b9190820180921161194a57565b1561197f57565b60405162461bcd60e51b815260206004820152603d60248201527f4f72646572206578706972657320746f6f20736f6f6e202d206d75737420626560448201527f2076616c696420666f72206174206c656173742035206d696e757465730000006064820152608490fd5b90816020910312610266575190565b6040513d5f823e3d90fd5b15611a0b57565b60405162461bcd60e51b815260206004820152602360248201527f4f72646572206578706972657320746f6f2066617220696e207468652066757460448201526275726560e81b6064820152608490fd5b15611a6357565b60405162461bcd60e51b815260206004820152603560248201527f4f72646572206d7573742062652066696c6c2d6f722d6b696c6c2c20706172746044820152741a585b08199a5b1b1cc81b9bdd08185b1b1bddd959605a1b6064820152608490fd5b15611acd57565b60405162461bcd60e51b815260206004820152602160248201527f53656c6c20746f6b656e206d75737420626520616e20455243323020746f6b656044820152603760f91b6064820152608490fd5b15611b2357565b606460405162461bcd60e51b815260206004820152602060248201527f42757920746f6b656e206d75737420626520616e20455243323020746f6b656e6044820152fd5b15611b6e57565b60405162461bcd60e51b815260206004820152602260248201527f53656c6c20746f6b656e2063616e277420626520737472617465677920746f6b60448201526132b760f11b6064820152608490fd5b15611bc557565b60405162461bcd60e51b815260206004820152602760248201527f42757920746f6b656e206d757374206d617463682074686520737472617465676044820152663c903a37b5b2b760c91b6064820152608490fd5b15611c2157565b60405162461bcd60e51b815260206004820152601760248201527f46656520616d6f756e74206d757374206265207a65726f0000000000000000006044820152606490fd5b15611c6d57565b60405162461bcd60e51b815260206004820152602d60248201527f4f72646572207265636569766572206d7573742062652074686973207374726160448201526c1d1959de4818dbdb9d1c9858dd609a1b6064820152608490fd5b908160011b918083046002149015171561194a57565b600181901b91906001600160ff1b0381160361194a57565b8181029291811591840414171561194a57565b805191908290602001825e015f815290565b906102a361121b9260405193849161060f60f31b60208401526022830190611d09565b602a90611de4611db09594600c611dcb6102a396600e6040519a8b977f7b22617070436f6465223a224d616d6f222c226d65746164617461223a7b226860208a01527f6f6f6b73223a7b22707265223a5b7b2263616c6c44617461223a22000000000060408a0152605b890190611d09565b6d11161133b0b9a634b6b4ba111d1160911b81520190611d09565b6b1116113a30b933b2ba111d1160a11b81520190611d09565b7f227d5d2c2276657273696f6e223a22302e312e30227d7d2c2276657273696f6e815269223a22312e332e30227d60b01b602082015203600a810185520183610833565b15611e2f57565b60405162461bcd60e51b815260206004820152601060248201526f496e76616c696420617070206461746160801b6044820152606490fd5b908160209103126102665751611e7c816117b0565b90565b15611e8657565b60405162461bcd60e51b815260206004820152602a60248201527f507269636520636865636b206661696c6564202d206f757470757420616d6f756044820152696e7420746f6f206c6f7760b01b6064820152608490fd5b91611f6891611eef918101906117c5565b91611f6283604290601f190180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040519061190160f01b82527fd72ffa789b6fae41254d0b5a13e6e1e92ed947ec6a251edf1cf0b6c02c257b4b600283015260228201522090565b14611879565b611f987ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775610100830151146118db565b611fd160a08201611fc7611fb0825163ffffffff1690565b63ffffffff611fbe4261193b565b91161015611978565b5163ffffffff1690565b603554611fe6906001600160a01b03166104fe565b916120286020611fff6104fe845160018060a01b031690565b604051631a08793d60e31b81526001600160a01b03909116600482015291829081906024820190565b0381875afa9283156106175763ffffffff61205160209561205a945f916122d7575b504261196b565b91161115611a04565b61207361206e6113f4610120840151151590565b611a5c565b6120a37f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc961014083015114611ac6565b6120d37f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc961016083015114611b1c565b80516001600160a01b031660345490939061210c906120fa906001600160a01b03166104fe565b946001600160a01b0316851415611b67565b82820180519094612126916001600160a01b031614611bbe565b61213460e083015115611c1a565b6040820151612156906001600160a01b03166001600160a01b03163014611c66565b6060820161221e6121fc6121c86121c3612177610635865160395490611cf6565b603a546040516323b872dd60e01b8b8201523060248201526001600160a01b03909116604482015260648101919091526121be81608481015b03601f198101835282610833565b612ebe565b611d1b565b85516121ea906001600160a01b03906121e4906104fe90831681565b16612f8a565b906121f6603b5461303b565b90611d3e565b604051612210816121b08982019485611157565b51902060c085015114611e28565b519360806122496104fe61223b6104fe875160018060a01b031690565b93516001600160a01b031690565b93015160385460405163aa81311960e01b815260048101979097526001600160a01b03928316602488015291909316604486015260648501929092526084840191909152829060a49082905afa8015610617576122ad915f916122b8575b50611e7f565b630b135d3f60e11b90565b6122d1915060203d602011611133576111258183610833565b5f6122a7565b6122ee9150873d8911610610576106028183610833565b5f61204a565b156122fb57565b60405162461bcd60e51b815260206004820152603760248201527f5769746864726177616c20616d6f756e74206578636565647320617661696c6160448201527f626c652062616c616e636520696e2073747261746567790000000000000000006064820152608490fd5b9190820391821161194a57565b1561237a57565b60405162461bcd60e51b815260206004820152601760248201527f4661696c656420746f2072656465656d206d546f6b656e0000000000000000006044820152606490fd5b156123c657565b60405162461bcd60e51b815260206004820152602560248201527f5769746864726177616c206661696c65643a20696e73756666696369656e742060448201526466756e647360d81b6064820152608490fd5b90916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612556575b50610958575f546001600160a01b03163303612505576040516352d1902d60e01b8152926020846004816001600160a01b0387165afa5f94816124e4575b506124af57634c9c8ce360e01b5f526001600160a01b03831660045260245ffd5b90915f5160206139605f395f51905f5284036124d0576102a392935061367a565b632a87526960e21b5f52600484905260245ffd5b6124fe91955060203d602011610610576106028183610833565b935f61248e565b60405162461bcd60e51b8152602060048201526024808201527f4f6e6c79204d616d6f2053747261746567792052656769737472792063616e2060448201526318d85b1b60e21b6064820152608490fd5b5f5160206139605f395f51905f52546001600160a01b0316141590505f612450565b908160209103126102665751611e7c81610287565b1561259457565b60405162461bcd60e51b815260206004820152600b60248201526a139bdd08189858dad95b9960aa1b6044820152606490fd5b156125ce57565b60405162461bcd60e51b815260206004820152602b60248201527f53706c697420706172616d6574657273206d7573742061646420757020746f2060448201526a14d413125517d513d5105360aa1b6064820152608490fd5b1561262e57565b60405162461bcd60e51b81526020600482015260146024820152734e6f7468696e6720746f20726562616c616e636560601b6044820152606490fd5b1561267157565b60405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b6044820152606490fd5b156126b557565b60405162461bcd60e51b8152602060048201526014602482015273139bc81d1bdad95b9cc81d1bc819195c1bdcda5d60621b6044820152606490fd5b156126f857565b60405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642066656520726563697069656e7420616464726573730000006044820152606490fd5b35611e7c81610287565b1561274e57565b60405162461bcd60e51b8152602060048201526024808201527f496e76616c6964206d616d6f53747261746567795265676973747279206164646044820152637265737360e01b6064820152608490fd5b156127a657565b60405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206d616d6f4261636b656e64206164647265737300000000006044820152606490fd5b156127f257565b60405162461bcd60e51b8152602060048201526016602482015275496e76616c6964206d546f6b656e206164647265737360501b6044820152606490fd5b1561283757565b60405162461bcd60e51b815260206004820152601f60248201527f496e76616c6964206d6574614d6f7270686f5661756c742061646472657373006044820152606490fd5b1561288357565b60405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606490fd5b156128c757565b60405162461bcd60e51b8152602060048201526024808201527f496e76616c696420536c6970706167655072696365436865636b6572206164646044820152637265737360e01b6064820152608490fd5b1561291f57565b60405162461bcd60e51b815260206004820152601860248201527f53747261746567792074797065206964206e6f742073657400000000000000006044820152606490fd5b1561296b57565b60405162461bcd60e51b815260206004820152602560248201527f53706c697420706172616d6574657273206d7573742061646420757020746f20604482015264031303030360dc1b6064820152608490fd5b156129c557565b60405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a59081a1bdbdac819d85cc81b1a5b5a5d60521b6044820152606490fd5b15612a0a57565b60405162461bcd60e51b815260206004820152601860248201527f536c6970706167652065786365656473206d6178696d756d00000000000000006044820152606490fd5b15612a5657565b60405162461bcd60e51b815260206004820152601c60248201527f436f6d706f756e64206665652065786365656473206d6178696d756d000000006044820152606490fd5b903590601e1981360301821215610266570180359067ffffffffffffffff821161026657602001918160051b3603831361026657565b634e487b7160e01b5f52603260045260245ffd5b9190811015612af55760051b0190565b612ad1565b906001600160a01b03612b0c8361273d565b161515612b1890612747565b612b246020830161273d565b6001600160a01b03161515612b389061279f565b60408201612b458161273d565b6001600160a01b03161515612b59906127eb565b6060830190612b678261273d565b6001600160a01b03161515612b7b90612830565b60808401612b888161273d565b6001600160a01b03161515612b9c9061287c565b60a08501612ba98161273d565b6001600160a01b03161515612bbd906128c0565b610120860135612bce811515612918565b60c0870193612bdc8561273d565b6001600160a01b03161515612bf0906126f1565b60e08801359261010089013594612c07868661196b565b61271014612c1490612964565b6101808a013597612c268915156129be565b6101a08b013593612c3b6109c4861115612a03565b8b6101c0810135966103e8881115612c5290612a4f565b612c5b8261273d565b9161016001612c699061273d565b90612c739261355f565b612c7c9061273d565b603280546001600160a01b0319166001600160a01b0392909216919091179055612ca59061273d565b603380546001600160a01b0319166001600160a01b0392909216919091179055612cce9061273d565b603480546001600160a01b0319166001600160a01b0392909216919091179055612cf79061273d565b603580546001600160a01b0319166001600160a01b0392909216919091179055603855603955603655603755612d2c9061273d565b603a80546001600160a01b0319166001600160a01b03909216919091179055603b55610140820191612d5e8382612a9b565b9050612d6957509050565b5f5b612d758483612a9b565b9050811015612dab5780612da5612da0612d9b600194612d958988612a9b565b90612ae5565b61273d565b613509565b01612d6b565b50509050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03163303612de457565b63118cdaa760e01b5f523360045260245ffd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526102a391611229826064810161121b565b90612e3a8261086a565b612e476040519182610833565b8281528092612e58601f199161086a565b0190602036910137565b60405190612e71604083610833565b601082526f181899199a1a9b1b9c1cb0b131b232b360811b6020830152565b805115612af55760200190565b805160011015612af55760210190565b908151811015612af5570160200190565b9081518060011b908082046002149015171561194a57612edd90612e30565b612ee5612e62565b925f5b8151811015612f775780612f52612f0c600f612f20612f1a612f0c60019789612ead565b516001600160f81b03191690565b60f81c90565b612f34612f0c600f600484901c168c612ead565b612f4a612f4087611cc8565b915f1a918a612ead565b531688612ead565b612f70612f66612f6184611cc8565b61194f565b915f1a9186612ead565b5301612ee8565b5090925050565b801561194a575f190190565b80612fa5612fa0612f9b6014611cde565b61195d565b612e30565b916030612fb184612e90565b536078612fbd84612e9d565b53612fcb612f616014611cde565b60018111612ff35750612fdc575090565b63e22e27eb60e01b5f52600452601460245260445ffd5b90600f81166010811015612af55761303691613030916f181899199a1a9b1b9c1cb0b131b232b360811b901a6130298588612ead565b5360041c90565b91612f7e565b612fcb565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b82101561316e575b806d04ee2d6d415b85acef8100000000600a921015613152575b662386f26fc1000081101561313d575b6305f5e10081101561312b575b61271081101561311b575b606481101561310c575b1015613101575b6130ec60216130c160018501612e30565b938401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b600a82061a8353600a900490565b80156130fc576130ec90916130c6565b505090565b6001909101906130b0565b600290606490049301926130a9565b600490612710900493019261309f565b6008906305f5e1009004930192613094565b601090662386f26fc100009004930192613087565b6020906d04ee2d6d415b85acef81000000009004930192613077565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b810461305d565b6033546131a6906001600160a01b03166104fe565b6040516370a0823160e01b815230600482015290602082602481845afa918215610617575f926132ee575b5081156132e6576040516303d1689d60e11b81526004810192909252602090829060249082905afa908115610617575f916132c7575b505b60325461321e906001600160a01b03166104fe565b604051633af9e66960e01b81523060048201529190602090839060249082905f905af190811561061757613259925f926132a6575b5061196b565b60345461326e906001600160a01b03166104fe565b6040516370a0823160e01b81523060048201529190602090839060249082905afa90811561061757611e7c925f926132a6575061196b565b6132c091925060203d602011610610576106028183610833565b905f613253565b6132e0915060203d602011610610576106028183610833565b5f613207565b50505f613209565b61330891925060203d602011610610576106028183610833565b905f6131d1565b1561331657565b60405162461bcd60e51b815260206004820152601260248201527113551bdad95b881b5a5b9d0819985a5b195960721b6044820152606490fd5b61336f61063561336561063560365485611cf6565b9260375490611cf6565b9080613420575b5080613380575b50565b60206133f7826133b75f9461339c60345460018060a01b031690565b6033546133b1906001600160a01b03166104fe565b906137f9565b6033546133cc906001600160a01b03166104fe565b604051636e553f6560e01b815260048101929092523060248301529093849283919082906044820190565b03925af18015610617576134085750565b61337d9060203d602011610610576106028183610833565b6020613488826134515f9461343c60345460018060a01b031690565b6032546133b1906001600160a01b03166104fe565b603254613466906001600160a01b03166104fe565b9060405194858094819363140e25ad60e31b8352600483019190602083019252565b03925af18015610617576134a4915f916134aa575b501561330f565b5f613376565b6134c3915060203d602011610610576106028183610833565b5f61349d565b156134d057565b60405162461bcd60e51b8152602060048201526011602482015270151bdad95b881b9bdd08185b1b1bddd959607a1b6044820152606490fd5b6035546040516316bfae7f60e31b81526001600160a01b03928316600482018190529092909160209184916024918391165afa918215610617576102a392613557915f9161110b57506134c9565b5f1990613719565b906102a3929161356d6138be565b60018060a01b03166bffffffffffffffffffffffff60a01b5f5416175f556001556135966138be565b61160e6138be565b6001600160a01b0316801561360f577f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b905f602091828151910182855af1156119f9575f513d61367157506001600160a01b0381163b155b6136515750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561364a565b90813b156136f8575f5160206139605f395f51905f5280546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156136e05761337d916138e9565b5050346136e957565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b60405163095ea7b360e01b602080830191825273c92e8bdf79f0507f65a392b0ab4667716bfe01106024840152604480840195909552938252919290915f90613763606485610833565b83519082865af15f51903d816137cd575b501590505b613781575050565b60405163095ea7b360e01b602082015273c92e8bdf79f0507f65a392b0ab4667716bfe011060248201525f60448201526102a39290611229906137c781606481016121b0565b82613622565b151590506137ed57506137796001600160a01b0383163b15155b5f613774565b600161377991146137e7565b60405163095ea7b360e01b60208083019182526001600160a01b0385166024840152604480840196909652948252929390925f90613838606486610833565b84519082855af15f51903d81613892575b501590505b61385757505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f60448401526102a392611229906137c781606481016121b0565b151590506138b2575061384e6001600160a01b0382163b15155b5f613849565b600161384e91146138ac565b60ff5f5160206139805f395f51905f525460401c16156138da57565b631afcd79f60e31b5f5260045ffd5b5f80611e7c93602081519101845af4613900611732565b9190613925575080511561391657805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580613956575b613936575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561392e56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220941d8673a3718f0b164dd28cfa6b9bbeb5ef2f4ab4c82f70994157388b640e3664736f6c634300081c0033