UNPKG

@perp/hottub-deployments

Version:

Perpetual Protocol Hot Tub contract artifacts (ABIs) and deployed addresses

497 lines (496 loc) 48.2 kB
{ "_format": "hh-sol-artifact-1", "contractName": "TestKtbArbitrageur", "sourceName": "contracts/test/TestKtbArbitrageur.sol", "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "kantabanVault", "type": "address" }, { "indexed": false, "internalType": "address", "name": "tokenIn", "type": "address" }, { "indexed": false, "internalType": "address", "name": "tokenOut", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "enum IKtbArbitrageurStruct.ArbitrageType", "name": "arbitrageType", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "profit", "type": "uint256" } ], "name": "ArbitrageWithType", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "ktbArbitrageurDispatcher", "type": "address" } ], "name": "UpdateKtbArbitrageurDispatcher", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "maxUsdcDepeggedDeviation", "type": "uint256" } ], "name": "UpdateMaxUsdcDepeggedDeviation", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "enable", "type": "bool" } ], "name": "UpdateWhitelistedCaller", "type": "event" }, { "inputs": [], "name": "ONE_INCH_AGGREGATION_ROUTER_V5", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "USDC_USD_CHAINLINK_AGGREGATOR", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "kantabanVault", "type": "address" }, { "internalType": "address", "name": "tokenIn", "type": "address" }, { "internalType": "address", "name": "tokenOut", "type": "address" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "enum IKtbArbitrageurStruct.ArbitrageType", "name": "arbitrageType", "type": "uint8" }, { "internalType": "bytes", "name": "callData", "type": "bytes" } ], "name": "arbitrage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "candidate", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "kantabanVault", "type": "address" }, { "internalType": "uint256", "name": "reducedPositionSizeAbs", "type": "uint256" } ], "name": "deleverage", "outputs": [ { "internalType": "int256", "name": "pnl", "type": "int256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getKtbArbitrageurDispatcher", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMaxUsdcDepeggedDeviation", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "ktbArbitrageurDispatcherArg", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "caller", "type": "address" } ], "name": "isWhitelistedCaller", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenIn", "type": "address" }, { "internalType": "address", "name": "tokenOut", "type": "address" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "amountOut", "type": "uint256" } ], "name": "mockSwapCombo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "requireUsdcIsPegged", "outputs": [], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "arbitrageur", "type": "address" }, { "internalType": "address", "name": "kantabanVault", "type": "address" }, { "internalType": "address", "name": "tokenIn", "type": "address" }, { "internalType": "address", "name": "tokenOut", "type": "address" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "enum IKtbArbitrageurStruct.ArbitrageType", "name": "arbitrageType", "type": "uint8" }, { "internalType": "bytes", "name": "oneInchTxData", "type": "bytes" } ], "name": "revertArbitrageFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "arbitrageur", "type": "address" }, { "internalType": "address", "name": "kantabanVault", "type": "address" }, { "internalType": "address", "name": "tokenIn", "type": "address" }, { "internalType": "address", "name": "tokenOut", "type": "address" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" } ], "name": "revertSwapOnKtbFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "ktbArbitrageurDispatcherArg", "type": "address" } ], "name": "setKtbArbitrageurDispatcher", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxUsdcDepeggedDeviationArg", "type": "uint256" } ], "name": "setMaxUsdcDepeggedDeviation", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "whitelistedCallerArg", "type": "address" }, { "internalType": "bool", "name": "enable", "type": "bool" } ], "name": "setWhitelistedCaller", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "updateOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdrawToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50612455806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80638da5cb5b116100b8578063bc5920ba1161007c578063bc5920ba14610418578063c4d66de814610420578063cabfa28414610446578063cb5c29fe14610480578063d5d18f7a14610488578063f4550c8d146104c457610137565b80638da5cb5b146103ae57806395bc5259146103b6578063962d1aec146103be5780639c74e3ce146103e45780639e281a98146103ec57610137565b80632681b6d9116100ff5780632681b6d9146102b35780636146a503146103535780636c8381f814610381578063715018a6146103895780637841729f1461039157610137565b806307c4902f1461013c5780630a93a3191461017a5780630f05552b146101c257806313af40351461026957806317f1f6411461028f575b600080fd5b6101686004803603604081101561015257600080fd5b506001600160a01b0381351690602001356104cc565b60408051918252519081900360200190f35b6101c0600480360360a081101561019057600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060800135610603565b005b6101c0600480360360e08110156101d857600080fd5b6001600160a01b038235811692602081013582169260408201358316926060830135169160808101359160ff60a083013516919081019060e0810160c082013564010000000081111561022a57600080fd5b82018360208201111561023c57600080fd5b8035906020019184600183028401116401000000008311171561025e57600080fd5b509092509050610629565b6101c06004803603602081101561027f57600080fd5b50356001600160a01b031661063b565b610297610796565b604080516001600160a01b039092168252519081900360200190f35b610168600480360360c08110156102c957600080fd5b6001600160a01b038235811692602081013582169260408201359092169160608201359160ff6080820135169181019060c0810160a082013564010000000081111561031457600080fd5b82018360208201111561032657600080fd5b8035906020019184600183028401116401000000008311171561034857600080fd5b5090925090506107ae565b6101c06004803603604081101561036957600080fd5b506001600160a01b038135169060200135151561084f565b61029761094d565b6101c061095c565b6101c0600480360360208110156103a757600080fd5b5035610a0f565b610297610acf565b610297610ade565b6101c0600480360360208110156103d457600080fd5b50356001600160a01b0316610af6565b610168610bd6565b6101c06004803603604081101561040257600080fd5b506001600160a01b038135169060200135610bdc565b6101c0610c4f565b6101c06004803603602081101561043657600080fd5b50356001600160a01b0316610d4d565b61046c6004803603602081101561045c57600080fd5b50356001600160a01b0316610e1f565b604080519115158252519081900360200190f35b610297610e41565b6101c06004803603608081101561049e57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610e55565b6101c0610eb0565b600060026067541415610526576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260675560996000610537610eba565b6001600160a01b0316815260208101919091526040016000205460ff166105795760405162461bcd60e51b81526004016105709061222b565b60405180910390fd5b604051634fed5f6160e11b81526001600160a01b03841690639fdabec2906105a5908590600401612398565b602060405180830381600087803b1580156105bf57600080fd5b505af11580156105d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f79190612088565b60016067559392505050565b61060e838683610ebe565b600061061c85858585610fff565b9050604051818152602081fd5b600061061c898989898989898961113f565b610643610eba565b6001600160a01b0316610654610acf565b6001600160a01b031614610698576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b0381166106dc576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610728576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b0382811691161415610774576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b731111111254eeb25477b68fb85ed929f73a96058281565b600060026067541415610808576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026067553332811461082d5760405162461bcd60e51b81526004016105709061231f565b61083d818a8a8a8a8a8a8a61113f565b60016067559998505050505050505050565b610857610eba565b6001600160a01b0316610868610acf565b6001600160a01b0316146108ac576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b03821660009081526099602052604090205460ff16151581151514156108eb5760405162461bcd60e51b8152600401610570906121ce565b6001600160a01b03821660009081526099602052604090819020805460ff1916831515179055517f1cd0d78be338f23047fa36d31306e438ebe558150d27602894e338cd61cac917906109419084908490612179565b60405180910390a15050565b6034546001600160a01b031690565b610964610eba565b6001600160a01b0316610975610acf565b6001600160a01b0316146109b9576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319908116909155603480549091169055565b610a17610eba565b6001600160a01b0316610a28610acf565b6001600160a01b031614610a6c576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6305f5e1008110610a8f5760405162461bcd60e51b8152600401610570906121ad565b609a8190556040517f9cb86d07b0fd4ac112413803c0e90615a24863b415b49a07aa3b14aeb9105e5b90610ac4908390612398565b60405180910390a150565b6033546001600160a01b031690565b7316a9fa2fda030272ce99b29cf780dfa30361e0f381565b610afe610eba565b6001600160a01b0316610b0f610acf565b6001600160a01b031614610b53576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b609b546001600160a01b03828116610100909204161415610b865760405162461bcd60e51b8152600401610570906121ce565b609b8054610100600160a81b0319166101006001600160a01b038416021790556040517f5eee7d6783e7e832fc04afbfda4eb6580f886e396594b76c08cba09ce7dd55bb90610ac4908390612120565b609a5490565b610be4610eba565b6001600160a01b0316610bf5610acf565b6001600160a01b031614610c39576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610c4b82610c45610acf565b836112b2565b5050565b6034546001600160a01b0316610c94576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610c9c610eba565b6034546001600160a01b03908116911614610ce7576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b600054610100900460ff1680610d665750610d66611309565b80610d74575060005460ff16155b610daf5760405162461bcd60e51b815260040180806020018281038252602e8152602001806123c8602e913960400191505060405180910390fd5b600054610100900460ff16158015610dda576000805460ff1961ff0019909116610100171660011790555b610de261131a565b610dea61141c565b609b8054610100600160a81b0319166101006001600160a01b038516021790558015610c4b576000805461ff00191690555050565b6001600160a01b03811660009081526099602052604090205460ff165b919050565b609b5461010090046001600160a01b031690565b604080516080810182526001600160a01b0395861680825294909516602086018190529085018390526060909401819052609c80546001600160a01b03199081169094179055609d8054909316909317909155609e55609f55565b610eb86114c5565b565b3390565b6040516370a0823160e01b81526000906001600160a01b038516906370a0823190610eed903090600401612120565b60206040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3d9190612088565b9050610f4b84843085611640565b6040516370a0823160e01b81526000906001600160a01b038616906370a0823190610f7a903090600401612120565b60206040518083038186803b158015610f9257600080fd5b505afa158015610fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fca9190612088565b90508181118015610fdc575082828203145b610ff85760405162461bcd60e51b8152600401610570906122e0565b5050505050565b60405163095ea7b360e01b81526000906001600160a01b0385169063095ea7b3906110309088908690600401612194565b602060405180830381600087803b15801561104a57600080fd5b505af115801561105e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110829190612068565b506040805160e0810182526001600160a01b0386811682528581166020830152308284015242606083015260808201859052600060a0830181905260c0830152915163139ed81360e31b815291871691639cf6c098916110e49160040161233f565b602060405180830381600087803b1580156110fe57600080fd5b505af1158015611112573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111369190612088565b95945050505050565b60006111496114c5565b611154878a87610ebe565b60008085600381111561116357fe5b141561118e5760006111778a8a8a8a610fff565b9050611186888a8388886116a0565b91505061122b565b600185600381111561119c57fe5b14156111bf5760006111b189898988886116a0565b90506111868a898b84610fff565b60028560038111156111cd57fe5b14156111e25760006111b1898989888861184e565b60038560038111156111f057fe5b14156112135760006112048a8a8a8a610fff565b9050611186888a83888861184e565b60405162461bcd60e51b815260040161057090612269565b85811161124a5760405162461bcd60e51b81526004016105709061220c565b611255888b886112b2565b858103611263898b836112b2565b7fbb8c6292da6c38136ca2b564c8f93825c350254b7a45a70847474a555b4284b18a8a8a8a8a8660405161129c96959493929190612134565b60405180910390a19a9950505050505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611304908490611a91565b505050565b600061131430611b42565b15905090565b600054610100900460ff16806113335750611333611309565b80611341575060005460ff16155b61137c5760405162461bcd60e51b815260040180806020018281038252602e8152602001806123c8602e913960400191505060405180910390fd5b600054610100900460ff161580156113a7576000805460ff1961ff0019909116610100171660011790555b6113af611b48565b60006113b9610eba565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015611419576000805461ff00191690555b50565b600054610100900460ff16806114355750611435611309565b80611443575060005460ff16155b61147e5760405162461bcd60e51b815260040180806020018281038252602e8152602001806123c8602e913960400191505060405180910390fd5b600054610100900460ff161580156114a9576000805460ff1961ff0019909116610100171660011790555b6114b1611bdd565b8015611419576000805461ff001916905550565b60007316a9fa2fda030272ce99b29cf780dfa30361e0f390506000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561151957600080fd5b505afa15801561152d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155191906120ef565b90508060ff166008146115765760405162461bcd60e51b815260040161057090612300565b6000826001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156115b157600080fd5b505afa1580156115c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e991906120a0565b50505091505060008112156116105760405162461bcd60e51b8152600401610570906121ed565b609a54611622826305f5e10003611c83565b11156113045760405162461bcd60e51b81526004016105709061224a565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261169a908590611a91565b50505050565b609c54609d54609e54609f546040805163540ba01d60e01b81523060048201526024810184905290516000956001600160a01b039081169516939291859163540ba01d916044808201928a9290919082900301818387803b15801561170457600080fd5b505af1158015611718573d6000803e3d6000fd5b50506040805163631a5bc760e11b815230600482015290516001600160a01b038716935063c634b78e9250602480830192600092919082900301818387803b15801561176357600080fd5b505af1158015611777573d6000803e3d6000fd5b505060408051637e51dad560e11b815230600482015290516001600160a01b038716935063fca3b5aa9250602480830192600092919082900301818387803b1580156117c257600080fd5b505af11580156117d6573d6000803e3d6000fd5b5050604080516340c10f1960e01b81523060048201526024810185905290516001600160a01b03871693506340c10f199250604480830192600092919082900301818387803b15801561182857600080fd5b505af115801561183c573d6000803e3d6000fd5b50929c9b505050505050505050505050565b60405163095ea7b360e01b81526000906001600160a01b0387169063095ea7b39061189390731111111254eeb25477b68fb85ed929f73a960582908890600401612194565b602060405180830381600087803b1580156118ad57600080fd5b505af11580156118c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e59190612068565b506040516370a0823160e01b81526000906001600160a01b038716906370a0823190611915903090600401612120565b60206040518083038186803b15801561192d57600080fd5b505afa158015611941573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119659190612088565b90506000731111111254eeb25477b68fb85ed929f73a9605826001600160a01b031660008686604051611999929190612110565b60006040518083038185875af1925050503d80600081146119d6576040519150601f19603f3d011682016040523d82523d6000602084013e6119db565b606091505b50509050806119fc5760405162461bcd60e51b815260040161057090612289565b6000611a8483896001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611a2e9190612120565b60206040518083038186803b158015611a4657600080fd5b505afa158015611a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7e9190612088565b90611cb2565b9998505050505050505050565b6000611ae6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d0f9092919063ffffffff16565b80519091501561130457808060200190516020811015611b0557600080fd5b50516113045760405162461bcd60e51b815260040180806020018281038252602a8152602001806123f6602a913960400191505060405180910390fd5b3b151590565b600054610100900460ff1680611b615750611b61611309565b80611b6f575060005460ff16155b611baa5760405162461bcd60e51b815260040180806020018281038252602e8152602001806123c8602e913960400191505060405180910390fd5b600054610100900460ff16158015611bd5576000805460ff1961ff0019909116610100171660011790555b6114b1611d28565b600054610100900460ff1680611bf65750611bf6611309565b80611c04575060005460ff16155b611c3f5760405162461bcd60e51b815260040180806020018281038252602e8152602001806123c8602e913960400191505060405180910390fd5b600054610100900460ff16158015611c6a576000805460ff1961ff0019909116610100171660011790555b60016067558015611419576000805461ff001916905550565b600080821215611ca357611c9e611c9983611dc8565b611df4565b611cac565b611cac82611df4565b92915050565b600082821115611d09576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6060611d1e8484600085611e4f565b90505b9392505050565b600054610100900460ff1680611d415750611d41611309565b80611d4f575060005460ff16155b611d8a5760405162461bcd60e51b815260040180806020018281038252602e8152602001806123c8602e913960400191505060405180910390fd5b600054610100900460ff161580156114b1576000805460ff1961ff0019909116610100171660011790558015611419576000805461ff001916905550565b6000600160ff1b8213611ded5760405162461bcd60e51b8152600401610570906122a9565b5060000390565b600080821215611e4b576040805162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015290519081900360640190fd5b5090565b606082471015611e905760405162461bcd60e51b81526004018080602001828103825260268152602001806123a26026913960400191505060405180910390fd5b611e9985611b42565b611eea576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310611f285780518252601f199092019160209182019101611f09565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611f8a576040519150601f19603f3d011682016040523d82523d6000602084013e611f8f565b606091505b5091509150611f9f828286611faa565b979650505050505050565b60608315611fb9575081611d21565b825115611fc95782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612013578181015183820152602001611ffb565b50505050905090810190601f1680156120405780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b805169ffffffffffffffffffff81168114610e3c57600080fd5b600060208284031215612079578081fd5b81518015158114611d21578182fd5b600060208284031215612099578081fd5b5051919050565b600080600080600060a086880312156120b7578081fd5b6120c08661204e565b94506020860151935060408601519250606086015191506120e36080870161204e565b90509295509295909350565b600060208284031215612100578081fd5b815160ff81168114611d21578182fd5b6000828483379101908152919050565b6001600160a01b0391909116815260200190565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c081016004841061216557fe5b608082019390935260a00152949350505050565b6001600160a01b039290921682521515602082015260400190565b6001600160a01b03929092168252602082015260400190565b6020808252600790820152664b415f4944445560c81b604082015260600190565b60208082526005908201526425a0afa9ab60d91b604082015260600190565b60208082526005908201526404b415f49560dc1b604082015260600190565b60208082526005908201526404b415f4e560dc1b604082015260600190565b6020808252600590820152644b415f494360d81b604082015260600190565b60208082526005908201526412d057d55160da1b604082015260600190565b60208082526006908201526512d057d5505560d21b604082015260600190565b60208082526006908201526525a0afa7a9a360d11b604082015260600190565b6020808252601c908201527f506572704d6174683a20696e76657273696f6e206f766572666c6f7700000000604082015260600190565b6020808252600690820152654b415f49424160d01b604082015260600190565b6020808252600590820152644b415f444360d81b604082015260600190565b6020808252600690820152654b415f43414360d01b604082015260600190565b81516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151908301526080808401519083015260a0838101519083015260c092830151169181019190915260e00190565b9081526020019056fe416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65645361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122071f62f732686fa10d8c4783d362b19af1d703d23c1b8dc65a8eaf4244bdc8f8164736f6c63430007060033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c80638da5cb5b116100b8578063bc5920ba1161007c578063bc5920ba14610418578063c4d66de814610420578063cabfa28414610446578063cb5c29fe14610480578063d5d18f7a14610488578063f4550c8d146104c457610137565b80638da5cb5b146103ae57806395bc5259146103b6578063962d1aec146103be5780639c74e3ce146103e45780639e281a98146103ec57610137565b80632681b6d9116100ff5780632681b6d9146102b35780636146a503146103535780636c8381f814610381578063715018a6146103895780637841729f1461039157610137565b806307c4902f1461013c5780630a93a3191461017a5780630f05552b146101c257806313af40351461026957806317f1f6411461028f575b600080fd5b6101686004803603604081101561015257600080fd5b506001600160a01b0381351690602001356104cc565b60408051918252519081900360200190f35b6101c0600480360360a081101561019057600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060800135610603565b005b6101c0600480360360e08110156101d857600080fd5b6001600160a01b038235811692602081013582169260408201358316926060830135169160808101359160ff60a083013516919081019060e0810160c082013564010000000081111561022a57600080fd5b82018360208201111561023c57600080fd5b8035906020019184600183028401116401000000008311171561025e57600080fd5b509092509050610629565b6101c06004803603602081101561027f57600080fd5b50356001600160a01b031661063b565b610297610796565b604080516001600160a01b039092168252519081900360200190f35b610168600480360360c08110156102c957600080fd5b6001600160a01b038235811692602081013582169260408201359092169160608201359160ff6080820135169181019060c0810160a082013564010000000081111561031457600080fd5b82018360208201111561032657600080fd5b8035906020019184600183028401116401000000008311171561034857600080fd5b5090925090506107ae565b6101c06004803603604081101561036957600080fd5b506001600160a01b038135169060200135151561084f565b61029761094d565b6101c061095c565b6101c0600480360360208110156103a757600080fd5b5035610a0f565b610297610acf565b610297610ade565b6101c0600480360360208110156103d457600080fd5b50356001600160a01b0316610af6565b610168610bd6565b6101c06004803603604081101561040257600080fd5b506001600160a01b038135169060200135610bdc565b6101c0610c4f565b6101c06004803603602081101561043657600080fd5b50356001600160a01b0316610d4d565b61046c6004803603602081101561045c57600080fd5b50356001600160a01b0316610e1f565b604080519115158252519081900360200190f35b610297610e41565b6101c06004803603608081101561049e57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610e55565b6101c0610eb0565b600060026067541415610526576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260675560996000610537610eba565b6001600160a01b0316815260208101919091526040016000205460ff166105795760405162461bcd60e51b81526004016105709061222b565b60405180910390fd5b604051634fed5f6160e11b81526001600160a01b03841690639fdabec2906105a5908590600401612398565b602060405180830381600087803b1580156105bf57600080fd5b505af11580156105d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f79190612088565b60016067559392505050565b61060e838683610ebe565b600061061c85858585610fff565b9050604051818152602081fd5b600061061c898989898989898961113f565b610643610eba565b6001600160a01b0316610654610acf565b6001600160a01b031614610698576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b0381166106dc576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610728576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b0382811691161415610774576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b731111111254eeb25477b68fb85ed929f73a96058281565b600060026067541415610808576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026067553332811461082d5760405162461bcd60e51b81526004016105709061231f565b61083d818a8a8a8a8a8a8a61113f565b60016067559998505050505050505050565b610857610eba565b6001600160a01b0316610868610acf565b6001600160a01b0316146108ac576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b03821660009081526099602052604090205460ff16151581151514156108eb5760405162461bcd60e51b8152600401610570906121ce565b6001600160a01b03821660009081526099602052604090819020805460ff1916831515179055517f1cd0d78be338f23047fa36d31306e438ebe558150d27602894e338cd61cac917906109419084908490612179565b60405180910390a15050565b6034546001600160a01b031690565b610964610eba565b6001600160a01b0316610975610acf565b6001600160a01b0316146109b9576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319908116909155603480549091169055565b610a17610eba565b6001600160a01b0316610a28610acf565b6001600160a01b031614610a6c576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6305f5e1008110610a8f5760405162461bcd60e51b8152600401610570906121ad565b609a8190556040517f9cb86d07b0fd4ac112413803c0e90615a24863b415b49a07aa3b14aeb9105e5b90610ac4908390612398565b60405180910390a150565b6033546001600160a01b031690565b7316a9fa2fda030272ce99b29cf780dfa30361e0f381565b610afe610eba565b6001600160a01b0316610b0f610acf565b6001600160a01b031614610b53576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b609b546001600160a01b03828116610100909204161415610b865760405162461bcd60e51b8152600401610570906121ce565b609b8054610100600160a81b0319166101006001600160a01b038416021790556040517f5eee7d6783e7e832fc04afbfda4eb6580f886e396594b76c08cba09ce7dd55bb90610ac4908390612120565b609a5490565b610be4610eba565b6001600160a01b0316610bf5610acf565b6001600160a01b031614610c39576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610c4b82610c45610acf565b836112b2565b5050565b6034546001600160a01b0316610c94576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610c9c610eba565b6034546001600160a01b03908116911614610ce7576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b600054610100900460ff1680610d665750610d66611309565b80610d74575060005460ff16155b610daf5760405162461bcd60e51b815260040180806020018281038252602e8152602001806123c8602e913960400191505060405180910390fd5b600054610100900460ff16158015610dda576000805460ff1961ff0019909116610100171660011790555b610de261131a565b610dea61141c565b609b8054610100600160a81b0319166101006001600160a01b038516021790558015610c4b576000805461ff00191690555050565b6001600160a01b03811660009081526099602052604090205460ff165b919050565b609b5461010090046001600160a01b031690565b604080516080810182526001600160a01b0395861680825294909516602086018190529085018390526060909401819052609c80546001600160a01b03199081169094179055609d8054909316909317909155609e55609f55565b610eb86114c5565b565b3390565b6040516370a0823160e01b81526000906001600160a01b038516906370a0823190610eed903090600401612120565b60206040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3d9190612088565b9050610f4b84843085611640565b6040516370a0823160e01b81526000906001600160a01b038616906370a0823190610f7a903090600401612120565b60206040518083038186803b158015610f9257600080fd5b505afa158015610fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fca9190612088565b90508181118015610fdc575082828203145b610ff85760405162461bcd60e51b8152600401610570906122e0565b5050505050565b60405163095ea7b360e01b81526000906001600160a01b0385169063095ea7b3906110309088908690600401612194565b602060405180830381600087803b15801561104a57600080fd5b505af115801561105e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110829190612068565b506040805160e0810182526001600160a01b0386811682528581166020830152308284015242606083015260808201859052600060a0830181905260c0830152915163139ed81360e31b815291871691639cf6c098916110e49160040161233f565b602060405180830381600087803b1580156110fe57600080fd5b505af1158015611112573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111369190612088565b95945050505050565b60006111496114c5565b611154878a87610ebe565b60008085600381111561116357fe5b141561118e5760006111778a8a8a8a610fff565b9050611186888a8388886116a0565b91505061122b565b600185600381111561119c57fe5b14156111bf5760006111b189898988886116a0565b90506111868a898b84610fff565b60028560038111156111cd57fe5b14156111e25760006111b1898989888861184e565b60038560038111156111f057fe5b14156112135760006112048a8a8a8a610fff565b9050611186888a83888861184e565b60405162461bcd60e51b815260040161057090612269565b85811161124a5760405162461bcd60e51b81526004016105709061220c565b611255888b886112b2565b858103611263898b836112b2565b7fbb8c6292da6c38136ca2b564c8f93825c350254b7a45a70847474a555b4284b18a8a8a8a8a8660405161129c96959493929190612134565b60405180910390a19a9950505050505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611304908490611a91565b505050565b600061131430611b42565b15905090565b600054610100900460ff16806113335750611333611309565b80611341575060005460ff16155b61137c5760405162461bcd60e51b815260040180806020018281038252602e8152602001806123c8602e913960400191505060405180910390fd5b600054610100900460ff161580156113a7576000805460ff1961ff0019909116610100171660011790555b6113af611b48565b60006113b9610eba565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015611419576000805461ff00191690555b50565b600054610100900460ff16806114355750611435611309565b80611443575060005460ff16155b61147e5760405162461bcd60e51b815260040180806020018281038252602e8152602001806123c8602e913960400191505060405180910390fd5b600054610100900460ff161580156114a9576000805460ff1961ff0019909116610100171660011790555b6114b1611bdd565b8015611419576000805461ff001916905550565b60007316a9fa2fda030272ce99b29cf780dfa30361e0f390506000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561151957600080fd5b505afa15801561152d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155191906120ef565b90508060ff166008146115765760405162461bcd60e51b815260040161057090612300565b6000826001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156115b157600080fd5b505afa1580156115c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e991906120a0565b50505091505060008112156116105760405162461bcd60e51b8152600401610570906121ed565b609a54611622826305f5e10003611c83565b11156113045760405162461bcd60e51b81526004016105709061224a565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261169a908590611a91565b50505050565b609c54609d54609e54609f546040805163540ba01d60e01b81523060048201526024810184905290516000956001600160a01b039081169516939291859163540ba01d916044808201928a9290919082900301818387803b15801561170457600080fd5b505af1158015611718573d6000803e3d6000fd5b50506040805163631a5bc760e11b815230600482015290516001600160a01b038716935063c634b78e9250602480830192600092919082900301818387803b15801561176357600080fd5b505af1158015611777573d6000803e3d6000fd5b505060408051637e51dad560e11b815230600482015290516001600160a01b038716935063fca3b5aa9250602480830192600092919082900301818387803b1580156117c257600080fd5b505af11580156117d6573d6000803e3d6000fd5b5050604080516340c10f1960e01b81523060048201526024810185905290516001600160a01b03871693506340c10f199250604480830192600092919082900301818387803b15801561182857600080fd5b505af115801561183c573d6000803e3d6000fd5b50929c9b505050505050505050505050565b60405163095ea7b360e01b81526000906001600160a01b0387169063095ea7b39061189390731111111254eeb25477b68fb85ed929f73a960582908890600401612194565b602060405180830381600087803b1580156118ad57600080fd5b505af11580156118c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e59190612068565b506040516370a0823160e01b81526000906001600160a01b038716906370a0823190611915903090600401612120565b60206040518083038186803b15801561192d57600080fd5b505afa158015611941573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119659190612088565b90506000731111111254eeb25477b68fb85ed929f73a9605826001600160a01b031660008686604051611999929190612110565b60006040518083038185875af1925050503d80600081146119d6576040519150601f19603f3d011682016040523d82523d6000602084013e6119db565b606091505b50509050806119fc5760405162461bcd60e51b815260040161057090612289565b6000611a8483896001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611a2e9190612120565b60206040518083038186803b158015611a4657600080fd5b505afa158015611a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7e9190612088565b90611cb2565b9998505050505050505050565b6000611ae6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d0f9092919063ffffffff16565b80519091501561130457808060200190516020811015611b0557600080fd5b50516113045760405162461bcd60e51b815260040180806020018281038252602a8152602001806123f6602a913960400191505060405180910390fd5b3b151590565b600054610100900460ff1680611b615750611b61611309565b80611b6f575060005460ff16155b611baa5760405162461bcd60e51b815260040180806020018281038252602e8152602001806123c8602e913960400191505060405180910390fd5b600054610100900460ff16158015611bd5576000805460ff1961ff0019909116610100171660011790555b6114b1611d28565b600054610100900460ff1680611bf65750611bf6611309565b80611c04575060005460ff16155b611c3f5760405162461bcd60e51b815260040180806020018281038252602e8152602001806123c8602e913960400191505060405180910390fd5b600054610100900460ff16158015611c6a576000805460ff1961ff0019909116610100171660011790555b60016067558015611419576000805461ff001916905550565b600080821215611ca357611c9e611c9983611dc8565b611df4565b611cac565b611cac82611df4565b92915050565b600082821115611d09576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6060611d1e8484600085611e4f565b90505b9392505050565b600054610100900460ff1680611d415750611d41611309565b80611d4f575060005460ff16155b611d8a5760405162461bcd60e51b815260040180806020018281038252602e8152602001806123c8602e913960400191505060405180910390fd5b600054610100900460ff161580156114b1576000805460ff1961ff0019909116610100171660011790558015611419576000805461ff001916905550565b6000600160ff1b8213611ded5760405162461bcd60e51b8152600401610570906122a9565b5060000390565b600080821215611e4b576040805162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015290519081900360640190fd5b5090565b606082471015611e905760405162461bcd60e51b81526004018080602001828103825260268152602001806123a26026913960400191505060405180910390fd5b611e9985611b42565b611eea576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310611f285780518252601f199092019160209182019101611f09565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611f8a576040519150601f19603f3d011682016040523d82523d6000602084013e611f8f565b606091505b5091509150611f9f828286611faa565b979650505050505050565b60608315611fb9575081611d21565b825115611fc95782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612013578181015183820152602001611ffb565b50505050905090810190601f1680156120405780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b805169ffffffffffffffffffff81168114610e3c57600080fd5b600060208284031215612079578081fd5b81518015158114611d21578182fd5b600060208284031215612099578081fd5b5051919050565b600080600080600060a086880312156120b7578081fd5b6120c08661204e565b94506020860151935060408601519250606086015191506120e36080870161204e565b90509295509295909350565b600060208284031215612100578081fd5b815160ff81168114611d21578182fd5b6000828483379101908152919050565b6001600160a01b0391909116815260200190565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c081016004841061216557fe5b608082019390935260a00152949350505050565b6001600160a01b039290921682521515602082015260400190565b6001600160a01b03929092168252602082015260400190565b6020808252600790820152664b415f4944445560c81b604082015260600190565b60208082526005908201526425a0afa9ab60d91b604082015260600190565b60208082526005908201526404b415f49560dc1b604082015260600190565b60208082526005908201526404b415f4e560dc1b604082015260600190565b6020808252600590820152644b415f494360d81b604082015260600190565b60208082526005908201526412d057d55160da1b604082015260600190565b60208082526006908201526512d057d5505560d21b604082015260600190565b60208082526006908201526525a0afa7a9a360d11b604082015260600190565b6020808252601c908201527f506572704d6174683a20696e76657273696f6e206f766572666c6f7700000000604082015260600190565b6020808252600690820152654b415f49424160d01b604082015260600190565b6020808252600590820152644b415f444360d81b604082015260600190565b6020808252600690820152654b415f43414360d01b604082015260600190565b81516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151908301526080808401519083015260a0838101519083015260c092830151169181019190915260e00190565b9081526020019056fe416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65645361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122071f62f732686fa10d8c4783d362b19af1d703d23c1b8dc65a8eaf4244bdc8f8164736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} }