@pendle/core-v2 2.17.5-tradingbot → 2.17.7-tradingbot

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  18. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  19. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  20. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  21. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  22. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  24. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/TradingBot/BotActionCallback.sol/BotActionCallback.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/TradingBot/BotActionCallback.sol/BotActionCallback.json +25 -0
  49. package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.json +25 -0
  51. package/build/artifacts/contracts/core/TradingBot/BotDecisionHelper.sol/BotDecisionHelper.dbg.json +4 -0
  52. package/build/artifacts/contracts/core/TradingBot/BotDecisionHelper.sol/BotDecisionHelper.json +1070 -0
  53. package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.json +2 -2
  55. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.json +60 -180
  57. package/build/artifacts/contracts/core/TradingBot/MarketExtLib.sol/MarketExtLib.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/TradingBot/MarketExtLib.sol/MarketExtLib.json +2 -2
  59. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.json +25 -0
  61. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.dbg.json +1 -1
  69. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.dbg.json +4 -0
  87. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.json +917 -0
  88. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.json +425 -161
  90. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.json +50 -0
  92. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  93. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  94. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  95. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  96. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +1 -1
  97. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  98. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  99. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  100. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  101. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  102. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  103. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  104. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  105. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  106. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  107. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  108. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +1 -1
  109. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  110. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  111. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  112. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  113. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  114. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  115. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  116. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  117. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  118. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  119. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  120. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  121. package/contracts/core/TradingBot/BotActionCallback.sol +1 -1
  122. package/contracts/core/TradingBot/BotDecisionHelper.sol +306 -0
  123. package/contracts/core/TradingBot/BotSimulationLib.sol +8 -7
  124. package/contracts/core/TradingBot/LongYieldTradingBot.sol +20 -24
  125. package/contracts/core/TradingBot/MarketExtLib.sol +64 -31
  126. package/contracts/core/TradingBot/README.md +27 -25
  127. package/contracts/core/TradingBot/TradingBotBase.sol +36 -16
  128. package/contracts/interfaces/TradingBot/IBotDecisionHelper.sol +91 -0
  129. package/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol +7 -32
  130. package/contracts/interfaces/TradingBot/ITradingBotBase.sol +6 -4
  131. package/package.json +1 -1
  132. package/typechain-types/BotActionCallback.ts +36 -0
  133. package/typechain-types/BotActionHelper.ts +36 -0
  134. package/typechain-types/BotDecisionHelper.ts +527 -0
  135. package/typechain-types/IBotDecisionHelper.ts +507 -0
  136. package/typechain-types/ILongYieldTradingBot.ts +481 -129
  137. package/typechain-types/ITradingBotBase.ts +76 -0
  138. package/typechain-types/IWBETH.ts +128 -0
  139. package/typechain-types/LongYieldTradingBot.ts +85 -141
  140. package/typechain-types/PendleBinanceEth.ts +1229 -0
  141. package/typechain-types/PtAndLpToAsset.ts +136 -0
  142. package/typechain-types/TradingBotBase.ts +36 -0
  143. package/typechain-types/factories/BotActionCallback__factory.ts +25 -0
  144. package/typechain-types/factories/BotActionHelper__factory.ts +25 -0
  145. package/typechain-types/factories/BotDecisionHelper__factory.ts +1123 -0
  146. package/typechain-types/factories/IBotDecisionHelper__factory.ts +932 -0
  147. package/typechain-types/factories/ILongYieldTradingBot__factory.ts +425 -161
  148. package/typechain-types/factories/ITradingBotBase__factory.ts +50 -0
  149. package/typechain-types/factories/IWBETH__factory.ts +51 -0
  150. package/typechain-types/factories/LongYieldTradingBot__factory.ts +63 -183
  151. package/typechain-types/factories/MarketExtLib__factory.ts +1 -1
  152. package/typechain-types/factories/PendleBinanceEth__factory.ts +1052 -0
  153. package/typechain-types/factories/PtAndLpToAsset__factory.ts +150 -0
  154. package/typechain-types/factories/TradingBotBase__factory.ts +25 -0
  155. package/typechain-types/hardhat.d.ts +49 -13
  156. package/typechain-types/index.ts +12 -4
  157. package/build/artifacts/contracts/core/TradingBot/BotDecisionLib.sol/BotDecisionLib.dbg.json +0 -4
  158. package/build/artifacts/contracts/core/TradingBot/BotDecisionLib.sol/BotDecisionLib.json +0 -589
  159. package/build/artifacts/contracts/core/TradingBot/TradingBotOffchain.sol/TradingBotOffchain.dbg.json +0 -4
  160. package/build/artifacts/contracts/core/TradingBot/TradingBotOffchain.sol/TradingBotOffchain.json +0 -1075
  161. package/contracts/core/TradingBot/BotDecisionLib.sol +0 -274
  162. package/contracts/core/TradingBot/TradingBotOffchain.sol +0 -141
@@ -1,1075 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "TradingBotOffchain",
4
- "sourceName": "contracts/core/TradingBot/TradingBotOffchain.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "address",
10
- "name": "_decisionLib",
11
- "type": "address"
12
- }
13
- ],
14
- "stateMutability": "nonpayable",
15
- "type": "constructor"
16
- },
17
- {
18
- "inputs": [],
19
- "name": "ApproxFail",
20
- "type": "error"
21
- },
22
- {
23
- "inputs": [
24
- {
25
- "internalType": "uint256",
26
- "name": "guessMin",
27
- "type": "uint256"
28
- },
29
- {
30
- "internalType": "uint256",
31
- "name": "guessMax",
32
- "type": "uint256"
33
- },
34
- {
35
- "internalType": "uint256",
36
- "name": "eps",
37
- "type": "uint256"
38
- }
39
- ],
40
- "name": "ApproxParamsInvalid",
41
- "type": "error"
42
- },
43
- {
44
- "inputs": [
45
- {
46
- "internalType": "int256",
47
- "name": "exchangeRate",
48
- "type": "int256"
49
- }
50
- ],
51
- "name": "MarketExchangeRateBelowOne",
52
- "type": "error"
53
- },
54
- {
55
- "inputs": [],
56
- "name": "MarketExpired",
57
- "type": "error"
58
- },
59
- {
60
- "inputs": [
61
- {
62
- "internalType": "int256",
63
- "name": "currentAmount",
64
- "type": "int256"
65
- },
66
- {
67
- "internalType": "int256",
68
- "name": "requiredAmount",
69
- "type": "int256"
70
- }
71
- ],
72
- "name": "MarketInsufficientPtForTrade",
73
- "type": "error"
74
- },
75
- {
76
- "inputs": [],
77
- "name": "MarketProportionMustNotEqualOne",
78
- "type": "error"
79
- },
80
- {
81
- "inputs": [
82
- {
83
- "internalType": "int256",
84
- "name": "proportion",
85
- "type": "int256"
86
- },
87
- {
88
- "internalType": "int256",
89
- "name": "maxProportion",
90
- "type": "int256"
91
- }
92
- ],
93
- "name": "MarketProportionTooHigh",
94
- "type": "error"
95
- },
96
- {
97
- "inputs": [
98
- {
99
- "internalType": "int256",
100
- "name": "rateScalar",
101
- "type": "int256"
102
- }
103
- ],
104
- "name": "MarketRateScalarBelowZero",
105
- "type": "error"
106
- },
107
- {
108
- "inputs": [],
109
- "name": "MarketZeroAmountsInput",
110
- "type": "error"
111
- },
112
- {
113
- "inputs": [],
114
- "name": "MarketZeroAmountsOutput",
115
- "type": "error"
116
- },
117
- {
118
- "inputs": [],
119
- "name": "MarketZeroLnImpliedRate",
120
- "type": "error"
121
- },
122
- {
123
- "inputs": [
124
- {
125
- "internalType": "int256",
126
- "name": "totalPt",
127
- "type": "int256"
128
- },
129
- {
130
- "internalType": "int256",
131
- "name": "totalAsset",
132
- "type": "int256"
133
- }
134
- ],
135
- "name": "MarketZeroTotalPtOrTotalAsset",
136
- "type": "error"
137
- },
138
- {
139
- "inputs": [
140
- {
141
- "components": [
142
- {
143
- "internalType": "uint256",
144
- "name": "lpBalance",
145
- "type": "uint256"
146
- },
147
- {
148
- "internalType": "uint256",
149
- "name": "ytBalance",
150
- "type": "uint256"
151
- },
152
- {
153
- "internalType": "uint256",
154
- "name": "syBalance",
155
- "type": "uint256"
156
- }
157
- ],
158
- "internalType": "struct BotState",
159
- "name": "botState",
160
- "type": "tuple"
161
- },
162
- {
163
- "components": [
164
- {
165
- "internalType": "enum StrategyFlag",
166
- "name": "iyFlag",
167
- "type": "uint8"
168
- },
169
- {
170
- "internalType": "enum StrategyFlag",
171
- "name": "syRatioFlag",
172
- "type": "uint8"
173
- }
174
- ],
175
- "internalType": "struct StrategyState",
176
- "name": "currentState",
177
- "type": "tuple"
178
- }
179
- ],
180
- "name": "actionToTake",
181
- "outputs": [
182
- {
183
- "internalType": "enum ActionType",
184
- "name": "",
185
- "type": "uint8"
186
- }
187
- ],
188
- "stateMutability": "view",
189
- "type": "function"
190
- },
191
- {
192
- "inputs": [
193
- {
194
- "internalType": "address",
195
- "name": "bot",
196
- "type": "address"
197
- },
198
- {
199
- "internalType": "address",
200
- "name": "market",
201
- "type": "address"
202
- }
203
- ],
204
- "name": "claimForBot",
205
- "outputs": [
206
- {
207
- "components": [
208
- {
209
- "internalType": "address",
210
- "name": "token",
211
- "type": "address"
212
- },
213
- {
214
- "internalType": "uint256",
215
- "name": "amount",
216
- "type": "uint256"
217
- }
218
- ],
219
- "internalType": "struct TokenAmount[]",
220
- "name": "rewards",
221
- "type": "tuple[]"
222
- }
223
- ],
224
- "stateMutability": "nonpayable",
225
- "type": "function"
226
- },
227
- {
228
- "inputs": [],
229
- "name": "decisionLib",
230
- "outputs": [
231
- {
232
- "internalType": "address",
233
- "name": "",
234
- "type": "address"
235
- }
236
- ],
237
- "stateMutability": "view",
238
- "type": "function"
239
- },
240
- {
241
- "inputs": [
242
- {
243
- "components": [
244
- {
245
- "internalType": "uint256",
246
- "name": "lpBalance",
247
- "type": "uint256"
248
- },
249
- {
250
- "internalType": "uint256",
251
- "name": "ytBalance",
252
- "type": "uint256"
253
- },
254
- {
255
- "internalType": "uint256",
256
- "name": "syBalance",
257
- "type": "uint256"
258
- }
259
- ],
260
- "internalType": "struct BotState",
261
- "name": "bot",
262
- "type": "tuple"
263
- },
264
- {
265
- "components": [
266
- {
267
- "components": [
268
- {
269
- "internalType": "int256",
270
- "name": "totalPt",
271
- "type": "int256"
272
- },
273
- {
274
- "internalType": "int256",
275
- "name": "totalSy",
276
- "type": "int256"
277
- },
278
- {
279
- "internalType": "int256",
280
- "name": "totalLp",
281
- "type": "int256"
282
- },
283
- {
284
- "internalType": "address",
285
- "name": "treasury",
286
- "type": "address"
287
- },
288
- {
289
- "internalType": "int256",
290
- "name": "scalarRoot",
291
- "type": "int256"
292
- },
293
- {
294
- "internalType": "uint256",
295
- "name": "expiry",
296
- "type": "uint256"
297
- },
298
- {
299
- "internalType": "uint256",
300
- "name": "lnFeeRateRoot",
301
- "type": "uint256"
302
- },
303
- {
304
- "internalType": "uint256",
305
- "name": "reserveFeePercent",
306
- "type": "uint256"
307
- },
308
- {
309
- "internalType": "uint256",
310
- "name": "lastLnImpliedRate",
311
- "type": "uint256"
312
- }
313
- ],
314
- "internalType": "struct MarketState",
315
- "name": "state",
316
- "type": "tuple"
317
- },
318
- {
319
- "internalType": "PYIndex",
320
- "name": "index",
321
- "type": "uint256"
322
- },
323
- {
324
- "internalType": "uint256",
325
- "name": "blockTime",
326
- "type": "uint256"
327
- }
328
- ],
329
- "internalType": "struct MarketExtState",
330
- "name": "marketExt",
331
- "type": "tuple"
332
- },
333
- {
334
- "components": [
335
- {
336
- "internalType": "uint256",
337
- "name": "lowerIyLimit",
338
- "type": "uint256"
339
- },
340
- {
341
- "internalType": "uint256",
342
- "name": "upperIyLimit",
343
- "type": "uint256"
344
- },
345
- {
346
- "internalType": "uint256",
347
- "name": "floatingSyRatioLimit",
348
- "type": "uint256"
349
- },
350
- {
351
- "internalType": "uint256",
352
- "name": "ytPtRatioLimit",
353
- "type": "uint256"
354
- }
355
- ],
356
- "internalType": "struct LongTradingSpecs",
357
- "name": "specs",
358
- "type": "tuple"
359
- },
360
- {
361
- "internalType": "enum ActionType",
362
- "name": "action",
363
- "type": "uint8"
364
- },
365
- {
366
- "components": [
367
- {
368
- "internalType": "enum StrategyFlag",
369
- "name": "iyFlag",
370
- "type": "uint8"
371
- },
372
- {
373
- "internalType": "enum StrategyFlag",
374
- "name": "syRatioFlag",
375
- "type": "uint8"
376
- }
377
- ],
378
- "internalType": "struct StrategyState",
379
- "name": "initialState",
380
- "type": "tuple"
381
- },
382
- {
383
- "components": [
384
- {
385
- "internalType": "uint256",
386
- "name": "guessMin",
387
- "type": "uint256"
388
- },
389
- {
390
- "internalType": "uint256",
391
- "name": "guessMax",
392
- "type": "uint256"
393
- },
394
- {
395
- "internalType": "uint256",
396
- "name": "guessOffchain",
397
- "type": "uint256"
398
- },
399
- {
400
- "internalType": "uint256",
401
- "name": "maxIteration",
402
- "type": "uint256"
403
- },
404
- {
405
- "internalType": "uint256",
406
- "name": "eps",
407
- "type": "uint256"
408
- }
409
- ],
410
- "internalType": "struct ApproxParams",
411
- "name": "botParams",
412
- "type": "tuple"
413
- },
414
- {
415
- "components": [
416
- {
417
- "internalType": "uint256",
418
- "name": "guessMin",
419
- "type": "uint256"
420
- },
421
- {
422
- "internalType": "uint256",
423
- "name": "guessMax",
424
- "type": "uint256"
425
- },
426
- {
427
- "internalType": "uint256",
428
- "name": "guessOffchain",
429
- "type": "uint256"
430
- },
431
- {
432
- "internalType": "uint256",
433
- "name": "maxIteration",
434
- "type": "uint256"
435
- },
436
- {
437
- "internalType": "uint256",
438
- "name": "eps",
439
- "type": "uint256"
440
- }
441
- ],
442
- "internalType": "struct ApproxParams",
443
- "name": "intParams",
444
- "type": "tuple"
445
- }
446
- ],
447
- "name": "searchForBotParam",
448
- "outputs": [
449
- {
450
- "internalType": "uint256",
451
- "name": "",
452
- "type": "uint256"
453
- }
454
- ],
455
- "stateMutability": "view",
456
- "type": "function"
457
- },
458
- {
459
- "inputs": [
460
- {
461
- "components": [
462
- {
463
- "components": [
464
- {
465
- "internalType": "int256",
466
- "name": "totalPt",
467
- "type": "int256"
468
- },
469
- {
470
- "internalType": "int256",
471
- "name": "totalSy",
472
- "type": "int256"
473
- },
474
- {
475
- "internalType": "int256",
476
- "name": "totalLp",
477
- "type": "int256"
478
- },
479
- {
480
- "internalType": "address",
481
- "name": "treasury",
482
- "type": "address"
483
- },
484
- {
485
- "internalType": "int256",
486
- "name": "scalarRoot",
487
- "type": "int256"
488
- },
489
- {
490
- "internalType": "uint256",
491
- "name": "expiry",
492
- "type": "uint256"
493
- },
494
- {
495
- "internalType": "uint256",
496
- "name": "lnFeeRateRoot",
497
- "type": "uint256"
498
- },
499
- {
500
- "internalType": "uint256",
501
- "name": "reserveFeePercent",
502
- "type": "uint256"
503
- },
504
- {
505
- "internalType": "uint256",
506
- "name": "lastLnImpliedRate",
507
- "type": "uint256"
508
- }
509
- ],
510
- "internalType": "struct MarketState",
511
- "name": "state",
512
- "type": "tuple"
513
- },
514
- {
515
- "internalType": "PYIndex",
516
- "name": "index",
517
- "type": "uint256"
518
- },
519
- {
520
- "internalType": "uint256",
521
- "name": "blockTime",
522
- "type": "uint256"
523
- }
524
- ],
525
- "internalType": "struct MarketExtState",
526
- "name": "marketExt",
527
- "type": "tuple"
528
- },
529
- {
530
- "internalType": "enum ActionType",
531
- "name": "action",
532
- "type": "uint8"
533
- },
534
- {
535
- "internalType": "uint256",
536
- "name": "botParam",
537
- "type": "uint256"
538
- },
539
- {
540
- "components": [
541
- {
542
- "internalType": "uint256",
543
- "name": "guessMin",
544
- "type": "uint256"
545
- },
546
- {
547
- "internalType": "uint256",
548
- "name": "guessMax",
549
- "type": "uint256"
550
- },
551
- {
552
- "internalType": "uint256",
553
- "name": "guessOffchain",
554
- "type": "uint256"
555
- },
556
- {
557
- "internalType": "uint256",
558
- "name": "maxIteration",
559
- "type": "uint256"
560
- },
561
- {
562
- "internalType": "uint256",
563
- "name": "eps",
564
- "type": "uint256"
565
- }
566
- ],
567
- "internalType": "struct ApproxParams",
568
- "name": "intParams",
569
- "type": "tuple"
570
- }
571
- ],
572
- "name": "searchForIntParam",
573
- "outputs": [
574
- {
575
- "internalType": "uint256",
576
- "name": "",
577
- "type": "uint256"
578
- }
579
- ],
580
- "stateMutability": "view",
581
- "type": "function"
582
- },
583
- {
584
- "inputs": [
585
- {
586
- "components": [
587
- {
588
- "internalType": "uint256",
589
- "name": "lpBalance",
590
- "type": "uint256"
591
- },
592
- {
593
- "internalType": "uint256",
594
- "name": "ytBalance",
595
- "type": "uint256"
596
- },
597
- {
598
- "internalType": "uint256",
599
- "name": "syBalance",
600
- "type": "uint256"
601
- }
602
- ],
603
- "internalType": "struct BotState",
604
- "name": "botCalldata",
605
- "type": "tuple"
606
- },
607
- {
608
- "components": [
609
- {
610
- "components": [
611
- {
612
- "internalType": "int256",
613
- "name": "totalPt",
614
- "type": "int256"
615
- },
616
- {
617
- "internalType": "int256",
618
- "name": "totalSy",
619
- "type": "int256"
620
- },
621
- {
622
- "internalType": "int256",
623
- "name": "totalLp",
624
- "type": "int256"
625
- },
626
- {
627
- "internalType": "address",
628
- "name": "treasury",
629
- "type": "address"
630
- },
631
- {
632
- "internalType": "int256",
633
- "name": "scalarRoot",
634
- "type": "int256"
635
- },
636
- {
637
- "internalType": "uint256",
638
- "name": "expiry",
639
- "type": "uint256"
640
- },
641
- {
642
- "internalType": "uint256",
643
- "name": "lnFeeRateRoot",
644
- "type": "uint256"
645
- },
646
- {
647
- "internalType": "uint256",
648
- "name": "reserveFeePercent",
649
- "type": "uint256"
650
- },
651
- {
652
- "internalType": "uint256",
653
- "name": "lastLnImpliedRate",
654
- "type": "uint256"
655
- }
656
- ],
657
- "internalType": "struct MarketState",
658
- "name": "state",
659
- "type": "tuple"
660
- },
661
- {
662
- "internalType": "PYIndex",
663
- "name": "index",
664
- "type": "uint256"
665
- },
666
- {
667
- "internalType": "uint256",
668
- "name": "blockTime",
669
- "type": "uint256"
670
- }
671
- ],
672
- "internalType": "struct MarketExtState",
673
- "name": "marketExtCalldata",
674
- "type": "tuple"
675
- },
676
- {
677
- "internalType": "enum ActionType",
678
- "name": "action",
679
- "type": "uint8"
680
- },
681
- {
682
- "internalType": "uint256",
683
- "name": "botParam",
684
- "type": "uint256"
685
- },
686
- {
687
- "components": [
688
- {
689
- "internalType": "uint256",
690
- "name": "guessMin",
691
- "type": "uint256"
692
- },
693
- {
694
- "internalType": "uint256",
695
- "name": "guessMax",
696
- "type": "uint256"
697
- },
698
- {
699
- "internalType": "uint256",
700
- "name": "guessOffchain",
701
- "type": "uint256"
702
- },
703
- {
704
- "internalType": "uint256",
705
- "name": "maxIteration",
706
- "type": "uint256"
707
- },
708
- {
709
- "internalType": "uint256",
710
- "name": "eps",
711
- "type": "uint256"
712
- }
713
- ],
714
- "internalType": "struct ApproxParams",
715
- "name": "swapApproxParams",
716
- "type": "tuple"
717
- }
718
- ],
719
- "name": "simulateAction",
720
- "outputs": [
721
- {
722
- "internalType": "bool",
723
- "name": "success",
724
- "type": "bool"
725
- },
726
- {
727
- "components": [
728
- {
729
- "internalType": "uint256",
730
- "name": "lpBalance",
731
- "type": "uint256"
732
- },
733
- {
734
- "internalType": "uint256",
735
- "name": "ytBalance",
736
- "type": "uint256"
737
- },
738
- {
739
- "internalType": "uint256",
740
- "name": "syBalance",
741
- "type": "uint256"
742
- }
743
- ],
744
- "internalType": "struct BotState",
745
- "name": "bot",
746
- "type": "tuple"
747
- },
748
- {
749
- "components": [
750
- {
751
- "components": [
752
- {
753
- "internalType": "int256",
754
- "name": "totalPt",
755
- "type": "int256"
756
- },
757
- {
758
- "internalType": "int256",
759
- "name": "totalSy",
760
- "type": "int256"
761
- },
762
- {
763
- "internalType": "int256",
764
- "name": "totalLp",
765
- "type": "int256"
766
- },
767
- {
768
- "internalType": "address",
769
- "name": "treasury",
770
- "type": "address"
771
- },
772
- {
773
- "internalType": "int256",
774
- "name": "scalarRoot",
775
- "type": "int256"
776
- },
777
- {
778
- "internalType": "uint256",
779
- "name": "expiry",
780
- "type": "uint256"
781
- },
782
- {
783
- "internalType": "uint256",
784
- "name": "lnFeeRateRoot",
785
- "type": "uint256"
786
- },
787
- {
788
- "internalType": "uint256",
789
- "name": "reserveFeePercent",
790
- "type": "uint256"
791
- },
792
- {
793
- "internalType": "uint256",
794
- "name": "lastLnImpliedRate",
795
- "type": "uint256"
796
- }
797
- ],
798
- "internalType": "struct MarketState",
799
- "name": "state",
800
- "type": "tuple"
801
- },
802
- {
803
- "internalType": "PYIndex",
804
- "name": "index",
805
- "type": "uint256"
806
- },
807
- {
808
- "internalType": "uint256",
809
- "name": "blockTime",
810
- "type": "uint256"
811
- }
812
- ],
813
- "internalType": "struct MarketExtState",
814
- "name": "marketExt",
815
- "type": "tuple"
816
- }
817
- ],
818
- "stateMutability": "view",
819
- "type": "function"
820
- },
821
- {
822
- "inputs": [
823
- {
824
- "components": [
825
- {
826
- "internalType": "uint256",
827
- "name": "lpBalance",
828
- "type": "uint256"
829
- },
830
- {
831
- "internalType": "uint256",
832
- "name": "ytBalance",
833
- "type": "uint256"
834
- },
835
- {
836
- "internalType": "uint256",
837
- "name": "syBalance",
838
- "type": "uint256"
839
- }
840
- ],
841
- "internalType": "struct BotState",
842
- "name": "bot",
843
- "type": "tuple"
844
- },
845
- {
846
- "components": [
847
- {
848
- "components": [
849
- {
850
- "internalType": "int256",
851
- "name": "totalPt",
852
- "type": "int256"
853
- },
854
- {
855
- "internalType": "int256",
856
- "name": "totalSy",
857
- "type": "int256"
858
- },
859
- {
860
- "internalType": "int256",
861
- "name": "totalLp",
862
- "type": "int256"
863
- },
864
- {
865
- "internalType": "address",
866
- "name": "treasury",
867
- "type": "address"
868
- },
869
- {
870
- "internalType": "int256",
871
- "name": "scalarRoot",
872
- "type": "int256"
873
- },
874
- {
875
- "internalType": "uint256",
876
- "name": "expiry",
877
- "type": "uint256"
878
- },
879
- {
880
- "internalType": "uint256",
881
- "name": "lnFeeRateRoot",
882
- "type": "uint256"
883
- },
884
- {
885
- "internalType": "uint256",
886
- "name": "reserveFeePercent",
887
- "type": "uint256"
888
- },
889
- {
890
- "internalType": "uint256",
891
- "name": "lastLnImpliedRate",
892
- "type": "uint256"
893
- }
894
- ],
895
- "internalType": "struct MarketState",
896
- "name": "state",
897
- "type": "tuple"
898
- },
899
- {
900
- "internalType": "PYIndex",
901
- "name": "index",
902
- "type": "uint256"
903
- },
904
- {
905
- "internalType": "uint256",
906
- "name": "blockTime",
907
- "type": "uint256"
908
- }
909
- ],
910
- "internalType": "struct MarketExtState",
911
- "name": "marketExt",
912
- "type": "tuple"
913
- },
914
- {
915
- "components": [
916
- {
917
- "internalType": "uint256",
918
- "name": "lowerIyLimit",
919
- "type": "uint256"
920
- },
921
- {
922
- "internalType": "uint256",
923
- "name": "upperIyLimit",
924
- "type": "uint256"
925
- },
926
- {
927
- "internalType": "uint256",
928
- "name": "floatingSyRatioLimit",
929
- "type": "uint256"
930
- },
931
- {
932
- "internalType": "uint256",
933
- "name": "ytPtRatioLimit",
934
- "type": "uint256"
935
- }
936
- ],
937
- "internalType": "struct LongTradingSpecs",
938
- "name": "specs",
939
- "type": "tuple"
940
- }
941
- ],
942
- "name": "strategyState",
943
- "outputs": [
944
- {
945
- "components": [
946
- {
947
- "internalType": "enum StrategyFlag",
948
- "name": "iyFlag",
949
- "type": "uint8"
950
- },
951
- {
952
- "internalType": "enum StrategyFlag",
953
- "name": "syRatioFlag",
954
- "type": "uint8"
955
- }
956
- ],
957
- "internalType": "struct StrategyState",
958
- "name": "",
959
- "type": "tuple"
960
- }
961
- ],
962
- "stateMutability": "view",
963
- "type": "function"
964
- },
965
- {
966
- "inputs": [
967
- {
968
- "components": [
969
- {
970
- "internalType": "uint256",
971
- "name": "lpBalance",
972
- "type": "uint256"
973
- },
974
- {
975
- "internalType": "uint256",
976
- "name": "ytBalance",
977
- "type": "uint256"
978
- },
979
- {
980
- "internalType": "uint256",
981
- "name": "syBalance",
982
- "type": "uint256"
983
- }
984
- ],
985
- "internalType": "struct BotState",
986
- "name": "bot",
987
- "type": "tuple"
988
- },
989
- {
990
- "components": [
991
- {
992
- "components": [
993
- {
994
- "internalType": "int256",
995
- "name": "totalPt",
996
- "type": "int256"
997
- },
998
- {
999
- "internalType": "int256",
1000
- "name": "totalSy",
1001
- "type": "int256"
1002
- },
1003
- {
1004
- "internalType": "int256",
1005
- "name": "totalLp",
1006
- "type": "int256"
1007
- },
1008
- {
1009
- "internalType": "address",
1010
- "name": "treasury",
1011
- "type": "address"
1012
- },
1013
- {
1014
- "internalType": "int256",
1015
- "name": "scalarRoot",
1016
- "type": "int256"
1017
- },
1018
- {
1019
- "internalType": "uint256",
1020
- "name": "expiry",
1021
- "type": "uint256"
1022
- },
1023
- {
1024
- "internalType": "uint256",
1025
- "name": "lnFeeRateRoot",
1026
- "type": "uint256"
1027
- },
1028
- {
1029
- "internalType": "uint256",
1030
- "name": "reserveFeePercent",
1031
- "type": "uint256"
1032
- },
1033
- {
1034
- "internalType": "uint256",
1035
- "name": "lastLnImpliedRate",
1036
- "type": "uint256"
1037
- }
1038
- ],
1039
- "internalType": "struct MarketState",
1040
- "name": "state",
1041
- "type": "tuple"
1042
- },
1043
- {
1044
- "internalType": "PYIndex",
1045
- "name": "index",
1046
- "type": "uint256"
1047
- },
1048
- {
1049
- "internalType": "uint256",
1050
- "name": "blockTime",
1051
- "type": "uint256"
1052
- }
1053
- ],
1054
- "internalType": "struct MarketExtState",
1055
- "name": "marketExt",
1056
- "type": "tuple"
1057
- }
1058
- ],
1059
- "name": "tvlInSy",
1060
- "outputs": [
1061
- {
1062
- "internalType": "uint256",
1063
- "name": "",
1064
- "type": "uint256"
1065
- }
1066
- ],
1067
- "stateMutability": "view",
1068
- "type": "function"
1069
- }
1070
- ],
1071
- "bytecode": "0x60a06040523480156200001157600080fd5b5060405162003a9638038062003a96833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516139ee620000a86000396000818160ee015281816102b9015281816103d101526107d201526139ee6000f3fe608060405234801561001057600080fd5b50600436106100785760003560e01c80631c9119cd1461007d57806333cace2a146100a857806335b70146146100c85780635a15345a146100e9578063675ea12b1461011d578063b2ba84da14610130578063db71ba3a14610143578063f829d9e414610163575b600080fd5b61009061008b366004612e64565b610183565b60405161009f93929190612ee4565b60405180910390f35b6100bb6100b6366004612fca565b61029f565b60405161009f919061307a565b6100db6100d6366004613088565b61033a565b60405190815260200161009f565b6101107f000000000000000000000000000000000000000000000000000000000000000081565b60405161009f91906130b5565b6100db61012b3660046130db565b610362565b6100db61013e366004613142565b6103b7565b610156610151366004613202565b61045f565b60405161009f919061323b565b610176610171366004613293565b6107b1565b60405161009f919061330d565b60006101a960405180606001604052806000815260200160008152602001600081525090565b6101b1612cb6565b6101c03689900389018961331b565b91506101d136889003880188613337565b905060008660058111156101e7576101e7613050565b036101fe576101f782828761085d565b9250610294565b600186600581111561021257610212613050565b03610222576101f78282876108b9565b600286600581111561023657610236613050565b03610246576101f782828761092c565b600386600581111561025a5761025a613050565b0361026a576101f782828761097b565b600486600581111561027e5761027e613050565b0361028f576101f7828287876109b6565b600092505b955095509592505050565b6040516319e5671560e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906333cace2a906102f090869086906004016133e7565b602060405180830381865afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103319190613402565b90505b92915050565b600061033161034e3685900385018561331b565b61035d36859003850185613337565b6109eb565b6000600484600581111561037857610378613050565b036103ab576103a461038f36879003870187613337565b8461039f3686900386018661341f565b610ac7565b90506103af565b5060005b949350505050565b60405163a546c1d160e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a546c1d190610412908b908b908b908b908b908b908b90600401613528565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045391906135b3565b98975050505050505050565b6060600080836001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c691906135cc565b92505091506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561050b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610533919081019061363c565b604051637d24da4d60e01b81526001600160a01b0388811660048301526001602483018190526044830152919250600091841690637d24da4d906064016000604051808303816000875af115801561058f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105b79190810190613740565b91506105c69050858383610b30565b94506000846001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610608573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610630919081019061363c565b90506000856001600160a01b031663ef5cfb8c8a6040518263ffffffff1660e01b815260040161066091906130b5565b6000604051808303816000875af115801561067f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106a79190810190613787565b90506106b4878383610b30565b96506000886001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261071e919081019061363c565b90506000896001600160a01b0316639262187b8c6040518263ffffffff1660e01b815260040161074e91906130b5565b6000604051808303816000875af115801561076d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107959190810190613787565b90506107a2898383610b30565b9b9a5050505050505050505050565b604080518082018252600080825260208201529051633e0a767960e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f829d9e490610813908790879087906004016137bb565b6040805180830381865afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085391906137e5565b90505b9392505050565b60008061086a8484610bed565b90508460400151811115610882576000915050610856565b80856040018181516108949190613859565b9052506020850180518491906108ab90839061386c565b905250600195945050505050565b600083604001518211156108cf57506000610856565b6000806108dc8585610c34565b9150915083866040018181516108f29190613859565b90525085518290879061090690839061386c565b90525060208601805182919061091d90839061386c565b90525060019695505050505050565b6000808061093a8585610cce565b91509150856040015181111561095557600092505050610856565b80866040018181516109679190613859565b90525085518290879061091d90839061386c565b600080806109898585610d62565b9150915085602001518111156109a457600092505050610856565b80866020018181516109679190613859565b83516000908311156109ca575060006103af565b60006109d7858585610e76565b905083866000018181516109069190613859565b6000806000610a07856000015185610f1790919063ffffffff16565b915091506000828660400151610a1d919061386c565b905085602001518211610a7357610a348583610f8a565b610a3e908261386c565b9050610a62828760200151610a539190613859565b610a5c87610f9c565b90610fda565b610a6c908261386c565b9050610abe565b6020860151610a83908690610f8a565b610a8d908261386c565b9050610ab1866020015183610aa29190613859565b610aab87610f9c565b9061103f565b610abb908261386c565b90505b95945050505050565b825160009081908190610ada9086611063565b915091506000610af783886020015161109390919063ffffffff16565b90506000610b05828461386c565b602089015160408a01518a51929350610b2292919084908a61109f565b509998505050505050505050565b80518251849114610b885760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e416d6f756e744c69623a206c656e677468206d69736d617463680060448201526064015b60405180910390fd5b60005b8351811015610be557610bd182858381518110610baa57610baa61387f565b6020026020010151858481518110610bc457610bc461387f565b60200260200101516111b5565b915080610bdd81613895565b915050610b8b565b509392505050565b6020820151604083015183516000928392610c0b9291908690611377565b505090506000610c288486602001516113c890919063ffffffff16565b9050610abe81836113d4565b6000806000610c58610c4d8660000151602001516113eb565b602087015190611093565b855151610c64906113eb565b610c6e919061386c565b855151610c7a906113eb565b610c8490866138ae565b610c8e91906138db565b6020860151909150610ca09082611093565b9150610cbf610caf8286613859565b60408701518751919085906113fe565b50909793965092945050505050565b6000806000610cf685602001518587604001518860000151611469909392919063ffffffff16565b5050855151909150600090610d0a906113eb565b865160200151610d19906113eb565b610d2390876138ae565b610d2d91906138db565b60408701518751919250610d459190839088906113fe565b50909550610d5791508290508361386c565b925050509250929050565b6000806000610d8a85602001518587604001518860000151611469909392919063ffffffff16565b505060208601519091506000610da082846138ae565b610db2670de0b6b3a7640000886138ae565b610dbc9190613859565b875151909150600090610dce906113eb565b83610de08a60000151602001516113eb565b610dea91906138ae565b610df491906138db565b610e0690670de0b6b3a764000061386c565b90506000610e1482846138db565b9050610e208189613859565b95506000610e3b878b6020015161149790919063ffffffff16565b90506000610e498783613859565b60408c01518c51919250610e619190839086906113fe565b50909d999c50989a5050505050505050505050565b825160009081908190610e899086611063565b915091506000610ea683886020015161109390919063ffffffff16565b90506000610eb4828461386c565b9050600080610edb8a60200151848c60400151610ed08c6114a3565b8e519392919061109f565b5060208c015160408d01518d51939550919350610efa92918490611377565b5050508184610f09919061386c565b9a9950505050505050505050565b600080610f2b8460000151604001516113eb565b845160200151610f3a906113eb565b610f4490856138ae565b610f4e91906138db565b9150610f618460000151604001516113eb565b845151610f6d906113eb565b610f7790856138ae565b610f8191906138db565b90509250929050565b60208201516000906103319083611497565b610fa4612cb6565b6040518060600160405280610fbc8460000151611517565b81526020018360200151815260200183604001518152509050919050565b6020820151604083015183516000928392610ff89291908690611469565b50509050600061101582866020015161159490919063ffffffff16565b905060006110238286613859565b60208701519091506110359082611497565b9695505050505050565b602082015160408301518351600092611059928590611377565b5090949350505050565b60008060008061107b86611076876115a1565b6115b7565b91509150611088826113eb565b9350610d57816113eb565b60006103318383611683565b60008080806110af8989886116a2565b905084604001516000036110f15784516110c990886117a3565b855260208501516110e3906110de8b846117b9565b611835565b60208601526110f185611844565b60005b856060015181101561119b57600061110c87836118a0565b905060008061111d8d868e8661190c565b509092509050600061112f8d84611093565b9050600061113d8286613859565b90508c811161117457611155818e8d6080015161193d565b1561116c5750975091955090935061029492505050565b848b52611185565b61117f600186613859565b60208c01525b50505050508061119490613895565b90506110f4565b50604051637d388ed960e11b815260040160405180910390fd5b6060816000036111c6575082610856565b835160005b855181101561122457846001600160a01b03168682815181106111f0576111f061387f565b6020026020010151600001516001600160a01b03160361121257809150611224565b8061121c81613895565b9150506111cb565b5084518114611234576000611237565b60015b60ff168551611246919061386c565b6001600160401b0381111561125d5761125d612d64565b6040519080825280602002602001820160405280156112a257816020015b604080518082019091526000808252602082015281526020019060019003908161127b5790505b50915060005b85518110156112fb578581815181106112c3576112c361387f565b60200260200101518382815181106112dd576112dd61387f565b602002602001018190525080806112f390613895565b9150506112a8565b506040518060400160405280856001600160a01b031681526020018487518414611342578784815181106113315761133161387f565b602002602001015160200151611345565b60005b61134f919061386c565b8152508282815181106113645761136461387f565b6020026020010181905250509392505050565b6000806000806000806113948a8a61138e8b611970565b8a611987565b9250925092506113a3836113eb565b95506113ae826113eb565b94506113b9816113eb565b93505050509450945094915050565b60006103318383611a22565b6000818310156113e5576000610331565b50900390565b6000808212156113fa57600080fd5b5090565b6000806000806000806000806114268c6114178d6115a1565b6114208d6115a1565b8c611a4e565b9350935093509350611437846113eb565b9750611442836113eb565b965061144d826113eb565b9550611458816113eb565b945050505050945094509450949050565b6000806000806000806114808a8a61138e8b6115a1565b9250925092506113a361149284611c01565b6113eb565b60006103318383611c0f565b6114d56040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052808360000151815260200183602001518152602001836040015181526020018360600151815260200183608001518152509050919050565b61151f612cdd565b60405180610120016040528083600001518152602001836020015181526020018360400151815260200183606001516001600160a01b03168152602001836080015181526020018360a0015181526020018360c0015181526020018360e0015181526020018361010001518152509050919050565b6000826103af8184611c24565b60006001600160ff1b038211156113fa57600080fd5b600080826000036115db576040516325daaec360e01b815260040160405180910390fd5b604084015160208501516115ef90856138ef565b6115f9919061391f565b604085015185519193509061160e90856138ef565b611618919061391f565b905081158015611626575080155b1561164457604051631997ea8d60e31b815260040160405180910390fd5b60408401516116539084611c3c565b604085015283516116649082611c3c565b845260208401516116759083611c3c565b602090940193909352929050565b6000670de0b6b3a764000061169884846138ae565b61033191906138db565b6116cd6040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106116f15760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516117039190613859565b905061170f8582611c83565b82526020850151611721908590611cdf565b60208301528451158061173657506020820151155b15611764578451602083015160405163b1c4aefb60e01b815260048101929092526024820152604401610b7f565b61178285600001518661010001518460200151856000015185611d16565b604083015260c08501516117969082611d97565b6060830152509392505050565b60008183116117b25781610331565b5090919050565b600080600090506000600184602001516117d39190613859565b90505b808214610be557600060026117eb838561386c565b6117f690600161386c565b61180091906138db565b9050600061181386886000015184611dd0565b121561182b57611824600182613859565b915061182f565b8092505b506117d6565b60008183106117b25781610331565b6020810151815111806118625750670de0b6b3a76400008160800151115b1561189d57805160208201516080830151604051632cc06bc160e21b8152600481019390935260248301919091526044820152606401610b7f565b50565b6000811580156118b35750604083015115155b156118c357506040820151610334565b60208301518351116118f357602083015183516002916118e29161386c565b6118ec91906138db565b9050610334565b604051637d388ed960e11b815260040160405180910390fd5b6000808080808061192a89896119218a61394d565b8d929190611ec8565b919c909b50909950975050505050505050565b600082841115801561085357506119658361196084670de0b6b3a7640000613859565b61201c565b909310159392505050565b600061197b826115a1565b610334906000196138ef565b600080600061199a8760a0015185101590565b156119b85760405163b2094b5960e01b815260040160405180910390fd5b865185126119e6578651604051632185509b60e21b8152600481019190915260248101869052604401610b7f565b60006119f38888876116a2565b9050611a0188828989611ec8565b91955093509150611a178882898988878b61203c565b509450945094915050565b600082600181611a3a670de0b6b3a7640000866138ae565b611a44919061386c565b6116989190613859565b6000808080861580611a5e575085155b15611a7c576040516325daaec360e01b815260040160405180910390fd5b60a08801518510611aa05760405163b2094b5960e01b815260040160405180910390fd5b8760400151600003611ae8576103e8611acc611ac7611ac26114928a8c6138ef565b6120ce565b6115a1565b611ad69190613969565b92506103e89350869150859050611b8b565b8751604089015160009190611afd90896138ef565b611b07919061391f565b9050600089602001518a604001518a611b2091906138ef565b611b2a919061391f565b905080821215611b60578194508792508960400151858b60200151611b4f91906138ef565b611b59919061391f565b9350611b88565b8094508893508960400151858b60000151611b7b91906138ef565b611b85919061391f565b92505b50505b60008313611bac57604051631997ea8d60e31b815260040160405180910390fd5b8188602001818151611bbe9190613990565b905250875181908990611bd2908390613990565b905250611bdf8484613990565b88604001818151611bf09190613990565b905250929791965094509092509050565b6000610334826000196138ef565b600082611698670de0b6b3a7640000846138ae565b6000670de0b6b3a7640000600181611a3a86866138ae565b600081831215611c795760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610b7f565b6103318284613969565b6000611c8e826115a1565b611ca0611ac76201518061016d6138ae565b8460800151611caf91906138ef565b611cb9919061391f565b90506000811361033457604051630e520c3b60e11b815260048101829052602401610b7f565b60008060008312611cf1576001611cf5565b6000195b9050611d0c611ac785611d078661213e565b611683565b6103af90826138ef565b600080611d238684611d97565b9050670de0b6b3a7640000811215611d515760405163329e322960e21b815260048101829052602401610b7f565b6000611d67611d60878a613990565b8990612155565b90506000611d7482612184565b9050611d808187612155565b611d8a9084613969565b9998505050505050505050565b600080611da96201518061016d6138ae565b611db384866138ae565b611dbd91906138db565b90506103af611dcb826115a1565b6121d7565b600080828560200151611de39190613969565b90506000611df18585613990565b9050600082138015611e035750600081135b611e445760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610b7f565b6000611e72611e5384846138ef565b6020890151611e629089613990565b611e6c90886138ef565b90612155565b90506000611e88611e838486612155565b6125ec565b8851909150600090611ea390670de0b6b3a764000090612155565b9050611eb981611eb38486613969565b90612678565b8960400151611d8a9190613969565b600080600080611eeb8860000151886020015189600001518a6040015189612696565b90506000611f01611efc8784612155565b611c01565b60608901519091506000871315611f70576000611f1e8483612155565b9050670de0b6b3a7640000811215611f4c5760405163329e322960e21b815260048101829052602401610b7f565b611f68611f6183670de0b6b3a7640000613969565b8490612678565b915050611f9d565b611f9a81611f8681670de0b6b3a7640000613969565b611f9090856138ef565b611efc919061391f565b90505b60006064611fae8c60e001516115a1565b611fb890846138ef565b611fc2919061391f565b90506000611fd08385613969565b905060008112611fe957611fe48a82612753565b611ff3565b611ff38a82612780565b9750611fff8a84612753565b965061200b8a83612753565b955050505050509450945094915050565b60008061202983856138ae565b670de0b6b3a76400009004949350505050565b6000818860a0015161204e9190613859565b885190915061205d9086611c3c565b885261207761206c8486613990565b60208a015190611c3c565b60208901819052885161209c9161208f908990611cdf565b895160408b0151856127ad565b61010089018190526000036120c457604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b6000600382111561212f57508060006120e86002836138db565b6120f390600161386c565b90505b818110156121295790508060028161210e81866138db565b612118919061386c565b61212291906138db565b90506120f6565b50919050565b8115612139575060015b919050565b60008082136113fa576121508261394d565b610334565b60008061216a670de0b6b3a7640000856138ef565b905082818161217b5761217b6138c5565b05949350505050565b6000670de0b6b3a764000082036121ae5760405163a9c8b14d60e01b815260040160405180910390fd5b60006121cc6121c584670de0b6b3a7640000613969565b8490612155565b9050610856816125ec565b6000680238fd42c5cf03ffff1982121580156121fc575068070c1cc73b00c800008213155b61223b5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610b7f565b600082121561227357612250826000036121d7565b6a0c097ce7bc90715b34b9f160241b8161226c5761226c6138c5565b0592915050565b60006806f05b59d3b200000083126122b157506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6122e7565b6803782dace9d900000083126122e357506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806122e7565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126123375768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412612373576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126123ad57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126123e7576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261242057680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126124595768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412612492576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126124cb5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080821361262d5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610b7f565b670c7d713b49da00008213801561264b5750670f43fc2c04ee000082125b1561266f57670de0b6b3a7640000612662836127f4565b8161226c5761226c6138c5565b61033482612913565b60008061268583856138ef565b9050670de0b6b3a76400008161217b565b6000806126a38784611c3c565b905060006126bb6126b4888a613990565b8390612155565b9050670d529ae9e86000008113156126f757604051637e34684f60e11b815260048101829052670d529ae9e86000006024820152604401610b7f565b600061270282612184565b90508561270f8289612155565b6127199190613990565b9350670de0b6b3a76400008412156127475760405163329e322960e21b815260048101859052602401610b7f565b50505095945050505050565b60008060008312612765576001612769565b6000195b9050611d0c611ac78561277b8661213e565b611c0f565b60008060008312612792576001612796565b6000195b9050611d0c611ac7856127a88661213e565b611a22565b6000806127be878787876000612696565b905060006127ce611492836125ec565b9050836127e06201518061016d6138ae565b6127ea90836138ae565b61045391906138db565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281612835576128356138c5565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a76400008212156129545761294b826a0c097ce7bc90715b34b9f160241b81612945576129456138c5565b05612913565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b831261299f5772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126129d6576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612a1e576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612a59576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312612a9057693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312612ac757690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312612afc5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312612b2757680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612b5c576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612b91576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312612bc5576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312612bf9576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281612c2257612c226138c5565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6040518060600160405280612cc9612cdd565b815260200160008152602001600081525090565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006060828403121561212957600080fd5b6000610160828403121561212957600080fd5b6006811061189d57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715612d9c57612d9c612d64565b60405290565b60405161012081016001600160401b0381118282101715612d9c57612d9c612d64565b604051601f8201601f191681016001600160401b0381118282101715612ded57612ded612d64565b604052919050565b600060a08284031215612e0757600080fd5b60405160a081016001600160401b0381118282101715612e2957612e29612d64565b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b60008060008060006102a08688031215612e7d57600080fd5b612e878787612d32565b9450612e968760608801612d44565b93506101c0860135612ea781612d57565b92506101e08601359150612ebf876102008801612df5565b90509295509295909350565b8051825260208082015190830152604090810151910152565b83151581526101e08101612efb6020830185612ecb565b825180516080840152602081015160a0840152604081015160c084015260018060a01b0360608201511660e08401526080810151610100818186015260a083015161012086015260c083015161014086015260e08301516101608601528083015161018086015250505060208301516101a083015260408301516101c0830152949350505050565b600060608284031215612f9557600080fd5b612f9d612d7a565b905081358152602082013560208201526040820135604082015292915050565b6003811061189d57600080fd5b60008082840360a0811215612fde57600080fd5b612fe88585612f83565b92506040605f1982011215612ffc57600080fd5b50604080519081016001600160401b038111828210171561301f5761301f612d64565b604052606084013561303081612fbd565b8152608084013561304081612fbd565b6020820152919491935090915050565b634e487b7160e01b600052602160045260246000fd5b6006811061307657613076613050565b9052565b602081016103348284613066565b6000806101c0838503121561309c57600080fd5b6130a68484612d32565b9150610f818460608501612d44565b6001600160a01b0391909116815260200190565b600060a0828403121561212957600080fd5b60008060008061024085870312156130f257600080fd5b6130fc8686612d44565b935061016085013561310d81612d57565b92506101808501359150613125866101a087016130c9565b905092959194509250565b60006080828403121561212957600080fd5b60008060008060008060008789036103e081121561315f57600080fd5b6131698a8a612d32565b97506131788a60608b01612d44565b96506131888a6101c08b01613130565b955061024089013561319981612d57565b9450604061025f19820112156131ae57600080fd5b50610260880192506131c4896102a08a016130c9565b91506131d4896103408a016130c9565b905092959891949750929550565b6001600160a01b038116811461189d57600080fd5b8035612139816131e2565b6000806040838503121561321557600080fd5b8235613220816131e2565b91506020830135613230816131e2565b809150509250929050565b602080825282518282018190526000919060409081850190868401855b8281101561328657815180516001600160a01b03168552860151868501529284019290850190600101613258565b5091979650505050505050565b600080600061024084860312156132a957600080fd5b6132b38585612d32565b92506132c28560608601612d44565b91506132d2856101c08601613130565b90509250925092565b6003811061307657613076613050565b6132f68282516132db565b602081015161330860208401826132db565b505050565b6040810161033482846132eb565b60006060828403121561332d57600080fd5b6103318383612f83565b600081830361016081121561334b57600080fd5b613353612d7a565b6101208083121561336357600080fd5b61336b612da2565b9250843583526020850135602084015260408501356040840152613391606086016131f7565b60608401526080858101359084015260a0808601359084015260c0808601359084015260e08086013590840152610100808601359084015291815290830135602082015261014090920135604083015250919050565b60a081016133f58285612ecb565b61085660608301846132eb565b60006020828403121561341457600080fd5b815161085681612d57565b600060a0828403121561343157600080fd5b6103318383612df5565b8035825260208082013590830152604090810135910152565b803582526020810135602083015260408101356040830152606081013561347a816131e2565b6001600160a01b031660608301526080818101359083015260a0818101359083015260c0808201359083015260e080820135908301526101008082013590830152610120808201359083015261014090810135910152565b803582526020810135602083015260408101356040830152606081013560608301525050565b80358252602081013560208301526040810135604083015260608101356060830152608081013560808301525050565b6103e08101613537828a61343b565b6135446060830189613454565b6135526101c08301886134d2565b613560610240830187613066565b843561356b81612fbd565b6135796102608401826132db565b50602085013561358881612fbd565b6135966102808401826132db565b506135a56102a08301856134f8565b6104536103408301846134f8565b6000602082840312156135c557600080fd5b5051919050565b6000806000606084860312156135e157600080fd5b83516135ec816131e2565b60208501519093506135fd816131e2565b604085015190925061360e816131e2565b809150509250925092565b60006001600160401b0382111561363257613632612d64565b5060051b60200190565b6000602080838503121561364f57600080fd5b82516001600160401b0381111561366557600080fd5b8301601f8101851361367657600080fd5b805161368961368482613619565b612dc5565b81815260059190911b820183019083810190878311156136a857600080fd5b928401925b828410156136cf5783516136c0816131e2565b825292840192908401906136ad565b979650505050505050565b600082601f8301126136eb57600080fd5b815160206136fb61368483613619565b82815260059290921b8401810191818101908684111561371a57600080fd5b8286015b84811015613735578051835291830191830161371e565b509695505050505050565b6000806040838503121561375357600080fd5b825160208401519092506001600160401b0381111561377157600080fd5b61377d858286016136da565b9150509250929050565b60006020828403121561379957600080fd5b81516001600160401b038111156137af57600080fd5b6103af848285016136da565b61024081016137ca828661343b565b6137d76060830185613454565b6103af6101c08301846134d2565b6000604082840312156137f757600080fd5b604080519081016001600160401b038111828210171561381957613819612d64565b604052825161382781612fbd565b8152602083015161383781612fbd565b60208201529392505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561033457610334613843565b8082018082111561033457610334613843565b634e487b7160e01b600052603260045260246000fd5b6000600182016138a7576138a7613843565b5060010190565b808202811582820484141761033457610334613843565b634e487b7160e01b600052601260045260246000fd5b6000826138ea576138ea6138c5565b500490565b80820260008212600160ff1b8414161561390b5761390b613843565b818105831482151761033457610334613843565b60008261392e5761392e6138c5565b600160ff1b82146000198414161561394857613948613843565b500590565b6000600160ff1b820161396257613962613843565b5060000390565b818103600083128015838313168383128216171561398957613989613843565b5092915050565b80820182811260008312801582168215821617156139b0576139b0613843565b50509291505056fea26469706673582212200aba339e29db5508b2dee6e9ce22f39055296cf2384e1ea944962a17f22bd17264736f6c63430008110033",
1072
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100785760003560e01c80631c9119cd1461007d57806333cace2a146100a857806335b70146146100c85780635a15345a146100e9578063675ea12b1461011d578063b2ba84da14610130578063db71ba3a14610143578063f829d9e414610163575b600080fd5b61009061008b366004612e64565b610183565b60405161009f93929190612ee4565b60405180910390f35b6100bb6100b6366004612fca565b61029f565b60405161009f919061307a565b6100db6100d6366004613088565b61033a565b60405190815260200161009f565b6101107f000000000000000000000000000000000000000000000000000000000000000081565b60405161009f91906130b5565b6100db61012b3660046130db565b610362565b6100db61013e366004613142565b6103b7565b610156610151366004613202565b61045f565b60405161009f919061323b565b610176610171366004613293565b6107b1565b60405161009f919061330d565b60006101a960405180606001604052806000815260200160008152602001600081525090565b6101b1612cb6565b6101c03689900389018961331b565b91506101d136889003880188613337565b905060008660058111156101e7576101e7613050565b036101fe576101f782828761085d565b9250610294565b600186600581111561021257610212613050565b03610222576101f78282876108b9565b600286600581111561023657610236613050565b03610246576101f782828761092c565b600386600581111561025a5761025a613050565b0361026a576101f782828761097b565b600486600581111561027e5761027e613050565b0361028f576101f7828287876109b6565b600092505b955095509592505050565b6040516319e5671560e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906333cace2a906102f090869086906004016133e7565b602060405180830381865afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103319190613402565b90505b92915050565b600061033161034e3685900385018561331b565b61035d36859003850185613337565b6109eb565b6000600484600581111561037857610378613050565b036103ab576103a461038f36879003870187613337565b8461039f3686900386018661341f565b610ac7565b90506103af565b5060005b949350505050565b60405163a546c1d160e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a546c1d190610412908b908b908b908b908b908b908b90600401613528565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045391906135b3565b98975050505050505050565b6060600080836001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c691906135cc565b92505091506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561050b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610533919081019061363c565b604051637d24da4d60e01b81526001600160a01b0388811660048301526001602483018190526044830152919250600091841690637d24da4d906064016000604051808303816000875af115801561058f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105b79190810190613740565b91506105c69050858383610b30565b94506000846001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610608573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610630919081019061363c565b90506000856001600160a01b031663ef5cfb8c8a6040518263ffffffff1660e01b815260040161066091906130b5565b6000604051808303816000875af115801561067f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106a79190810190613787565b90506106b4878383610b30565b96506000886001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261071e919081019061363c565b90506000896001600160a01b0316639262187b8c6040518263ffffffff1660e01b815260040161074e91906130b5565b6000604051808303816000875af115801561076d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107959190810190613787565b90506107a2898383610b30565b9b9a5050505050505050505050565b604080518082018252600080825260208201529051633e0a767960e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f829d9e490610813908790879087906004016137bb565b6040805180830381865afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085391906137e5565b90505b9392505050565b60008061086a8484610bed565b90508460400151811115610882576000915050610856565b80856040018181516108949190613859565b9052506020850180518491906108ab90839061386c565b905250600195945050505050565b600083604001518211156108cf57506000610856565b6000806108dc8585610c34565b9150915083866040018181516108f29190613859565b90525085518290879061090690839061386c565b90525060208601805182919061091d90839061386c565b90525060019695505050505050565b6000808061093a8585610cce565b91509150856040015181111561095557600092505050610856565b80866040018181516109679190613859565b90525085518290879061091d90839061386c565b600080806109898585610d62565b9150915085602001518111156109a457600092505050610856565b80866020018181516109679190613859565b83516000908311156109ca575060006103af565b60006109d7858585610e76565b905083866000018181516109069190613859565b6000806000610a07856000015185610f1790919063ffffffff16565b915091506000828660400151610a1d919061386c565b905085602001518211610a7357610a348583610f8a565b610a3e908261386c565b9050610a62828760200151610a539190613859565b610a5c87610f9c565b90610fda565b610a6c908261386c565b9050610abe565b6020860151610a83908690610f8a565b610a8d908261386c565b9050610ab1866020015183610aa29190613859565b610aab87610f9c565b9061103f565b610abb908261386c565b90505b95945050505050565b825160009081908190610ada9086611063565b915091506000610af783886020015161109390919063ffffffff16565b90506000610b05828461386c565b602089015160408a01518a51929350610b2292919084908a61109f565b509998505050505050505050565b80518251849114610b885760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e416d6f756e744c69623a206c656e677468206d69736d617463680060448201526064015b60405180910390fd5b60005b8351811015610be557610bd182858381518110610baa57610baa61387f565b6020026020010151858481518110610bc457610bc461387f565b60200260200101516111b5565b915080610bdd81613895565b915050610b8b565b509392505050565b6020820151604083015183516000928392610c0b9291908690611377565b505090506000610c288486602001516113c890919063ffffffff16565b9050610abe81836113d4565b6000806000610c58610c4d8660000151602001516113eb565b602087015190611093565b855151610c64906113eb565b610c6e919061386c565b855151610c7a906113eb565b610c8490866138ae565b610c8e91906138db565b6020860151909150610ca09082611093565b9150610cbf610caf8286613859565b60408701518751919085906113fe565b50909793965092945050505050565b6000806000610cf685602001518587604001518860000151611469909392919063ffffffff16565b5050855151909150600090610d0a906113eb565b865160200151610d19906113eb565b610d2390876138ae565b610d2d91906138db565b60408701518751919250610d459190839088906113fe565b50909550610d5791508290508361386c565b925050509250929050565b6000806000610d8a85602001518587604001518860000151611469909392919063ffffffff16565b505060208601519091506000610da082846138ae565b610db2670de0b6b3a7640000886138ae565b610dbc9190613859565b875151909150600090610dce906113eb565b83610de08a60000151602001516113eb565b610dea91906138ae565b610df491906138db565b610e0690670de0b6b3a764000061386c565b90506000610e1482846138db565b9050610e208189613859565b95506000610e3b878b6020015161149790919063ffffffff16565b90506000610e498783613859565b60408c01518c51919250610e619190839086906113fe565b50909d999c50989a5050505050505050505050565b825160009081908190610e899086611063565b915091506000610ea683886020015161109390919063ffffffff16565b90506000610eb4828461386c565b9050600080610edb8a60200151848c60400151610ed08c6114a3565b8e519392919061109f565b5060208c015160408d01518d51939550919350610efa92918490611377565b5050508184610f09919061386c565b9a9950505050505050505050565b600080610f2b8460000151604001516113eb565b845160200151610f3a906113eb565b610f4490856138ae565b610f4e91906138db565b9150610f618460000151604001516113eb565b845151610f6d906113eb565b610f7790856138ae565b610f8191906138db565b90509250929050565b60208201516000906103319083611497565b610fa4612cb6565b6040518060600160405280610fbc8460000151611517565b81526020018360200151815260200183604001518152509050919050565b6020820151604083015183516000928392610ff89291908690611469565b50509050600061101582866020015161159490919063ffffffff16565b905060006110238286613859565b60208701519091506110359082611497565b9695505050505050565b602082015160408301518351600092611059928590611377565b5090949350505050565b60008060008061107b86611076876115a1565b6115b7565b91509150611088826113eb565b9350610d57816113eb565b60006103318383611683565b60008080806110af8989886116a2565b905084604001516000036110f15784516110c990886117a3565b855260208501516110e3906110de8b846117b9565b611835565b60208601526110f185611844565b60005b856060015181101561119b57600061110c87836118a0565b905060008061111d8d868e8661190c565b509092509050600061112f8d84611093565b9050600061113d8286613859565b90508c811161117457611155818e8d6080015161193d565b1561116c5750975091955090935061029492505050565b848b52611185565b61117f600186613859565b60208c01525b50505050508061119490613895565b90506110f4565b50604051637d388ed960e11b815260040160405180910390fd5b6060816000036111c6575082610856565b835160005b855181101561122457846001600160a01b03168682815181106111f0576111f061387f565b6020026020010151600001516001600160a01b03160361121257809150611224565b8061121c81613895565b9150506111cb565b5084518114611234576000611237565b60015b60ff168551611246919061386c565b6001600160401b0381111561125d5761125d612d64565b6040519080825280602002602001820160405280156112a257816020015b604080518082019091526000808252602082015281526020019060019003908161127b5790505b50915060005b85518110156112fb578581815181106112c3576112c361387f565b60200260200101518382815181106112dd576112dd61387f565b602002602001018190525080806112f390613895565b9150506112a8565b506040518060400160405280856001600160a01b031681526020018487518414611342578784815181106113315761133161387f565b602002602001015160200151611345565b60005b61134f919061386c565b8152508282815181106113645761136461387f565b6020026020010181905250509392505050565b6000806000806000806113948a8a61138e8b611970565b8a611987565b9250925092506113a3836113eb565b95506113ae826113eb565b94506113b9816113eb565b93505050509450945094915050565b60006103318383611a22565b6000818310156113e5576000610331565b50900390565b6000808212156113fa57600080fd5b5090565b6000806000806000806000806114268c6114178d6115a1565b6114208d6115a1565b8c611a4e565b9350935093509350611437846113eb565b9750611442836113eb565b965061144d826113eb565b9550611458816113eb565b945050505050945094509450949050565b6000806000806000806114808a8a61138e8b6115a1565b9250925092506113a361149284611c01565b6113eb565b60006103318383611c0f565b6114d56040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052808360000151815260200183602001518152602001836040015181526020018360600151815260200183608001518152509050919050565b61151f612cdd565b60405180610120016040528083600001518152602001836020015181526020018360400151815260200183606001516001600160a01b03168152602001836080015181526020018360a0015181526020018360c0015181526020018360e0015181526020018361010001518152509050919050565b6000826103af8184611c24565b60006001600160ff1b038211156113fa57600080fd5b600080826000036115db576040516325daaec360e01b815260040160405180910390fd5b604084015160208501516115ef90856138ef565b6115f9919061391f565b604085015185519193509061160e90856138ef565b611618919061391f565b905081158015611626575080155b1561164457604051631997ea8d60e31b815260040160405180910390fd5b60408401516116539084611c3c565b604085015283516116649082611c3c565b845260208401516116759083611c3c565b602090940193909352929050565b6000670de0b6b3a764000061169884846138ae565b61033191906138db565b6116cd6040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106116f15760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516117039190613859565b905061170f8582611c83565b82526020850151611721908590611cdf565b60208301528451158061173657506020820151155b15611764578451602083015160405163b1c4aefb60e01b815260048101929092526024820152604401610b7f565b61178285600001518661010001518460200151856000015185611d16565b604083015260c08501516117969082611d97565b6060830152509392505050565b60008183116117b25781610331565b5090919050565b600080600090506000600184602001516117d39190613859565b90505b808214610be557600060026117eb838561386c565b6117f690600161386c565b61180091906138db565b9050600061181386886000015184611dd0565b121561182b57611824600182613859565b915061182f565b8092505b506117d6565b60008183106117b25781610331565b6020810151815111806118625750670de0b6b3a76400008160800151115b1561189d57805160208201516080830151604051632cc06bc160e21b8152600481019390935260248301919091526044820152606401610b7f565b50565b6000811580156118b35750604083015115155b156118c357506040820151610334565b60208301518351116118f357602083015183516002916118e29161386c565b6118ec91906138db565b9050610334565b604051637d388ed960e11b815260040160405180910390fd5b6000808080808061192a89896119218a61394d565b8d929190611ec8565b919c909b50909950975050505050505050565b600082841115801561085357506119658361196084670de0b6b3a7640000613859565b61201c565b909310159392505050565b600061197b826115a1565b610334906000196138ef565b600080600061199a8760a0015185101590565b156119b85760405163b2094b5960e01b815260040160405180910390fd5b865185126119e6578651604051632185509b60e21b8152600481019190915260248101869052604401610b7f565b60006119f38888876116a2565b9050611a0188828989611ec8565b91955093509150611a178882898988878b61203c565b509450945094915050565b600082600181611a3a670de0b6b3a7640000866138ae565b611a44919061386c565b6116989190613859565b6000808080861580611a5e575085155b15611a7c576040516325daaec360e01b815260040160405180910390fd5b60a08801518510611aa05760405163b2094b5960e01b815260040160405180910390fd5b8760400151600003611ae8576103e8611acc611ac7611ac26114928a8c6138ef565b6120ce565b6115a1565b611ad69190613969565b92506103e89350869150859050611b8b565b8751604089015160009190611afd90896138ef565b611b07919061391f565b9050600089602001518a604001518a611b2091906138ef565b611b2a919061391f565b905080821215611b60578194508792508960400151858b60200151611b4f91906138ef565b611b59919061391f565b9350611b88565b8094508893508960400151858b60000151611b7b91906138ef565b611b85919061391f565b92505b50505b60008313611bac57604051631997ea8d60e31b815260040160405180910390fd5b8188602001818151611bbe9190613990565b905250875181908990611bd2908390613990565b905250611bdf8484613990565b88604001818151611bf09190613990565b905250929791965094509092509050565b6000610334826000196138ef565b600082611698670de0b6b3a7640000846138ae565b6000670de0b6b3a7640000600181611a3a86866138ae565b600081831215611c795760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610b7f565b6103318284613969565b6000611c8e826115a1565b611ca0611ac76201518061016d6138ae565b8460800151611caf91906138ef565b611cb9919061391f565b90506000811361033457604051630e520c3b60e11b815260048101829052602401610b7f565b60008060008312611cf1576001611cf5565b6000195b9050611d0c611ac785611d078661213e565b611683565b6103af90826138ef565b600080611d238684611d97565b9050670de0b6b3a7640000811215611d515760405163329e322960e21b815260048101829052602401610b7f565b6000611d67611d60878a613990565b8990612155565b90506000611d7482612184565b9050611d808187612155565b611d8a9084613969565b9998505050505050505050565b600080611da96201518061016d6138ae565b611db384866138ae565b611dbd91906138db565b90506103af611dcb826115a1565b6121d7565b600080828560200151611de39190613969565b90506000611df18585613990565b9050600082138015611e035750600081135b611e445760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610b7f565b6000611e72611e5384846138ef565b6020890151611e629089613990565b611e6c90886138ef565b90612155565b90506000611e88611e838486612155565b6125ec565b8851909150600090611ea390670de0b6b3a764000090612155565b9050611eb981611eb38486613969565b90612678565b8960400151611d8a9190613969565b600080600080611eeb8860000151886020015189600001518a6040015189612696565b90506000611f01611efc8784612155565b611c01565b60608901519091506000871315611f70576000611f1e8483612155565b9050670de0b6b3a7640000811215611f4c5760405163329e322960e21b815260048101829052602401610b7f565b611f68611f6183670de0b6b3a7640000613969565b8490612678565b915050611f9d565b611f9a81611f8681670de0b6b3a7640000613969565b611f9090856138ef565b611efc919061391f565b90505b60006064611fae8c60e001516115a1565b611fb890846138ef565b611fc2919061391f565b90506000611fd08385613969565b905060008112611fe957611fe48a82612753565b611ff3565b611ff38a82612780565b9750611fff8a84612753565b965061200b8a83612753565b955050505050509450945094915050565b60008061202983856138ae565b670de0b6b3a76400009004949350505050565b6000818860a0015161204e9190613859565b885190915061205d9086611c3c565b885261207761206c8486613990565b60208a015190611c3c565b60208901819052885161209c9161208f908990611cdf565b895160408b0151856127ad565b61010089018190526000036120c457604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b6000600382111561212f57508060006120e86002836138db565b6120f390600161386c565b90505b818110156121295790508060028161210e81866138db565b612118919061386c565b61212291906138db565b90506120f6565b50919050565b8115612139575060015b919050565b60008082136113fa576121508261394d565b610334565b60008061216a670de0b6b3a7640000856138ef565b905082818161217b5761217b6138c5565b05949350505050565b6000670de0b6b3a764000082036121ae5760405163a9c8b14d60e01b815260040160405180910390fd5b60006121cc6121c584670de0b6b3a7640000613969565b8490612155565b9050610856816125ec565b6000680238fd42c5cf03ffff1982121580156121fc575068070c1cc73b00c800008213155b61223b5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610b7f565b600082121561227357612250826000036121d7565b6a0c097ce7bc90715b34b9f160241b8161226c5761226c6138c5565b0592915050565b60006806f05b59d3b200000083126122b157506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6122e7565b6803782dace9d900000083126122e357506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806122e7565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126123375768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412612373576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126123ad57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126123e7576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261242057680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126124595768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412612492576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126124cb5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080821361262d5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610b7f565b670c7d713b49da00008213801561264b5750670f43fc2c04ee000082125b1561266f57670de0b6b3a7640000612662836127f4565b8161226c5761226c6138c5565b61033482612913565b60008061268583856138ef565b9050670de0b6b3a76400008161217b565b6000806126a38784611c3c565b905060006126bb6126b4888a613990565b8390612155565b9050670d529ae9e86000008113156126f757604051637e34684f60e11b815260048101829052670d529ae9e86000006024820152604401610b7f565b600061270282612184565b90508561270f8289612155565b6127199190613990565b9350670de0b6b3a76400008412156127475760405163329e322960e21b815260048101859052602401610b7f565b50505095945050505050565b60008060008312612765576001612769565b6000195b9050611d0c611ac78561277b8661213e565b611c0f565b60008060008312612792576001612796565b6000195b9050611d0c611ac7856127a88661213e565b611a22565b6000806127be878787876000612696565b905060006127ce611492836125ec565b9050836127e06201518061016d6138ae565b6127ea90836138ae565b61045391906138db565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281612835576128356138c5565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a76400008212156129545761294b826a0c097ce7bc90715b34b9f160241b81612945576129456138c5565b05612913565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b831261299f5772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126129d6576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612a1e576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612a59576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312612a9057693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312612ac757690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312612afc5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312612b2757680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612b5c576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612b91576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312612bc5576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312612bf9576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281612c2257612c226138c5565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6040518060600160405280612cc9612cdd565b815260200160008152602001600081525090565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006060828403121561212957600080fd5b6000610160828403121561212957600080fd5b6006811061189d57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715612d9c57612d9c612d64565b60405290565b60405161012081016001600160401b0381118282101715612d9c57612d9c612d64565b604051601f8201601f191681016001600160401b0381118282101715612ded57612ded612d64565b604052919050565b600060a08284031215612e0757600080fd5b60405160a081016001600160401b0381118282101715612e2957612e29612d64565b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b60008060008060006102a08688031215612e7d57600080fd5b612e878787612d32565b9450612e968760608801612d44565b93506101c0860135612ea781612d57565b92506101e08601359150612ebf876102008801612df5565b90509295509295909350565b8051825260208082015190830152604090810151910152565b83151581526101e08101612efb6020830185612ecb565b825180516080840152602081015160a0840152604081015160c084015260018060a01b0360608201511660e08401526080810151610100818186015260a083015161012086015260c083015161014086015260e08301516101608601528083015161018086015250505060208301516101a083015260408301516101c0830152949350505050565b600060608284031215612f9557600080fd5b612f9d612d7a565b905081358152602082013560208201526040820135604082015292915050565b6003811061189d57600080fd5b60008082840360a0811215612fde57600080fd5b612fe88585612f83565b92506040605f1982011215612ffc57600080fd5b50604080519081016001600160401b038111828210171561301f5761301f612d64565b604052606084013561303081612fbd565b8152608084013561304081612fbd565b6020820152919491935090915050565b634e487b7160e01b600052602160045260246000fd5b6006811061307657613076613050565b9052565b602081016103348284613066565b6000806101c0838503121561309c57600080fd5b6130a68484612d32565b9150610f818460608501612d44565b6001600160a01b0391909116815260200190565b600060a0828403121561212957600080fd5b60008060008061024085870312156130f257600080fd5b6130fc8686612d44565b935061016085013561310d81612d57565b92506101808501359150613125866101a087016130c9565b905092959194509250565b60006080828403121561212957600080fd5b60008060008060008060008789036103e081121561315f57600080fd5b6131698a8a612d32565b97506131788a60608b01612d44565b96506131888a6101c08b01613130565b955061024089013561319981612d57565b9450604061025f19820112156131ae57600080fd5b50610260880192506131c4896102a08a016130c9565b91506131d4896103408a016130c9565b905092959891949750929550565b6001600160a01b038116811461189d57600080fd5b8035612139816131e2565b6000806040838503121561321557600080fd5b8235613220816131e2565b91506020830135613230816131e2565b809150509250929050565b602080825282518282018190526000919060409081850190868401855b8281101561328657815180516001600160a01b03168552860151868501529284019290850190600101613258565b5091979650505050505050565b600080600061024084860312156132a957600080fd5b6132b38585612d32565b92506132c28560608601612d44565b91506132d2856101c08601613130565b90509250925092565b6003811061307657613076613050565b6132f68282516132db565b602081015161330860208401826132db565b505050565b6040810161033482846132eb565b60006060828403121561332d57600080fd5b6103318383612f83565b600081830361016081121561334b57600080fd5b613353612d7a565b6101208083121561336357600080fd5b61336b612da2565b9250843583526020850135602084015260408501356040840152613391606086016131f7565b60608401526080858101359084015260a0808601359084015260c0808601359084015260e08086013590840152610100808601359084015291815290830135602082015261014090920135604083015250919050565b60a081016133f58285612ecb565b61085660608301846132eb565b60006020828403121561341457600080fd5b815161085681612d57565b600060a0828403121561343157600080fd5b6103318383612df5565b8035825260208082013590830152604090810135910152565b803582526020810135602083015260408101356040830152606081013561347a816131e2565b6001600160a01b031660608301526080818101359083015260a0818101359083015260c0808201359083015260e080820135908301526101008082013590830152610120808201359083015261014090810135910152565b803582526020810135602083015260408101356040830152606081013560608301525050565b80358252602081013560208301526040810135604083015260608101356060830152608081013560808301525050565b6103e08101613537828a61343b565b6135446060830189613454565b6135526101c08301886134d2565b613560610240830187613066565b843561356b81612fbd565b6135796102608401826132db565b50602085013561358881612fbd565b6135966102808401826132db565b506135a56102a08301856134f8565b6104536103408301846134f8565b6000602082840312156135c557600080fd5b5051919050565b6000806000606084860312156135e157600080fd5b83516135ec816131e2565b60208501519093506135fd816131e2565b604085015190925061360e816131e2565b809150509250925092565b60006001600160401b0382111561363257613632612d64565b5060051b60200190565b6000602080838503121561364f57600080fd5b82516001600160401b0381111561366557600080fd5b8301601f8101851361367657600080fd5b805161368961368482613619565b612dc5565b81815260059190911b820183019083810190878311156136a857600080fd5b928401925b828410156136cf5783516136c0816131e2565b825292840192908401906136ad565b979650505050505050565b600082601f8301126136eb57600080fd5b815160206136fb61368483613619565b82815260059290921b8401810191818101908684111561371a57600080fd5b8286015b84811015613735578051835291830191830161371e565b509695505050505050565b6000806040838503121561375357600080fd5b825160208401519092506001600160401b0381111561377157600080fd5b61377d858286016136da565b9150509250929050565b60006020828403121561379957600080fd5b81516001600160401b038111156137af57600080fd5b6103af848285016136da565b61024081016137ca828661343b565b6137d76060830185613454565b6103af6101c08301846134d2565b6000604082840312156137f757600080fd5b604080519081016001600160401b038111828210171561381957613819612d64565b604052825161382781612fbd565b8152602083015161383781612fbd565b60208201529392505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561033457610334613843565b8082018082111561033457610334613843565b634e487b7160e01b600052603260045260246000fd5b6000600182016138a7576138a7613843565b5060010190565b808202811582820484141761033457610334613843565b634e487b7160e01b600052601260045260246000fd5b6000826138ea576138ea6138c5565b500490565b80820260008212600160ff1b8414161561390b5761390b613843565b818105831482151761033457610334613843565b60008261392e5761392e6138c5565b600160ff1b82146000198414161561394857613948613843565b500590565b6000600160ff1b820161396257613962613843565b5060000390565b818103600083128015838313168383128216171561398957613989613843565b5092915050565b80820182811260008312801582168215821617156139b0576139b0613843565b50509291505056fea26469706673582212200aba339e29db5508b2dee6e9ce22f39055296cf2384e1ea944962a17f22bd17264736f6c63430008110033",
1073
- "linkReferences": {},
1074
- "deployedLinkReferences": {}
1075
- }