0 txs
1 call
constructor
No constructor.
functions
RECEIVER_FOR_FIRST_DEPOSIT
viewfunction RECEIVER_FOR_FIRST_DEPOSIT() view returns (address)
events
No events.
errors
DisabledMarket
error DisabledMarket(address market)
EmptyDeposit
error EmptyDeposit()
EmptyDepositAmountsAfterSwap
error EmptyDepositAmountsAfterSwap()
EmptyMarket
error EmptyMarket()
InsufficientGasLeftForCallback
error InsufficientGasLeftForCallback(uint256 gasToBeForwarded, uint256 callbackGasLimit)
InvalidMinMarketTokensForFirstDeposit
error InvalidMinMarketTokensForFirstDeposit(uint256 minMarketTokens, uint256 expectedMinMarketTokens)
InvalidPoolValueForDeposit
error InvalidPoolValueForDeposit(int256 poolValue)
InvalidReceiverForFirstDeposit
error InvalidReceiverForFirstDeposit(address receiver, address expectedReceiver)
InvalidSwapMarket
error InvalidSwapMarket(address market)
InvalidSwapOutputToken
error InvalidSwapOutputToken(address outputToken, address expectedOutputToken)
MaxPoolAmountExceeded
error MaxPoolAmountExceeded(uint256 poolAmount, uint256 maxPoolAmount)
MaxPoolUsdForDepositExceeded
error MaxPoolUsdForDepositExceeded(uint256 poolUsd, uint256 maxPoolUsdForDeposit)
MinMarketTokens
error MinMarketTokens(uint256 received, uint256 expected)
OracleTimestampsAreLargerThanRequestExpirationTime
error OracleTimestampsAreLargerThanRequestExpirationTime(uint256 maxOracleTimestamp, uint256 requestTimestamp, uint256 requestExpirationTime)
OracleTimestampsAreSmallerThanRequired
error OracleTimestampsAreSmallerThanRequired(uint256 minOracleTimestamp, uint256 expectedTimestamp)
PnlFactorExceededForLongs
error PnlFactorExceededForLongs(int256 pnlToPoolFactor, uint256 maxPnlFactor)
PnlFactorExceededForShorts
error PnlFactorExceededForShorts(int256 pnlToPoolFactor, uint256 maxPnlFactor)
UnexpectedTokenForVirtualInventory
error UnexpectedTokenForVirtualInventory(address token, address market)
creation bytecode
0x61539661003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c80635f973d4f14610045578063f1b65c5114610078575b600080fd5b81801561005157600080fd5b50610065610060366004613fc2565b61008d565b6040519081526020015b60405180910390f35b610080600181565b60405161006f91906140b4565b6000603f5a61009c91906140f4565b8360c0018181516100ad9190614108565b9052508251608084015173142dc88526b6ba847ce41a3a73384b7a6f5b10f8916374b6fe13916100dc86515190565b60405160e085901b6001600160e01b03191681526001600160a01b0393841660048201526024810192909252909116604482015260640160006040518083038186803b15801561012b57600080fd5b505af415801561013f573d6000803e3d6000fd5b50508351516001600160a01b0316915061016e9050576040516395b66fe960e01b815260040160405180910390fd5b60208201516060015183606001516001600160a01b031663f002606b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101dd919061411b565b10156102765782606001516001600160a01b031663f002606b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610225573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610249919061411b565b602083015160600151604051637d677abf60e01b815260040161026d929190614134565b60405180910390fd5b61027e613a4b565b83600001516001600160a01b031663bd02d0f56040516020016102cc90602080825260179082015276524551554553545f45585049524154494f4e5f54494d4560481b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161030091815260200190565b602060405180830381865afa15801561031d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610341919061411b565b81600001818152505083606001516001600160a01b031663716042456040518163ffffffff1660e01b8152600401602060405180830381865afa15801561038c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b0919061411b565b602082015280516103c684602001516060015190565b6103d09190614142565b8160200151111561041b5780602001516103ef84602001516060015190565b8251604051631b0971dd60e31b815260048101939093526024830191909152604482015260640161026d565b83516104329061042d85516080015190565b610e8c565b604082018190526104469085908590610f24565b61045884606001518260400151611054565b60608201528351602085015160408084015151905163c468d13560e01b81526001600160a01b039384166004820152918316602483015291909116604482015273f7df8960ae7783077257258f6132497644f247c39063c468d1359060640160006040518083038186803b1580156104cf57600080fd5b505af41580156104e3573d6000803e3d6000fd5b50508551602087015160408086015160608701519151631ce5b4e360e21b81527310046052d5da95e1faa0c8455a40935ad82575f39650637396d38c955061053094939290600401614197565b60006040518083038186803b15801561054857600080fd5b505af415801561055c573d6000803e3d6000fd5b505050506105c1846000015182604001518360600151604051602001610581906141fc565b604051602081830303815290604052805190602001206040516020016105a6906141fc565b604051602081830303815290604052805190602001206111ca565b6105f8846105d1855160e0015190565b855160a00151602087015151604086810151805191015189516060015161124f565b61124f565b60808201526106358461060e8551610100015190565b855160c001516020808801510151604086015180516060909101516105f38a516060015190565b60a0820152608081015115801561064e575060a0810151155b1561066c5760405163d1c3d5bd60e01b815260040160405180910390fd5b61067d81606001516020015161144f565b816080015161068c9190614231565b60c08201526060810151604001516106a39061144f565b8160a001516106b29190614231565b8160e001818152505073ad095cd555573ff1635624570b9ddf936a472912633b89b23660405180610120016040528087600001516001600160a01b03168152602001846040015181526020018460400151604001516001600160a01b031681526020018460400151606001516001600160a01b0316815260200161073d85606001516020015161144f565b815260200161075385606001516040015161144f565b81526020016107658560c00151611471565b81526020016107778560e00151611471565b815260200187610100015115158152506040518263ffffffff1660e01b81526004016107a39190614248565b602060405180830381865af41580156107c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e4919061411b565b6101208201526080810151156108f75760006040518061014001604052808360400151815260200161081586515190565b6001600160a01b0316815260200161082f86516020015190565b6001600160a01b0316815260200161084986516060015190565b6001600160a01b031681526020018360400151604001516001600160a01b031681526020018360400151606001516001600160a01b0316815260200183606001516020015181526020018360600151604001518152602001836080015181526020016108d28461012001518560c001518660e001518760c001516108cd9190614142565b6114df565b905290506108e085826114f4565b82610100018181516108f29190614142565b905250505b60a0810151156109ff5760006040518061014001604052808360400151815260200161092286515190565b6001600160a01b0316815260200161093c86516020015190565b6001600160a01b0316815260200161095686516060015190565b6001600160a01b031681526020018360400151606001516001600160a01b031681526020018360400151604001516001600160a01b03168152602001836060015160400151815260200183606001516020015181526020018360a0015181526020016109da8461012001518560e001518660e001518760c001516108cd9190614142565b905290506109e885826114f4565b82610100018181516109fa9190614142565b905250505b6020830151604001518161010001511015610a3e5761010081015160208401516040015160405163036711a360e51b815260040161026d929190614134565b835160408083015190516339b1348f60e01b815273f7df8960ae7783077257258f6132497644f247c3926339b1348f92610a7a926004016142de565b60006040518083038186803b158015610a9257600080fd5b505af4158015610aa6573d6000803e3d6000fd5b50505050730e9b519759cd400942f119db747dc8e018e6d13963af74ad1085602001518660800151610ad787515190565b85608001518660a001518761010001518b60e001516040518863ffffffff1660e01b8152600401610b0e9796959493929190614333565b60006040518083038186803b158015610b2657600080fd5b505af4158015610b3a573d6000803e3d6000fd5b50505050600073f7df8960ae7783077257258f6132497644f247c363f2e2a4f586600001518460400151856060015160000151866060015160200151876060015160400151604051602001610b8e906141fc565b6040516020818303038152906040528051906020012060016040518863ffffffff1660e01b8152600401610bc89796959493929190614374565b61016060405180830381865af4158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a91906143d6565b9050610c1d826040015160000151611ce7565b61014083015260208086015160405173b93e9c9436e1591e745fc17ea949515dd2a5e5179263138231119291610c6f910160208082526007908201526611115413d4d25560ca1b604082015260600190565b60408051601f19818403018152828252805160209091012060808b015191880151516101408901516001600160e01b031960e088901b168552610cbb95949293928991906004016144db565b60006040518083038186803b158015610cd357600080fd5b505af4158015610ce7573d6000803e3d6000fd5b50505061016083015160200151610d0091506001611d4b565b610d5260006040518060400160405280601481526020017372656365697665644d61726b6574546f6b656e7360601b81525084610100015185610160015160200151611db0909392919063ffffffff16565b610d66856080015185846101600151611e03565b735ead99f9b7d2e553019183ca062727939eb0f01263e4aff9458660000151876020015188604001518960800151610da08a516040015190565b60208b0151608001518c60c00151610dd5610dbe8e51610100015190565b518e5160e0015151610dd09190614142565b611eea565b60a08f01518e516020015160405160e08c901b6001600160e01b03191681526001600160a01b039a8b166004820152988a1660248a015296891660448901526064880195909552928716608487015260a486019190915260c485015260e484015283166101048301529091166101248201526101440160006040518083038186803b158015610e6357600080fd5b505af4158015610e77573d6000803e3d6000fd5b50505050816101000151925050505b92915050565b610e94613abd565b60405163a8d8fff560e01b81526000907352b56626ff94a23778cf914153bb3cbd3955bc1d9063a8d8fff590610ed09087908790600401614521565b608060405180830381865af4158015610eed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f11919061453b565b9050610f1d8482611ef7565b9392505050565b6000610f338260000151611ce7565b90508015610f415750505050565b600084600001516001600160a01b031663bd02d0f5610f638560000151611fc0565b6040518263ffffffff1660e01b8152600401610f8191815260200190565b602060405180830381865afa158015610f9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc2919061411b565b905080600003610fd3575050505050565b6001610fe185516020015190565b6001600160a01b031614611012578351602001516001604051630efd1cd360e31b815260040161026d929190614521565b8061102285602001516040015190565b101561104d5760208401516040015181604051633f9c06ab60e01b815260040161026d929190614134565b5050505050565b61105c613ae4565b6040518060600160405280846001600160a01b0316635dcf719485602001516040518263ffffffff1660e01b815260040161109791906140b4565b6040805180830381865afa1580156110b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d791906145bf565b8152602001846001600160a01b0316635dcf719485604001516040518263ffffffff1660e01b815260040161110c91906140b4565b6040805180830381865afa158015611128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114c91906145bf565b8152602001846001600160a01b0316635dcf719485606001516040518263ffffffff1660e01b815260040161118191906140b4565b6040805180830381865afa15801561119d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c191906145bf565b90529392505050565b60008060006111dd888888600189612059565b9250925092508215611206578181604051630b92fb2560e41b815260040161026d929190614134565b60008060006112198b8b8b60008b612059565b9250925092508215611242578181604051632c0041a560e21b815260040161026d929190614134565b5050505050505050505050565b6000806112608960000151896120ad565b9050600080735ef80e5783fb1de6c156fa5fce88e5ee28514153635706dc46604051806101a001604052808e600001516001600160a01b031681526020018e602001516001600160a01b031681526020018e606001516001600160a01b031681526020018e604001516001600160a01b031681526020018e6080015181526020018c6001600160a01b031681526020018b8152602001868152602001600081526020018a6001600160a01b03168152602001886001600160a01b031681526020016000151581526020016000600581111561133d5761133d6142fb565b8152506040518263ffffffff1660e01b815260040161135c9190614652565b6040805180830381865af4158015611378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139c919061474b565b91509150856001600160a01b0316826001600160a01b0316146113d6578186604051636ba3dd8b60e01b815260040161026d929190614521565b8a51604051633db3964d60e11b815273f7df8960ae7783077257258f6132497644f247c391637b672c9a9161141091908790600401614779565b60006040518083038186803b15801561142857600080fd5b505af415801561143c573d6000803e3d6000fd5b50929d9c50505050505050505050505050565b60006002826000015183602001516114679190614142565b610e8691906140f4565b60006001600160ff1b038211156114db5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161026d565b5090565b60006114ec838584612173565b949350505050565b600080611526846000015184600001516000015185610100015160008761012001511387606001518960e001516121bc565b845160208087015186515160808801518551604051969750737ef312048b09864b7245fe3575df57c68f360a60966383789c80969561156591016147d9565b60408051601f198184030181529082905280516020909101206001600160e01b031960e089901b1682526001600160a01b0396871660048301529486166024820152928516604484015293166064820152608481019290925260a482015260c40160006040518083038186803b1580156115de57600080fd5b505af41580156115f2573d6000803e3d6000fd5b50505050737ef312048b09864b7245fe3575df57c68f360a6063214516ab85600001518660200151866060015187600001516000015188608001518760a001516040516020016116699060208082526013908201527255495f4445504f5349545f4645455f5459504560681b604082015260600190565b60408051808303601f1901815290829052805160209091012060e089901b6001600160e01b03191682526001600160a01b039788166004830152958716602482015293861660448501529185166064840152909316608482015260a481019290925260c482015260e40160006040518083038186803b1580156116eb57600080fd5b505af41580156116ff573d6000803e3d6000fd5b5050505073ad095cd555573ff1635624570b9ddf936a472912638860ae4c8560200151866080015186600001516000015187608001518860c001516000015160405160200161174d906147d9565b60408051601f1981840301815282825280516020918201206001600160e01b031960e08b901b1684526001600160a01b039889166004850152602484019790975294871660448301529286166064820152608481019190915260a4810193909352865160c48401529086015160e48301528501516101048201526060850151909116610124820152608084015161014482015260a08401516101648201526101840160006040518083038186803b15801561180757600080fd5b505af415801561181b573d6000803e3d6000fd5b5050505060008073f7df8960ae7783077257258f6132497644f247c363f2e2a4f58760000151876000015189606001516001600160a01b0316635dcf71948a60000151602001516040518263ffffffff1660e01b815260040161187e91906140b4565b6040805180830381865afa15801561189a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118be91906145bf565b8960000151604001516001600160a01b03168a608001516001600160a01b0316146118ed578960e001516118f3565b8960c001515b8a60000151606001516001600160a01b03168b608001516001600160a01b031614611922578a60e00151611928565b8a60c001515b604051602001611937906141fc565b6040516020818303038152906040528051906020012060016040518863ffffffff1660e01b81526004016119719796959493929190614374565b61016060405180830381865af415801561198f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b391906143d6565b90506000816000015112156119e157805160405163adaa688d60e01b8152600481019190915260240161026d565b60006119f082600001516124ee565b865151909150600090611a0290611ce7565b8351909150158015611a145750600081115b15611a3857825160405163adaa688d60e01b8152600481019190915260240161026d565b60208801516080890151885151604051636a9231d960e11b815273b93e9c9436e1591e745fc17ea949515dd2a5e5179363d52463b293611a8393919290919089908890600401614803565b60006040518083038186803b158015611a9b57600080fd5b505af4158015611aaf573d6000803e3d6000fd5b505050506000876101200151138015611ac6575080155b15611ad45760006101208801525b60008761012001511315611b74576000611b0f89600001518a602001518a60000151600001518b60a001518c60e001518d6101200151612540565b509050611b388860e0015160200151611b27836124ee565b611b319190614231565b848461257d565b611b429086614142565b895160208b01518a5160a08c0151939850611b5d93856125d0565b508851885160a08a0151611b72929190612723565b505b60008761012001511215611bd9576000611baf89600001518a602001518a60000151600001518b608001518c60c001518d6101200151612540565b509050611bc3611bbe82614841565b6124ee565b86604001818151611bd49190614108565b905250505b60c0870151516040860151611bf891611bf191614231565b838361257d565b611c029085614142565b9350611c3c8860000151896020015189600001518a60800151611c378a602001518b60400151611c329190614142565b611471565b6125d0565b50611c5d8860000151886000015189608001518a60c001516020015161276a565b875187516080890151611c71929190612723565b86515160408089015190516340c10f1960e01b81526001600160a01b039182166004820152602481018790529116906340c10f1990604401600060405180830381600087803b158015611cc357600080fd5b505af1158015611cd7573d6000803e3d6000fd5b50959a9950505050505050505050565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e86919061411b565b806001600160401b03811115611d6357611d63613c56565b604051908082528060200260200182016040528015611da957816020015b604080518082019091526060815260006020820152815260200190600190039081611d815790505b5090915250565b8184600001518481518110611dc757611dc761485d565b6020026020010151600001819052508084600001518481518110611ded57611ded61485d565b6020026020010151602001818152505050505050565b611e17611e1283516040015190565b6127c8565b611e2057505050565b611e37611e32836020015160a0015190565b6127ff565b8151604001516001600160a01b031663a02ba64d611e5a846020015160a0015190565b8585856040518563ffffffff1660e01b8152600401611e7b93929190615198565b600060405180830381600088803b158015611e9557600080fd5b5087f193505050508015611ea7575060015b611ee5577fc88199840f217e7d43d02cf94a25815d58c5767e400ab42127814d4d6265c1bf8383604051611edc929190615267565b60405180910390a15b505050565b6000610e86826003614142565b80516001600160a01b0316611f1f576040516302fde0d760e11b815260040160405180910390fd5b6000826001600160a01b0316637ae1cfca611f3d8460000151612844565b6040518263ffffffff1660e01b8152600401611f5b91815260200190565b602060405180830381865afa158015611f78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9c9190615280565b90508015611ee55781516040516309f8c93760e01b815261026d91906004016140b4565b600060405160200161200f9060208082526023908201527f4d494e5f4d41524b45545f544f4b454e535f464f525f46495253545f4445504f60408201526214d25560ea1b606082015260800190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03841690820152606001604051602081830303815290604052805190602001209050919050565b60008060008061206d89898989600161287c565b905060006120818a878b600001518a6128cc565b90506000808313801561209b575081612099846124ee565b115b9b929a50909850909650505050505050565b6060600082516001600160401b038111156120ca576120ca613c56565b60405190808252806020026020018201604052801561210357816020015b6120f0613abd565b8152602001906001900390816120e85790505b50905060005b835181101561216b5760008482815181106121265761212661485d565b6020026020010151905061213a8682612947565b83838151811061214c5761214c61485d565b60200260200101819052505080806121639061529d565b915050612109565b509392505050565b60008061218985612183866129d8565b856129eb565b9050600084136121aa5761219c81611471565b6121a590614841565b6121b3565b6121b381611471565b95945050505050565b6121c4613b11565b6121cc613b11565b6000808460058111156121e1576121e16142fb565b0361226557886001600160a01b031663bd02d0f56121ff8a896129f8565b6040518263ffffffff1660e01b815260040161221d91815260200190565b602060405180830381865afa15801561223a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225e919061411b565b90506123a6565b6001846005811115612279576122796142fb565b146123a6576005846005811115612292576122926142fb565b036122af57886001600160a01b031663bd02d0f56121ff8a612a81565b60038460058111156122c3576122c36142fb565b036122e157886001600160a01b031663bd02d0f56121ff8a89612abd565b60048460058111156122f5576122f56142fb565b0361231357886001600160a01b031663bd02d0f56121ff8a89612af5565b6002846005811115612327576123276142fb565b036123a657886001600160a01b031663bd02d0f56123448a612b30565b6040518263ffffffff1660e01b815260040161236291815260200190565b602060405180830381865afa15801561237f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a3919061411b565b90505b6000896001600160a01b031663bd02d0f56040516020016123f39060208082526018908201527729aba0a82fa322a2afa922a1a2a4ab22a92fa320a1aa27a960411b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161242791815260200190565b602060405180830381865afa158015612444573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612468919061411b565b905060006124768984612b72565b90506124828183612b72565b80855261248f9082614108565b60208501526001600160a01b03871660608501526124ad8b88612b8b565b608085018190526124bf908a90612b72565b60a085018190526124d0828b614108565b6124da9190614108565b604085015250919998505050505050505050565b6000808212156114db5760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015260640161026d565b6000806000806125538a89898989612cd1565b9150915061256d8a8a8a8a8661256890614841565b612d5c565b5090999098509650505050505050565b60008115801561258b575082155b156125a05761259984612e1b565b9050610f1d565b811580156125ae5750600083115b156125c5576125996125c08585614142565b612e1b565b6114ec8285856129eb565b600080866001600160a01b03166332f85bbf6125f0876000015187612e2c565b6040516001600160e01b031960e084901b16815260048101919091526024810186905260606044820152602260648201527f496e76616c69642073746174652c206e6567617469766520706f6f6c416d6f756084820152611b9d60f21b60a482015260c4016020604051808303816000875af1158015612674573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612698919061411b565b90506126a78787878787612e9a565b50508451604051631daaefa160e01b815273b93e9c9436e1591e745fc17ea949515dd2a5e51791631daaefa1916126e8918a918990899088906004016152b6565b60006040518083038186803b15801561270057600080fd5b505af4158015612714573d6000803e3d6000fd5b50929998505050505050505050565b6000612730848484613060565b90506000612743858560000151856130fe565b90508082111561104d578181604051636429ff3f60e01b815260040161026d929190614134565b6000612777858585613060565b905060006127858383614231565b9050600061279887876000015187613178565b9050808211156127bf578181604051631185a7c160e21b815260040161026d929190614134565b50505050505050565b60006001600160a01b0382166127e057506000919050565b6001600160a01b0382163b6127f757506000919050565b506001919050565b600060405a61280e91906140f4565b61281990603f614231565b9050818110156128405780826040516379a2abad60e01b815260040161026d929190614134565b5050565b600060405160200161200f906020808252601290820152711254d7d3505492d15517d11254d05093115160721b604082015260600190565b60008061288d878787878715613193565b9050806000036128a15760009150506121b3565b60006128b4888888600001518888613219565b90506128c081836132a5565b98975050505050505050565b6000846001600160a01b031663bd02d0f56128e88686866132e4565b6040518263ffffffff1660e01b815260040161290691815260200190565b602060405180830381865afa158015612923573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b3919061411b565b61294f613abd565b60405163a8d8fff560e01b81526000907352b56626ff94a23778cf914153bb3cbd3955bc1d9063a8d8fff59061298b9087908790600401614521565b608060405180830381865af41580156129a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129cc919061453b565b9050610f1d8482613373565b6000808212156114db5781600003610e86565b60006114ec8484846133ba565b6000604051602001612a2d906020808252600f908201526e29aba0a82fa322a2afa320a1aa27a960891b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b0385169082015282151560608201526080015b60405160208183030381529060405280519060200120905092915050565b600060405160200161200f9060208082526016908201527520aa27a6a4a1afa9aba0a82fa322a2afa320a1aa27a960511b604082015260600190565b6000604051602001612a2d906020808252601290820152712222a827a9a4aa2fa322a2afa320a1aa27a960711b604082015260600190565b6000604051602001612a2d906020808252601590820152742ba4aa24222920aba0a62fa322a2afa320a1aa27a960591b604082015260600190565b600060405160200161200f906020808252601c908201527b20aa27a6a4a1afaba4aa24222920aba0a62fa322a2afa320a1aa27a960211b604082015260600190565b6000610f1d838368327cb2734119d3b7a9601e1b6129eb565b600080836001600160a01b031663bd02d0f5604051602001612bd29060208082526011908201527026a0ac2faaa4afa322a2afa320a1aa27a960791b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401612c0691815260200190565b602060405180830381865afa158015612c23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c47919061411b565b90506000846001600160a01b031663bd02d0f5612c63866134a4565b6040518263ffffffff1660e01b8152600401612c8191815260200190565b602060405180830381865afa158015612c9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc2919061411b565b90508181106114ec57816121b3565b6000806000806000851315612d3b57612ced8660200151611471565b612cf790866152ea565b91506000612d09611c328b8b8b6134d7565b905080831315612d35576020870151612d25611bbe8386615318565b612d2f9190614231565b91508092505b50612d4c565b612d498587600001516134f2565b91505b90925090505b9550959350505050565b600080866001600160a01b0316638ca498b0612d788787613566565b856040518363ffffffff1660e01b8152600401612d96929190614134565b6020604051808303816000875af1158015612db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd9919061411b565b604051630553bdb560e11b815290915073b93e9c9436e1591e745fc17ea949515dd2a5e51790630aa77b6a906126e890899089908990899088906004016152b6565b6000610e8664e8d4a51000836140f4565b6000604051602001612e5d906020808252600b908201526a1413d3d317d05353d5539560aa1b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b038086169183019190915283166060820152608001612a63565b6000806000876001600160a01b031663a6ed563e612ebb88600001516135a3565b6040518263ffffffff1660e01b8152600401612ed991815260200190565b602060405180830381865afa158015612ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1a919061411b565b905080612f2e576000809250925050612d52565b6000612f3a87876135da565b90506000896001600160a01b0316638ca498b0612f578585613652565b886040518363ffffffff1660e01b8152600401612f75929190614134565b6020604051808303816000875af1158015612f94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fb8919061411b565b885160405163a814bb6f60e01b81526001600160a01b03808d16600483015290911660248201528315156044820152606481018590526084810188905260a4810182905290915073b93e9c9436e1591e745fc17ea949515dd2a5e5179063a814bb6f9060c40160006040518083038186803b15801561303657600080fd5b505af415801561304a573d6000803e3d6000fd5b5060019d939c50929a5050505050505050505050565b600080613075846040015185606001516136c4565b905080856001600160a01b031663bd02d0f5613095876000015187612e2c565b6040518263ffffffff1660e01b81526004016130b391815260200190565b602060405180830381865afa1580156130d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f4919061411b565b6121b391906140f4565b6000836001600160a01b031663bd02d0f561311985856136f3565b6040518263ffffffff1660e01b815260040161313791815260200190565b602060405180830381865afa158015613154573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ec919061411b565b6000836001600160a01b031663bd02d0f56131198585613728565b600080836131a55785606001516131ab565b85604001515b905060006131ba888884613060565b9050600084156131e857856131d7578660400151602001516131e1565b8660200151602001515b9050613202565b856131f8576040870151516131ff565b6020870151515b90505b61320c8183614231565b9998505050505050505050565b60008061322a611c32888887613766565b905060006132398888876137c4565b9050811580613246575080155b15613256576000925050506121b3565b600061326387878761380b565b90506000613274611c328385614231565b905060008761328c576132878286615318565b613296565b6132968583615318565b9b9a5050505050505050505050565b6000806132ba6132b4856129d8565b84613842565b9050600084136132db576132cd81611471565b6132d690614841565b6114ec565b6114ec81611471565b6000604051602001613318906020808252600e908201526d26a0ac2fa827262fa320a1aa27a960911b604082015260600190565b60408051601f1981840301815282825280516020918201209083015281018590526001600160a01b0384166060820152821515608082015260a0015b6040516020818303038152906040528051906020012090509392505050565b61337d8282611ef7565b80606001516001600160a01b031681604001516001600160a01b0316036128405780516040516332e6f44d60e21b815261026d91906004016140b4565b60008080600019858709858702925082811083820303915050806000036133f4578382816133ea576133ea6140c8565b0492505050610f1d565b80841161343b5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b604482015260640161026d565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b600060405160200161200f906020808252600d908201526c2aa4afa322a2afa320a1aa27a960991b604082015260600190565b6000836001600160a01b031663bd02d0f56131198585613566565b6000808312156135345761350582611471565b61350e83611471565b6135189085615318565b613523906001615338565b61352d91906152ea565b9050610e86565b61353d82611471565b600161354884611471565b6135529086615338565b61355c9190615318565b610f1d91906152ea565b6000604051602001612e5d9060208082526017908201527614d5d05417d253541050d517d413d3d317d05353d55395604a1b604082015260600190565b600060405160200161200f906020808252601190820152701592549515505317d3505492d15517d251607a1b604082015260600190565b600082604001516001600160a01b0316826001600160a01b031614158015613618575082606001516001600160a01b0316826001600160a01b031614155b1561363a57825160405163785ee46960e01b815261026d918491600401614521565b506040909101516001600160a01b0391821691161490565b6000604051602001613693906020808252601b908201527a5649525455414c5f494e56454e544f52595f464f525f535741505360281b604082015260600190565b60408051601f1981840301815282825280516020918201209083015281018490528215156060820152608001612a63565b6000816001600160a01b0316836001600160a01b0316146136e65760016136e9565b60025b60ff169392505050565b6000604051602001612e5d906020808252600f908201526e13505617d413d3d317d05353d55395608a1b604082015260600190565b6000604051602001612e5d9060208082526018908201527713505617d413d3d317d554d117d193d497d1115413d4d25560421b604082015260600190565b60008061377b846040015185606001516136c4565b9050600061379486866000015187604001518786613850565b905060006137ad87876000015188606001518887613850565b90506137b98183614142565b979650505050505050565b6000806137d9846040015185606001516136c4565b905060006137f2868660000151876040015187866138e0565b905060006137ad878760000151886060015188876138e0565b6000821561382a578161381f578351612599565b506020830151610f1d565b816138395783602001516114ec565b50509051919050565b6000610f1d838360006138fd565b600081866001600160a01b031663bd02d0f561386d888888613945565b6040518263ffffffff1660e01b815260040161388b91815260200190565b602060405180830381865afa1580156138a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138cc919061411b565b6138d691906140f4565b9695505050505050565b600081866001600160a01b031663bd02d0f561386d8888886139bd565b60008360000361390f57506000610f1d565b811561392e576125998468327cb2734119d3b7a9601e1b8560016139fa565b6114ec8468327cb2734119d3b7a9601e1b856133ba565b6000604051602001613978906020808252600d908201526c13d4115397d2539511549154d5609a1b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b038087169183019190915284166060820152821515608082015260a001613354565b6000604051602001613978906020808252601790820152764f50454e5f494e5445524553545f494e5f544f4b454e5360481b604082015260600190565b600080613a088686866133ba565b90506001836002811115613a1e57613a1e6142fb565b148015613a3b575060008480613a3657613a366140c8565b868809115b156121b3576138d6600182614142565b6040518061018001604052806000815260200160008152602001613a6d613abd565b8152602001613a7a613ae4565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001613ab8613b50565b905290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6040518060600160405280613af7613c3c565b8152602001613b04613c3c565b8152602001613ab8613c3c565b6040518060c0016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081525090565b604080516101208101909152606060e0820181815261010083019190915281908152602001613b92604051806040016040528060608152602001606081525090565b8152602001613bb4604051806040016040528060608152602001606081525090565b8152602001613bd6604051806040016040528060608152602001606081525090565b8152602001613bf8604051806040016040528060608152602001606081525090565b8152602001613c1a604051806040016040528060608152602001606081525090565b8152602001613ab8604051806040016040528060608152602001606081525090565b604051806040016040528060008152602001600081525090565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715613c8e57613c8e613c56565b60405290565b60405161012081016001600160401b0381118282101715613c8e57613c8e613c56565b60405161016081016001600160401b0381118282101715613c8e57613c8e613c56565b6001600160a01b0381168114613cef57600080fd5b50565b8035613cfd81613cda565b919050565b803560068110613cfd57600080fd5b8015158114613cef57600080fd5b8035613cfd81613d11565b600082601f830112613d3b57600080fd5b813560206001600160401b0380831115613d5757613d57613c56565b8260051b604051601f19603f83011681018181108482111715613d7c57613d7c613c56565b604052938452858101830193838101925087851115613d9a57600080fd5b83870191505b848210156137b9578135613db381613cda565b83529183019190830190613da0565b600060c08284031215613dd457600080fd5b60405160c081016001600160401b0381118282101715613df657613df6613c56565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201525092915050565b600060208284031215613e4d57600080fd5b604051602081016001600160401b0381118282101715613e6f57613e6f613c56565b6040529050808235613e8081613d11565b905292915050565b6000610100808385031215613e9c57600080fd5b613ea4613c6c565b915082356001600160401b0380821115613ebd57600080fd5b908401906101208287031215613ed257600080fd5b613eda613c94565b613ee383613cf2565b8152613ef160208401613cf2565b6020820152613f0260408401613cf2565b6040820152613f1360608401613cf2565b6060820152613f2460808401613cf2565b6080820152613f3560a08401613cf2565b60a0820152613f4660c08401613cf2565b60c082015260e083013582811115613f5d57600080fd5b613f6988828601613d2a565b60e0830152508383013582811115613f8057600080fd5b613f8c88828601613d2a565b858301525080855250505050613fa58360208401613dc2565b6020820152613fb78360e08401613e3b565b604082015292915050565b600080828403610140811215613fd757600080fd5b61012080821215613fe757600080fd5b613fef613c94565b9150613ffa85613cf2565b825261400860208601613cf2565b602083015261401960408601613cf2565b604083015261402a60608601613cf2565b60608301526080850135608083015261404560a08601613cf2565b60a083015260c085013560c083015261406060e08601613d02565b60e0830152610100614073818701613d1f565b908301529092508301356001600160401b0381111561409157600080fd5b61409d85828601613e88565b9150509250929050565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082614103576141036140c8565b500490565b81810381811115610e8657610e866140de565b60006020828403121561412d57600080fd5b5051919050565b918252602082015260400190565b80820180821115610e8657610e866140de565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260609182015116910152565b80518252602090810151910152565b6001600160a01b0385811682528416602082015261018081016141bd6040830185614155565b6141cb60c083018451614188565b60208301516141de610100840182614188565b5060408301516141f2610140840182614188565b5095945050505050565b6020808252601b908201527a4d41585f504e4c5f464143544f525f464f525f4445504f5349545360281b604082015260600190565b8082028115828204841417610e8657610e866140de565b81516001600160a01b0316815260208083015161018083019161426d90840182614155565b50604083015161428060a08401826140a7565b50606083015161429360c08401826140a7565b50608083015160e083015260a0830151610100818185015260c085015161012085015260e0850151610140850152808501519150506142d761016084018215159052565b5092915050565b6001600160a01b038316815260a08101610f1d6020830184614155565b634e487b7160e01b600052602160045260246000fd5b6006811061432f57634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b0388811682526020820188905286166040820152606081018590526080810184905260a0810183905260e081016128c060c0830184614311565b6001600160a01b03881681526101a081016143926020830189614155565b61439f60a0830188614188565b6143ac60e0830187614188565b6143ba610120830186614188565b8361016083015282151561018083015298975050505050505050565b600061016082840312156143e957600080fd5b6143f1613cb7565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152508091505092915050565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008082015181840152506101208082015181840152506101408082015181840152505050565b6001600160a01b038781168252602082018790526040820186905284166060820152610200810161450f6080830185614469565b826101e0830152979650505050505050565b6001600160a01b0392831681529116602082015260400190565b60006080828403121561454d57600080fd5b604051608081016001600160401b038111828210171561456f5761456f613c56565b604052825161457d81613cda565b8152602083015161458d81613cda565b602082015260408301516145a081613cda565b604082015260608301516145b381613cda565b60608201529392505050565b6000604082840312156145d157600080fd5b604080519081016001600160401b03811182821017156145f3576145f3613c56565b604052825181526020928301519281019290925250919050565b600081518084526020808501945080840160005b8381101561464757614634878351614155565b6080969096019590820190600101614621565b509495945050505050565b602081526146646020820183516140a7565b6000602083015161467860408401826140a7565b50604083015161468b60608401826140a7565b50606083015161469e60808401826140a7565b50608083015160a083015260a08301516146bb60c08401826140a7565b5060c083015160e083015260e08301516101a061010081818601526146e46101c086018461460d565b9086015161012086810191909152860151909250610140614707818701836140a7565b860151905061016061471b868201836140a7565b86015190506101806147308682018315159052565b860151905061474185830182614311565b5090949350505050565b6000806040838503121561475e57600080fd5b825161476981613cda565b6020939093015192949293505050565b6001600160a01b038316815260406020808301829052835191830182905260009184820191906060850190845b818110156147cc576147b9838651614155565b93830193608092909201916001016147a6565b5090979650505050505050565b60208082526010908201526f4445504f5349545f4645455f5459504560801b604082015260600190565b6001600160a01b03868116825260208201869052841660408201526101e081016148306060830185614469565b826101c08301529695505050505050565b6000600160ff1b8201614856576148566140de565b5060000390565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156146475781516001600160a01b031687529582019590820190600101614887565b600061010082518185526148c382860182516140a7565b60208101516101206148d7818801836140a7565b604083015191506148ec6101408801836140a7565b606083015191506149016101608801836140a7565b608083015191506149166101808801836140a7565b60a0830151915061492b6101a08801836140a7565b60c083015191506149406101c08801836140a7565b60e08301519150806101e08801525061495d610220870182614873565b9282015186840360ff190161020088015292905061497b8184614873565b9250505060208301516149c66020860182805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b5060408301518051151560e086015261216b565b6000815180845260005b81811015614a00576020818501810151868301820152016149e4565b506000602082860101526020601f19601f83011685010191505092915050565b600082825180855260208086019550808260051b84010181860160005b848110156147cc57601f19868403018952815160408151818652614a63828701826149da565b91505085820151915084810386860152614a7d8183614873565b9a86019a9450505090830190600101614a3d565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b82811015614b0857898603605f1901845284518051888852614ae2898901826149da565b918401516001600160a01b03169784019790975295509381019392810192600101614abe565b50808801519550888503818a0152505050506121b38183614a20565b600082825180855260208086019550808260051b8401018186016000805b85811015614bb957601f19878503018a52825160408151818752614b68828801826149da565b92880151878403888a0152805180855290890193869350890191505b80831015614ba45783518252928801926001929092019190880190614b84565b509b87019b9550505091840191600101614b42565b509198975050505050505050565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b82811015614c3557898603605f1901845284518051888852614c18898901826149da565b918401519784019790975295509381019392810192600101614bf4565b50808801519550888503818a0152505050506121b38183614b24565b600082825180855260208086019550808260051b8401018186016000805b85811015614bb957601f19878503018a52825160408151818752614c95828801826149da565b92880151878403888a0152805180855290890193869350890191505b80831015614cd15783518252928801926001929092019190880190614cb1565b509b87019b9550505091840191600101614c6f565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b82811015614d5457898603605f1901845284518051888852614d37898901826149da565b918401519784019790975295509381019392810192600101614d13565b50808801519550888503818a0152505050506121b38183614c51565b600082825180855260208086019550808260051b8401018186016000805b85811015614bb957601f19878503018a52825160408151818752614db4828801826149da565b92880151878403888a0152805180855290890193869350890191505b80831015614df257835115158252928801926001929092019190880190614dd0565b509b87019b9550505091840191600101614d8e565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b82811015614e7757898603605f1901845284518051888852614e58898901826149da565b9184015115159784019790975295509381019392810192600101614e34565b50808801519550888503818a0152505050506121b38183614d70565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b82811015614c3557898603605f1901845284518051888852614ee4898901826149da565b918401519784019790975295509381019392810192600101614ec0565b600081518084526020808501808196506005915083821b81018387016000805b87811015614fac578484038b52825160408151818752614f43828801826149da565b928a0151878403888c01528051808552908b019392508a83019150808a1b83018b01865b82811015614f9557601f19858303018452614f838287516149da565b958d0195938d01939150600101614f67565b509e8b019e97505050938801935050600101614f21565b50919998505050505050505050565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b8281101561503857898603605f190184528451805188885261500c898901826149da565b918401518883038986015291905061502481836149da565b975050509381019392810192600101614fe8565b50808801519550888503818a0152505050506121b38183614f01565b600081518084526020808501808196506005915083821b81018387016000805b87811015614fac578484038b52825160408151818752615096828801826149da565b928a0151878403888c01528051808552908b019392508a83019150808a1b83018b01865b828110156150e857601f198583030184526150d68287516149da565b958d0195938d019391506001016150ba565b509e8b019e97505050938801935050600101615074565b60006040808401835182865281815180845260608801915060608160051b89010193506020808401935060005b8281101561517c57898603605f1901845284518051888852615150898901826149da565b918401518883038986015291905061516881836149da565b97505050938101939281019260010161512c565b50808801519550888503818a0152505050506121b38183615054565b8381526060602082015260006151b160608301856148ac565b8281036040840152835160e082526151cc60e0830182614a91565b9050602085015182820360208401526151e58282614bc7565b915050604085015182820360408401526151ff8282614ce6565b915050606085015182820360608401526152198282614e07565b915050608085015182820360808401526152338282614e93565b91505060a085015182820360a084015261524d8282614fbb565b91505060c085015182820360c08401526128c082826150ff565b8281526040602082015260006114ec60408301846148ac565b60006020828403121561529257600080fd5b8151610f1d81613d11565b6000600182016152af576152af6140de565b5060010190565b6001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b6000826152f9576152f96140c8565b600160ff1b821460001984141615615313576153136140de565b500590565b81810360008312801583831316838312821617156142d7576142d76140de565b8082018281126000831280158216821582161715615358576153586140de565b50509291505056fea26469706673582212204c400fcb1edaf6fe041851f5cb1890443784ae4f16d2cadf9736d5200eb687a764736f6c63430008120033