0 txs
0 calls
constructor
constructor()
functions
_feeRecipient
viewfunction _feeRecipient() view returns (address)
addressesProvider
viewfunction addressesProvider() view returns (address)
admin
viewfunction admin() view returns (address)
AUTOMATIC_SERVICE_FEE
viewfunction AUTOMATIC_SERVICE_FEE() view returns (uint256)
BOT_REGISTRY_ADDRESS
viewfunction BOT_REGISTRY_ADDRESS() view returns (address)
DAI_ADDRESS
viewfunction DAI_ADDRESS() view returns (address)
DAI_JOIN_ADDRESS
viewfunction DAI_JOIN_ADDRESS() view returns (address)
daiJoin
viewfunction daiJoin() view returns (address)
DISCOUNT_ADDRESS
viewfunction DISCOUNT_ADDRESS() view returns (address)
ERR_DEST_AMOUNT_MISSING
viewfunction ERR_DEST_AMOUNT_MISSING() view returns (string)
ERR_NOT_ZEROX_EXCHANGE
viewfunction ERR_NOT_ZEROX_EXCHANGE() view returns (string)
ERR_OFFCHAIN_DATA_INVALID
viewfunction ERR_OFFCHAIN_DATA_INVALID() view returns (string)
ERR_SLIPPAGE_HIT
viewfunction ERR_SLIPPAGE_HIT() view returns (string)
ERR_WRAPPER_INVALID
viewfunction ERR_WRAPPER_INVALID() view returns (string)
ETH_ILK
viewfunction ETH_ILK() view returns (bytes32)
EXCHANGE_WETH_ADDRESS
viewfunction EXCHANGE_WETH_ADDRESS() view returns (address)
getCdpInfo
viewfunction getCdpInfo(address _manager, uint256 _cdpId, bytes32 _ilk) view returns (uint256, uint256)
getManagerAddr
purefunction getManagerAddr(uint8 _managerType) pure returns (address)
getMaxCollateral
viewfunction getMaxCollateral(address _managerAddr, uint256 _cdpId, bytes32 _ilk, address _joinAddr) view returns (uint256)
getMaxDebt
viewfunction getMaxDebt(address _managerAddr, uint256 _cdpId, bytes32 _ilk) view returns (uint256)
getOwner
viewfunction getOwner(address _manager, uint256 _cdpId) view returns (address)
getPrice
viewfunction getPrice(bytes32 _ilk) view returns (uint256)
JUG_ADDRESS
viewfunction JUG_ADDRESS() view returns (address)
KYBER_ETH_ADDRESS
viewfunction KYBER_ETH_ADDRESS() view returns (address)
LENDING_POOL_ADDRESS_PROVIDER
viewfunction LENDING_POOL_ADDRESS_PROVIDER() view returns (address)
logger
viewfunction logger() view returns (address)
MANUAL_SERVICE_FEE
viewfunction MANUAL_SERVICE_FEE() view returns (uint256)
owner
viewfunction owner() view returns (address)
packExchangeData
purefunction packExchangeData(tuple _exData) pure returns (bytes)
SAVER_EXCHANGE_REGISTRY
viewfunction SAVER_EXCHANGE_REGISTRY() view returns (address)
SPOTTER_ADDRESS
viewfunction SPOTTER_ADDRESS() view returns (address)
spotter
viewfunction spotter() view returns (address)
unpackExchangeData
purefunction unpackExchangeData(bytes _data) pure returns (tuple _exData)
VAT_ADDRESS
viewfunction VAT_ADDRESS() view returns (address)
vat
viewfunction vat() view returns (address)
ZRX_ALLOWLIST_ADDR
viewfunction ZRX_ALLOWLIST_ADDR() view returns (address)
boost
payablefunction boost(tuple _exchangeData, uint256 _cdpId, uint256 _gasCost, address _joinAddr, uint8 _managerType) payable
executeOperation
nonpayablefunction executeOperation(address _reserve, uint256 _amount, uint256 _fee, bytes _params)
kill
nonpayablefunction kill()
repay
payablefunction repay(tuple _exchangeData, uint256 _cdpId, uint256 _gasCost, address _joinAddr, uint8 _managerType) payable
setAdminByAdmin
nonpayablefunction setAdminByAdmin(address _admin)
setAdminByOwner
nonpayablefunction setAdminByOwner(address _admin)
setOwnerByAdmin
nonpayablefunction setOwnerByAdmin(address _owner)
withdrawStuckFunds
nonpayablefunction withdrawStuckFunds(address _token, uint256 _amount)
events
No events.
errors
No errors.
creation bytecode
0x6080604052600380546001600160a01b0319167324a42fd28c976a61df5d00d0599c34c4f90748c817905534801561003657600080fd5b50600354600080546001600160a01b031990811633179091556001805482167325efa336886c74ea8e282ac466bdcd0199f85bb9179055600280549091166001600160a01b03909216919091179055615367806100946000396000f3fe60806040526004361061026b5760003560e01c80638c8a795811610144578063c72c4d10116100b6578063dd6d903c1161007a578063dd6d903c1461060f578063deca5f881461062f578063e870b9cd1461064f578063ee87255814610662578063f24ccbfe14610682578063f851a4401461069757610272565b8063c72c4d10146105d2578063c7975824146105e7578063cc694d48146105fa578063cf786f8f146103bc578063cfac57c7146105a857610272565b8063a46a66c911610108578063a46a66c914610549578063a7304bf71461055e578063acbeba611461057e578063ae08fd1014610593578063c11645bc146105a8578063c50ebaf8146105bd57610272565b80638c8a7958146104c85780638da5cb5b146104dd57806398ab3d49146104f2578063a342f23814610507578063a3b8e5d11461051c57610272565b806336569e77116101dd5780634d2ab9dc116101a15780634d2ab9dc146104495780634d93667e1461045e578063526d64611461047e5780636738929f1461035257806381b94280146104935780638aa0fd0e146104a857610272565b806336569e77146103bc5780633a128322146103d15780634115fe6b146103f157806341c0e1b51461041f578063449b9ffa1461043457610272565b806329f7fc9e1161022f57806329f7fc9e1461031b5780632a4c0a1a1461033d5780632e77468d146103525780632f634a9014610367578063314b63321461038757806331d98b3f1461039c57610272565b806304c9805c1461027757806308d4f52a146102a2578063186cab76146102cf5780631e48907b146102e4578063278d58311461030657610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c6106ac565b604051610299919061506f565b60405180910390f35b3480156102ae57600080fd5b506102c26102bd366004614b33565b6106b2565b60405161029991906150c4565b3480156102db57600080fd5b5061028c6106dc565b3480156102f057600080fd5b506103046102ff366004614840565b6106e8565b005b34801561031257600080fd5b506102c2610721565b34801561032757600080fd5b50610330610749565b6040516102999190614e9f565b34801561034957600080fd5b50610330610761565b34801561035e57600080fd5b50610330610779565b34801561037357600080fd5b50610330610382366004614ae9565b610791565b34801561039357600080fd5b5061033061088d565b3480156103a857600080fd5b5061028c6103b73660046149fa565b6108a5565b3480156103c857600080fd5b50610330610a63565b3480156103dd57600080fd5b506103046103ec366004614878565b610a7b565b3480156103fd57600080fd5b5061041161040c3660046148a3565b610b14565b604051610299929190615282565b34801561042b57600080fd5b50610304610d30565b34801561044057600080fd5b506102c2610d55565b34801561045557600080fd5b5061028c610d87565b34801561046a57600080fd5b50610330610479366004614b18565b610d8d565b34801561048a57600080fd5b50610330610dec565b34801561049f57600080fd5b50610330610e04565b3480156104b457600080fd5b5061028c6104c33660046148a3565b610e1c565b3480156104d457600080fd5b50610330610efd565b3480156104e957600080fd5b50610330610f15565b3480156104fe57600080fd5b50610330610f24565b34801561051357600080fd5b50610330610f33565b34801561052857600080fd5b5061053c610537366004614a2a565b610f4b565b60405161029991906151ea565b34801561055557600080fd5b50610330610f67565b34801561056a57600080fd5b50610304610579366004614840565b610f7f565b34801561058a57600080fd5b50610330610fb8565b34801561059f57600080fd5b506102c2610fd0565b3480156105b457600080fd5b50610330611001565b3480156105c957600080fd5b506102c2611019565b3480156105de57600080fd5b50610330611048565b6103046105f5366004614c6e565b611057565b34801561060657600080fd5b506102c261123c565b34801561061b57600080fd5b5061028c61062a3660046148d7565b611267565b34801561063b57600080fd5b5061030461064a366004614840565b6113cf565b61030461065d366004614c6e565b6113fc565b34801561066e57600080fd5b5061030461067d366004614920565b6115d9565b34801561068e57600080fd5b506103306116fa565b3480156106a357600080fd5b50610330611712565b61014d81565b6060816040516020016106c591906151ea565b60405160208183030381529060405290505b919050565b644554482d4160d81b81565b6001546001600160a01b031633146106ff57600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040518060400160405280600c81526020016b14db1a5c1c1859d9481a1a5d60a21b81525081565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b736b175474e89094c44da98b954eedeac495271d0f81565b7365c79fcb50ca1594b025960e539ed7a9a6d434a381565b600080836001600160a01b0316638161b120846040518263ffffffff1660e01b81526004016107c0919061506f565b60206040518083038186803b1580156107d857600080fd5b505afa1580156107ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610810919061485c565b9050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561084b57600080fd5b505afa15801561085f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610883919061485c565b9150505b92915050565b7325dd3f51e0c3c3ff164ddc02a8e4d65bb9cbb12d81565b604051636cb1c69b60e11b815260009081907365c79fcb50ca1594b025960e539ed7a9a6d434a39063d9638d36906108e190869060040161506f565b604080518083038186803b1580156108f857600080fd5b505afa15801561090c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109309190614afb565b604051636cb1c69b60e11b8152909250600091507335d1b3f3d7966a1dfe207aa4514c12a259a0492b9063d9638d369061096e90879060040161506f565b60a06040518083038186803b15801561098657600080fd5b505afa15801561099a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109be9190614d04565b505092505050610a5b610a55827365c79fcb50ca1594b025960e539ed7a9a6d434a36001600160a01b031663495d32cb6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a1857600080fd5b505afa158015610a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a509190614a12565b611721565b83611721565b949350505050565b7335d1b3f3d7966a1dfe207aa4514c12a259a0492b81565b6000546001600160a01b03163314610a9257600080fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0383161415610af657600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610af0573d6000803e3d6000fd5b50610b10565b600054610b10906001600160a01b03848116911683611760565b5050565b6000806000856001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5257600080fd5b505afa158015610b66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8a919061485c565b90506000866001600160a01b0316632726b073876040518263ffffffff1660e01b8152600401610bba919061506f565b60206040518083038186803b158015610bd257600080fd5b505afa158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a919061485c565b9050600080836001600160a01b0316632424be5c88856040518363ffffffff1660e01b8152600401610c3d929190615078565b604080518083038186803b158015610c5457600080fd5b505afa158015610c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8c9190614ce1565b915091506000846001600160a01b031663d9638d36896040518263ffffffff1660e01b8152600401610cbe919061506f565b60a06040518083038186803b158015610cd657600080fd5b505afa158015610cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0e9190614d04565b50505091505082610d1f8383611721565b965096505050505050935093915050565b6000546001600160a01b03163314610d4757600080fd5b6000546001600160a01b0316ff5b6040518060400160405280601681526020017516995c9bde08195e18da185b99d9481a5b9d985b1a5960521b81525081565b61019081565b600080826001811115610d9c57fe5b1415610dbd5750735ef30b9986345249bc32d8928b7ee64de9435e396106d7565b6001826001811115610dcb57fe5b14156106d75750733f30c2381cd8b917dd96eb2f1a4f96d91324bbed6106d7565b73637726f8b08a7abe3ae3acab01a80e2d8ddef77b81565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b600080610e28836108a5565b604051636cb1c69b60e11b81529091506000907365c79fcb50ca1594b025960e539ed7a9a6d434a39063d9638d3690610e6590879060040161506f565b604080518083038186803b158015610e7c57600080fd5b505afa158015610e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb49190614afb565b915050600080610ec5888888610b14565b91509150610eef610ee8610ee2610edc85886117bb565b866117df565b836117ea565b600a6117ea565b9450505050505b9392505050565b734ba1f38427b33b8ab7bb0490200dae1f1c36823f81565b6000546001600160a01b031681565b6003546001600160a01b031681565b7339c4a92dc506300c3ea4c67ca4ca611102ee6f2a81565b610f5361445f565b818060200190518101906108879190614b66565b731b14e8d511c9a4395425314f849bd737baf8208f81565b6001546001600160a01b03163314610f9657600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b7319c0976f590d67707e62397c87829d896dc0f1f181565b6040518060400160405280601581526020017413d99998da185a5b8819185d18481a5b9d985b1a59605a1b81525081565b739759a6ac90977b93b58547b4a71c78317f391a2881565b604051806040016040528060138152602001724465737420616d6f756e74206d697373696e6760681b81525081565b6002546001600160a01b031681565b600061106282610d8d565b905060006110708287610791565b90506000826001600160a01b0316632c2cb9fd886040518263ffffffff1660e01b81526004016110a0919061506f565b60206040518083038186803b1580156110b857600080fd5b505afa1580156110cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f09190614a12565b905060006111048489848c604001516117fa565b6001600160a01b03841660c08b0152905061111d611c2a565b6111295761019061112d565b61014d5b60a08a015261113c8782611cb9565b810360408a0152600061114e8a611e1f565b91505061115d858a8984612166565b47156111915760405132904780156108fc02916000818181858888f1935050505015801561118f573d6000803e3d6000fd5b505b735c55b921f590a89c1ebe84df170e655a82b621266001600160a01b031663d061ce5030338c888f60400151876040516020016111d19493929190615248565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016111fe93929190614f1e565b600060405180830381600087803b15801561121857600080fd5b505af115801561122c573d6000803e3d6000fd5b5050505050505050505050505050565b6040518060400160405280600f81526020016e15dc985c1c195c881a5b9d985b1a59608a1b81525081565b600080611273846108a5565b9050600080611283888888610b14565b604051636cb1c69b60e11b815291935091506000907365c79fcb50ca1594b025960e539ed7a9a6d434a39063d9638d36906112c2908a9060040161506f565b604080518083038186803b1580156112d957600080fd5b505afa1580156112ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113119190614afb565b91505060006113328461132d61132785876117bb565b886117df565b6117ea565b90506000876001600160a01b031663b3bcfa826040518163ffffffff1660e01b815260040160206040518083038186803b15801561136f57600080fd5b505afa158015611383573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a79190614a12565b601203600a0a82816113b557fe5b049050606460638202049650505050505050949350505050565b6000546001600160a01b031633146113e657600080fd5b6001546001600160a01b031615610f9657600080fd5b600061140782610d8d565b905060006114158287610791565b90506000826001600160a01b0316632c2cb9fd886040518263ffffffff1660e01b8152600401611445919061506f565b60206040518083038186803b15801561145d57600080fd5b505afa158015611471573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114959190614a12565b90506114a78388878b604001516124b8565b506001600160a01b03821660c08901526114bf611c2a565b6114cb576101906114cf565b61014d5b60a089015260006114df89611e1f565b9150506114ec8782611cb9565b90036114fb84898484876127c9565b471561152f5760405132904780156108fc02916000818181858888f1935050505015801561152d573d6000803e3d6000fd5b505b735c55b921f590a89c1ebe84df170e655a82b621266001600160a01b031663d061ce5030338b878e604001518760405160200161156f9493929190615248565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161159c93929190614fbb565b600060405180830381600087803b1580156115b657600080fd5b505af11580156115ca573d6000803e3d6000fd5b50505050505050505050505050565b6115e33086612b48565b84111561160b5760405162461bcd60e51b81526004016116029061510e565b60405180910390fd5b606060008080808061161f87890189614a5d565b95509550955095509550955061163361445f565b61163c87610f4b565b90506116466144db565b6040518060c001604052808881526020018781526020018d81526020018c8152602001866001600160a01b031681526020018460ff16600181111561168757fe5b600181111561169257fe5b9052905083156116ab576116a68282612bf8565b6116b5565b6116b58282612e14565b6116c88d6116c38e8e6130c9565b6130ee565b47156115ca5760405132904780156108fc02916000818181858888f1935050505015801561122c573d6000803e3d6000fd5b735c55b921f590a89c1ebe84df170e655a82b6212681565b6001546001600160a01b031681565b6000676765c793fa10079d601b1b61175161173c85856117bb565b6002676765c793fa10079d601b1b5b04613178565b8161175857fe5b049392505050565b6117b68363a9059cbb60e01b848460405160240161177f929190615007565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613188565b505050565b60008115806117d6575050808202828282816117d357fe5b04145b61088757600080fd5b600081838161175857fe5b8082038281111561088757600080fd5b60405163089c54b560e31b815260009081907319c0976f590d67707e62397c87829d896dc0f1f1906344e2a5a89061183690879060040161506f565b602060405180830381600087803b15801561185057600080fd5b505af1158015611864573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118889190614a12565b905060007335d1b3f3d7966a1dfe207aa4514c12a259a0492b6001600160a01b0316636c25b346886001600160a01b0316632726b073896040518263ffffffff1660e01b81526004016118db919061506f565b60206040518083038186803b1580156118f357600080fd5b505afa158015611907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192b919061485c565b6040518263ffffffff1660e01b81526004016119479190614e9f565b60206040518083038186803b15801561195f57600080fd5b505afa158015611973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119979190614a12565b905060006119a6888888610e1c565b90508085106119bd576119ba8160016117ea565b94505b876001600160a01b03166345e6bdcd8860006119da898888613217565b6040518463ffffffff1660e01b81526004016119f89392919061526c565b600060405180830381600087803b158015611a1257600080fd5b505af1158015611a26573d6000803e3d6000fd5b50505050876001600160a01b031663f9f30db68830611a448961329a565b6040518463ffffffff1660e01b8152600401611a6293929190615229565b600060405180830381600087803b158015611a7c57600080fd5b505af1158015611a90573d6000803e3d6000fd5b5050604051634538c4eb60e01b81527335d1b3f3d7966a1dfe207aa4514c12a259a0492b9250634538c4eb9150611ae1903090739759a6ac90977b93b58547b4a71c78317f391a2890600401614eb3565b60206040518083038186803b158015611af957600080fd5b505afa158015611b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b319190614a12565b611bb3576040516328ec8bf160e21b81527335d1b3f3d7966a1dfe207aa4514c12a259a0492b9063a3b22fc490611b8090739759a6ac90977b93b58547b4a71c78317f391a2890600401614e9f565b600060405180830381600087803b158015611b9a57600080fd5b505af1158015611bae573d6000803e3d6000fd5b505050505b60405163ef693bed60e01b8152739759a6ac90977b93b58547b4a71c78317f391a289063ef693bed90611bec9030908990600401615007565b600060405180830381600087803b158015611c0657600080fd5b505af1158015611c1a573d6000803e3d6000fd5b50969a9950505050505050505050565b6040516320eb73ed60e11b815260009073637726f8b08a7abe3ae3acab01a80e2d8ddef77b906341d6e7da90611c64903290600401614e9f565b60206040518083038186803b158015611c7c57600080fd5b505afa158015611c90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb491906149b1565b905090565b60008215611e16576000611cd4644554482d4160d81b6108a5565b90506000611ce28583611721565b905060058404811115611cf55750600583045b60007339c4a92dc506300c3ea4c67ca4ca611102ee6f2a6001600160a01b031663b38779eb6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d4457600080fd5b505afa158015611d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7c919061485c565b60405163a9059cbb60e01b8152909150736b175474e89094c44da98b954eedeac495271d0f9063a9059cbb90611db89084908690600401615007565b602060405180830381600087803b158015611dd257600080fd5b505af1158015611de6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0a91906149b1565b50819350505050610887565b50600092915050565b600080600080600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b031686600001516001600160a01b03161415611eda578551611e64906132b1565b6001600160a01b031686526040808701518151630d0e30db60e41b8152915173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29263d0e30db09291600480830192600092919082900301818588803b158015611ec057600080fd5b505af1158015611ed4573d6000803e3d6000fd5b50505050505b611ef686604001518760c0015188600001518960a001516132f8565b6040870180519190910390526101208601516060015115611f3357611f1c86600061354b565b925090508015611f33578561012001516020015192505b80611f4d57611f43866000613749565b91508560e0015192505b6000611f6c73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2613967565b1115612052576040516370a0823160e01b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d9082906370a0823190611fb1903090600401614e9f565b602060405180830381600087803b158015611fcb57600080fd5b505af1158015611fdf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120039190614a12565b6040518263ffffffff1660e01b815260040161201f919061506f565b600060405180830381600087803b15801561203957600080fd5b505af115801561204d573d6000803e3d6000fd5b505050505b60208601516001600160a01b031673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214156120f55761208d86608001518760400151613a11565b6120aa73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee613967565b10156040518060400160405280600c81526020016b14db1a5c1c1859d9481a1a5d60a21b815250906120ef5760405162461bcd60e51b815260040161160291906150c4565b5061215b565b61210786608001518760400151613a11565b6121148760200151613967565b10156040518060400160405280600c81526020016b14db1a5c1c1859d9481a1a5d60a21b815250906121595760405162461bcd60e51b815260040161160291906150c4565b505b509092509050915091565b600061217183613a39565b1561224a57826001600160a01b0316637bd2bea76040518163ffffffff1660e01b815260040160206040518083038186803b1580156121af57600080fd5b505afa1580156121c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e7919061485c565b6001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561222157600080fd5b505af1158015612235573d6000803e3d6000fd5b505050505061224382613b16565b905061225f565b61225c6122578484613b38565b613b16565b90505b6122e58383856001600160a01b0316637bd2bea76040518163ffffffff1660e01b815260040160206040518083038186803b15801561229d57600080fd5b505afa1580156122b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d5919061485c565b6001600160a01b03169190613bba565b604051633b4da69f60e01b81526001600160a01b03841690633b4da69f906123139030908690600401615007565b600060405180830381600087803b15801561232d57600080fd5b505af1158015612341573d6000803e3d6000fd5b5050604051632c2cb9fd60e01b81527335d1b3f3d7966a1dfe207aa4514c12a259a0492b9250637608870391506001600160a01b03881690632c2cb9fd9061238d90899060040161506f565b60206040518083038186803b1580156123a557600080fd5b505afa1580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd9190614a12565b604051632726b07360e01b81526001600160a01b03891690632726b07390612409908a9060040161506f565b60206040518083038186803b15801561242157600080fd5b505afa158015612435573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612459919061485c565b30308660006040518763ffffffff1660e01b815260040161247f9695949392919061508f565b600060405180830381600087803b15801561249957600080fd5b505af11580156124ad573d6000803e3d6000fd5b505050505050505050565b600080829050836001600160a01b031663b3bcfa826040518163ffffffff1660e01b815260040160206040518083038186803b1580156124f757600080fd5b505afa15801561250b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252f9190614a12565b6012146125b257836001600160a01b031663b3bcfa826040518163ffffffff1660e01b815260040160206040518083038186803b15801561256f57600080fd5b505afa158015612583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a79190614a12565b601203600a0a830290505b856001600160a01b03166345e6bdcd866125cb84613b16565b60000360006040518463ffffffff1660e01b81526004016125ee9392919061526c565b600060405180830381600087803b15801561260857600080fd5b505af115801561261c573d6000803e3d6000fd5b50506040516313771f0760e31b81526001600160a01b0389169250639bb8f838915061265090889030908690600401615229565b600060405180830381600087803b15801561266a57600080fd5b505af115801561267e573d6000803e3d6000fd5b505060405163ef693bed60e01b81526001600160a01b038716925063ef693bed91506126b09030908790600401615007565b600060405180830381600087803b1580156126ca57600080fd5b505af11580156126de573d6000803e3d6000fd5b505050506126eb84613a39565b156127bf57836001600160a01b0316637bd2bea76040518163ffffffff1660e01b815260040160206040518083038186803b15801561272957600080fd5b505afa15801561273d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612761919061485c565b6001600160a01b0316632e1a7d4d846040518263ffffffff1660e01b815260040161278c919061506f565b600060405180830381600087803b1580156127a657600080fd5b505af11580156127ba573d6000803e3d6000fd5b505050505b5090949350505050565b604051632726b07360e01b81526000906001600160a01b03871690632726b073906127f890889060040161506f565b60206040518083038186803b15801561281057600080fd5b505afa158015612824573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612848919061485c565b9050600061286c7335d1b3f3d7966a1dfe207aa4514c12a259a0492b838488613bf9565b90508084111561290f57736b175474e89094c44da98b954eedeac495271d0f63a9059cbb8461289b87856117ea565b6040518363ffffffff1660e01b81526004016128b8929190615007565b602060405180830381600087803b1580156128d257600080fd5b505af11580156128e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290a91906149b1565b508093505b604051636eb1769f60e11b8152736b175474e89094c44da98b954eedeac495271d0f9063dd62ed3e9061295c903090739759a6ac90977b93b58547b4a71c78317f391a2890600401614eb3565b60206040518083038186803b15801561297457600080fd5b505afa158015612988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ac9190614a12565b612a535760405163095ea7b360e01b8152736b175474e89094c44da98b954eedeac495271d0f9063095ea7b3906129ff90739759a6ac90977b93b58547b4a71c78317f391a289060001990600401615007565b602060405180830381600087803b158015612a1957600080fd5b505af1158015612a2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a5191906149b1565b505b604051633b4da69f60e01b8152739759a6ac90977b93b58547b4a71c78317f391a2890633b4da69f90612a8c9085908890600401615007565b600060405180830381600087803b158015612aa657600080fd5b505af1158015612aba573d6000803e3d6000fd5b50505050866001600160a01b03166345e6bdcd876000612aef7335d1b3f3d7966a1dfe207aa4514c12a259a0492b878b613dd4565b6040518463ffffffff1660e01b8152600401612b0d9392919061526c565b600060405180830381600087803b158015612b2757600080fd5b505af1158015612b3b573d6000803e3d6000fd5b5050505050505050505050565b6000612b52613f92565b6001600160a01b0316826001600160a01b03161415612b7c57506001600160a01b03821631610887565b6040516370a0823160e01b81526001600160a01b038316906370a0823190612ba8908690600401614e9f565b60206040518083038186803b158015612bc057600080fd5b505afa158015612bd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef69190614a12565b6000612c078260a00151610d8d565b90506000612c19828460000151610791565b8351604051632c2cb9fd60e01b81529192506000916001600160a01b03851691632c2cb9fd91612c4c919060040161506f565b60206040518083038186803b158015612c6457600080fd5b505afa158015612c78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9c9190614a12565b90506000612cb4848660000151848860800151611267565b90506000612ccc8587600001518860800151856124b8565b6040808801518201908901526001600160a01b03851660c08901529050612cf1611c2a565b612cfd57610190612d01565b61014d5b60a08801526000612d1188611e1f565b915050612d22876020015182611cb9565b8751910390612d35908790868489613faa565b9050612d488688600001518684896127c9565b612d6686886000015189608001518a606001518b60400151016124b8565b50735c55b921f590a89c1ebe84df170e655a82b621266001600160a01b031663d061ce5030338a60000151898d6040015187604051602001612dab9493929190615248565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401612dd893929190614f6a565b600060405180830381600087803b158015612df257600080fd5b505af1158015612e06573d6000803e3d6000fd5b505050505050505050505050565b6000612e238260a00151610d8d565b90506000612e35828460000151610791565b8351604051632c2cb9fd60e01b8152919250600091612ebf9185916001600160a01b03831690632c2cb9fd90612e6f90849060040161506f565b60206040518083038186803b158015612e8757600080fd5b505afa158015612e9b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c39190614a12565b8451604051632c2cb9fd60e01b8152919250600091612f4f9186916001600160a01b03831690632c2cb9fd90612ef990849060040161506f565b60206040518083038186803b158015612f1157600080fd5b505afa158015612f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f499190614a12565b856117fa565b9050612f65856020015186604001518301611cb9565b604080870151830191909103908701526001600160a01b03831660c0870152612f8c611c2a565b612f9857610190612f9c565b61014d5b60a08701526000612fac87611e1f565b915050612fc3858760000151886080015184612166565b8551604051632c2cb9fd60e01b81526130579187916001600160a01b03831690632c2cb9fd90612ff790849060040161506f565b60206040518083038186803b15801561300f57600080fd5b505afa158015613023573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130479190614a12565b89606001518a60400151016117fa565b50735c55b921f590a89c1ebe84df170e655a82b621266001600160a01b031663d061ce5030338960000151888c604001518760405160200161309c9493929190615248565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401612b0d93929190614ecd565b600082820183811015610ef65760405162461bcd60e51b8152600401611602906150d7565b6002546040805163076b7fbb60e51b815290516000926001600160a01b03169163ed6ff760916004808301926020929190829003018186803b15801561313357600080fd5b505afa158015613147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316b919061485c565b90506117b68184846142c2565b8082018281101561088757600080fd5b60606131dd826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166143589092919063ffffffff16565b8051909150156117b657808060200190518101906131fb91906149b1565b6117b65760405162461bcd60e51b81526004016116029061517a565b600061322e84676765c793fa10079d601b1b6117bb565b821015610ef6576132648361325761325187676765c793fa10079d601b1b6117bb565b856117ea565b8161325e57fe5b04613b16565b905061327b84676765c793fa10079d601b1b6117bb565b61328582856117bb565b106132905780610a5b565b6001019392505050565b600061088782676765c793fa10079d601b1b6117bb565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146132dd5781610887565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2919050565b6000811580159061338b5750604051632cdc77ab60e21b8152731b14e8d511c9a4395425314f849bd737baf8208f9063b371deac9061333b908790600401614e9f565b60206040518083038186803b15801561335357600080fd5b505afa158015613367573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061338b91906149b1565b1561341a57604051636eeb543160e01b8152731b14e8d511c9a4395425314f849bd737baf8208f90636eeb5431906133c7908790600401614e9f565b60206040518083038186803b1580156133df57600080fd5b505afa1580156133f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134179190614a12565b91505b8161342757506000610a5b565b81858161343057fe5b049050600a85048111156134445750600a84045b60007339c4a92dc506300c3ea4c67ca4ca611102ee6f2a6001600160a01b031663b38779eb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561349357600080fd5b505afa1580156134a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134cb919061485c565b90506001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561352e576040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015613528573d6000803e3d6000fd5b50613542565b6135426001600160a01b0385168284611760565b50949350505050565b610120820151602001516040516302f5cc7960e11b81526000918291734ba1f38427b33b8ab7bb0490200dae1f1c36823f916305eb98f2916135909190600401614e9f565b60206040518083038186803b1580156135a857600080fd5b505afa1580156135bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135e091906149b1565b6135ef57506000905080613742565b6101208401515160405163e0aa279760e01b81527325dd3f51e0c3c3ff164ddc02a8e4d65bb9cbb12d9163e0aa27979161362c9190600401614e9f565b60206040518083038186803b15801561364457600080fd5b505afa158015613658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061367c91906149b1565b61368b57506000905080613742565b61012084015151604085015185516136ae926001600160a01b0390911691611760565b610120840151805160809091015160405163097396a160e31b81526001600160a01b0390921691634b9cb50891906136ec90889088906004016151fd565b60408051808303818588803b15801561370457600080fd5b505af1158015613718573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061373d91906149cd565b915091505b9250929050565b60e082015160405163e0aa279760e01b81526000917325dd3f51e0c3c3ff164ddc02a8e4d65bb9cbb12d9163e0aa27979161378691600401614e9f565b60206040518083038186803b15801561379e57600080fd5b505afa1580156137b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137d691906149b1565b6040518060400160405280600f81526020016e15dc985c1c195c881a5b9d985b1a59608a1b8152509061381c5760405162461bcd60e51b815260040161160291906150c4565b5060e08301516040840151845161383e926001600160a01b0390911691611760565b600082600181111561384c57fe5b14156138f2578260e001516001600160a01b0316635b6f36fc8460000151856020015186604001518761010001516040518563ffffffff1660e01b81526004016138999493929190615020565b602060405180830381600087803b1580156138b357600080fd5b505af11580156138c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138eb9190614a12565b9050610887565b8260e001516001600160a01b0316633924db668460000151856020015186606001518761010001516040518563ffffffff1660e01b81526004016139399493929190615020565b602060405180830381600087803b15801561395357600080fd5b505af1158015612bd4573d6000803e3d6000fd5b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156139955750476106d7565b6040516370a0823160e01b81526001600160a01b038316906370a08231906139c1903090600401614e9f565b60206040518083038186803b1580156139d957600080fd5b505afa1580156139ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108879190614a12565b6000670de0b6b3a7640000611751613a2985856117bb565b6002670de0b6b3a764000061174b565b6000739759a6ac90977b93b58547b4a71c78317f391a286001600160a01b0383161415613a68575060006106d7565b816001600160a01b0316637bd2bea76040518163ffffffff1660e01b815260040160206040518083038186803b158015613aa157600080fd5b505afa158015613ab5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ad9919061485c565b6001600160a01b031673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03161415613b0e575060016106d7565b506000919050565b8060008112156106d75760405162461bcd60e51b8152600401611602906151c4565b6000610ef682846001600160a01b031663b3bcfa826040518163ffffffff1660e01b815260040160206040518083038186803b158015613b7757600080fd5b505afa158015613b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613baf9190614a12565b601203600a0a6117bb565b613bda8363095ea7b360e01b84600060405160240161177f929190615053565b6117b68363095ea7b360e01b848460405160240161177f929190615007565b600080856001600160a01b031663d9638d36846040518263ffffffff1660e01b8152600401613c28919061506f565b60a06040518083038186803b158015613c4057600080fd5b505afa158015613c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c789190614d04565b5050509150506000866001600160a01b0316632424be5c85876040518363ffffffff1660e01b8152600401613cae929190615078565b604080518083038186803b158015613cc557600080fd5b505afa158015613cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cfd9190614ce1565b9150506000876001600160a01b0316636c25b346886040518263ffffffff1660e01b8152600401613d2e9190614e9f565b60206040518083038186803b158015613d4657600080fd5b505afa158015613d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d7e9190614a12565b90506000613d8f610ee284866117bb565b9050676765c793fa10079d601b1b8104945080613db786676765c793fa10079d601b1b6117bb565b10613dc25784613dc7565b846001015b9998505050505050505050565b600080846001600160a01b0316636c25b346856040518263ffffffff1660e01b8152600401613e039190614e9f565b60206040518083038186803b158015613e1b57600080fd5b505afa158015613e2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e539190614a12565b90506000856001600160a01b031663d9638d36856040518263ffffffff1660e01b8152600401613e83919061506f565b60a06040518083038186803b158015613e9b57600080fd5b505afa158015613eaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ed39190614d04565b5050509150506000866001600160a01b0316632424be5c86886040518363ffffffff1660e01b8152600401613f09929190615078565b604080518083038186803b158015613f2057600080fd5b505afa158015613f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f589190614ce1565b915050613f6782848161325e57fe5b935080841115613f8257613f7a81613b16565b600003613f87565b836000035b979650505050505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90565b6000806140c37335d1b3f3d7966a1dfe207aa4514c12a259a0492b886001600160a01b0316632726b073896040518263ffffffff1660e01b8152600401613ff1919061506f565b60206040518083038186803b15801561400957600080fd5b505afa15801561401d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614041919061485c565b604051632726b07360e01b81526001600160a01b038b1690632726b0739061406d908c9060040161506f565b60206040518083038186803b15801561408557600080fd5b505afa158015614099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140bd919061485c565b88613bf9565b9050808411156141625760405163a9059cbb60e01b8152736b175474e89094c44da98b954eedeac495271d0f9063a9059cbb9061410890869085890390600401615007565b602060405180830381600087803b15801561412257600080fd5b505af1158015614136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061415a91906149b1565b5090506142b9565b604051636cb1c69b60e11b8152848203906000907335d1b3f3d7966a1dfe207aa4514c12a259a0492b9063d9638d36906141a0908a9060040161506f565b60a06040518083038186803b1580156141b857600080fd5b505afa1580156141cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141f09190614d04565b945050505050676765c793fa10079d601b1b818161420a57fe5b049050808210156142b25760405163a9059cbb60e01b815282820390736b175474e89094c44da98b954eedeac495271d0f9063a9059cbb906142529089908590600401615007565b602060405180830381600087803b15801561426c57600080fd5b505af1158015614280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142a491906149b1565b50860393506142b992505050565b8593505050505b95945050505050565b6142ca613f92565b6001600160a01b0316826001600160a01b0316141561434457826001600160a01b0316816040516142fa90614e9c565b60006040518083038185875af1925050503d8060008114614337576040519150601f19603f3d011682016040523d82523d6000602084013e61433c565b606091505b5050506117b6565b6117b66001600160a01b0383168483611760565b6060610a5b8484600085606061436d85614426565b6143895760405162461bcd60e51b815260040161160290615143565b60006060866001600160a01b031685876040516143a69190614e80565b60006040518083038185875af1925050503d80600081146143e3576040519150601f19603f3d011682016040523d82523d6000602084013e6143e8565b606091505b509150915081156143fc579150610a5b9050565b80511561440c5780518082602001fd5b8360405162461bcd60e51b815260040161160291906150c4565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610a5b575050151592915050565b60405180610140016040528060006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b03168152602001606081526020016144d661451f565b905290565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600060018111156144d657fe5b6040518060c0016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001606081525090565b80356108878161530b565b80516108878161530b565b600082601f830112614596578081fd5b81356145a96145a4826152b7565b615290565b91508082528360208285010111156145c057600080fd5b8060208401602084013760009082016020015292915050565b600082601f8301126145e9578081fd5b81516145f76145a4826152b7565b915080825283602082850101111561460e57600080fd5b61461f8160208401602086016152db565b5092915050565b80356002811061088757600080fd5b6000610140808385031215614648578182fd5b61465181615290565b91505061465e8383614570565b815261466d8360208401614570565b602082015260408201356040820152606082013560608201526080820135608082015260a082013560a08201526146a78360c08401614570565b60c08201526146b98360e08401614570565b60e08201526101008083013567ffffffffffffffff808211156146db57600080fd5b6146e786838701614586565b8385015261012092508285013591508082111561470357600080fd5b506147108582860161471c565b82840152505092915050565b600060c0828403121561472d578081fd5b61473760c0615290565b905081356147448161530b565b815260208201356147548161530b565b602082015260408201356147678161530b565b80604083015250606082013560608201526080820135608082015260a082013567ffffffffffffffff81111561479c57600080fd5b6147a884828501614586565b60a08301525092915050565b600060c082840312156147c5578081fd5b6147cf60c0615290565b905081516147dc8161530b565b815260208201516147ec8161530b565b602082015260408201516147ff8161530b565b80604083015250606082015160608201526080820151608082015260a082015167ffffffffffffffff81111561483457600080fd5b6147a8848285016145d9565b600060208284031215614851578081fd5b8135610ef68161530b565b60006020828403121561486d578081fd5b8151610ef68161530b565b6000806040838503121561488a578081fd5b82356148958161530b565b946020939093013593505050565b6000806000606084860312156148b7578081fd5b83356148c28161530b565b95602085013595506040909401359392505050565b600080600080608085870312156148ec578182fd5b84356148f78161530b565b9350602085013592506040850135915060608501356149158161530b565b939692955090935050565b600080600080600060808688031215614937578283fd5b85356149428161530b565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561496c578283fd5b818801915088601f83011261497f578283fd5b81358181111561498d578384fd5b89602082850101111561499e578384fd5b9699959850939650602001949392505050565b6000602082840312156149c2578081fd5b8151610ef681615323565b600080604083850312156149df578182fd5b82516149ea81615323565b6020939093015192949293505050565b600060208284031215614a0b578081fd5b5035919050565b600060208284031215614a23578081fd5b5051919050565b600060208284031215614a3b578081fd5b813567ffffffffffffffff811115614a51578182fd5b61088384828501614586565b60008060008060008060c08789031215614a75578384fd5b863567ffffffffffffffff811115614a8b578485fd5b614a9789828a01614586565b96505060208701359450604087013593506060870135614ab68161530b565b92506080870135614ac681615323565b915060a087013560ff81168114614adb578182fd5b809150509295509295509295565b6000806040838503121561488a578182fd5b60008060408385031215614b0d578182fd5b82516149ea8161530b565b600060208284031215614b29578081fd5b610ef68383614626565b600060208284031215614b44578081fd5b813567ffffffffffffffff811115614b5a578182fd5b61088384828501614635565b600060208284031215614b77578081fd5b815167ffffffffffffffff80821115614b8e578283fd5b8184019150610140808387031215614ba4578384fd5b614bad81615290565b9050614bb9868461457b565b8152614bc8866020850161457b565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a0820152614c028660c0850161457b565b60c0820152614c148660e0850161457b565b60e08201526101008084015183811115614c2c578586fd5b614c38888287016145d9565b8284015250506101208084015183811115614c51578586fd5b614c5d888287016147b4565b918301919091525095945050505050565b600080600080600060a08688031215614c85578283fd5b853567ffffffffffffffff811115614c9b578384fd5b614ca788828901614635565b95505060208601359350604086013592506060860135614cc68161530b565b9150614cd58760808801614626565b90509295509295909350565b60008060408385031215614cf3578182fd5b505080516020909101519092909150565b600080600080600060a08688031215614d1b578283fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b6001600160a01b03169052565b60008151808452614d688160208601602086016152db565b601f01601f19169290920160200192915050565b6000610140614d8c848451614d43565b6020830151614d9e6020860182614d43565b5060408301516040850152606083015160608501526080830151608085015260a083015160a085015260c0830151614dd960c0860182614d43565b5060e0830151614dec60e0860182614d43565b50610100808401518282870152614e0583870182614d50565b925050506101208084015185830382870152614e218382614e2b565b9695505050505050565b600060018060a01b0380835116845280602084015116602085015280604084015116604085015250606082015160608401526080820151608084015260a082015160c060a085015261088360c0850182614d50565b60008251614e928184602087016152db565b9190910192915050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03848116825283166020820152608060408201819052600d908201526c1350d1119b185cda109bdbdcdd609a1b60a082015260c0606082018190526000906142b990830184614d50565b6001600160a01b03848116825283166020820152608060408201819052600890820152671350d1109bdbdcdd60c21b60a082015260c0606082018190526000906142b990830184614d50565b6001600160a01b03848116825283166020820152608060408201819052600d908201526c4d4344466c617368526570617960981b60a082015260c0606082018190526000906142b990830184614d50565b6001600160a01b03848116825283166020820152608060408201819052600890820152674d4344526570617960c01b60a082015260c0606082018190526000906142b990830184614d50565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614e2190830184614d50565b6001600160a01b0392909216825260ff16602082015260400190565b90815260200190565b9182526001600160a01b0316602082015260400190565b9586526001600160a01b039485166020870152928416604086015292166060840152608083019190915260a082015260c00190565b600060208252610ef66020830184614d50565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252818101527f496e76616c69642062616c616e636520666f722074686520636f6e7472616374604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252600c908201526b696e742d6f766572666c6f7760a01b604082015260600190565b600060208252610ef66020830184614d7c565b6000604082526152106040830185614d7c565b90506002831061521c57fe5b8260208301529392505050565b9283526001600160a01b03919091166020830152604082015260600190565b9384526001600160a01b039290921660208401526040830152606082015260800190565b9283526020830191909152604082015260600190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156152af57600080fd5b604052919050565b600067ffffffffffffffff8211156152cd578081fd5b50601f01601f191660200190565b60005b838110156152f65781810151838201526020016152de565b83811115615305576000848401525b50505050565b6001600160a01b038116811461532057600080fd5b50565b801515811461532057600080fdfea2646970667358221220982ee847a9055746465c132065824a379e4eb89c0c51b4446483c18d53d6090464736f6c634300060c0033