1 tx
2 calls
constructor
No constructor.
functions
BASIS_POINTS_DIVISOR
viewfunction BASIS_POINTS_DIVISOR() view returns (uint256)
getAmountOut
viewfunction getAmountOut(address _vault, address _tokenIn, address _tokenOut, uint256 _amountIn) view returns (uint256, uint256)
getFeeBasisPoints
viewfunction getFeeBasisPoints(address _vault, address _tokenIn, address _tokenOut, uint256 _amountIn) view returns (uint256, uint256, uint256)
getFees
viewfunction getFees(address _vault, address[] _tokens) view returns (uint256[])
getFullVaultTokenInfo
viewfunction getFullVaultTokenInfo(address _vault, address _weth, uint256 _usdgAmount, address[] _tokens) view returns (uint256[])
getFundingRates
viewfunction getFundingRates(address _vault, address _weth, address[] _tokens) view returns (uint256[])
getMaxAmountIn
viewfunction getMaxAmountIn(address _vault, address _tokenIn, address _tokenOut) view returns (uint256)
getPairInfo
viewfunction getPairInfo(address _factory, address[] _tokens) view returns (uint256[])
getPositions
viewfunction getPositions(address _vault, address _account, address[] _collateralTokens, address[] _indexTokens, bool[] _isLong) view returns (uint256[])
getPrices
viewfunction getPrices(address _priceFeed, address[] _tokens) view returns (uint256[])
getStakingInfo
viewfunction getStakingInfo(address _account, address[] _yieldTrackers) view returns (uint256[])
getTokenBalances
viewfunction getTokenBalances(address _account, address[] _tokens) view returns (uint256[])
getTokenBalancesWithSupplies
viewfunction getTokenBalancesWithSupplies(address _account, address[] _tokens) view returns (uint256[])
getTokenSupply
viewfunction getTokenSupply(address _token, address[] _excludedAccounts) view returns (uint256)
getTotalBalance
viewfunction getTotalBalance(address _token, address[] _accounts) view returns (uint256)
getTotalStaked
viewfunction getTotalStaked(address[] _yieldTokens) view returns (uint256[])
getVaultTokenInfo
viewfunction getVaultTokenInfo(address _vault, address _weth, uint256 _usdgAmount, address[] _tokens) view returns (uint256[])
getVaultTokenInfoV2
viewfunction getVaultTokenInfoV2(address _vault, address _weth, uint256 _usdgAmount, address[] _tokens) view returns (uint256[])
getVestingInfo
viewfunction getVestingInfo(address _account, address[] _vesters) view returns (uint256[])
gov
viewfunction gov() view returns (address)
hasMaxGlobalShortSizes
viewfunction hasMaxGlobalShortSizes() view returns (bool)
POSITION_PROPS_LENGTH
viewfunction POSITION_PROPS_LENGTH() view returns (uint256)
PRICE_PRECISION
viewfunction PRICE_PRECISION() view returns (uint256)
USDG_DECIMALS
viewfunction USDG_DECIMALS() view returns (uint256)
setConfig
nonpayablefunction setConfig(bool _hasMaxGlobalShortSizes)
setGov
nonpayablefunction setGov(address _gov)
events
No events.
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50600080546001600160a01b03191633179055615445806100326000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063937a0be8116100de578063c6f1d67611610097578063d802178e11610071578063d802178e14610391578063dc383cab146103a4578063f3535e6c146103b7578063fbdb05ca146103ca57600080fd5b8063c6f1d67614610332578063cfad57a214610356578063d7176ca91461036957600080fd5b8063937a0be8146102c857806395082d25146102db57806395a7535a146102ef5780639b0183c314610302578063a4543ead14610317578063ad7e54971461032a57600080fd5b80633613d5271161014b5780637b906e93116101255780637b906e931461028757806386d4d0f51461029a578063870d917c146102ad5780638e83ca32146102b557600080fd5b80633613d52714610233578063440f018c14610246578063482119341461027457600080fd5b8063126082cf1461019357806312d43a51146101af57806320542568146101da5780632413c8c1146101fa5780632ac0184c1461020d5780632e3e334214610220575b600080fd5b61019c61271081565b6040519081526020015b60405180910390f35b6000546101c2906001600160a01b031681565b6040516001600160a01b0390911681526020016101a6565b6101ed6101e8366004614da7565b6103dd565b6040516101a69190614e12565b6101ed610208366004614e56565b610b20565b61019c61021b366004614e92565b610c2c565b6101ed61022e366004614e92565b610d5b565b6101ed610241366004614e92565b610fa7565b610259610254366004614ee1565b611421565b604080519384526020840192909252908201526060016101a6565b6101ed610282366004614e92565b6118f3565b6101ed610295366004614da7565b611de0565b6101ed6102a8366004614e92565b61264c565b61019c601281565b6101ed6102c3366004614da7565b612765565b6101ed6102d6366004614e92565b613128565b61019c6c0c9f2c9cd04674edea4000000081565b6101ed6102fd366004614f32565b6132e8565b610315610310366004614fa1565b61379c565b005b6101ed610325366004614e92565b613811565b61019c600981565b60005461034690600160a01b900460ff1681565b60405190151581526020016101a6565b610315610364366004614fbe565b613ab3565b61037c610377366004614ee1565b613b27565b604080519283526020830191909152016101a6565b6101ed61039f366004614e92565b61412a565b6101ed6103b2366004614fdb565b614283565b61019c6103c53660046150e7565b61475f565b61019c6103d8366004614e92565b614bcd565b60606000600a905060008690506000816001600160a01b031663741bef1a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044e9190615132565b9050600083865161045f9190615165565b6001600160401b0381111561047657610476614cd5565b60405190808252806020026020018201604052801561049f578160200160208202803683370190505b50905060005b8651811015610b135760008782815181106104c2576104c2615184565b6020026020010151905060006001600160a01b0316816001600160a01b031614156104ea5750885b6040516352f55eed60e01b81526001600160a01b0382811660048301528616906352f55eed90602401602060405180830381865afa158015610530573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610554919061519a565b8361055f8885615165565b8151811061056f5761056f615184565b602090810291909101015260405163c3c7b9e960e01b81526001600160a01b03828116600483015286169063c3c7b9e990602401602060405180830381865afa1580156105c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e4919061519a565b836105ef8885615165565b6105fa9060016151b3565b8151811061060a5761060a615184565b6020908102919091010152604051631aa4ace560e01b81526001600160a01b038281166004830152861690631aa4ace590602401602060405180830381865afa15801561065b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067f919061519a565b8361068a8885615165565b6106959060026151b3565b815181106106a5576106a5615184565b6020908102919091010152604051632c668ec160e01b81526001600160a01b038281166004830152602482018b9052861690632c668ec190604401602060405180830381865afa1580156106fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610721919061519a565b8361072c8885615165565b6107379060036151b3565b8151811061074757610747615184565b6020908102919091010152604051632acbceb560e21b81526001600160a01b03828116600483015286169063ab2f3ad490602401602060405180830381865afa158015610798573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bc919061519a565b836107c78885615165565b6107d29060046151b3565b815181106107e2576107e2615184565b60209081029190910101526040516340d3096b60e11b81526001600160a01b0382811660048301528616906381a612d690602401602060405180830381865afa158015610833573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610857919061519a565b836108628885615165565b61086d9060056151b3565b8151811061087d5761087d615184565b6020908102919091010152604051637092736960e11b81526001600160a01b03828116600483015286169063e124e6d290602401602060405180830381865afa1580156108ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f2919061519a565b836108fd8885615165565b6109089060066151b3565b8151811061091857610918615184565b602090810291909101015260405163783a2b6760e11b81526001600160a01b03828116600483015286169063f07456ce90602401602060405180830381865afa158015610969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098d919061519a565b836109988885615165565b6109a39060076151b3565b815181106109b3576109b3615184565b60209081029190910101526040516356c8c2c160e01b81526001600160a01b038516906356c8c2c1906109ed9084906000906004016151cb565b602060405180830381865afa158015610a0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2e919061519a565b83610a398885615165565b610a449060086151b3565b81518110610a5457610a54615184565b60209081029190910101526040516356c8c2c160e01b81526001600160a01b038516906356c8c2c190610a8e9084906001906004016151cb565b602060405180830381865afa158015610aab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acf919061519a565b83610ada8885615165565b610ae59060096151b3565b81518110610af557610af5615184565b60209081029190910101525080610b0b816151e6565b9150506104a5565b5098975050505050505050565b6060600082516001600160401b03811115610b3d57610b3d614cd5565b604051908082528060200260200182016040528015610b66578160200160208202803683370190505b50905060005b8351811015610c25576000848281518110610b8957610b89615184565b60200260200101519050806001600160a01b031663817b1cd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf5919061519a565b838381518110610c0757610c07615184565b60209081029190910101525080610c1d816151e6565b915050610b6c565b5092915050565b600080836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c91919061519a565b905060005b8351811015610d51576000848281518110610cb357610cb3615184565b60209081029190910101516040516370a0823160e01b81526001600160a01b0380831660048301529192506000918816906370a0823190602401602060405180830381865afa158015610d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2e919061519a565b9050610d3a8482614c8d565b935050508080610d49906151e6565b915050610c96565b5090505b92915050565b60606000600290506000818451610d729190615165565b6001600160401b03811115610d8957610d89614cd5565b604051908082528060200260200182016040528015610db2578160200160208202803683370190505b50905060005b8451811015610f9e576000858281518110610dd557610dd5615184565b6020026020010151905060006001600160a01b0316816001600160a01b03161415610e65576001600160a01b0387163183610e108685615165565b81518110610e2057610e20615184565b6020908102919091010152600083610e388685615165565b610e439060016151b3565b81518110610e5357610e53615184565b60200260200101818152505050610f8c565b6040516370a0823160e01b81526001600160a01b0388811660048301528216906370a0823190602401602060405180830381865afa158015610eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecf919061519a565b83610eda8685615165565b81518110610eea57610eea615184565b602002602001018181525050806001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f58919061519a565b83610f638685615165565b610f6e9060016151b3565b81518110610f7e57610f7e615184565b602002602001018181525050505b80610f96816151e6565b915050610db8565b50949350505050565b60606000600690506000818451610fbe9190615165565b6001600160401b03811115610fd557610fd5614cd5565b604051908082528060200260200182016040528015610ffe578160200160208202803683370190505b50905060005b8451811015610f9e57600085828151811061102157611021615184565b60209081029190910101516040516317e1d38560e11b81526001600160a01b03808316600483015260016024830181905260448301526000606483015291925090881690632fc3a70a90608401602060405180830381865afa15801561108b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110af919061519a565b836110ba8685615165565b815181106110ca576110ca615184565b60209081029190910101526040516317e1d38560e11b81526001600160a01b038281166004830152600060248301819052600160448401526064830152881690632fc3a70a90608401602060405180830381865afa158015611130573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611154919061519a565b8361115f8685615165565b61116a9060016151b3565b8151811061117a5761117a615184565b60209081029190910101526040516356c8c2c160e01b81526001600160a01b038816906356c8c2c1906111b49084906001906004016151cb565b602060405180830381865afa1580156111d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f5919061519a565b836112008685615165565b61120b9060026151b3565b8151811061121b5761121b615184565b60209081029190910101526040516356c8c2c160e01b81526001600160a01b038816906356c8c2c1906112559084906000906004016151cb565b602060405180830381865afa158015611272573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611296919061519a565b836112a18685615165565b6112ac9060036151b3565b815181106112bc576112bc615184565b6020908102919091010152604051636ce8a44b60e01b81526001600160a01b038281166004830152881690636ce8a44b90602401602060405180830381865afa15801561130d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113319190615201565b61133c57600061133f565b60015b60ff168361134d8685615165565b6113589060046151b3565b8151811061136857611368615184565b60209081029190910101526040516348cac27760e01b81526001600160a01b0382811660048301528816906348cac27790602401602060405180830381865afa1580156113b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113dd919061519a565b836113e88685615165565b6113f39060056151b3565b8151811061140357611403615184565b60209081029190910101525080611419816151e6565b915050611004565b6040516340d3096b60e11b81526001600160a01b0384811660048301526000918291829182918916906381a612d690602401602060405180830381865afa158015611470573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611494919061519a565b6040516323b95ceb60e21b81526001600160a01b0389811660048301529192506000918a1690638ee573ac90602401602060405180830381865afa1580156114e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611504919061519a565b905060006115296c0c9f2c9cd04674edea400000006115238986614c99565b90614ca5565b905061154f61153983600a615302565b6115236115486012600a615302565b8490614c99565b6040516342b60b0360e01b81526001600160a01b038b811660048301529192506000918c16906342b60b0390602401602060405180830381865afa15801561159b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bf9190615201565b801561163057506040516342b60b0360e01b81526001600160a01b038a811660048301528c16906342b60b0390602401602060405180830381865afa15801561160c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116309190615201565b90506000816116a0578b6001600160a01b031663a22f23926040518163ffffffff1660e01b8152600401602060405180830381865afa158015611677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169b919061519a565b611702565b8b6001600160a01b031663df73a2676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611702919061519a565b9050600082611772578c6001600160a01b0316637a210a2b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176d919061519a565b6117d4565b8c6001600160a01b03166310eb56c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d4919061519a565b905060008d6001600160a01b031663c7e074c38e87868660016040518663ffffffff1660e01b815260040161180d95949392919061530e565b602060405180830381865afa15801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e919061519a565b905060008e6001600160a01b031663c7e074c38e88878760006040518663ffffffff1660e01b815260040161188795949392919061530e565b602060405180830381865afa1580156118a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c8919061519a565b905060008183116118d957816118db565b825b9b509199509750505050505050509450945094915050565b6060600060079050600081845161190a9190615165565b6001600160401b0381111561192157611921614cd5565b60405190808252806020026020018201604052801561194a578160200160208202803683370190505b50905060005b8451811015610f9e57600085828151811061196d5761196d615184565b6020908102919091010151604051635d50e72960e01b81526001600160a01b03898116600483015291925090821690635d50e72990602401602060405180830381865afa1580156119c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e6919061519a565b836119f18685615165565b81518110611a0157611a01615184565b602090810291909101015260405163d5a73fdd60e01b81526001600160a01b03888116600483015282169063d5a73fdd90602401602060405180830381865afa158015611a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a76919061519a565b83611a818685615165565b611a8c9060016151b3565b81518110611a9c57611a9c615184565b602002602001018181525050858281518110611aba57611aba615184565b60209081029190910101516040516370a0823160e01b81526001600160a01b038981166004830152909116906370a0823190602401602060405180830381865afa158015611b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b30919061519a565b83611b3b8685615165565b611b469060026151b3565b81518110611b5657611b56615184565b60209081029190910101526040516338a0bd9960e11b81526001600160a01b0388811660048301528216906371417b3290602401602060405180830381865afa158015611ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcb919061519a565b83611bd68685615165565b611be19060036151b3565b81518110611bf157611bf1615184565b602090810291909101015260405163402914f560e01b81526001600160a01b03888116600483015282169063402914f590602401602060405180830381865afa158015611c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c66919061519a565b83611c718685615165565b611c7c9060046151b3565b81518110611c8c57611c8c615184565b6020908102919091010152604051630479363b60e11b81526001600160a01b0388811660048301528216906308f26c7690602401602060405180830381865afa158015611cdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d01919061519a565b83611d0c8685615165565b611d179060056151b3565b81518110611d2757611d27615184565b60209081029190910101526040516322f80f7360e11b81526001600160a01b0388811660048301528216906345f01ee690602401602060405180830381865afa158015611d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9c919061519a565b83611da78685615165565b611db29060066151b3565b81518110611dc257611dc2615184565b60209081029190910101525080611dd8816151e6565b915050611950565b60606000600c905060008690506000816001600160a01b031663741bef1a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e519190615132565b90506000838651611e629190615165565b6001600160401b03811115611e7957611e79614cd5565b604051908082528060200260200182016040528015611ea2578160200160208202803683370190505b50905060005b8651811015610b13576000878281518110611ec557611ec5615184565b6020026020010151905060006001600160a01b0316816001600160a01b03161415611eed5750885b6040516352f55eed60e01b81526001600160a01b0382811660048301528616906352f55eed90602401602060405180830381865afa158015611f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f57919061519a565b83611f628885615165565b81518110611f7257611f72615184565b602090810291909101015260405163c3c7b9e960e01b81526001600160a01b03828116600483015286169063c3c7b9e990602401602060405180830381865afa158015611fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe7919061519a565b83611ff28885615165565b611ffd9060016151b3565b8151811061200d5761200d615184565b6020908102919091010152604051631aa4ace560e01b81526001600160a01b038281166004830152861690631aa4ace590602401602060405180830381865afa15801561205e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612082919061519a565b8361208d8885615165565b6120989060026151b3565b815181106120a8576120a8615184565b6020908102919091010152604051632c668ec160e01b81526001600160a01b038281166004830152602482018b9052861690632c668ec190604401602060405180830381865afa158015612100573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612124919061519a565b8361212f8885615165565b61213a9060036151b3565b8151811061214a5761214a615184565b6020908102919091010152604051632acbceb560e21b81526001600160a01b03828116600483015286169063ab2f3ad490602401602060405180830381865afa15801561219b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bf919061519a565b836121ca8885615165565b6121d59060046151b3565b815181106121e5576121e5615184565b6020908102919091010152604051634a993ee960e01b81526001600160a01b038281166004830152861690634a993ee990602401602060405180830381865afa158015612236573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225a919061519a565b836122658885615165565b6122709060056151b3565b8151811061228057612280615184565b602090810291909101015260405163ad1e4f8d60e01b81526001600160a01b03828116600483015286169063ad1e4f8d90602401602060405180830381865afa1580156122d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f5919061519a565b836123008885615165565b61230b9060066151b3565b8151811061231b5761231b615184565b60209081029190910101526040516340d3096b60e11b81526001600160a01b0382811660048301528616906381a612d690602401602060405180830381865afa15801561236c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612390919061519a565b8361239b8885615165565b6123a69060076151b3565b815181106123b6576123b6615184565b6020908102919091010152604051637092736960e11b81526001600160a01b03828116600483015286169063e124e6d290602401602060405180830381865afa158015612407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242b919061519a565b836124368885615165565b6124419060086151b3565b8151811061245157612451615184565b602090810291909101015260405163783a2b6760e11b81526001600160a01b03828116600483015286169063f07456ce90602401602060405180830381865afa1580156124a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c6919061519a565b836124d18885615165565b6124dc9060096151b3565b815181106124ec576124ec615184565b60209081029190910101526040516356c8c2c160e01b81526001600160a01b038516906356c8c2c1906125269084906000906004016151cb565b602060405180830381865afa158015612543573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612567919061519a565b836125728885615165565b61257d90600a6151b3565b8151811061258d5761258d615184565b60209081029190910101526040516356c8c2c160e01b81526001600160a01b038516906356c8c2c1906125c79084906001906004016151cb565b602060405180830381865afa1580156125e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612608919061519a565b836126138885615165565b61261e90600b6151b3565b8151811061262e5761262e615184565b60209081029190910101525080612644816151e6565b915050611ea8565b6060600082516001600160401b0381111561266957612669614cd5565b604051908082528060200260200182016040528015612692578160200160208202803683370190505b50905060005b8351811015610d5157846001600160a01b0316631ce9cb8f8583815181106126c2576126c2615184565b60200260200101516040518263ffffffff1660e01b81526004016126f591906001600160a01b0391909116815260200190565b602060405180830381865afa158015612712573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612736919061519a565b82828151811061274857612748615184565b60209081029190910101528061275d816151e6565b915050612698565b60606000600e905060008690506000816001600160a01b031663741bef1a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d69190615132565b905060008386516127e79190615165565b6001600160401b038111156127fe576127fe614cd5565b604051908082528060200260200182016040528015612827578160200160208202803683370190505b50905060005b8651811015610b1357600087828151811061284a5761284a615184565b6020026020010151905060006001600160a01b0316816001600160a01b031614156128725750885b60008054600160a01b900460ff1661288b5760006128f5565b604051634b4c692d60e11b81526001600160a01b038381166004830152871690639698d25a90602401602060405180830381865afa1580156128d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f5919061519a565b6040516352f55eed60e01b81526001600160a01b038481166004830152919250908716906352f55eed90602401602060405180830381865afa15801561293f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612963919061519a565b8461296e8986615165565b8151811061297e5761297e615184565b602090810291909101015260405163c3c7b9e960e01b81526001600160a01b03838116600483015287169063c3c7b9e990602401602060405180830381865afa1580156129cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f3919061519a565b846129fe8986615165565b612a099060016151b3565b81518110612a1957612a19615184565b6020908102919091010152604051631aa4ace560e01b81526001600160a01b038381166004830152871690631aa4ace590602401602060405180830381865afa158015612a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8e919061519a565b84612a998986615165565b612aa49060026151b3565b81518110612ab457612ab4615184565b6020908102919091010152604051632c668ec160e01b81526001600160a01b038381166004830152602482018c9052871690632c668ec190604401602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b30919061519a565b84612b3b8986615165565b612b469060036151b3565b81518110612b5657612b56615184565b6020908102919091010152604051632acbceb560e21b81526001600160a01b03838116600483015287169063ab2f3ad490602401602060405180830381865afa158015612ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bcb919061519a565b84612bd68986615165565b612be19060046151b3565b81518110612bf157612bf1615184565b6020908102919091010152604051634a993ee960e01b81526001600160a01b038381166004830152871690634a993ee990602401602060405180830381865afa158015612c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c66919061519a565b84612c718986615165565b612c7c9060056151b3565b81518110612c8c57612c8c615184565b602090810291909101015260405163ad1e4f8d60e01b81526001600160a01b03838116600483015287169063ad1e4f8d90602401602060405180830381865afa158015612cdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d01919061519a565b84612d0c8986615165565b612d179060066151b3565b81518110612d2757612d27615184565b602090810291909101015260405163114f1b5560e31b81526001600160a01b038381166004830152871690638a78daa890602401602060405180830381865afa158015612d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d9c919061519a565b84612da78986615165565b612db29060076151b3565b81518110612dc257612dc2615184565b60209081029190910101528084612dd98986615165565b612de49060086151b3565b81518110612df457612df4615184565b60209081029190910101526040516340d3096b60e11b81526001600160a01b0383811660048301528716906381a612d690602401602060405180830381865afa158015612e45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e69919061519a565b84612e748986615165565b612e7f9060096151b3565b81518110612e8f57612e8f615184565b6020908102919091010152604051637092736960e11b81526001600160a01b03838116600483015287169063e124e6d290602401602060405180830381865afa158015612ee0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f04919061519a565b84612f0f8986615165565b612f1a90600a6151b3565b81518110612f2a57612f2a615184565b602090810291909101015260405163783a2b6760e11b81526001600160a01b03838116600483015287169063f07456ce90602401602060405180830381865afa158015612f7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f9f919061519a565b84612faa8986615165565b612fb590600b6151b3565b81518110612fc557612fc5615184565b60209081029190910101526040516356c8c2c160e01b81526001600160a01b038616906356c8c2c190612fff9085906000906004016151cb565b602060405180830381865afa15801561301c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613040919061519a565b8461304b8986615165565b61305690600c6151b3565b8151811061306657613066615184565b60209081029190910101526040516356c8c2c160e01b81526001600160a01b038616906356c8c2c1906130a09085906001906004016151cb565b602060405180830381865afa1580156130bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e1919061519a565b846130ec8986615165565b6130f790600d6151b3565b8151811061310757613107615184565b60200260200101818152505050508080613120906151e6565b91505061282d565b6060600060029050600081845161313f9190615165565b6001600160401b0381111561315657613156614cd5565b60405190808252806020026020018201604052801561317f578160200160208202803683370190505b50905060005b8451811015610f9e5760008582815181106131a2576131a2615184565b602090810291909101015160405163402914f560e01b81526001600160a01b0389811660048301529192509082169063402914f590602401602060405180830381865afa1580156131f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061321b919061519a565b836132268685615165565b8151811061323657613236615184565b602002602001018181525050806001600160a01b0316632459f51d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a4919061519a565b836132af8685615165565b6132ba9060016151b3565b815181106132ca576132ca615184565b602090810291909101015250806132e0816151e6565b915050613185565b606060006002905060008184516132ff9190615165565b6001600160401b0381111561331657613316614cd5565b60405190808252806020026020018201604052801561333f578160200160208202803683370190505b5090508560005b855181101561378e57600086828151811061336357613363615184565b6020026020010151905060006001600160a01b0316816001600160a01b0316141561338b5750865b6040516342b60b0360e01b81526001600160a01b038281166004830152600091908516906342b60b0390602401602060405180830381865afa1580156133d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133f99190615201565b61346457836001600160a01b031663c4f718bf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561343b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345f919061519a565b6134c6565b836001600160a01b031663134ca63b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c6919061519a565b60405163c3c7b9e960e01b81526001600160a01b03848116600483015291925060009186169063c3c7b9e990602401602060405180830381865afa158015613512573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613536919061519a565b6040516352f55eed60e01b81526001600160a01b0385811660048301529192506000918716906352f55eed90602401602060405180830381865afa158015613582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135a6919061519a565b905080156135e4576135bc816115238585614c99565b876135c78a88615165565b815181106135d7576135d7615184565b6020026020010181815250505b60405163c65bc7b160e01b81526001600160a01b0385811660048301526000919088169063c65bc7b190602401602060405180830381865afa15801561362e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613652919061519a565b11156137775760405163549d656160e11b81526001600160a01b0385811660048301526000919088169063a93acac290602401602060405180830381865afa1580156136a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c6919061519a565b60405163c65bc7b160e01b81526001600160a01b03878116600483015291925060009189169063c65bc7b190602401602060405180830381865afa158015613712573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613736919061519a565b90506137428183614cb1565b8961374d8c8a615165565b6137589060016151b3565b8151811061376857613768615184565b60200260200101818152505050505b505050508080613786906151e6565b915050613346565b5090925050505b9392505050565b6000546001600160a01b031633146137f35760405162461bcd60e51b815260206004820152601560248201527423b7bb32b93730b136329d103337b93134b23232b760591b60448201526064015b60405180910390fd5b60008054911515600160a01b0260ff60a01b19909216919091179055565b80516060906002908190600090829061382b90829061533e565b6138359190615165565b6001600160401b0381111561384c5761384c614cd5565b604051908082528060200260200182016040528015613875578160200160208202803683370190505b50905060005b838651613888919061533e565b811015613aa95760008661389c8684615165565b815181106138ac576138ac615184565b6020026020010151905060008786846138c59190615165565b6138d09060016151b3565b815181106138e0576138e0615184565b602090810291909101015160405163e6a4390560e01b81526001600160a01b03848116600483015280831660248301529192506000918b169063e6a4390590604401602060405180830381865afa15801561393f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139639190615132565b6040516370a0823160e01b81526001600160a01b038083166004830152919250908416906370a0823190602401602060405180830381865afa1580156139ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139d1919061519a565b856139dc8887615165565b815181106139ec576139ec615184565b60209081029190910101526040516370a0823160e01b81526001600160a01b0382811660048301528316906370a0823190602401602060405180830381865afa158015613a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a61919061519a565b85613a6c8887615165565b613a779060016151b3565b81518110613a8757613a87615184565b6020026020010181815250505050508080613aa1906151e6565b91505061387b565b5095945050505050565b6000546001600160a01b03163314613b055760405162461bcd60e51b815260206004820152601560248201527423b7bb32b93730b136329d103337b93134b23232b760591b60448201526064016137ea565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040516340d3096b60e11b81526001600160a01b03848116600483015260009182918291908816906381a612d690602401602060405180830381865afa158015613b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b99919061519a565b6040516323b95ceb60e21b81526001600160a01b038881166004830152919250600091891690638ee573ac90602401602060405180830381865afa158015613be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c09919061519a565b6040516323b95ceb60e21b81526001600160a01b0388811660048301529192506000918a1690638ee573ac90602401602060405180830381865afa158015613c55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c79919061519a565b9050600080613c996c0c9f2c9cd04674edea400000006115238a88614c99565b9050613ca961153985600a615302565b6040516342b60b0360e01b81526001600160a01b038c811660048301529192506000918d16906342b60b0390602401602060405180830381865afa158015613cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d199190615201565b8015613d8a57506040516342b60b0360e01b81526001600160a01b038b811660048301528d16906342b60b0390602401602060405180830381865afa158015613d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d8a9190615201565b9050600081613dfa578c6001600160a01b031663a22f23926040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613df5919061519a565b613e5c565b8c6001600160a01b031663df73a2676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e5c919061519a565b9050600082613ecc578d6001600160a01b0316637a210a2b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ec7919061519a565b613f2e565b8d6001600160a01b03166310eb56c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f2e919061519a565b905060008e6001600160a01b031663c7e074c38f87868660016040518663ffffffff1660e01b8152600401613f6795949392919061530e565b602060405180830381865afa158015613f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fa8919061519a565b905060008f6001600160a01b031663c7e074c38f88878760006040518663ffffffff1660e01b8152600401613fe195949392919061530e565b602060405180830381865afa158015613ffe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614022919061519a565b90508082116140315780614033565b815b965050505050505060008a6001600160a01b031663e124e6d28a6040518263ffffffff1660e01b815260040161407891906001600160a01b0391909116815260200190565b602060405180830381865afa158015614095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140b9919061519a565b905060006140cb826115238b89614c99565b90506140e96140db86600a615302565b61152361154887600a615302565b905060006141076127106115236141008288614c8d565b8590614c99565b905060006141158383614c8d565b919e919d50909b505050505050505050505050565b6060600082516001600160401b0381111561414757614147614cd5565b604051908082528060200260200182016040528015614170578160200160208202803683370190505b50905060005b8351811015610d5157600084828151811061419357614193615184565b6020026020010151905060006001600160a01b0316816001600160a01b031614156141e757856001600160a01b0316318383815181106141d5576141d5615184565b60200260200101818152505050614271565b6040516370a0823160e01b81526001600160a01b0387811660048301528216906370a0823190602401602060405180830381865afa15801561422d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614251919061519a565b83838151811061426357614263615184565b602002602001018181525050505b8061427b816151e6565b915050614176565b60606000600985516142959190615165565b6001600160401b038111156142ac576142ac614cd5565b6040519080825280602002602001820160405280156142d5578160200160208202803683370190505b50905060005b85518110156147545760008060008060008060008e6001600160a01b0316634a3f088d8f8f8b8151811061431157614311615184565b60200260200101518f8c8151811061432b5761432b615184565b60200260200101518f8d8151811061434557614345615184565b60209081029190910101516040516001600160e01b031960e087901b1681526001600160a01b039485166004820152928416602484015292166044820152901515606482015260840161010060405180830381865afa1580156143ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143d09190615360565b975097509750509650965096509650868960098a6143ee9190615165565b815181106143fe576143fe615184565b6020908102919091010152858961441660098b615165565b6144219060016151b3565b8151811061443157614431615184565b6020908102919091010152848961444960098b615165565b6144549060026151b3565b8151811061446457614464615184565b6020908102919091010152838961447c60098b615165565b6144879060036151b3565b8151811061449757614497615184565b602002602001018181525050816144af5760006144b2565b60015b60ff16896144c160098b615165565b6144cc9060046151b3565b815181106144dc576144dc615184565b602090810291909101015282896144f460098b615165565b6144ff9060056151b3565b8151811061450f5761450f615184565b6020908102919091010152808961452760098b615165565b6145329060066151b3565b8151811061454257614542615184565b602002602001018181525050505050505050506000826009836145659190615165565b8151811061457557614575615184565b6020026020010151905060008360098461458f9190615165565b61459a9060026151b3565b815181106145aa576145aa615184565b602002602001015190506000846009856145c49190615165565b6145cf9060066151b3565b815181106145df576145df615184565b60200260200101519050600082111561473e576000808c6001600160a01b0316635c07eaab8b888151811061461657614616615184565b602002602001015187878d8b8151811061463257614632615184565b60209081029190910101516040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260248401929092526044830152151560648201526084810186905260a4016040805180830381865afa15801561469b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146bf91906153ca565b91509150816146cf5760006146d2565b60015b60ff16876146e1600989615165565b6146ec9060076151b3565b815181106146fc576146fc615184565b60209081029190910101528087614714600989615165565b61471f9060086151b3565b8151811061472f5761472f615184565b60200260200101818152505050505b505050808061474c906151e6565b9150506142db565b509695505050505050565b6040516340d3096b60e11b81526001600160a01b03838116600483015260009182918616906381a612d690602401602060405180830381865afa1580156147aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147ce919061519a565b604051637092736960e11b81526001600160a01b03858116600483015291925060009187169063e124e6d290602401602060405180830381865afa15801561481a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061483e919061519a565b6040516323b95ceb60e21b81526001600160a01b038781166004830152919250600091881690638ee573ac90602401602060405180830381865afa15801561488a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148ae919061519a565b6040516323b95ceb60e21b81526001600160a01b038781166004830152919250600091891690638ee573ac90602401602060405180830381865afa1580156148fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061491e919061519a565b6040516352f55eed60e01b81526001600160a01b0388811660048301529192506000918291908b16906352f55eed90602401602060405180830381865afa15801561496d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614991919061519a565b60405163c3c7b9e960e01b81526001600160a01b038a811660048301529192506000918c169063c3c7b9e990602401602060405180830381865afa1580156149dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a01919061519a565b604051634a993ee960e01b81526001600160a01b038b811660048301529192506000918d1690634a993ee990602401602060405180830381865afa158015614a4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a71919061519a565b90506000818311614a825781614a84565b825b9050838110614a9f5760009950505050505050505050613795565b6000614aab8583614c8d565b9050614ae6614abb88600a615302565b611523614ac98b600a615302565b614ae08e6115238f88614c9990919063ffffffff16565b90614c99565b60405163ad1e4f8d60e01b81526001600160a01b038f8116600483015291975060009650908f16945063ad1e4f8d93506024019150614b229050565b602060405180830381865afa158015614b3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b63919061519a565b90508015610b13576000614b8a614b7c6012600a615302565b61152361410088600a615302565b9050614ba787611523836c0c9f2c9cd04674edea40000000614c99565b905080831115614bbf57965061379595505050505050565b505098975050505050505050565b600080805b8351811015610d51576000848281518110614bef57614bef615184565b60209081029190910101516040516370a0823160e01b81526001600160a01b0380831660048301529192506000918816906370a0823190602401602060405180830381865afa158015614c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c6a919061519a565b9050614c768482614cb1565b935050508080614c85906151e6565b915050614bd2565b600061379582846153f8565b60006137958284615165565b6000613795828461533e565b600061379582846151b3565b6001600160a01b0381168114614cd257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614d1357614d13614cd5565b604052919050565b60006001600160401b03821115614d3457614d34614cd5565b5060051b60200190565b600082601f830112614d4f57600080fd5b81356020614d64614d5f83614d1b565b614ceb565b82815260059290921b84018101918181019086841115614d8357600080fd5b8286015b84811015614754578035614d9a81614cbd565b8352918301918301614d87565b60008060008060808587031215614dbd57600080fd5b8435614dc881614cbd565b93506020850135614dd881614cbd565b92506040850135915060608501356001600160401b03811115614dfa57600080fd5b614e0687828801614d3e565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015614e4a57835183529284019291840191600101614e2e565b50909695505050505050565b600060208284031215614e6857600080fd5b81356001600160401b03811115614e7e57600080fd5b614e8a84828501614d3e565b949350505050565b60008060408385031215614ea557600080fd5b8235614eb081614cbd565b915060208301356001600160401b03811115614ecb57600080fd5b614ed785828601614d3e565b9150509250929050565b60008060008060808587031215614ef757600080fd5b8435614f0281614cbd565b93506020850135614f1281614cbd565b92506040850135614f2281614cbd565b9396929550929360600135925050565b600080600060608486031215614f4757600080fd5b8335614f5281614cbd565b92506020840135614f6281614cbd565b915060408401356001600160401b03811115614f7d57600080fd5b614f8986828701614d3e565b9150509250925092565b8015158114614cd257600080fd5b600060208284031215614fb357600080fd5b813561379581614f93565b600060208284031215614fd057600080fd5b813561379581614cbd565b600080600080600060a08688031215614ff357600080fd5b8535614ffe81614cbd565b945060208681013561500f81614cbd565b945060408701356001600160401b038082111561502b57600080fd5b6150378a838b01614d3e565b9550606089013591508082111561504d57600080fd5b6150598a838b01614d3e565b9450608089013591508082111561506f57600080fd5b508701601f8101891361508157600080fd5b803561508f614d5f82614d1b565b81815260059190911b8201830190838101908b8311156150ae57600080fd5b928401925b828410156150d55783356150c681614f93565b825292840192908401906150b3565b80955050505050509295509295909350565b6000806000606084860312156150fc57600080fd5b833561510781614cbd565b9250602084013561511781614cbd565b9150604084013561512781614cbd565b809150509250925092565b60006020828403121561514457600080fd5b815161379581614cbd565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561517f5761517f61514f565b500290565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156151ac57600080fd5b5051919050565b600082198211156151c6576151c661514f565b500190565b6001600160a01b039290921682521515602082015260400190565b60006000198214156151fa576151fa61514f565b5060010190565b60006020828403121561521357600080fd5b815161379581614f93565b600181815b8085111561525957816000190482111561523f5761523f61514f565b8085161561524c57918102915b93841c9390800290615223565b509250929050565b60008261527057506001610d55565b8161527d57506000610d55565b8160018114615293576002811461529d576152b9565b6001915050610d55565b60ff8411156152ae576152ae61514f565b50506001821b610d55565b5060208310610133831016604e8410600b84101617156152dc575081810a610d55565b6152e6838361521e565b80600019048211156152fa576152fa61514f565b029392505050565b60006137958383615261565b6001600160a01b039590951685526020850193909352604084019190915260608301521515608082015260a00190565b60008261535b57634e487b7160e01b600052601260045260246000fd5b500490565b600080600080600080600080610100898b03121561537d57600080fd5b885197506020890151965060408901519550606089015194506080890151935060a0890151925060c08901516153b281614f93565b8092505060e089015190509295985092959890939650565b600080604083850312156153dd57600080fd5b82516153e881614f93565b6020939093015192949293505050565b60008282101561540a5761540a61514f565b50039056fea264697066735822122049e075b33d0dc2bcac75da745381a64c38e1a8a65dec781165c90ab9df1503b464736f6c634300080c0033