0 txs
1 call
constructor
constructor(address _management, address _performanceFeeRecipient, address _keeper, address _emergencyAdmin, address _gov, address _curveFactory)
functions
CRV_USD
viewfunction CRV_USD() view returns (address)
CURVE_FACTORY
viewfunction CURVE_FACTORY() view returns (address)
deployments
viewfunction deployments(address, address) view returns (address)
emergencyAdmin
viewfunction emergencyAdmin() view returns (address)
GOV
viewfunction GOV() view returns (address)
isDeployedStrategy
viewfunction isDeployedStrategy(address _strategy) view returns (bool)
keeper
viewfunction keeper() view returns (address)
management
viewfunction management() view returns (address)
performanceFeeRecipient
viewfunction performanceFeeRecipient() view returns (address)
newStrategy
nonpayablefunction newStrategy(address _asset, address _lenderVault) returns (address)
setAddresses
nonpayablefunction setAddresses(address _management, address _performanceFeeRecipient, address _keeper)
events
NewStrategy
event NewStrategy(address indexed strategy, address indexed asset)
errors
No errors.
creation bytecode
0x61010060405234801562000011575f80fd5b506040516200494638038062004946833981016040819052620000349162000116565b5f80546001600160a01b038089166001600160a01b0319928316179092556001805488841690831617905560028054878416921691909117905583811660a052828116608052811660c0819052604080516374e5ec1160e11b8152905163e9cbd822916004808201926020929091908290030181865afa158015620000bb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000e1919062000193565b6001600160a01b031660e05250620001b6945050505050565b80516001600160a01b038116811462000111575f80fd5b919050565b5f805f805f8060c087890312156200012c575f80fd5b6200013787620000fa565b95506200014760208801620000fa565b94506200015760408801620000fa565b93506200016760608801620000fa565b92506200017760808801620000fa565b91506200018760a08801620000fa565b90509295509295509295565b5f60208284031215620001a4575f80fd5b620001af82620000fa565b9392505050565b60805160a05160c05160e0516147396200020d5f395f81816101f1015261057501525f818161016101528181610470015261050201525f81816101a2015261071d01525f8181610139015261059701526147395ff3fe608060405234801562000010575f80fd5b5060043610620000b4575f3560e01c806370905dce116200007757806370905dce146200019c57806388a8d60214620001c4578063aced166114620001d7578063b10d3a1814620001eb578063cb6e33201462000213578063ed27f7c9146200022a575f80fd5b80630d00442414620000b857806313d7185014620000e4578063180cb47f1462000133578063190f4310146200015b578063363bf9641462000183575b5f80fd5b620000cf620000c936600462000823565b6200023e565b60405190151581526020015b60405180910390f35b6200011a620000f536600462000848565b600360209081525f92835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001620000db565b6200011a7f000000000000000000000000000000000000000000000000000000000000000081565b6200011a7f000000000000000000000000000000000000000000000000000000000000000081565b6200019a6200019436600462000884565b6200033b565b005b6200011a7f000000000000000000000000000000000000000000000000000000000000000081565b5f546200011a906001600160a01b031681565b6002546200011a906001600160a01b031681565b6200011a7f000000000000000000000000000000000000000000000000000000000000000081565b6200011a6200022436600462000848565b620003c5565b6001546200011a906001600160a01b031681565b5f80826001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a39190620008d3565b90505f836001600160a01b03166306876d196040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003099190620008d3565b6001600160a01b039283165f908152600360209081526040808320938616835292905220548216919093161492915050565b5f546001600160a01b03163314620003875760405162461bcd60e51b815260206004820152600b60248201526a085b585b9859d95b595b9d60aa1b604482015260640160405180910390fd5b5f80546001600160a01b039485166001600160a01b031991821617909155600180549385169382169390931790925560028054919093169116179055565b5f80826001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000403573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200042c919081019062000929565b6040516020016200043e9190620009dd565b60408051808303601f1901815290829052637a20811b60e11b82526001600160a01b0386811660048401529092505f917f00000000000000000000000000000000000000000000000000000000000000009091169063f441023690602401602060405180830381865afa158015620004b8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004de9190620008d3565b6040516305896aa360e51b81526001600160a01b0387811660048301529192505f917f0000000000000000000000000000000000000000000000000000000000000000169063b12d546090602401602060405180830381865afa15801562000548573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200056e9190620008d3565b90505f86847f0000000000000000000000000000000000000000000000000000000000000000887f00000000000000000000000000000000000000000000000000000000000000008787604051620005c690620007fd565b620005d8979695949392919062000a18565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b5060015460405163352f8d5160e11b81526001600160a01b039182166004820152919250821690636a5f1aa2906024015f604051808303815f87803b1580156200063a575f80fd5b505af11580156200064d573d5f803e3d5ffd5b5050600254604051633a43a3f360e11b81526001600160a01b039182166004820152908416925063748747e691506024015f604051808303815f87803b15801562000696575f80fd5b505af1158015620006a9573d5f803e3d5ffd5b50505f54604051630f629b7960e41b81526001600160a01b039182166004820152908416925063f629b79091506024015f604051808303815f87803b158015620006f1575f80fd5b505af115801562000704573d5f803e3d5ffd5b5050604051630d768ce560e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152841692506335da339491506024015f604051808303815f87803b15801562000769575f80fd5b505af11580156200077c573d5f803e3d5ffd5b50506040516001600160a01b03808b169350841691507f8df0e8eb14c6434c85afc8f6f514518422607c8a8696492397a729a010ba83f9905f90a36001600160a01b039687165f908152600360209081526040808320988a1683529790529590952080546001600160a01b0319169686169690961790955550919392505050565b613c808062000a8483390190565b6001600160a01b038116811462000820575f80fd5b50565b5f6020828403121562000834575f80fd5b813562000841816200080b565b9392505050565b5f80604083850312156200085a575f80fd5b823562000867816200080b565b9150602083013562000879816200080b565b809150509250929050565b5f805f6060848603121562000897575f80fd5b8335620008a4816200080b565b92506020840135620008b6816200080b565b91506040840135620008c8816200080b565b809150509250925092565b5f60208284031215620008e4575f80fd5b815162000841816200080b565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156200092157818101518382015260200162000907565b50505f910152565b5f602082840312156200093a575f80fd5b815167ffffffffffffffff8082111562000952575f80fd5b818401915084601f83011262000966575f80fd5b8151818111156200097b576200097b620008f1565b604051601f8201601f19908116603f01168101908382118183101715620009a657620009a6620008f1565b81604052828152876020848701011115620009bf575f80fd5b620009d283602083016020880162000905565b979650505050505050565b5f8251620009f081846020870162000905565b752632b73232b91031b93b2aa9a2102137b93937bbb2b960511b920191825250601601919050565b5f60018060a01b03808a16835260e0602084015288518060e085015261010062000a498282870160208e0162000905565b9882166040850152968116606084015294851660808301525091831660a083015290911660c0820152601f909101601f191601019291505056fe6101a06040525f805462ffffff19166227100117905534801562000021575f80fd5b5060405162003c8038038062003c80833981016040819052620000449162000933565b6001600160a01b0387166080523060a05260405187908790879087908490849082908290620000b99062000085908490849033908190819060240162000a83565b60408051601f198184030181529190526020810180516001600160e01b03908116634b839d7360e11b179091526200033916565b505073d377919fa87120584b21279a491f82d5265a139c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc555050506001600160a01b0382811660c0525f196001555f8054642e90edd000600255600160281b600160901b0319166b01f41f401b580000000000001790558116156200022457806001600160a01b031660e0816001600160a01b031681525050816001600160a01b031660e0516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001c2919062000ac5565b6001600160a01b0316146200020d5760405162461bcd60e51b815260206004820152600c60248201526b085b195b99195c95985d5b1d60a21b60448201526064015b60405180910390fd5b620002246001600160a01b038316825f19620003c8565b5050506001600160a01b0380851661010052838116610120526200024e91508816835f1962000523565b620002656001600160a01b038616835f1962000523565b6001600160a01b0381811661014081905260805160405163c661065760e01b81525f600482015292169163c661065790602401602060405180830381865afa158015620002b4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002da919062000ac5565b6001600160a01b031614620002f0575f620002f3565b60015b60ff166101608190526001146200030c5760016200030e565b5f5b60ff16610180526200032c6001600160a01b038616825f1962000523565b5050505050505062000b4b565b60605f8073d377919fa87120584b21279a491f82d5265a139c6001600160a01b0316846040516200036b919062000ae1565b5f60405180830381855af49150503d805f8114620003a5576040519150601f19603f3d011682016040523d82523d5f602084013e620003aa565b606091505b509150915081620003c1576040513d805f833e8082fd5b9392505050565b801580620004445750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156200041c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000442919062000afe565b155b620004b85760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606482015260840162000204565b6040516001600160a01b0383166024820152604481018290526200051e90849063095ea7b360e01b906064015b60408051808303601f190181529190526020810180516001600160e01b0319939093166001600160e01b0393841617905290620005c516565b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b179091526200057d90859083906200069716565b620005bf576040516001600160a01b03841660248201525f6044820152620005b390859063095ea7b360e01b90606401620004e5565b620005bf8482620005c5565b50505050565b6040805180820190915260208082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908201525f9062000613906001600160a01b03851690849062000741565b905080515f14806200063657508080602001905181019062000636919062000b16565b6200051e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000204565b5f805f846001600160a01b031684604051620006b4919062000ae1565b5f604051808303815f865af19150503d805f8114620006ef576040519150601f19603f3d011682016040523d82523d5f602084013e620006f4565b606091505b5091509150818015620007225750805115806200072257508080602001905181019062000722919062000b16565b80156200073857506001600160a01b0385163b15155b95945050505050565b60606200075184845f8562000759565b949350505050565b606082471015620007bc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000204565b5f80866001600160a01b03168587604051620007d9919062000ae1565b5f6040518083038185875af1925050503d805f811462000815576040519150601f19603f3d011682016040523d82523d5f602084013e6200081a565b606091505b5090925090506200082e8783838762000839565b979650505050505050565b60608315620008ac5782515f03620008a4576001600160a01b0385163b620008a45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000204565b508162000751565b620007518383815115620008c35781518083602001fd5b8060405162461bcd60e51b815260040162000204919062000b37565b80516001600160a01b0381168114620008f6575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156200092b57818101518382015260200162000911565b50505f910152565b5f805f805f805f60e0888a0312156200094a575f80fd5b6200095588620008df565b60208901519097506001600160401b038082111562000972575f80fd5b818a0191508a601f83011262000986575f80fd5b8151818111156200099b576200099b620008fb565b604051601f8201601f19908116603f01168101908382118183101715620009c657620009c6620008fb565b816040528281528d6020848701011115620009df575f80fd5b620009f28360208301602088016200090f565b809a50505050505062000a0860408901620008df565b945062000a1860608901620008df565b935062000a2860808901620008df565b925062000a3860a08901620008df565b915062000a4860c08901620008df565b905092959891949750929550565b5f815180845262000a6f8160208601602086016200090f565b601f01601f19169290920160200192915050565b5f60018060a01b03808816835260a0602084015262000aa660a084018862000a56565b9581166040840152938416606083015250911660809091015292915050565b5f6020828403121562000ad6575f80fd5b620003c182620008df565b5f825162000af48184602087016200090f565b9190910192915050565b5f6020828403121562000b0f575f80fd5b5051919050565b5f6020828403121562000b27575f80fd5b81518015158114620003c1575f80fd5b602081525f620003c1602083018462000a56565b60805160a05160c05160e0516101005161012051610140516101605161018051612f3962000d475f395f818161062f015281816120d8015261283101525f818161039b015281816120b2015261285701525f81816104230152818161210b015261288d01525f818161068e01528181610ae901528181610e4801528181610ec2015281816118d401528181611f1c015281816122840152818161258c01528181612644015281816128d901528181612972015281816129bf0152612a1201525f818161036c015281816106e101526107c301525f818161031901528181610961015281816116870152818161188601528181611d7901528181611df701528181611e8e0152612a6501525f818161044a015281816108d301528181610c1c01528181610dbd0152818161103d01528181611432015281816118fe01528181611c6f0152818161244c015281816124ce01528181612539015281816126a6015261277e01525f8181610a5201528181610b3501528181610ca301528181610f6001528181610fdd015281816110ed01528181611169015281816111f50152818161127b015281816112f60152818161137101528181611480015281816115410152818161199b0152611ae201525f8181610742015281816108f9015281816110a1015281816113f801528181611b7901526122450152612f395ff3fe608060405234801561000f575f80fd5b506004361061029e575f3560e01c80636be36a1d11610165578063bdc8144b116100cc578063e862114911610085578063e862114914610665578063ebf278021461066d578063ecf7085814610680578063ee0fc12114610689578063f0fa55a9146106b0578063fde813a8146106c35761029e565b8063bdc8144b146105d4578063d19a3bb8146105e7578063d696860114610602578063da769c4714610615578063dc07c8cb1461062a578063e4d746fb146106515761029e565b8063950b3d731161011e578063950b3d73146105775780639b90fb161461058a5780639d7fb70c1461059d578063ac00ff26146105b0578063b1ea668d146105c3578063b6a16506146105cb5761029e565b80636be36a1d14610526578063702651db1461052e578063735fd18914610536578063797bf343146105495780637d969932146105515780638e72e31b146105635761029e565b806344a706861161020957806355b90362116101c257806355b90362146104aa5780635bc34efe146104bd5780635d265d3f146104c55780636353f822146104db5780636687500e146105025780636718835f1461050a5761029e565b806344a706861461041e578063456dc17a1461044557806346aa2f121461046c57806349317f1d1461047f5780634a5d094314610487578063503160d9146104975761029e565b806331b7f9b21161025b57806331b7f9b21461038e578063386da6411461039657806338dbd359146103bd578063392f7a70146103d05780633d6cb575146103d85780633e032a3b146103eb5761029e565b806301681a62146102d357806302402ae0146102e657806304bd46291461030157806306876d1914610314578063085c884f14610353578063180cb47f14610367575b73d377919fa87120584b21279a491f82d5265a139c365f80375f80365f845af43d5f803e8080156102cd573d5ff35b3d5ffd5b005b6102d16102e1366004612c51565b6106d6565b6102ee61084a565b6040519081526020015b60405180910390f35b6102ee61030f366004612c51565b610888565b61033b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102f8565b6102ee610361366004612c6a565b50600190565b61033b7f000000000000000000000000000000000000000000000000000000000000000081565b6102ee61094a565b6102ee7f000000000000000000000000000000000000000000000000000000000000000081565b6102d16103cb366004612c8e565b610a3d565b6102ee610ad2565b6102d16103e6366004612c6a565b610b20565b5f5461040590600160501b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016102f8565b61033b7f000000000000000000000000000000000000000000000000000000000000000081565b61033b7f000000000000000000000000000000000000000000000000000000000000000081565b6102ee61047a366004612c51565b610b31565b6102ee610c5e565b5f54610100900461ffff166102ee565b6102d16104a5366004612c6a565b610c7d565b6102d16104b8366004612cba565b610c8e565b6102ee610da6565b6104cd610df4565b6040516102f8929190612d38565b5f546104ef90600160401b900461ffff1681565b60405161ffff90911681526020016102f8565b6102ee610e31565b5f546105169060ff1681565b60405190151581526020016102f8565b6102ee610ebf565b6102d1610f4b565b6102d1610544366004612d52565b610fc8565b6102ee61108a565b5f546301000000900461ffff166102ee565b5f546104ef90600160301b900461ffff1681565b6102d1610585366004612c6a565b6110d8565b6102d1610598366004612c6a565b611154565b6102d16105ab366004612c6a565b6111cf565b6102d16105be366004612c8e565b6111e0565b6102d1611266565b6102ee60025481565b6102d16105e2366004612c6a565b6112e1565b61033b73d377919fa87120584b21279a491f82d5265a139c81565b6102d1610610366004612c6a565b61135c565b5f546105169065010000000000900460ff1681565b6102ee7f000000000000000000000000000000000000000000000000000000000000000081565b6102ee61065f366004612c6a565b50600a90565b6102ee6113d8565b6102d161067b366004612c6a565b61146b565b6102ee60015481565b61033b7f000000000000000000000000000000000000000000000000000000000000000081565b6102d16106be366004612c6a565b61152c565b6102d16106d1366004612c6a565b611608565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107405760405162461bcd60e51b81526004016107379060208082526004908201526310b3b7bb60e11b604082015260600190565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316036107aa5760405162461bcd60e51b815260206004820152600660248201526508585cdcd95d60d21b6044820152606401610737565b6040516370a0823160e01b8152306004820152610847907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610812573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108369190612d7a565b6001600160a01b0384169190611619565b50565b5f80610854610da6565b61085c61094a565b6108669190612da5565b90505f610871610ad2565b9050808210610882575f9250505090565b03919050565b5f80610892610e31565b61089d906001612da5565b90505f6108a8611670565b90506108b261094a565b81101561092f576108c16116c6565b670de0b6b3a764000061091d6108f7847f00000000000000000000000000000000000000000000000000000000000000006116f4565b7f000000000000000000000000000000000000000000000000000000000000000061178b565b028161092b5761092b612db8565b0491505b8161093861108a565b6109429190612da5565b949350505050565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a9082906370a08231906024015b602060405180830381865afa1580156109b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109db9190612d7a565b6040518263ffffffff1660e01b81526004016109f991815260200190565b602060405180830381865afa158015610a14573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a389190612d7a565b905090565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b158015610a9a575f80fd5b505afa158015610aac573d5f803e3d5ffd5b50505f8054931515650100000000000265ff000000000019909416939093179092555050565b6040516326db15bb60e21b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690639b6c56ec906024016109f9565b610b28611818565b6108478161184f565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb39190612d7a565b90505f8160015411610bc5575f610bd3565b81600154610bd39190612dcc565b90505f610be15f1983611858565b90505f610bfc610bef61186f565b610bf76118bd565b611858565b9050610c5482610bf7610c0d6116c6565b670de0b6b3a7640000610c40867f00000000000000000000000000000000000000000000000000000000000000006116f4565b610c4a9190612ddf565b6108f79190612df6565b9695505050505050565b5f610c67611818565b610c6f61192f565b9050610c7a81611980565b90565b610c85611818565b61084781611ac3565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b158015610ceb575f80fd5b505afa158015610cfd573d5f803e3d5ffd5b505050506123288161ffff1611158015610d1e57508061ffff168261ffff16105b8015610d2d575061ffff821615155b610d675760405162461bcd60e51b815260206004820152600b60248201526a34b73b30b634b210262a2b60a91b6044820152606401610737565b5f805469ffffffff0000000000001916600160301b61ffff9485160269ffff0000000000000000191617600160401b9290931691909102919091179055565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a08231906024016109f9565b5f6060610dff611acc565b6040805160048152602481019091526020810180516001600160e01b031663440368a360e01b17905290939092509050565b604051631d8e9a1560e31b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ec74d0a890602401608060405180830381865afa158015610e95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb99190612e15565b51919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635449b9cb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f409190612d7a565b610a3890600a612ddf565b6040516320b8029160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906382e00a44906024015f6040518083038186803b158015610fa8575f80fd5b505afa158015610fba573d5f803e3d5ffd5b50505050610fc6611cd0565b565b6040516320b8029160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906382e00a44906024015f6040518083038186803b158015611025575f80fd5b505afa158015611037573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036110815761107d81611d55565b5050565b61107d81611f00565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a08231906024016109f9565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b158015611135575f80fd5b505afa158015611147573d5f803e3d5ffd5b5050505061084781611f7f565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b1580156111b1575f80fd5b505afa1580156111c3573d5f803e3d5ffd5b50505060029190915550565b6111d7611818565b61084781612018565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b15801561123d575f80fd5b505afa15801561124f573d5f803e3d5ffd5b50505f805460ff1916931515939093179092555050565b6040516320b8029160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906382e00a44906024015f6040518083038186803b1580156112c3575f80fd5b505afa1580156112d5573d5f803e3d5ffd5b50505050610fc6612028565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b15801561133e575f80fd5b505afa158015611350573d5f803e3d5ffd5b50505060019190915550565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b1580156113b9575f80fd5b505afa1580156113cb573d5f803e3d5ffd5b5050505061084781612043565b5f806113e2610e31565b9050805f036113f2575f91505090565b61141c817f00000000000000000000000000000000000000000000000000000000000000006116f4565b670de0b6b3a7640000611456611430610ad2565b7f00000000000000000000000000000000000000000000000000000000000000006116f4565b028161146457611464612db8565b0491505090565b6040516320b8029160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906382e00a44906024015f6040518083038186803b1580156114c8575f80fd5b505afa1580156114da573d5f803e3d5ffd5b505050505f198103611523575f6114ef610da6565b905061151f6114fc610ad2565b8261150561094a565b61150f9190612da5565b6115199190612dcc565b82611858565b9150505b610847816120a3565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a649906024015f6040518083038186803b158015611589575f80fd5b505afa15801561159b573d5f803e3d5ffd5b5050505061271081106115db5760405162461bcd60e51b8152602060048201526008602482015267736c69707061676560c01b6044820152606401610737565b5f805467ffffffffffffffff909216600160501b0267ffffffffffffffff60501b19909216919091179055565b611610611818565b61084781612142565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261166b90849061216f565b505050565b604051636c82bbbf60e11b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a90829063d905777e9060240161099c565b5f805461271090600160301b900461ffff166116e0610ebf565b02816116ee576116ee612db8565b04905090565b5f825f0361170357505f611785565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561173f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117639190612e9b565b60ff16600a0a61177283612242565b84028161178157611781612db8565b0490505b92915050565b5f825f0361179a57505f611785565b6117a382612242565b826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118039190612e9b565b60ff16600a0a84028161178157611781612db8565b333014610fc65760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b6044820152606401610737565b61084781612318565b5f8183106118665781611868565b825b9392505050565b60405163402d267d60e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063402d267d906024016109f9565b6040516370a0823160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a08231906024016109f9565b5f611938611cd0565b61195461194f61194661108a565b610bf730610b31565b6123ba565b61195c61251e565b611964610e31565b61196c61108a565b6119769190612da5565b610a389190612dcc565b5f5460ff1661199857505f805460ff19166001179055565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a199190612d7a565b905080821115611a8c575f5461271090611a3c90610100900461ffff1683612ddf565b611a469190612df6565b611a508284612dcc565b111561107d5760405162461bcd60e51b815260206004820152600b60248201526a6865616c7468436865636b60a81b6044820152606401610737565b8181111561107d575f5461271090611aaf906301000000900461ffff1683612ddf565b611ab99190612df6565b611a508383612dcc565b610847816123ba565b5f611ad5612564565b15611ae05750600190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b609190612d7a565b5f03611b6b57505f90565b5f611b9d611b77610e31565b7f00000000000000000000000000000000000000000000000000000000000000006116f4565b90505f611bab611430610ad2565b90505f808311611bbb575f611bd8565b82611bce670de0b6b3a764000084612ddf565b611bd89190612df6565b9050611be26125fb565b811115611bf3576001935050505090565b5f611bfc6116c6565b90508115801590611c0a57505f5b15611c1e5760025448111594505050505090565b8082108015611c3d575067016345785d8a0000611c3b8383612dcc565b115b15611cc6575f670de0b6b3a7640000611c568387612ddf565b611c609190612df6565b90508381035f611c9e611c93837f000000000000000000000000000000000000000000000000000000000000000061178b565b610bf7610bef61186f565b9050805f03611cb4575f97505050505050505090565b60025448111597505050505050505090565b5f94505050505090565b5f611cd9610da6565b90505f81611ce561094a565b611cef9190612da5565b90505f611cfa610ad2565b9050818110611d0857505050565b5f611d138284612dcc565b905083811115611d2f57611d2f611d2a8583612dcc565b611d55565b611d37610da6565b9350611d4f848211611d4957816120a3565b846120a3565b50505050565b604051630a28a47760e01b8152600481018290525f90611e68906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630a28a47790602401602060405180830381865afa158015611dbe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611de29190612d7a565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611e44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf79190612d7a565b604051635d043b2960e11b815260048101829052306024820181905260448201529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ba087652906064016020604051808303815f875af1158015611edc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166b9190612d7a565b6040516317257a9560e11b8152600481018290525f60248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e4af52a906044015b5f604051808303815f87803b158015611f66575f80fd5b505af1158015611f78573d5f803e3d5ffd5b5050505050565b5f8111611fbd5760405162461bcd60e51b815260206004820152600c60248201526b085e995c9bc81c1c9bd99a5d60a21b6044820152606401610737565b61ffff811115611ffb5760405162461bcd60e51b8152602060048201526009602482015268042e8dede40d0d2ced60bb1b6044820152606401610737565b5f805461ffff9092166101000262ffff0019909216919091179055565b61084761194f82610bf730610b31565b610fc661203e612036610da6565b610bf7610ad2565b612615565b61271081106120825760405162461bcd60e51b815260206004820152600b60248201526a085b1bdcdcc81b1a5b5a5d60aa1b6044820152606401610737565b5f805461ffff90921663010000000264ffff00000019909216919091179055565b604051630b68372160e31b81527f000000000000000000000000000000000000000000000000000000000000000060048201527f00000000000000000000000000000000000000000000000000000000000000006024820152604481018290525f60648201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635b41b90890608401611f4f565b801561215757612157611d2a82610bf7611670565b61215f612028565b61084761216a61267b565b611f00565b5f6121c3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127089092919063ffffffff16565b905080515f14806121e35750808060200190518101906121e39190612ebb565b61166b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610737565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361230c576402540be4007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d9f11a646040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123029190612d7a565b6117859190612df6565b506305f5e1005b919050565b5f61232161108a565b905061233461232f83612716565b6127d1565b61233c612028565b61234b61216a83610bf761267b565b8061235461108a565b61235e9190612dcc565b8211801561237257505f612370610ad2565b115b8015612383575061238161094a565b155b801561239a57505f5465010000000000900460ff16155b1561107d576123a7612819565b6123af612028565b61107d61216a61267b565b6123c3816128c4565b5f6123cf611b77610e31565b90505f6123dd611430610ad2565b90505f8083116123ed575f61240a565b82612400670de0b6b3a764000084612ddf565b61240a9190612df6565b90505f6124156116c6565b90508181111561248d575f670de0b6b3a76400006124338387612ddf565b61243d9190612df6565b90508381035f612470611c93837f000000000000000000000000000000000000000000000000000000000000000061178b565b905060035481111561248557612485816129f6565b5050506124fc565b6124956125fb565b8211156124fc575f670de0b6b3a76400006124b08684612ddf565b6124ba9190612df6565b90506124f261232f6124cc8387612dcc565b7f000000000000000000000000000000000000000000000000000000000000000061178b565b6124fa612028565b505b5f612505610da6565b905080156125165761251681612a49565b505050505050565b5f8061252861084a565b905080156125605761255d6108f7827f00000000000000000000000000000000000000000000000000000000000000006116f4565b91505b5090565b604051634484754160e11b8152306004820152600160248201525f9081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638908ea8290604401602060405180830381865afa1580156125d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125f59190612d7a565b12905090565b5f805461271090600160401b900461ffff166116e0610ebf565b6040516337671f9360e01b8152600481018290523060248201526001600160ff1b0360448201525f60648201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906337671f9390608401611f4f565b5f80612685610e31565b90505f612690610ad2565b9050805f0361269f5750919050565b5f6126ca827f00000000000000000000000000000000000000000000000000000000000000006116f4565b90505f6126ea6126d86116c6565b610c4a670de0b6b3a764000085612ddf565b9050838111156126fe575f94505050505090565b9092039392505050565b606061094284845f85612ad7565b5f815f0361272557505f919050565b5f61272e610e31565b905080831061273f57611868610ad2565b5f61274d611b778584612dcc565b90505f670de0b6b3a76400006127616116c6565b61276b9084612ddf565b6127759190612df6565b90505f6127a2827f000000000000000000000000000000000000000000000000000000000000000061178b565b90505f6127ad610ad2565b90508082106127bc575f6127c6565b6127c68282612dcc565b979650505050505050565b5f6127da610da6565b9050818110156127f3576127ee8183612dcc565b6127f5565b5f5b915061280382610bf7611670565b9150815f03612810575050565b61107d82611d55565b5f61282261084a565b604051630b68372160e31b81527f000000000000000000000000000000000000000000000000000000000000000060048201527f00000000000000000000000000000000000000000000000000000000000000006024820152604481018290525f60648201529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635b41b90890608401611f4f565b60405163510d6dcf60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a21adb9e90602401602060405180830381865afa158015612926573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061294a9190612ebb565b6129a9576040516323cfed0360e01b81526004810182905260016024820152600a60448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323cfed0390606401611f4f565b6040516337cb978960e11b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636f972f1290602401611f4f565b604051633745c79f60e21b81525f6004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063dd171e7c90604401611f4f565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044016020604051808303815f875af1158015612ab3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107d9190612d7a565b606082471015612b385760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610737565b5f80866001600160a01b03168587604051612b539190612ed6565b5f6040518083038185875af1925050503d805f8114612b8d576040519150601f19603f3d011682016040523d82523d5f602084013e612b92565b606091505b50915091506127c68783838760608315612c0c5782515f03612c05576001600160a01b0385163b612c055760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610737565b5081610942565b6109428383815115612c215781518083602001fd5b8060405162461bcd60e51b81526004016107379190612ef1565b80356001600160a01b0381168114612313575f80fd5b5f60208284031215612c61575f80fd5b61186882612c3b565b5f60208284031215612c7a575f80fd5b5035919050565b8015158114610847575f80fd5b5f60208284031215612c9e575f80fd5b813561186881612c81565b803561ffff81168114612313575f80fd5b5f8060408385031215612ccb575f80fd5b612cd483612ca9565b9150612ce260208401612ca9565b90509250929050565b5f5b83811015612d05578181015183820152602001612ced565b50505f910152565b5f8151808452612d24816020860160208601612ceb565b601f01601f19169290920160200192915050565b8215158152604060208201525f6109426040830184612d0d565b5f8060408385031215612d63575f80fd5b612d6c83612c3b565b946020939093013593505050565b5f60208284031215612d8a575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561178557611785612d91565b634e487b7160e01b5f52601260045260245ffd5b8181038181111561178557611785612d91565b808202811582820484141761178557611785612d91565b5f82612e1057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60808284031215612e25575f80fd5b82601f830112612e33575f80fd5b6040516080810181811067ffffffffffffffff82111715612e6257634e487b7160e01b5f52604160045260245ffd5b604052806080840185811115612e76575f80fd5b845b81811015612e90578051835260209283019201612e78565b509195945050505050565b5f60208284031215612eab575f80fd5b815160ff81168114611868575f80fd5b5f60208284031215612ecb575f80fd5b815161186881612c81565b5f8251612ee7818460208701612ceb565b9190910192915050565b602081525f6118686020830184612d0d56fea2646970667358221220de68faefe892763e6537158e12248c9fc29bf99f98079829e6d2081a2988198864736f6c63430008170033a26469706673582212207760ecb1d2b1c8034b2c45aa81879668f1897b98c9588c3ed30f32d8312c9cde64736f6c634300081700330000000000000000000000001b5f15dcb82d25f91c65b53cee151e8b9fbdd2710000000000000000000000001b5f15dcb82d25f91c65b53cee151e8b9fbdd2710000000000000000000000001b5f15dcb82d25f91c65b53cee151e8b9fbdd27100000000000000000000000016388463d60ffe0661cf7f1f31a7d658ac790ff700000000000000000000000016388463d60ffe0661cf7f1f31a7d658ac790ff7000000000000000000000000c9332fdcb1c491dcc683bae86fe3cb70360738bc