@pendle/core-v2 5.3.1 → 5.4.0

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 (244) hide show
  1. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
  2. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.json +0 -37
  3. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  4. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  5. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.json +0 -115
  6. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
  7. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.json +0 -37
  8. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  9. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.json +0 -37
  10. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
  11. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.json +0 -37
  12. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  13. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.json +0 -37
  14. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  15. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.json +0 -179
  16. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
  17. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  18. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.json +0 -257
  19. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
  20. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
  21. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
  22. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
  23. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
  24. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.json +0 -37
  25. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
  26. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.json +0 -37
  27. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  28. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +0 -37
  29. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  30. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
  31. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  32. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  33. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  34. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  35. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  36. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  37. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  38. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  39. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  40. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  41. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  42. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -39
  43. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  44. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  45. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.dbg.json +4 -0
  46. package/build/artifacts/contracts/{router/swap-aggregator/kyberswap/l1-contracts/ScalingDataLib.sol/ScalingDataLib.json → offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.json} +4 -4
  47. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.dbg.json +4 -0
  48. package/build/artifacts/contracts/{router/swap-aggregator/kyberswap/l2-contracts/BytesHelper.sol/BytesHelper.json → offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.json} +4 -4
  49. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  50. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
  51. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -39
  52. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
  53. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -117
  54. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
  55. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -39
  56. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
  57. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -39
  58. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
  59. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -39
  60. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
  61. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -181
  62. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
  63. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
  64. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  65. package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
  66. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  67. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
  68. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
  69. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
  70. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
  71. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
  72. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
  73. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
  74. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
  75. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.dbg.json +4 -0
  76. package/build/artifacts/contracts/router/math/{MarketApproxLib.sol/MarketApproxPtInLib.json → MarketApproxLibV2.sol/MarketApproxPtInLibV2.json} +4 -4
  77. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.dbg.json +4 -0
  78. package/build/artifacts/contracts/router/math/{MarketApproxLib.sol/MarketApproxPtOutLib.json → MarketApproxLibV2.sol/MarketApproxPtOutLibV2.json} +4 -4
  79. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  80. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
  81. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +1 -1
  82. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  83. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
  84. package/contracts/interfaces/IPActionAddRemoveLiqV3.sol +1 -1
  85. package/contracts/interfaces/IPActionMarketAuxStatic.sol +2 -1
  86. package/contracts/interfaces/IPActionMiscV3.sol +1 -7
  87. package/contracts/interfaces/IPActionStorageStatic.sol +1 -1
  88. package/contracts/interfaces/IPActionSwapPTV3.sol +1 -1
  89. package/contracts/interfaces/IPActionSwapYTV3.sol +1 -17
  90. package/contracts/interfaces/IPActionVePendleStatic.sol +1 -0
  91. package/contracts/interfaces/IPAllEventsV3.sol +0 -8
  92. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +2 -2
  93. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +8 -7
  94. package/contracts/{router/math/MarketApproxLib.sol → offchain-helpers/router-static/base/MarketApproxLibV1.sol} +13 -13
  95. package/contracts/offchain-helpers/router-static/base/StorageLayout.sol +1 -1
  96. package/contracts/router/ActionAddRemoveLiqV3.sol +4 -4
  97. package/contracts/router/ActionMiscV3.sol +0 -14
  98. package/contracts/router/ActionSwapYTV3.sol +2 -65
  99. package/contracts/router/base/ActionBase.sol +5 -6
  100. package/contracts/router/math/MarketApproxLibV2.sol +479 -0
  101. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +8 -1
  102. package/contracts/router/swap-aggregator/PendleSwap.sol +0 -2
  103. package/deployments/1-core.json +5 -5
  104. package/package.json +1 -1
  105. package/typechain-types/ActionAddRemoveLiqV3.ts +2000 -0
  106. package/typechain-types/ActionInfoStatic.ts +310 -0
  107. package/typechain-types/ActionMarketAuxStatic.ts +903 -0
  108. package/typechain-types/ActionMarketCoreStatic.ts +1974 -0
  109. package/typechain-types/ActionMintRedeemStatic.ts +435 -0
  110. package/typechain-types/ActionMiscV3.ts +2213 -0
  111. package/typechain-types/ActionSimple.ts +1544 -0
  112. package/typechain-types/ActionStorageStatic.ts +1345 -0
  113. package/typechain-types/ActionStorageV4.ts +1270 -0
  114. package/typechain-types/ActionSwapPTV3.ts +1507 -0
  115. package/typechain-types/ActionSwapYTV3.ts +1507 -0
  116. package/typechain-types/ActionVePendleStatic.ts +113 -0
  117. package/typechain-types/IKyberScalingHelper.ts +108 -0
  118. package/typechain-types/IOdosRouterV2.ts +147 -0
  119. package/typechain-types/IPActionAddRemoveLiqV3.ts +2000 -0
  120. package/typechain-types/IPActionAddRemoveLiqV3Events.ts +499 -0
  121. package/typechain-types/IPActionMarketAuxStatic.ts +859 -0
  122. package/typechain-types/IPActionMiscV3.ts +2213 -0
  123. package/typechain-types/IPActionMiscV3Events.ts +463 -0
  124. package/typechain-types/IPActionSimple.ts +1544 -0
  125. package/typechain-types/IPActionStorageEvents.ts +97 -0
  126. package/typechain-types/IPActionStorageStatic.ts +1268 -0
  127. package/typechain-types/IPActionStorageV4.ts +1270 -0
  128. package/typechain-types/IPActionSwapPTV3.ts +1507 -0
  129. package/typechain-types/IPActionSwapPTV3Events.ts +125 -0
  130. package/typechain-types/IPActionSwapYTV3.ts +1507 -0
  131. package/typechain-types/IPActionSwapYTV3Events.ts +125 -0
  132. package/typechain-types/IPActionVePendleStatic.ts +113 -0
  133. package/typechain-types/IPAllActionV3.ts +4210 -0
  134. package/typechain-types/IPAllEventsV3.ts +1080 -0
  135. package/typechain-types/IPRouterStatic.ts +4633 -0
  136. package/typechain-types/IPSwapAggregator.ts +187 -0
  137. package/typechain-types/PendlePoolDeployHelper.ts +342 -0
  138. package/typechain-types/PendleRouterStatic.ts +57 -0
  139. package/typechain-types/PendleRouterV4.ts +57 -0
  140. package/typechain-types/PendleSwap.ts +208 -0
  141. package/typechain-types/Reflector.ts +95 -0
  142. package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +3533 -0
  143. package/typechain-types/factories/ActionInfoStatic__factory.ts +360 -0
  144. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +780 -0
  145. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1449 -0
  146. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +304 -0
  147. package/typechain-types/factories/ActionMiscV3__factory.ts +3056 -0
  148. package/typechain-types/factories/ActionSimple__factory.ts +1939 -0
  149. package/typechain-types/factories/ActionStorageStatic__factory.ts +1576 -0
  150. package/typechain-types/factories/ActionStorageV4__factory.ts +1504 -0
  151. package/typechain-types/factories/ActionSwapPTV3__factory.ts +2556 -0
  152. package/typechain-types/factories/ActionSwapYTV3__factory.ts +2556 -0
  153. package/typechain-types/factories/ActionVePendleStatic__factory.ts +155 -0
  154. package/typechain-types/factories/IKyberScalingHelper__factory.ts +55 -0
  155. package/typechain-types/factories/IOdosRouterV2__factory.ts +94 -0
  156. package/typechain-types/factories/IPActionAddRemoveLiqV3Events__factory.ts +582 -0
  157. package/typechain-types/factories/IPActionAddRemoveLiqV3__factory.ts +3421 -0
  158. package/typechain-types/factories/IPActionMarketAuxStatic__factory.ts +622 -0
  159. package/typechain-types/factories/IPActionMiscV3Events__factory.ts +608 -0
  160. package/typechain-types/factories/IPActionMiscV3__factory.ts +3005 -0
  161. package/typechain-types/factories/IPActionSimple__factory.ts +1840 -0
  162. package/typechain-types/factories/IPActionStorageEvents__factory.ts +68 -0
  163. package/typechain-types/factories/IPActionStorageStatic__factory.ts +1498 -0
  164. package/typechain-types/factories/IPActionStorageV4__factory.ts +1466 -0
  165. package/typechain-types/factories/IPActionSwapPTV3Events__factory.ts +116 -0
  166. package/typechain-types/factories/IPActionSwapPTV3__factory.ts +2454 -0
  167. package/typechain-types/factories/IPActionSwapYTV3Events__factory.ts +116 -0
  168. package/typechain-types/factories/IPActionSwapYTV3__factory.ts +2454 -0
  169. package/typechain-types/factories/IPActionVePendleStatic__factory.ts +59 -0
  170. package/typechain-types/factories/IPAllActionV3__factory.ts +7860 -0
  171. package/typechain-types/factories/IPAllEventsV3__factory.ts +1363 -0
  172. package/typechain-types/factories/IPRouterStatic__factory.ts +3956 -0
  173. package/typechain-types/factories/IPSwapAggregator__factory.ts +136 -0
  174. package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +345 -0
  175. package/typechain-types/factories/PendleRouterStatic__factory.ts +88 -0
  176. package/typechain-types/factories/PendleRouterV4__factory.ts +96 -0
  177. package/typechain-types/factories/PendleSwap__factory.ts +188 -0
  178. package/typechain-types/factories/Reflector__factory.ts +84 -0
  179. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +0 -4
  180. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +0 -4
  181. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
  182. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +0 -65
  183. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutorOptimistic.sol/IAggregationExecutorOptimistic.dbg.json +0 -4
  184. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutorOptimistic.sol/IAggregationExecutorOptimistic.json +0 -194
  185. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelper.sol/IExecutorHelper.dbg.json +0 -4
  186. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelper.sol/IExecutorHelper.json +0 -1787
  187. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2.sol/IExecutorHelperL2.dbg.json +0 -4
  188. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2.sol/IExecutorHelperL2.json +0 -2873
  189. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2Struct.sol/IExecutorHelperL2Struct.dbg.json +0 -4
  190. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2Struct.sol/IExecutorHelperL2Struct.json +0 -10
  191. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperStruct.sol/IExecutorHelperStruct.dbg.json +0 -4
  192. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperStruct.sol/IExecutorHelperStruct.json +0 -10
  193. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
  194. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +0 -215
  195. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IBebopV3.sol/IBebopV3.dbg.json +0 -4
  196. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IBebopV3.sol/IBebopV3.json +0 -10
  197. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IKyberDSLO.sol/IKyberDSLO.dbg.json +0 -4
  198. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IKyberDSLO.sol/IKyberDSLO.json +0 -10
  199. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IKyberLO.sol/IKyberLO.dbg.json +0 -4
  200. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IKyberLO.sol/IKyberLO.json +0 -10
  201. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l1-contracts/InputScalingHelper.sol/InputScalingHelper.dbg.json +0 -4
  202. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l1-contracts/InputScalingHelper.sol/InputScalingHelper.json +0 -10
  203. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l1-contracts/ScalingDataLib.sol/ScalingDataLib.dbg.json +0 -4
  204. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/BytesHelper.sol/BytesHelper.dbg.json +0 -4
  205. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataReader.sol/CalldataReader.dbg.json +0 -4
  206. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataReader.sol/CalldataReader.json +0 -10
  207. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataWriter.sol/CalldataWriter.dbg.json +0 -4
  208. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataWriter.sol/CalldataWriter.json +0 -10
  209. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/Common.sol/Common.dbg.json +0 -4
  210. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/Common.sol/Common.json +0 -10
  211. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/DexScaler.sol/DexScaler.dbg.json +0 -4
  212. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/DexScaler.sol/DexScaler.json +0 -10
  213. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/ExecutorReader.sol/ExecutorReader.dbg.json +0 -4
  214. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/ExecutorReader.sol/ExecutorReader.json +0 -10
  215. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/InputScalingHelperL2.sol/InputScalingHelperL2.dbg.json +0 -4
  216. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/InputScalingHelperL2.sol/InputScalingHelperL2.json +0 -10
  217. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/ScalingDataL2Lib.sol/ScalingDataL2Lib.dbg.json +0 -4
  218. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/ScalingDataL2Lib.sol/ScalingDataL2Lib.json +0 -10
  219. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/libraries/BytesHelper.sol/BytesHelper.dbg.json +0 -4
  220. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/libraries/BytesHelper.sol/BytesHelper.json +0 -10
  221. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/libraries/RevertReasonParser.sol/RevertReasonParser.dbg.json +0 -4
  222. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/libraries/RevertReasonParser.sol/RevertReasonParser.json +0 -10
  223. package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +0 -31
  224. package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutorOptimistic.sol +0 -63
  225. package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelper.sol +0 -164
  226. package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2.sol +0 -483
  227. package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2Struct.sol +0 -412
  228. package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperStruct.sol +0 -459
  229. package/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol +0 -47
  230. package/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IBebopV3.sol +0 -23
  231. package/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IKyberDSLO.sol +0 -36
  232. package/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IKyberLO.sol +0 -32
  233. package/contracts/router/swap-aggregator/kyberswap/l1-contracts/InputScalingHelper.sol +0 -354
  234. package/contracts/router/swap-aggregator/kyberswap/l1-contracts/ScalingDataLib.sol +0 -521
  235. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/BytesHelper.sol +0 -93
  236. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataReader.sol +0 -404
  237. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataWriter.sol +0 -118
  238. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/Common.sol +0 -41
  239. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/DexScaler.sol +0 -684
  240. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/ExecutorReader.sol +0 -61
  241. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/InputScalingHelperL2.sol +0 -373
  242. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/ScalingDataL2Lib.sol +0 -273
  243. package/contracts/router/swap-aggregator/kyberswap/libraries/BytesHelper.sol +0 -32
  244. package/contracts/router/swap-aggregator/kyberswap/libraries/RevertReasonParser.sol +0 -75
@@ -27,8 +27,8 @@
27
27
  "type": "receive"
28
28
  }
29
29
  ],
30
- "bytecode": "0x608060405234801561001057600080fd5b506117f1806100206000396000f3fe6080604052600436106100225760003560e01c8063ef4093631461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610b05565b610064565b60405161005b9190610bc6565b60405180910390f35b60606000806100738585610103565b91509150600073888888888889758f76e7103c6cbf23abbf58f9466001600160a01b031683836040516100a69190610be0565b60006040518083038185875af1925050503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b5094509050806100fa57835184602001fd5b50505092915050565b60006060816101156004828688610bfc565b61011e91610c26565b9050366000610130866004818a610bfc565b90925090506001600160e01b0319831663092ccd6360e11b148061016457506001600160e01b0319831663640fc23d60e11b145b8061017f57506001600160e01b031983166376a4483f60e11b145b1561020a5760008080808080610197878901896111a5565b9550955095509550955095506101ac8261042e565b9a50888686868686866040516024016101ca96959493929190611501565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061042495505050505050565b63c241e3ab60e01b6001600160e01b03198416016102a25760008080808061023486880188611563565b945094509450945094506102478161042e565b99508785858585856040516024016102639594939291906115d8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529850610424945050505050565b6001600160e01b031983166358bda47560e01b14806102d157506001600160e01b03198316630a94245f60e21b145b806102ec57506001600160e01b03198316637b8b4b9560e01b145b156103325760008080808061030386880188611612565b955095509550509450945087858561031a87610559565b8686866040516024016102639695949392919061168c565b633dde3dab60e11b6001600160e01b03198416016103e057600080808061035b858701876116d3565b94509450509350935086848461037086610559565b6040516001600160a01b03938416602482015292909116604483015260648201526084810184905260a4810183905260c40160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506104249350505050565b60405162461bcd60e51b81526020600482015260146024820152732aa729aaa82827a92a22a22fa9a2a622a1aa27a960611b60448201526064015b60405180910390fd5b5050509250929050565b600080608083015151600381111561044857610448611287565b1415801561046d57506003608083015151600381111561046a5761046a611287565b14155b156104bb578160800151606001516104bb5760405162461bcd60e51b815260206004820152601160248201527014d0d0531157d254d7d491545552549151607a1b604482015260640161041b565b81516104c6906106a7565b602083015281516001600160a01b03166104e257506020015190565b81516001600160a01b031660009081526020819052604090205460ff1661055457815161052f906001600160a01b031673888888888889758f76e7103c6cbf23abbf58f946600019610732565b81516001600160a01b03166000908152602081905260409020805460ff191660011790555b919050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190611724565b50506040516370a0823160e01b81529091506001600160a01b038216906370a08231906105ef903090600401611771565b602060405180830381865afa15801561060c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106309190611785565b6001600160a01b03821660009081526020819052604090205490925060ff166106a15761067d6001600160a01b03821673888888888889758f76e7103c6cbf23abbf58f946600019610732565b6001600160a01b0381166000908152602081905260409020805460ff191660011790555b50919050565b60006001600160a01b0382161561072a576040516370a0823160e01b81526001600160a01b038316906370a08231906106e4903090600401611771565b602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611785565b61072c565b475b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261078384826107ec565b6107e657604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526107dc90859061088e565b6107e6848261088e565b50505050565b6000806000846001600160a01b0316846040516108099190610be0565b6000604051808303816000865af19150503d8060008114610846576040519150601f19603f3d011682016040523d82523d6000602084013e61084b565b606091505b5091509150818015610875575080511580610875575080806020019051810190610875919061179e565b8015610885575061088585610968565b95945050505050565b60006108e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166109779092919063ffffffff16565b9050805160001480610904575080806020019051810190610904919061179e565b6109635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161041b565b505050565b6001600160a01b03163b151590565b6060610986848460008561098e565b949350505050565b6060824710156109ef5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161041b565b600080866001600160a01b03168587604051610a0b9190610be0565b60006040518083038185875af1925050503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091509150610a5e87838387610a69565b979650505050505050565b60608315610ad6578251600003610acf57610a8385610968565b610acf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610986565b6109868383815115610aeb5781518083602001fd5b8060405162461bcd60e51b815260040161041b9190610bc6565b60008060208385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b813581811115610b5257600080fd5b866020828501011115610b6457600080fd5b60209290920196919550909350505050565b60005b83811015610b91578181015183820152602001610b79565b50506000910152565b60008151808452610bb2816020860160208601610b76565b601f01601f19169290920160200192915050565b602081526000610bd96020830184610b9a565b9392505050565b60008251610bf2818460208701610b76565b9190910192915050565b60008085851115610c0c57600080fd5b83861115610c1957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610c4e5780818660040360031b1b83161692505b505092915050565b6001600160a01b0381168114610c6b57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610ca657610ca6610c6e565b60405290565b604051608081016001600160401b0381118282101715610ca657610ca6610c6e565b604051606081016001600160401b0381118282101715610ca657610ca6610c6e565b60405161018081016001600160401b0381118282101715610ca657610ca6610c6e565b604051601f8201601f191681016001600160401b0381118282101715610d3b57610d3b610c6e565b604052919050565b600060a08284031215610d5557600080fd5b610d5d610c84565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b803561055481610c56565b60048110610c6b57600080fd5b803561055481610d9c565b600082601f830112610dc557600080fd5b81356001600160401b03811115610dde57610dde610c6e565b610df1601f8201601f1916602001610d13565b818152846020838601011115610e0657600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c6b57600080fd5b600060a08284031215610e4357600080fd5b610e4b610c84565b90508135610e5881610c56565b8152602082810135908201526040820135610e7281610c56565b60408201526060820135610e8581610c56565b606082015260808201356001600160401b0380821115610ea457600080fd5b9083019060808286031215610eb857600080fd5b610ec0610cac565b8235610ecb81610d9c565b81526020830135610edb81610c56565b6020820152604083013582811115610ef257600080fd5b610efe87828601610db4565b60408301525060608301359250610f1483610e23565b606081019290925250608082015292915050565b600082601f830112610f3957600080fd5b813560206001600160401b0380831115610f5557610f55610c6e565b8260051b610f64838201610d13565b9384528581018301938381019088861115610f7e57600080fd5b84880192505b858310156110eb57823584811115610f9b57600080fd5b8801601f196060828c0382011215610fb257600080fd5b610fba610cce565b8783013587811115610fcb57600080fd5b8301610180818e0384011215610fe057600080fd5b610fe8610cf0565b92508881013583526040810135898401526060810135604084015261100f60808201610da9565b606084015261102060a08201610d91565b608084015261103160c08201610d91565b60a084015261104260e08201610d91565b60c0840152610100611055818301610d91565b60e085015261012080830135828601526101409150818301358186015250610160808301358286015261018083013591508982111561109357600080fd5b6110a18f8c84860101610db4565b908501525050908152604082013590868211156110bd57600080fd5b6110cb8c8984860101610db4565b818901526060929092013560408301525082529184019190840190610f84565b98975050505050505050565b600060a0828403121561110957600080fd5b611111610c84565b905061111c82610d91565b81526020828101359082015260408201356001600160401b038082111561114257600080fd5b61114e85838601610f28565b6040840152606084013591508082111561116757600080fd5b61117385838601610f28565b6060840152608084013591508082111561118c57600080fd5b5061119984828501610db4565b60808301525092915050565b60008060008060008061014087890312156111bf57600080fd5b86356111ca81610c56565b955060208701356111da81610c56565b9450604087013593506111f08860608901610d43565b92506101008701356001600160401b038082111561120d57600080fd5b6112198a838b01610e31565b935061012089013591508082111561123057600080fd5b5061123d89828a016110f7565b9150509295509295509295565b6001600160a01b03169052565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b634e487b7160e01b600052602160045260246000fd5b60048110610c6b57634e487b7160e01b600052602160045260246000fd5b600060018060a01b0380835116845260208301516020850152806040840151166040850152806060840151166060850152608083015160a0608086015280516113038161129d565b60a0860152602081015190911660c08501526040810151608060e086015290611330610120860183610b9a565b915060608101511515610100860152508091505092915050565b6113538161129d565b9052565b600082825180855260208086019550808260051b84010181860160005b8481101561149057601f198684030189528151606081518186528051828701528681015160808181890152604091508183015160a081818b015285850151955060c091506113c4828b018761134a565b91840151945060e0916113d98a84018761124a565b84015194506101006113ed8a82018761124a565b908401519450610120906114038a83018761124a565b918401519450610140916114198a84018761124a565b8401516101608a81019190915290840151610180808b0191909152918401516101a08a01528301516101c0890191909152925061145a6101e0880184610b9a565b9250878401519150868303888801526114738383610b9a565b938101519601959095525098840198925090830190600101611374565b5090979650505050505050565b60018060a01b038151168252602081015160208301526000604082015160a060408501526114ce60a0850182611357565b9050606083015184820360608601526114e78282611357565b915050608083015184820360808601526108858282610b9a565b6001600160a01b0387811682528616602082015260408101859052600061014061152e6060840187611257565b80610100840152611541818401866112bb565b9050828103610120840152611556818561149d565b9998505050505050505050565b600080600080600060a0868803121561157b57600080fd5b853561158681610c56565b9450602086013561159681610c56565b9350604086013592506060860135915060808601356001600160401b038111156115bf57600080fd5b6115cb88828901610e31565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090610a5e908301846112bb565b600080600080600080610140878903121561162c57600080fd5b863561163781610c56565b9550602087013561164781610c56565b945060408701359350606087013592506116648860808901610d43565b91506101208701356001600160401b0381111561168057600080fd5b61123d89828a016110f7565b6001600160a01b03878116825286166020820152604081018590526060810184905260006101406116c06080840186611257565b806101208401526115568184018561149d565b600080600080600060a086880312156116eb57600080fd5b85356116f681610c56565b9450602086013561170681610c56565b94979496505050506040830135926060810135926080909101359150565b60008060006060848603121561173957600080fd5b835161174481610c56565b602085015190935061175581610c56565b604085015190925061176681610c56565b809150509250925092565b6001600160a01b0391909116815260200190565b60006020828403121561179757600080fd5b5051919050565b6000602082840312156117b057600080fd5b8151610bd981610e2356fea26469706673582212204576c5699d2ea5b1da30ee91f4fab8500ea6b77a6dee813be49ef928c12ee5c064736f6c63430008170033",
31
- "deployedBytecode": "0x6080604052600436106100225760003560e01c8063ef4093631461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610b05565b610064565b60405161005b9190610bc6565b60405180910390f35b60606000806100738585610103565b91509150600073888888888889758f76e7103c6cbf23abbf58f9466001600160a01b031683836040516100a69190610be0565b60006040518083038185875af1925050503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b5094509050806100fa57835184602001fd5b50505092915050565b60006060816101156004828688610bfc565b61011e91610c26565b9050366000610130866004818a610bfc565b90925090506001600160e01b0319831663092ccd6360e11b148061016457506001600160e01b0319831663640fc23d60e11b145b8061017f57506001600160e01b031983166376a4483f60e11b145b1561020a5760008080808080610197878901896111a5565b9550955095509550955095506101ac8261042e565b9a50888686868686866040516024016101ca96959493929190611501565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061042495505050505050565b63c241e3ab60e01b6001600160e01b03198416016102a25760008080808061023486880188611563565b945094509450945094506102478161042e565b99508785858585856040516024016102639594939291906115d8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529850610424945050505050565b6001600160e01b031983166358bda47560e01b14806102d157506001600160e01b03198316630a94245f60e21b145b806102ec57506001600160e01b03198316637b8b4b9560e01b145b156103325760008080808061030386880188611612565b955095509550509450945087858561031a87610559565b8686866040516024016102639695949392919061168c565b633dde3dab60e11b6001600160e01b03198416016103e057600080808061035b858701876116d3565b94509450509350935086848461037086610559565b6040516001600160a01b03938416602482015292909116604483015260648201526084810184905260a4810183905260c40160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506104249350505050565b60405162461bcd60e51b81526020600482015260146024820152732aa729aaa82827a92a22a22fa9a2a622a1aa27a960611b60448201526064015b60405180910390fd5b5050509250929050565b600080608083015151600381111561044857610448611287565b1415801561046d57506003608083015151600381111561046a5761046a611287565b14155b156104bb578160800151606001516104bb5760405162461bcd60e51b815260206004820152601160248201527014d0d0531157d254d7d491545552549151607a1b604482015260640161041b565b81516104c6906106a7565b602083015281516001600160a01b03166104e257506020015190565b81516001600160a01b031660009081526020819052604090205460ff1661055457815161052f906001600160a01b031673888888888889758f76e7103c6cbf23abbf58f946600019610732565b81516001600160a01b03166000908152602081905260409020805460ff191660011790555b919050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190611724565b50506040516370a0823160e01b81529091506001600160a01b038216906370a08231906105ef903090600401611771565b602060405180830381865afa15801561060c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106309190611785565b6001600160a01b03821660009081526020819052604090205490925060ff166106a15761067d6001600160a01b03821673888888888889758f76e7103c6cbf23abbf58f946600019610732565b6001600160a01b0381166000908152602081905260409020805460ff191660011790555b50919050565b60006001600160a01b0382161561072a576040516370a0823160e01b81526001600160a01b038316906370a08231906106e4903090600401611771565b602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611785565b61072c565b475b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261078384826107ec565b6107e657604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526107dc90859061088e565b6107e6848261088e565b50505050565b6000806000846001600160a01b0316846040516108099190610be0565b6000604051808303816000865af19150503d8060008114610846576040519150601f19603f3d011682016040523d82523d6000602084013e61084b565b606091505b5091509150818015610875575080511580610875575080806020019051810190610875919061179e565b8015610885575061088585610968565b95945050505050565b60006108e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166109779092919063ffffffff16565b9050805160001480610904575080806020019051810190610904919061179e565b6109635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161041b565b505050565b6001600160a01b03163b151590565b6060610986848460008561098e565b949350505050565b6060824710156109ef5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161041b565b600080866001600160a01b03168587604051610a0b9190610be0565b60006040518083038185875af1925050503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091509150610a5e87838387610a69565b979650505050505050565b60608315610ad6578251600003610acf57610a8385610968565b610acf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610986565b6109868383815115610aeb5781518083602001fd5b8060405162461bcd60e51b815260040161041b9190610bc6565b60008060208385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b813581811115610b5257600080fd5b866020828501011115610b6457600080fd5b60209290920196919550909350505050565b60005b83811015610b91578181015183820152602001610b79565b50506000910152565b60008151808452610bb2816020860160208601610b76565b601f01601f19169290920160200192915050565b602081526000610bd96020830184610b9a565b9392505050565b60008251610bf2818460208701610b76565b9190910192915050565b60008085851115610c0c57600080fd5b83861115610c1957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610c4e5780818660040360031b1b83161692505b505092915050565b6001600160a01b0381168114610c6b57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610ca657610ca6610c6e565b60405290565b604051608081016001600160401b0381118282101715610ca657610ca6610c6e565b604051606081016001600160401b0381118282101715610ca657610ca6610c6e565b60405161018081016001600160401b0381118282101715610ca657610ca6610c6e565b604051601f8201601f191681016001600160401b0381118282101715610d3b57610d3b610c6e565b604052919050565b600060a08284031215610d5557600080fd5b610d5d610c84565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b803561055481610c56565b60048110610c6b57600080fd5b803561055481610d9c565b600082601f830112610dc557600080fd5b81356001600160401b03811115610dde57610dde610c6e565b610df1601f8201601f1916602001610d13565b818152846020838601011115610e0657600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c6b57600080fd5b600060a08284031215610e4357600080fd5b610e4b610c84565b90508135610e5881610c56565b8152602082810135908201526040820135610e7281610c56565b60408201526060820135610e8581610c56565b606082015260808201356001600160401b0380821115610ea457600080fd5b9083019060808286031215610eb857600080fd5b610ec0610cac565b8235610ecb81610d9c565b81526020830135610edb81610c56565b6020820152604083013582811115610ef257600080fd5b610efe87828601610db4565b60408301525060608301359250610f1483610e23565b606081019290925250608082015292915050565b600082601f830112610f3957600080fd5b813560206001600160401b0380831115610f5557610f55610c6e565b8260051b610f64838201610d13565b9384528581018301938381019088861115610f7e57600080fd5b84880192505b858310156110eb57823584811115610f9b57600080fd5b8801601f196060828c0382011215610fb257600080fd5b610fba610cce565b8783013587811115610fcb57600080fd5b8301610180818e0384011215610fe057600080fd5b610fe8610cf0565b92508881013583526040810135898401526060810135604084015261100f60808201610da9565b606084015261102060a08201610d91565b608084015261103160c08201610d91565b60a084015261104260e08201610d91565b60c0840152610100611055818301610d91565b60e085015261012080830135828601526101409150818301358186015250610160808301358286015261018083013591508982111561109357600080fd5b6110a18f8c84860101610db4565b908501525050908152604082013590868211156110bd57600080fd5b6110cb8c8984860101610db4565b818901526060929092013560408301525082529184019190840190610f84565b98975050505050505050565b600060a0828403121561110957600080fd5b611111610c84565b905061111c82610d91565b81526020828101359082015260408201356001600160401b038082111561114257600080fd5b61114e85838601610f28565b6040840152606084013591508082111561116757600080fd5b61117385838601610f28565b6060840152608084013591508082111561118c57600080fd5b5061119984828501610db4565b60808301525092915050565b60008060008060008061014087890312156111bf57600080fd5b86356111ca81610c56565b955060208701356111da81610c56565b9450604087013593506111f08860608901610d43565b92506101008701356001600160401b038082111561120d57600080fd5b6112198a838b01610e31565b935061012089013591508082111561123057600080fd5b5061123d89828a016110f7565b9150509295509295509295565b6001600160a01b03169052565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b634e487b7160e01b600052602160045260246000fd5b60048110610c6b57634e487b7160e01b600052602160045260246000fd5b600060018060a01b0380835116845260208301516020850152806040840151166040850152806060840151166060850152608083015160a0608086015280516113038161129d565b60a0860152602081015190911660c08501526040810151608060e086015290611330610120860183610b9a565b915060608101511515610100860152508091505092915050565b6113538161129d565b9052565b600082825180855260208086019550808260051b84010181860160005b8481101561149057601f198684030189528151606081518186528051828701528681015160808181890152604091508183015160a081818b015285850151955060c091506113c4828b018761134a565b91840151945060e0916113d98a84018761124a565b84015194506101006113ed8a82018761124a565b908401519450610120906114038a83018761124a565b918401519450610140916114198a84018761124a565b8401516101608a81019190915290840151610180808b0191909152918401516101a08a01528301516101c0890191909152925061145a6101e0880184610b9a565b9250878401519150868303888801526114738383610b9a565b938101519601959095525098840198925090830190600101611374565b5090979650505050505050565b60018060a01b038151168252602081015160208301526000604082015160a060408501526114ce60a0850182611357565b9050606083015184820360608601526114e78282611357565b915050608083015184820360808601526108858282610b9a565b6001600160a01b0387811682528616602082015260408101859052600061014061152e6060840187611257565b80610100840152611541818401866112bb565b9050828103610120840152611556818561149d565b9998505050505050505050565b600080600080600060a0868803121561157b57600080fd5b853561158681610c56565b9450602086013561159681610c56565b9350604086013592506060860135915060808601356001600160401b038111156115bf57600080fd5b6115cb88828901610e31565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090610a5e908301846112bb565b600080600080600080610140878903121561162c57600080fd5b863561163781610c56565b9550602087013561164781610c56565b945060408701359350606087013592506116648860808901610d43565b91506101208701356001600160401b0381111561168057600080fd5b61123d89828a016110f7565b6001600160a01b03878116825286166020820152604081018590526060810184905260006101406116c06080840186611257565b806101208401526115568184018561149d565b600080600080600060a086880312156116eb57600080fd5b85356116f681610c56565b9450602086013561170681610c56565b94979496505050506040830135926060810135926080909101359150565b60008060006060848603121561173957600080fd5b835161174481610c56565b602085015190935061175581610c56565b604085015190925061176681610c56565b809150509250925092565b6001600160a01b0391909116815260200190565b60006020828403121561179757600080fd5b5051919050565b6000602082840312156117b057600080fd5b8151610bd981610e2356fea26469706673582212204576c5699d2ea5b1da30ee91f4fab8500ea6b77a6dee813be49ef928c12ee5c064736f6c63430008170033",
30
+ "bytecode": "0x608060405234801561001057600080fd5b506117dc806100206000396000f3fe6080604052600436106100225760003560e01c8063ef4093631461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610b05565b610064565b60405161005b9190610bc6565b60405180910390f35b60606000806100738585610103565b91509150600073888888888889758f76e7103c6cbf23abbf58f9466001600160a01b031683836040516100a69190610be0565b60006040518083038185875af1925050503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b5094509050806100fa57835184602001fd5b50505092915050565b60006060816101156004828688610bfc565b61011e91610c26565b9050366000610130866004818a610bfc565b90925090506001600160e01b0319831663092ccd6360e11b148061016457506001600160e01b0319831663640fc23d60e11b145b8061017f57506001600160e01b031983166376a4483f60e11b145b1561020a5760008080808080610197878901896111a0565b9550955095509550955095506101ac8261042e565b9a50888686868686866040516024016101ca969594939291906114ec565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061042495505050505050565b63c241e3ab60e01b6001600160e01b03198416016102a2576000808080806102348688018861154e565b945094509450945094506102478161042e565b99508785858585856040516024016102639594939291906115c3565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529850610424945050505050565b6001600160e01b031983166358bda47560e01b14806102d157506001600160e01b03198316630a94245f60e21b145b806102ec57506001600160e01b03198316637b8b4b9560e01b145b1561033257600080808080610303868801886115fd565b955095509550509450945087858561031a87610559565b86868660405160240161026396959493929190611677565b633dde3dab60e11b6001600160e01b03198416016103e057600080808061035b858701876116be565b94509450509350935086848461037086610559565b6040516001600160a01b03938416602482015292909116604483015260648201526084810184905260a4810183905260c40160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506104249350505050565b60405162461bcd60e51b81526020600482015260146024820152732aa729aaa82827a92a22a22fa9a2a622a1aa27a960611b60448201526064015b60405180910390fd5b5050509250929050565b600080608083015151600a81111561044857610448611282565b1415801561046d57506003608083015151600a81111561046a5761046a611282565b14155b156104bb578160800151606001516104bb5760405162461bcd60e51b815260206004820152601160248201527014d0d0531157d254d7d491545552549151607a1b604482015260640161041b565b81516104c6906106a7565b602083015281516001600160a01b03166104e257506020015190565b81516001600160a01b031660009081526020819052604090205460ff1661055457815161052f906001600160a01b031673888888888889758f76e7103c6cbf23abbf58f946600019610732565b81516001600160a01b03166000908152602081905260409020805460ff191660011790555b919050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be919061170f565b50506040516370a0823160e01b81529091506001600160a01b038216906370a08231906105ef90309060040161175c565b602060405180830381865afa15801561060c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106309190611770565b6001600160a01b03821660009081526020819052604090205490925060ff166106a15761067d6001600160a01b03821673888888888889758f76e7103c6cbf23abbf58f946600019610732565b6001600160a01b0381166000908152602081905260409020805460ff191660011790555b50919050565b60006001600160a01b0382161561072a576040516370a0823160e01b81526001600160a01b038316906370a08231906106e490309060040161175c565b602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611770565b61072c565b475b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261078384826107ec565b6107e657604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526107dc90859061088e565b6107e6848261088e565b50505050565b6000806000846001600160a01b0316846040516108099190610be0565b6000604051808303816000865af19150503d8060008114610846576040519150601f19603f3d011682016040523d82523d6000602084013e61084b565b606091505b50915091508180156108755750805115806108755750808060200190518101906108759190611789565b8015610885575061088585610968565b95945050505050565b60006108e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166109779092919063ffffffff16565b90508051600014806109045750808060200190518101906109049190611789565b6109635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161041b565b505050565b6001600160a01b03163b151590565b6060610986848460008561098e565b949350505050565b6060824710156109ef5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161041b565b600080866001600160a01b03168587604051610a0b9190610be0565b60006040518083038185875af1925050503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091509150610a5e87838387610a69565b979650505050505050565b60608315610ad6578251600003610acf57610a8385610968565b610acf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610986565b6109868383815115610aeb5781518083602001fd5b8060405162461bcd60e51b815260040161041b9190610bc6565b60008060208385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b813581811115610b5257600080fd5b866020828501011115610b6457600080fd5b60209290920196919550909350505050565b60005b83811015610b91578181015183820152602001610b79565b50506000910152565b60008151808452610bb2816020860160208601610b76565b601f01601f19169290920160200192915050565b602081526000610bd96020830184610b9a565b9392505050565b60008251610bf2818460208701610b76565b9190910192915050565b60008085851115610c0c57600080fd5b83861115610c1957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610c4e5780818660040360031b1b83161692505b505092915050565b6001600160a01b0381168114610c6b57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610ca657610ca6610c6e565b60405290565b604051608081016001600160401b0381118282101715610ca657610ca6610c6e565b604051606081016001600160401b0381118282101715610ca657610ca6610c6e565b60405161018081016001600160401b0381118282101715610ca657610ca6610c6e565b604051601f8201601f191681016001600160401b0381118282101715610d3b57610d3b610c6e565b604052919050565b600060a08284031215610d5557600080fd5b610d5d610c84565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b803561055481610c56565b600082601f830112610dad57600080fd5b81356001600160401b03811115610dc657610dc6610c6e565b610dd9601f8201601f1916602001610d13565b818152846020838601011115610dee57600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c6b57600080fd5b600060a08284031215610e2b57600080fd5b610e33610c84565b90508135610e4081610c56565b8152602082810135908201526040820135610e5a81610c56565b60408201526060820135610e6d81610c56565b606082015260808201356001600160401b0380821115610e8c57600080fd5b9083019060808286031215610ea057600080fd5b610ea8610cac565b8235600b8110610eb757600080fd5b81526020830135610ec781610c56565b6020820152604083013582811115610ede57600080fd5b610eea87828601610d9c565b60408301525060608301359250610f0083610e0b565b606081019290925250608082015292915050565b80356004811061055457600080fd5b600082601f830112610f3457600080fd5b813560206001600160401b0380831115610f5057610f50610c6e565b8260051b610f5f838201610d13565b9384528581018301938381019088861115610f7957600080fd5b84880192505b858310156110e657823584811115610f9657600080fd5b8801601f196060828c0382011215610fad57600080fd5b610fb5610cce565b8783013587811115610fc657600080fd5b8301610180818e0384011215610fdb57600080fd5b610fe3610cf0565b92508881013583526040810135898401526060810135604084015261100a60808201610f14565b606084015261101b60a08201610d91565b608084015261102c60c08201610d91565b60a084015261103d60e08201610d91565b60c0840152610100611050818301610d91565b60e085015261012080830135828601526101409150818301358186015250610160808301358286015261018083013591508982111561108e57600080fd5b61109c8f8c84860101610d9c565b908501525050908152604082013590868211156110b857600080fd5b6110c68c8984860101610d9c565b818901526060929092013560408301525082529184019190840190610f7f565b98975050505050505050565b600060a0828403121561110457600080fd5b61110c610c84565b905061111782610d91565b81526020828101359082015260408201356001600160401b038082111561113d57600080fd5b61114985838601610f23565b6040840152606084013591508082111561116257600080fd5b61116e85838601610f23565b6060840152608084013591508082111561118757600080fd5b5061119484828501610d9c565b60808301525092915050565b60008060008060008061014087890312156111ba57600080fd5b86356111c581610c56565b955060208701356111d581610c56565b9450604087013593506111eb8860608901610d43565b92506101008701356001600160401b038082111561120857600080fd5b6112148a838b01610e19565b935061012089013591508082111561122b57600080fd5b5061123889828a016110f2565b9150509295509295509295565b6001600160a01b03169052565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b634e487b7160e01b600052602160045260246000fd5b600060018060a01b0380835116845260208301516020850152806040840151166040850152806060840151166060850152608083015160a060808601528051600b81106112e7576112e7611282565b60a0860152602081015190911660c08501526040810151608060e086015290611314610120860183610b9a565b915060608101511515610100860152508091505092915050565b6004811061133e5761133e611282565b9052565b600082825180855260208086019550808260051b84010181860160005b8481101561147b57601f198684030189528151606081518186528051828701528681015160808181890152604091508183015160a081818b015285850151955060c091506113af828b018761132e565b91840151945060e0916113c48a840187611245565b84015194506101006113d88a820187611245565b908401519450610120906113ee8a830187611245565b918401519450610140916114048a840187611245565b8401516101608a81019190915290840151610180808b0191909152918401516101a08a01528301516101c089019190915292506114456101e0880184610b9a565b92508784015191508683038888015261145e8383610b9a565b93810151960195909552509884019892509083019060010161135f565b5090979650505050505050565b60018060a01b038151168252602081015160208301526000604082015160a060408501526114b960a0850182611342565b9050606083015184820360608601526114d28282611342565b915050608083015184820360808601526108858282610b9a565b6001600160a01b038781168252861660208201526040810185905260006101406115196060840187611252565b8061010084015261152c81840186611298565b90508281036101208401526115418185611488565b9998505050505050505050565b600080600080600060a0868803121561156657600080fd5b853561157181610c56565b9450602086013561158181610c56565b9350604086013592506060860135915060808601356001600160401b038111156115aa57600080fd5b6115b688828901610e19565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090610a5e90830184611298565b600080600080600080610140878903121561161757600080fd5b863561162281610c56565b9550602087013561163281610c56565b9450604087013593506060870135925061164f8860808901610d43565b91506101208701356001600160401b0381111561166b57600080fd5b61123889828a016110f2565b6001600160a01b03878116825286166020820152604081018590526060810184905260006101406116ab6080840186611252565b8061012084015261154181840185611488565b600080600080600060a086880312156116d657600080fd5b85356116e181610c56565b945060208601356116f181610c56565b94979496505050506040830135926060810135926080909101359150565b60008060006060848603121561172457600080fd5b835161172f81610c56565b602085015190935061174081610c56565b604085015190925061175181610c56565b809150509250925092565b6001600160a01b0391909116815260200190565b60006020828403121561178257600080fd5b5051919050565b60006020828403121561179b57600080fd5b8151610bd981610e0b56fea26469706673582212201ab8b71f07f084ca93daf30f98267c54ad33b21e929a2ab8c16e019e0a222e3b64736f6c63430008170033",
31
+ "deployedBytecode": "0x6080604052600436106100225760003560e01c8063ef4093631461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610b05565b610064565b60405161005b9190610bc6565b60405180910390f35b60606000806100738585610103565b91509150600073888888888889758f76e7103c6cbf23abbf58f9466001600160a01b031683836040516100a69190610be0565b60006040518083038185875af1925050503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b5094509050806100fa57835184602001fd5b50505092915050565b60006060816101156004828688610bfc565b61011e91610c26565b9050366000610130866004818a610bfc565b90925090506001600160e01b0319831663092ccd6360e11b148061016457506001600160e01b0319831663640fc23d60e11b145b8061017f57506001600160e01b031983166376a4483f60e11b145b1561020a5760008080808080610197878901896111a0565b9550955095509550955095506101ac8261042e565b9a50888686868686866040516024016101ca969594939291906114ec565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061042495505050505050565b63c241e3ab60e01b6001600160e01b03198416016102a2576000808080806102348688018861154e565b945094509450945094506102478161042e565b99508785858585856040516024016102639594939291906115c3565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529850610424945050505050565b6001600160e01b031983166358bda47560e01b14806102d157506001600160e01b03198316630a94245f60e21b145b806102ec57506001600160e01b03198316637b8b4b9560e01b145b1561033257600080808080610303868801886115fd565b955095509550509450945087858561031a87610559565b86868660405160240161026396959493929190611677565b633dde3dab60e11b6001600160e01b03198416016103e057600080808061035b858701876116be565b94509450509350935086848461037086610559565b6040516001600160a01b03938416602482015292909116604483015260648201526084810184905260a4810183905260c40160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506104249350505050565b60405162461bcd60e51b81526020600482015260146024820152732aa729aaa82827a92a22a22fa9a2a622a1aa27a960611b60448201526064015b60405180910390fd5b5050509250929050565b600080608083015151600a81111561044857610448611282565b1415801561046d57506003608083015151600a81111561046a5761046a611282565b14155b156104bb578160800151606001516104bb5760405162461bcd60e51b815260206004820152601160248201527014d0d0531157d254d7d491545552549151607a1b604482015260640161041b565b81516104c6906106a7565b602083015281516001600160a01b03166104e257506020015190565b81516001600160a01b031660009081526020819052604090205460ff1661055457815161052f906001600160a01b031673888888888889758f76e7103c6cbf23abbf58f946600019610732565b81516001600160a01b03166000908152602081905260409020805460ff191660011790555b919050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be919061170f565b50506040516370a0823160e01b81529091506001600160a01b038216906370a08231906105ef90309060040161175c565b602060405180830381865afa15801561060c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106309190611770565b6001600160a01b03821660009081526020819052604090205490925060ff166106a15761067d6001600160a01b03821673888888888889758f76e7103c6cbf23abbf58f946600019610732565b6001600160a01b0381166000908152602081905260409020805460ff191660011790555b50919050565b60006001600160a01b0382161561072a576040516370a0823160e01b81526001600160a01b038316906370a08231906106e490309060040161175c565b602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611770565b61072c565b475b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261078384826107ec565b6107e657604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526107dc90859061088e565b6107e6848261088e565b50505050565b6000806000846001600160a01b0316846040516108099190610be0565b6000604051808303816000865af19150503d8060008114610846576040519150601f19603f3d011682016040523d82523d6000602084013e61084b565b606091505b50915091508180156108755750805115806108755750808060200190518101906108759190611789565b8015610885575061088585610968565b95945050505050565b60006108e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166109779092919063ffffffff16565b90508051600014806109045750808060200190518101906109049190611789565b6109635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161041b565b505050565b6001600160a01b03163b151590565b6060610986848460008561098e565b949350505050565b6060824710156109ef5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161041b565b600080866001600160a01b03168587604051610a0b9190610be0565b60006040518083038185875af1925050503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091509150610a5e87838387610a69565b979650505050505050565b60608315610ad6578251600003610acf57610a8385610968565b610acf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610986565b6109868383815115610aeb5781518083602001fd5b8060405162461bcd60e51b815260040161041b9190610bc6565b60008060208385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b813581811115610b5257600080fd5b866020828501011115610b6457600080fd5b60209290920196919550909350505050565b60005b83811015610b91578181015183820152602001610b79565b50506000910152565b60008151808452610bb2816020860160208601610b76565b601f01601f19169290920160200192915050565b602081526000610bd96020830184610b9a565b9392505050565b60008251610bf2818460208701610b76565b9190910192915050565b60008085851115610c0c57600080fd5b83861115610c1957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610c4e5780818660040360031b1b83161692505b505092915050565b6001600160a01b0381168114610c6b57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610ca657610ca6610c6e565b60405290565b604051608081016001600160401b0381118282101715610ca657610ca6610c6e565b604051606081016001600160401b0381118282101715610ca657610ca6610c6e565b60405161018081016001600160401b0381118282101715610ca657610ca6610c6e565b604051601f8201601f191681016001600160401b0381118282101715610d3b57610d3b610c6e565b604052919050565b600060a08284031215610d5557600080fd5b610d5d610c84565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b803561055481610c56565b600082601f830112610dad57600080fd5b81356001600160401b03811115610dc657610dc6610c6e565b610dd9601f8201601f1916602001610d13565b818152846020838601011115610dee57600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c6b57600080fd5b600060a08284031215610e2b57600080fd5b610e33610c84565b90508135610e4081610c56565b8152602082810135908201526040820135610e5a81610c56565b60408201526060820135610e6d81610c56565b606082015260808201356001600160401b0380821115610e8c57600080fd5b9083019060808286031215610ea057600080fd5b610ea8610cac565b8235600b8110610eb757600080fd5b81526020830135610ec781610c56565b6020820152604083013582811115610ede57600080fd5b610eea87828601610d9c565b60408301525060608301359250610f0083610e0b565b606081019290925250608082015292915050565b80356004811061055457600080fd5b600082601f830112610f3457600080fd5b813560206001600160401b0380831115610f5057610f50610c6e565b8260051b610f5f838201610d13565b9384528581018301938381019088861115610f7957600080fd5b84880192505b858310156110e657823584811115610f9657600080fd5b8801601f196060828c0382011215610fad57600080fd5b610fb5610cce565b8783013587811115610fc657600080fd5b8301610180818e0384011215610fdb57600080fd5b610fe3610cf0565b92508881013583526040810135898401526060810135604084015261100a60808201610f14565b606084015261101b60a08201610d91565b608084015261102c60c08201610d91565b60a084015261103d60e08201610d91565b60c0840152610100611050818301610d91565b60e085015261012080830135828601526101409150818301358186015250610160808301358286015261018083013591508982111561108e57600080fd5b61109c8f8c84860101610d9c565b908501525050908152604082013590868211156110b857600080fd5b6110c68c8984860101610d9c565b818901526060929092013560408301525082529184019190840190610f7f565b98975050505050505050565b600060a0828403121561110457600080fd5b61110c610c84565b905061111782610d91565b81526020828101359082015260408201356001600160401b038082111561113d57600080fd5b61114985838601610f23565b6040840152606084013591508082111561116257600080fd5b61116e85838601610f23565b6060840152608084013591508082111561118757600080fd5b5061119484828501610d9c565b60808301525092915050565b60008060008060008061014087890312156111ba57600080fd5b86356111c581610c56565b955060208701356111d581610c56565b9450604087013593506111eb8860608901610d43565b92506101008701356001600160401b038082111561120857600080fd5b6112148a838b01610e19565b935061012089013591508082111561122b57600080fd5b5061123889828a016110f2565b9150509295509295509295565b6001600160a01b03169052565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b634e487b7160e01b600052602160045260246000fd5b600060018060a01b0380835116845260208301516020850152806040840151166040850152806060840151166060850152608083015160a060808601528051600b81106112e7576112e7611282565b60a0860152602081015190911660c08501526040810151608060e086015290611314610120860183610b9a565b915060608101511515610100860152508091505092915050565b6004811061133e5761133e611282565b9052565b600082825180855260208086019550808260051b84010181860160005b8481101561147b57601f198684030189528151606081518186528051828701528681015160808181890152604091508183015160a081818b015285850151955060c091506113af828b018761132e565b91840151945060e0916113c48a840187611245565b84015194506101006113d88a820187611245565b908401519450610120906113ee8a830187611245565b918401519450610140916114048a840187611245565b8401516101608a81019190915290840151610180808b0191909152918401516101a08a01528301516101c089019190915292506114456101e0880184610b9a565b92508784015191508683038888015261145e8383610b9a565b93810151960195909552509884019892509083019060010161135f565b5090979650505050505050565b60018060a01b038151168252602081015160208301526000604082015160a060408501526114b960a0850182611342565b9050606083015184820360608601526114d28282611342565b915050608083015184820360808601526108858282610b9a565b6001600160a01b038781168252861660208201526040810185905260006101406115196060840187611252565b8061010084015261152c81840186611298565b90508281036101208401526115418185611488565b9998505050505050505050565b600080600080600060a0868803121561156657600080fd5b853561157181610c56565b9450602086013561158181610c56565b9350604086013592506060860135915060808601356001600160401b038111156115aa57600080fd5b6115b688828901610e19565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090610a5e90830184611298565b600080600080600080610140878903121561161757600080fd5b863561162281610c56565b9550602087013561163281610c56565b9450604087013593506060870135925061164f8860808901610d43565b91506101208701356001600160401b0381111561166b57600080fd5b61123889828a016110f2565b6001600160a01b03878116825286166020820152604081018590526060810184905260006101406116ab6080840186611252565b8061012084015261154181840185611488565b600080600080600060a086880312156116d657600080fd5b85356116e181610c56565b945060208601356116f181610c56565b94979496505050506040830135926060810135926080909101359150565b60008060006060848603121561172457600080fd5b835161172f81610c56565b602085015190935061174081610c56565b604085015190925061175181610c56565b809150509250925092565b6001600160a01b0391909116815260200190565b60006020828403121561178257600080fd5b5051919050565b60006020828403121561179b57600080fd5b8151610bd981610e0b56fea26469706673582212201ab8b71f07f084ca93daf30f98267c54ad33b21e929a2ab8c16e019e0a222e3b64736f6c63430008170033",
32
32
  "linkReferences": {},
33
33
  "deployedLinkReferences": {}
34
34
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/831f7fddf76836220cc3e08e1bd9831b.json"
3
+ "buildInfo": "../../../../build-info/be15d6fd3edbce74a89dc32e36c32178.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/831f7fddf76836220cc3e08e1bd9831b.json"
3
+ "buildInfo": "../../../../build-info/be15d6fd3edbce74a89dc32e36c32178.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "ActionDelegateBase",
4
4
  "sourceName": "contracts/router/base/ActionDelegateBase.sol",
5
5
  "abi": [],
6
- "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea26469706673582212205f9c62ddc697cf85f0a9c4e0917b997ac8a83428adc9ec03577e653202785adc64736f6c63430008170033",
7
- "deployedBytecode": "0x6080604052600080fdfea26469706673582212205f9c62ddc697cf85f0a9c4e0917b997ac8a83428adc9ec03577e653202785adc64736f6c63430008170033",
6
+ "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220c806a4a1a8c72bcc0ec8f6be419ff2a5e8c0251f42045f647683017ac20478ff64736f6c63430008170033",
7
+ "deployedBytecode": "0x6080604052600080fdfea2646970667358221220c806a4a1a8c72bcc0ec8f6be419ff2a5e8c0251f42045f647683017ac20478ff64736f6c63430008170033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/831f7fddf76836220cc3e08e1bd9831b.json"
3
+ "buildInfo": "../../../../build-info/be15d6fd3edbce74a89dc32e36c32178.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "ApproxStateLib",
4
4
  "sourceName": "contracts/router/math/ApproxStateLib.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122041742985be59e240c035211eaf8cf494a60635948a3e3a997896b857e409fb1964736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122041742985be59e240c035211eaf8cf494a60635948a3e3a997896b857e409fb1964736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205875dec3f4f3781dad89f1fddc35a2dc168e6892dde4bc3c596b8d3e51eddcc964736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205875dec3f4f3781dad89f1fddc35a2dc168e6892dde4bc3c596b8d3e51eddcc964736f6c63430008170033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/831f7fddf76836220cc3e08e1bd9831b.json"
3
+ "buildInfo": "../../../../build-info/be15d6fd3edbce74a89dc32e36c32178.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtInLibOnchain",
4
4
  "sourceName": "contracts/router/math/MarketApproxLibOnchain.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206a97b0426fa94cb7ac2f9a1a58572cdf4341871dc3517fc6ef250101d76ad06364736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206a97b0426fa94cb7ac2f9a1a58572cdf4341871dc3517fc6ef250101d76ad06364736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207083382b913853a88ac79fcc2cfd19e9a62fde7f9cc43f4b7853b941759e74ae64736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207083382b913853a88ac79fcc2cfd19e9a62fde7f9cc43f4b7853b941759e74ae64736f6c63430008170033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/831f7fddf76836220cc3e08e1bd9831b.json"
3
+ "buildInfo": "../../../../build-info/be15d6fd3edbce74a89dc32e36c32178.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtOutLibOnchain",
4
4
  "sourceName": "contracts/router/math/MarketApproxLibOnchain.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122029af072f85d189cb9b8ed4de56e90b5c39a753a1b600ea45e9513c57ec211dc964736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122029af072f85d189cb9b8ed4de56e90b5c39a753a1b600ea45e9513c57ec211dc964736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122082ee6b4c3753b1f796c20ab9994d40665233feb79be0c6d333a60f27f176317164736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122082ee6b4c3753b1f796c20ab9994d40665233feb79be0c6d333a60f27f176317164736f6c63430008170033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../../build-info/be15d6fd3edbce74a89dc32e36c32178.json"
4
+ }
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "_format": "hh-sol-artifact-1",
3
- "contractName": "MarketApproxPtInLib",
4
- "sourceName": "contracts/router/math/MarketApproxLib.sol",
3
+ "contractName": "MarketApproxPtInLibV2",
4
+ "sourceName": "contracts/router/math/MarketApproxLibV2.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dfc8f12d9cc7be3806267f1fbc3f43174690719ed5c647f0f6470eced6803b1e64736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dfc8f12d9cc7be3806267f1fbc3f43174690719ed5c647f0f6470eced6803b1e64736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122022b0fd7528bcb973f5e4454e1375749c61aa1376d386690bb586658c14314efc64736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122022b0fd7528bcb973f5e4454e1375749c61aa1376d386690bb586658c14314efc64736f6c63430008170033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../../build-info/be15d6fd3edbce74a89dc32e36c32178.json"
4
+ }
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "_format": "hh-sol-artifact-1",
3
- "contractName": "MarketApproxPtOutLib",
4
- "sourceName": "contracts/router/math/MarketApproxLib.sol",
3
+ "contractName": "MarketApproxPtOutLibV2",
4
+ "sourceName": "contracts/router/math/MarketApproxLibV2.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b778537a10483e16b2adc403c9dbff617d6a3aa7e224a8c503ea66deda31f2c864736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b778537a10483e16b2adc403c9dbff617d6a3aa7e224a8c503ea66deda31f2c864736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202c09a9863c1f93abbdd5aeb68e23495b6b3bb15750089ef1ca4fd03c62ef1b6164736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202c09a9863c1f93abbdd5aeb68e23495b6b3bb15750089ef1ca4fd03c62ef1b6164736f6c63430008170033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/831f7fddf76836220cc3e08e1bd9831b.json"
3
+ "buildInfo": "../../../../build-info/be15d6fd3edbce74a89dc32e36c32178.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/831f7fddf76836220cc3e08e1bd9831b.json"
3
+ "buildInfo": "../../../../build-info/be15d6fd3edbce74a89dc32e36c32178.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/831f7fddf76836220cc3e08e1bd9831b.json"
3
+ "buildInfo": "../../../../build-info/be15d6fd3edbce74a89dc32e36c32178.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/831f7fddf76836220cc3e08e1bd9831b.json"
3
+ "buildInfo": "../../../../build-info/be15d6fd3edbce74a89dc32e36c32178.json"
4
4
  }
@@ -131,8 +131,8 @@
131
131
  "type": "receive"
132
132
  }
133
133
  ],
134
- "bytecode": "0x60a0604052732f577a41bec1be1152aeea12e73b7391d15f655d60805234801561002857600080fd5b50608051610fb161004a60003960008181607e01526103930152610fb16000f3fe6080604052600436106100385760003560e01c80632bdb823c14610044578063359be188146100595780638930af571461006c57600080fd5b3661003f57005b600080fd5b610057610052366004610895565b6100bc565b005b6100576100673660046108ed565b6101ef565b34801561007857600080fd5b506100a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100d5836100d06040840160208501610979565b61029a565b61018e6100e860808301606084016109ab565b610133576100f960408301836109c8565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061015692505050565b6101566101436020840184610a15565b61015060408501856109c8565b8661035e565b6001600160a01b0385161561016c57600061016e565b835b61017e6040850160208601610979565b6001600160a01b031691906104a8565b506001600160a01b0383166101a66020830183610a15565b60038111156101b7576101b7610a36565b6040518481527f1d8c50a59805451ff93bb2e438559a86b75386bcac2a591d3181d79e7e8346fd9060200160405180910390a3505050565b60005b8281101561023c5761023484848381811061020f5761020f610a4c565b90506020020160208101906102249190610979565b6100d06040850160208601610979565b6001016101f2565b5061029461024d60408301836109c8565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525034925061017e9150506040850160208601610979565b50505050565b6001600160a01b0382166102ac575050565b6102be60026001600160601b03610a78565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015610317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033b9190610a9e565b101561035a5761034d828260006104ce565b61035a82826000196104ce565b5050565b6060600185600381111561037457610374610a36565b0361046d5760405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906103cc90889088908890600401610ab7565b600060405180830381865afa1580156103e9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104119190810190610ba9565b92509050806104675760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b506104a0565b600285600381111561048157610481610a36565b03610498576104918484846105d8565b90506104a0565b6104a0610c3a565b949350505050565b60606104a0848484604051806060016040528060298152602001610f53602991396106ec565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169161052a9190610c50565b6000604051808303816000865af19150503d8060008114610567576040519150601f19603f3d011682016040523d82523d6000602084013e61056c565b606091505b50915091508180156105965750805115806105965750808060200190518101906105969190610c6c565b6105d15760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161045e565b5050505050565b606060006105e96004828688610c89565b6105f291610cb3565b9050366000610604866004818a610c89565b90925090506001600160e01b03198316630ed8d73960e21b1461062957610629610c3a565b600080808061063a85870187610d58565b935093509350935083602001518985608001516106579190610e3e565b6106619190610e69565b6080850152602084015160a085015161067b908b90610e3e565b6106859190610e69565b60a08501526020840189905260405187906106aa908690869086908690602401610ea9565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529750505050505050509392505050565b60608247101561074d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161045e565b600080866001600160a01b031685876040516107699190610c50565b60006040518083038185875af1925050503d80600081146107a6576040519150601f19603f3d011682016040523d82523d6000602084013e6107ab565b606091505b50915091506107bc878383876107c7565b979650505050505050565b6060831561083657825160000361082f576001600160a01b0385163b61082f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161045e565b50816104a0565b6104a0838381511561084b5781518083602001fd5b8060405162461bcd60e51b815260040161045e9190610f3f565b6001600160a01b038116811461087a57600080fd5b50565b60006080828403121561088f57600080fd5b50919050565b6000806000606084860312156108aa57600080fd5b83356108b581610865565b92506020840135915060408401356001600160401b038111156108d757600080fd5b6108e38682870161087d565b9150509250925092565b60008060006040848603121561090257600080fd5b83356001600160401b038082111561091957600080fd5b818601915086601f83011261092d57600080fd5b81358181111561093c57600080fd5b8760208260051b850101111561095157600080fd5b60209283019550935090850135908082111561096c57600080fd5b506108e38682870161087d565b60006020828403121561098b57600080fd5b813561099681610865565b9392505050565b801515811461087a57600080fd5b6000602082840312156109bd57600080fd5b81356109968161099d565b6000808335601e198436030181126109df57600080fd5b8301803591506001600160401b038211156109f957600080fd5b602001915036819003821315610a0e57600080fd5b9250929050565b600060208284031215610a2757600080fd5b81356004811061099657600080fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680610a9257610a92610a62565b92169190910492915050565b600060208284031215610ab057600080fd5b5051919050565b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715610b2857610b28610af0565b60405290565b604051601f8201601f191681016001600160401b0381118282101715610b5657610b56610af0565b604052919050565b60006001600160401b03821115610b7757610b77610af0565b50601f01601f191660200190565b60005b83811015610ba0578181015183820152602001610b88565b50506000910152565b60008060408385031215610bbc57600080fd5b8251610bc78161099d565b60208401519092506001600160401b03811115610be357600080fd5b8301601f81018513610bf457600080fd5b8051610c07610c0282610b5e565b610b2e565b818152866020838501011115610c1c57600080fd5b610c2d826020830160208601610b85565b8093505050509250929050565b634e487b7160e01b600052600160045260246000fd5b60008251610c62818460208701610b85565b9190910192915050565b600060208284031215610c7e57600080fd5b81516109968161099d565b60008085851115610c9957600080fd5b83861115610ca657600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610cdb5780818660040360031b1b83161692505b505092915050565b600082601f830112610cf457600080fd5b8135610d02610c0282610b5e565b818152846020838601011115610d1757600080fd5b816020850160208301376000918101602001919091529392505050565b8035610d3f81610865565b919050565b803563ffffffff81168114610d3f57600080fd5b600080600080848603610140811215610d7057600080fd5b60e0811215610d7e57600080fd5b50610d87610b06565b8535610d9281610865565b8152602086810135908201526040860135610dac81610865565b60408201526060860135610dbf81610865565b806060830152506080860135608082015260a086013560a082015260c0860135610de881610865565b60c0820152935060e08501356001600160401b03811115610e0857600080fd5b610e1487828801610ce3565b935050610e246101008601610d34565b9150610e336101208601610d44565b905092959194509250565b8082028115828204841417610e6357634e487b7160e01b600052601160045260246000fd5b92915050565b600082610e7857610e78610a62565b500490565b60008151808452610e95816020860160208601610b85565b601f01601f19169290920160200192915050565b600061014060018060a01b03808851168452602088015160208501528060408901511660408501528060608901511660608501526080880151608085015260a088015160a08501528060c08901511660c0850152508060e0840152610f1081840187610e7d565b915050610f296101008301856001600160a01b03169052565b63ffffffff831661012083015295945050505050565b6020815260006109966020830184610e7d56fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212207ea7d978ef77eabde62e0787440422714b9d9240b71c07ea2eecca40bf77f03b64736f6c63430008170033",
135
- "deployedBytecode": "0x6080604052600436106100385760003560e01c80632bdb823c14610044578063359be188146100595780638930af571461006c57600080fd5b3661003f57005b600080fd5b610057610052366004610895565b6100bc565b005b6100576100673660046108ed565b6101ef565b34801561007857600080fd5b506100a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100d5836100d06040840160208501610979565b61029a565b61018e6100e860808301606084016109ab565b610133576100f960408301836109c8565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061015692505050565b6101566101436020840184610a15565b61015060408501856109c8565b8661035e565b6001600160a01b0385161561016c57600061016e565b835b61017e6040850160208601610979565b6001600160a01b031691906104a8565b506001600160a01b0383166101a66020830183610a15565b60038111156101b7576101b7610a36565b6040518481527f1d8c50a59805451ff93bb2e438559a86b75386bcac2a591d3181d79e7e8346fd9060200160405180910390a3505050565b60005b8281101561023c5761023484848381811061020f5761020f610a4c565b90506020020160208101906102249190610979565b6100d06040850160208601610979565b6001016101f2565b5061029461024d60408301836109c8565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525034925061017e9150506040850160208601610979565b50505050565b6001600160a01b0382166102ac575050565b6102be60026001600160601b03610a78565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015610317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033b9190610a9e565b101561035a5761034d828260006104ce565b61035a82826000196104ce565b5050565b6060600185600381111561037457610374610a36565b0361046d5760405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906103cc90889088908890600401610ab7565b600060405180830381865afa1580156103e9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104119190810190610ba9565b92509050806104675760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b506104a0565b600285600381111561048157610481610a36565b03610498576104918484846105d8565b90506104a0565b6104a0610c3a565b949350505050565b60606104a0848484604051806060016040528060298152602001610f53602991396106ec565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169161052a9190610c50565b6000604051808303816000865af19150503d8060008114610567576040519150601f19603f3d011682016040523d82523d6000602084013e61056c565b606091505b50915091508180156105965750805115806105965750808060200190518101906105969190610c6c565b6105d15760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161045e565b5050505050565b606060006105e96004828688610c89565b6105f291610cb3565b9050366000610604866004818a610c89565b90925090506001600160e01b03198316630ed8d73960e21b1461062957610629610c3a565b600080808061063a85870187610d58565b935093509350935083602001518985608001516106579190610e3e565b6106619190610e69565b6080850152602084015160a085015161067b908b90610e3e565b6106859190610e69565b60a08501526020840189905260405187906106aa908690869086908690602401610ea9565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529750505050505050509392505050565b60608247101561074d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161045e565b600080866001600160a01b031685876040516107699190610c50565b60006040518083038185875af1925050503d80600081146107a6576040519150601f19603f3d011682016040523d82523d6000602084013e6107ab565b606091505b50915091506107bc878383876107c7565b979650505050505050565b6060831561083657825160000361082f576001600160a01b0385163b61082f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161045e565b50816104a0565b6104a0838381511561084b5781518083602001fd5b8060405162461bcd60e51b815260040161045e9190610f3f565b6001600160a01b038116811461087a57600080fd5b50565b60006080828403121561088f57600080fd5b50919050565b6000806000606084860312156108aa57600080fd5b83356108b581610865565b92506020840135915060408401356001600160401b038111156108d757600080fd5b6108e38682870161087d565b9150509250925092565b60008060006040848603121561090257600080fd5b83356001600160401b038082111561091957600080fd5b818601915086601f83011261092d57600080fd5b81358181111561093c57600080fd5b8760208260051b850101111561095157600080fd5b60209283019550935090850135908082111561096c57600080fd5b506108e38682870161087d565b60006020828403121561098b57600080fd5b813561099681610865565b9392505050565b801515811461087a57600080fd5b6000602082840312156109bd57600080fd5b81356109968161099d565b6000808335601e198436030181126109df57600080fd5b8301803591506001600160401b038211156109f957600080fd5b602001915036819003821315610a0e57600080fd5b9250929050565b600060208284031215610a2757600080fd5b81356004811061099657600080fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680610a9257610a92610a62565b92169190910492915050565b600060208284031215610ab057600080fd5b5051919050565b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715610b2857610b28610af0565b60405290565b604051601f8201601f191681016001600160401b0381118282101715610b5657610b56610af0565b604052919050565b60006001600160401b03821115610b7757610b77610af0565b50601f01601f191660200190565b60005b83811015610ba0578181015183820152602001610b88565b50506000910152565b60008060408385031215610bbc57600080fd5b8251610bc78161099d565b60208401519092506001600160401b03811115610be357600080fd5b8301601f81018513610bf457600080fd5b8051610c07610c0282610b5e565b610b2e565b818152866020838501011115610c1c57600080fd5b610c2d826020830160208601610b85565b8093505050509250929050565b634e487b7160e01b600052600160045260246000fd5b60008251610c62818460208701610b85565b9190910192915050565b600060208284031215610c7e57600080fd5b81516109968161099d565b60008085851115610c9957600080fd5b83861115610ca657600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610cdb5780818660040360031b1b83161692505b505092915050565b600082601f830112610cf457600080fd5b8135610d02610c0282610b5e565b818152846020838601011115610d1757600080fd5b816020850160208301376000918101602001919091529392505050565b8035610d3f81610865565b919050565b803563ffffffff81168114610d3f57600080fd5b600080600080848603610140811215610d7057600080fd5b60e0811215610d7e57600080fd5b50610d87610b06565b8535610d9281610865565b8152602086810135908201526040860135610dac81610865565b60408201526060860135610dbf81610865565b806060830152506080860135608082015260a086013560a082015260c0860135610de881610865565b60c0820152935060e08501356001600160401b03811115610e0857600080fd5b610e1487828801610ce3565b935050610e246101008601610d34565b9150610e336101208601610d44565b905092959194509250565b8082028115828204841417610e6357634e487b7160e01b600052601160045260246000fd5b92915050565b600082610e7857610e78610a62565b500490565b60008151808452610e95816020860160208601610b85565b601f01601f19169290920160200192915050565b600061014060018060a01b03808851168452602088015160208501528060408901511660408501528060608901511660608501526080880151608085015260a088015160a08501528060c08901511660c0850152508060e0840152610f1081840187610e7d565b915050610f296101008301856001600160a01b03169052565b63ffffffff831661012083015295945050505050565b6020815260006109966020830184610e7d56fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212207ea7d978ef77eabde62e0787440422714b9d9240b71c07ea2eecca40bf77f03b64736f6c63430008170033",
134
+ "bytecode": "0x60a0604052732f577a41bec1be1152aeea12e73b7391d15f655d60805234801561002857600080fd5b50608051610fb161004a60003960008181607e01526103930152610fb16000f3fe6080604052600436106100385760003560e01c80632bdb823c14610044578063359be188146100595780638930af571461006c57600080fd5b3661003f57005b600080fd5b610057610052366004610895565b6100bc565b005b6100576100673660046108ed565b6101ef565b34801561007857600080fd5b506100a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100d5836100d06040840160208501610979565b61029a565b61018e6100e860808301606084016109ab565b610133576100f960408301836109c8565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061015692505050565b6101566101436020840184610a15565b61015060408501856109c8565b8661035e565b6001600160a01b0385161561016c57600061016e565b835b61017e6040850160208601610979565b6001600160a01b031691906104a8565b506001600160a01b0383166101a66020830183610a15565b600a8111156101b7576101b7610a36565b6040518481527f1d8c50a59805451ff93bb2e438559a86b75386bcac2a591d3181d79e7e8346fd9060200160405180910390a3505050565b60005b8281101561023c5761023484848381811061020f5761020f610a4c565b90506020020160208101906102249190610979565b6100d06040850160208601610979565b6001016101f2565b5061029461024d60408301836109c8565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525034925061017e9150506040850160208601610979565b50505050565b6001600160a01b0382166102ac575050565b6102be60026001600160601b03610a78565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015610317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033b9190610a9e565b101561035a5761034d828260006104ce565b61035a82826000196104ce565b5050565b6060600185600a81111561037457610374610a36565b0361046d5760405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906103cc90889088908890600401610ab7565b600060405180830381865afa1580156103e9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104119190810190610ba9565b92509050806104675760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b506104a0565b600285600a81111561048157610481610a36565b03610498576104918484846105d8565b90506104a0565b6104a0610c3a565b949350505050565b60606104a0848484604051806060016040528060298152602001610f53602991396106ec565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169161052a9190610c50565b6000604051808303816000865af19150503d8060008114610567576040519150601f19603f3d011682016040523d82523d6000602084013e61056c565b606091505b50915091508180156105965750805115806105965750808060200190518101906105969190610c6c565b6105d15760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161045e565b5050505050565b606060006105e96004828688610c89565b6105f291610cb3565b9050366000610604866004818a610c89565b90925090506001600160e01b03198316630ed8d73960e21b1461062957610629610c3a565b600080808061063a85870187610d58565b935093509350935083602001518985608001516106579190610e3e565b6106619190610e69565b6080850152602084015160a085015161067b908b90610e3e565b6106859190610e69565b60a08501526020840189905260405187906106aa908690869086908690602401610ea9565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529750505050505050509392505050565b60608247101561074d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161045e565b600080866001600160a01b031685876040516107699190610c50565b60006040518083038185875af1925050503d80600081146107a6576040519150601f19603f3d011682016040523d82523d6000602084013e6107ab565b606091505b50915091506107bc878383876107c7565b979650505050505050565b6060831561083657825160000361082f576001600160a01b0385163b61082f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161045e565b50816104a0565b6104a0838381511561084b5781518083602001fd5b8060405162461bcd60e51b815260040161045e9190610f3f565b6001600160a01b038116811461087a57600080fd5b50565b60006080828403121561088f57600080fd5b50919050565b6000806000606084860312156108aa57600080fd5b83356108b581610865565b92506020840135915060408401356001600160401b038111156108d757600080fd5b6108e38682870161087d565b9150509250925092565b60008060006040848603121561090257600080fd5b83356001600160401b038082111561091957600080fd5b818601915086601f83011261092d57600080fd5b81358181111561093c57600080fd5b8760208260051b850101111561095157600080fd5b60209283019550935090850135908082111561096c57600080fd5b506108e38682870161087d565b60006020828403121561098b57600080fd5b813561099681610865565b9392505050565b801515811461087a57600080fd5b6000602082840312156109bd57600080fd5b81356109968161099d565b6000808335601e198436030181126109df57600080fd5b8301803591506001600160401b038211156109f957600080fd5b602001915036819003821315610a0e57600080fd5b9250929050565b600060208284031215610a2757600080fd5b8135600b811061099657600080fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680610a9257610a92610a62565b92169190910492915050565b600060208284031215610ab057600080fd5b5051919050565b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715610b2857610b28610af0565b60405290565b604051601f8201601f191681016001600160401b0381118282101715610b5657610b56610af0565b604052919050565b60006001600160401b03821115610b7757610b77610af0565b50601f01601f191660200190565b60005b83811015610ba0578181015183820152602001610b88565b50506000910152565b60008060408385031215610bbc57600080fd5b8251610bc78161099d565b60208401519092506001600160401b03811115610be357600080fd5b8301601f81018513610bf457600080fd5b8051610c07610c0282610b5e565b610b2e565b818152866020838501011115610c1c57600080fd5b610c2d826020830160208601610b85565b8093505050509250929050565b634e487b7160e01b600052600160045260246000fd5b60008251610c62818460208701610b85565b9190910192915050565b600060208284031215610c7e57600080fd5b81516109968161099d565b60008085851115610c9957600080fd5b83861115610ca657600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610cdb5780818660040360031b1b83161692505b505092915050565b600082601f830112610cf457600080fd5b8135610d02610c0282610b5e565b818152846020838601011115610d1757600080fd5b816020850160208301376000918101602001919091529392505050565b8035610d3f81610865565b919050565b803563ffffffff81168114610d3f57600080fd5b600080600080848603610140811215610d7057600080fd5b60e0811215610d7e57600080fd5b50610d87610b06565b8535610d9281610865565b8152602086810135908201526040860135610dac81610865565b60408201526060860135610dbf81610865565b806060830152506080860135608082015260a086013560a082015260c0860135610de881610865565b60c0820152935060e08501356001600160401b03811115610e0857600080fd5b610e1487828801610ce3565b935050610e246101008601610d34565b9150610e336101208601610d44565b905092959194509250565b8082028115828204841417610e6357634e487b7160e01b600052601160045260246000fd5b92915050565b600082610e7857610e78610a62565b500490565b60008151808452610e95816020860160208601610b85565b601f01601f19169290920160200192915050565b600061014060018060a01b03808851168452602088015160208501528060408901511660408501528060608901511660608501526080880151608085015260a088015160a08501528060c08901511660c0850152508060e0840152610f1081840187610e7d565b915050610f296101008301856001600160a01b03169052565b63ffffffff831661012083015295945050505050565b6020815260006109966020830184610e7d56fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220fc93563c01604b5ea2952b8818a1695317ea61dbda41e43183be0ca6758fe67464736f6c63430008170033",
135
+ "deployedBytecode": "0x6080604052600436106100385760003560e01c80632bdb823c14610044578063359be188146100595780638930af571461006c57600080fd5b3661003f57005b600080fd5b610057610052366004610895565b6100bc565b005b6100576100673660046108ed565b6101ef565b34801561007857600080fd5b506100a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100d5836100d06040840160208501610979565b61029a565b61018e6100e860808301606084016109ab565b610133576100f960408301836109c8565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061015692505050565b6101566101436020840184610a15565b61015060408501856109c8565b8661035e565b6001600160a01b0385161561016c57600061016e565b835b61017e6040850160208601610979565b6001600160a01b031691906104a8565b506001600160a01b0383166101a66020830183610a15565b600a8111156101b7576101b7610a36565b6040518481527f1d8c50a59805451ff93bb2e438559a86b75386bcac2a591d3181d79e7e8346fd9060200160405180910390a3505050565b60005b8281101561023c5761023484848381811061020f5761020f610a4c565b90506020020160208101906102249190610979565b6100d06040850160208601610979565b6001016101f2565b5061029461024d60408301836109c8565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525034925061017e9150506040850160208601610979565b50505050565b6001600160a01b0382166102ac575050565b6102be60026001600160601b03610a78565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015610317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033b9190610a9e565b101561035a5761034d828260006104ce565b61035a82826000196104ce565b5050565b6060600185600a81111561037457610374610a36565b0361046d5760405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906103cc90889088908890600401610ab7565b600060405180830381865afa1580156103e9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104119190810190610ba9565b92509050806104675760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b506104a0565b600285600a81111561048157610481610a36565b03610498576104918484846105d8565b90506104a0565b6104a0610c3a565b949350505050565b60606104a0848484604051806060016040528060298152602001610f53602991396106ec565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169161052a9190610c50565b6000604051808303816000865af19150503d8060008114610567576040519150601f19603f3d011682016040523d82523d6000602084013e61056c565b606091505b50915091508180156105965750805115806105965750808060200190518101906105969190610c6c565b6105d15760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161045e565b5050505050565b606060006105e96004828688610c89565b6105f291610cb3565b9050366000610604866004818a610c89565b90925090506001600160e01b03198316630ed8d73960e21b1461062957610629610c3a565b600080808061063a85870187610d58565b935093509350935083602001518985608001516106579190610e3e565b6106619190610e69565b6080850152602084015160a085015161067b908b90610e3e565b6106859190610e69565b60a08501526020840189905260405187906106aa908690869086908690602401610ea9565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529750505050505050509392505050565b60608247101561074d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161045e565b600080866001600160a01b031685876040516107699190610c50565b60006040518083038185875af1925050503d80600081146107a6576040519150601f19603f3d011682016040523d82523d6000602084013e6107ab565b606091505b50915091506107bc878383876107c7565b979650505050505050565b6060831561083657825160000361082f576001600160a01b0385163b61082f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161045e565b50816104a0565b6104a0838381511561084b5781518083602001fd5b8060405162461bcd60e51b815260040161045e9190610f3f565b6001600160a01b038116811461087a57600080fd5b50565b60006080828403121561088f57600080fd5b50919050565b6000806000606084860312156108aa57600080fd5b83356108b581610865565b92506020840135915060408401356001600160401b038111156108d757600080fd5b6108e38682870161087d565b9150509250925092565b60008060006040848603121561090257600080fd5b83356001600160401b038082111561091957600080fd5b818601915086601f83011261092d57600080fd5b81358181111561093c57600080fd5b8760208260051b850101111561095157600080fd5b60209283019550935090850135908082111561096c57600080fd5b506108e38682870161087d565b60006020828403121561098b57600080fd5b813561099681610865565b9392505050565b801515811461087a57600080fd5b6000602082840312156109bd57600080fd5b81356109968161099d565b6000808335601e198436030181126109df57600080fd5b8301803591506001600160401b038211156109f957600080fd5b602001915036819003821315610a0e57600080fd5b9250929050565b600060208284031215610a2757600080fd5b8135600b811061099657600080fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680610a9257610a92610a62565b92169190910492915050565b600060208284031215610ab057600080fd5b5051919050565b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715610b2857610b28610af0565b60405290565b604051601f8201601f191681016001600160401b0381118282101715610b5657610b56610af0565b604052919050565b60006001600160401b03821115610b7757610b77610af0565b50601f01601f191660200190565b60005b83811015610ba0578181015183820152602001610b88565b50506000910152565b60008060408385031215610bbc57600080fd5b8251610bc78161099d565b60208401519092506001600160401b03811115610be357600080fd5b8301601f81018513610bf457600080fd5b8051610c07610c0282610b5e565b610b2e565b818152866020838501011115610c1c57600080fd5b610c2d826020830160208601610b85565b8093505050509250929050565b634e487b7160e01b600052600160045260246000fd5b60008251610c62818460208701610b85565b9190910192915050565b600060208284031215610c7e57600080fd5b81516109968161099d565b60008085851115610c9957600080fd5b83861115610ca657600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610cdb5780818660040360031b1b83161692505b505092915050565b600082601f830112610cf457600080fd5b8135610d02610c0282610b5e565b818152846020838601011115610d1757600080fd5b816020850160208301376000918101602001919091529392505050565b8035610d3f81610865565b919050565b803563ffffffff81168114610d3f57600080fd5b600080600080848603610140811215610d7057600080fd5b60e0811215610d7e57600080fd5b50610d87610b06565b8535610d9281610865565b8152602086810135908201526040860135610dac81610865565b60408201526060860135610dbf81610865565b806060830152506080860135608082015260a086013560a082015260c0860135610de881610865565b60c0820152935060e08501356001600160401b03811115610e0857600080fd5b610e1487828801610ce3565b935050610e246101008601610d34565b9150610e336101208601610d44565b905092959194509250565b8082028115828204841417610e6357634e487b7160e01b600052601160045260246000fd5b92915050565b600082610e7857610e78610a62565b500490565b60008151808452610e95816020860160208601610b85565b601f01601f19169290920160200192915050565b600061014060018060a01b03808851168452602088015160208501528060408901511660408501528060608901511660608501526080880151608085015260a088015160a08501528060c08901511660c0850152508060e0840152610f1081840187610e7d565b915050610f296101008301856001600160a01b03169052565b63ffffffff831661012083015295945050505050565b6020815260006109966020830184610e7d56fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220fc93563c01604b5ea2952b8818a1695317ea61dbda41e43183be0ca6758fe67464736f6c63430008170033",
136
136
  "linkReferences": {},
137
137
  "deployedLinkReferences": {}
138
138
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.0;
3
3
 
4
- import "../router/math/MarketApproxLib.sol";
4
+ import "../router/math/MarketApproxLibV2.sol";
5
5
  import "./IPAllActionTypeV3.sol";
6
6
  import {IPAllEventsV3} from "./IPAllEventsV3.sol";
7
7
 
@@ -1,7 +1,8 @@
1
+ // SPDX-License-Identifier: None
1
2
  pragma solidity ^0.8.0;
2
3
 
3
4
  import "./IPMarket.sol";
4
- import {ApproxParams} from "../router/math/MarketApproxLib.sol";
5
+ import {ApproxParams} from "../router/math/MarketApproxLibV2.sol";
5
6
 
6
7
  interface IPActionMarketAuxStatic {
7
8
  function calcPriceImpactPY(address market, int256 netPtOut) external view returns (uint256);
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.0;
3
3
 
4
- import "../router/math/MarketApproxLib.sol";
4
+ import "../router/math/MarketApproxLibV2.sol";
5
5
  import "./IPAllActionTypeV3.sol";
6
6
  import {IPAllEventsV3} from "./IPAllEventsV3.sol";
7
7
  import "./IStandardizedYield.sol";
@@ -82,12 +82,6 @@ interface IPActionMiscV3 is IPAllEventsV3 {
82
82
  uint256[] calldata netSwaps
83
83
  ) external payable returns (uint256[] memory netOutFromSwaps);
84
84
 
85
- function swapTokenToToken(
86
- address receiver,
87
- uint256 minTokenOut,
88
- TokenInput calldata inp
89
- ) external payable returns (uint256 netTokenOut);
90
-
91
85
  function swapTokenToTokenViaSy(
92
86
  address receiver,
93
87
  address SY,
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.0;
3
3
 
4
- import "../router/math/MarketApproxLib.sol";
4
+ import "../router/math/MarketApproxLibV2.sol";
5
5
 
6
6
  import {IPAllEventsV3} from "./IPAllEventsV3.sol";
7
7
 
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.0;
3
3
 
4
- import "../router/math/MarketApproxLib.sol";
4
+ import "../router/math/MarketApproxLibV2.sol";
5
5
  import "./IPAllActionTypeV3.sol";
6
6
  import {IPAllEventsV3} from "./IPAllEventsV3.sol";
7
7
 
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.0;
3
3
 
4
- import "../router/math/MarketApproxLib.sol";
4
+ import "../router/math/MarketApproxLibV2.sol";
5
5
  import "./IPAllActionTypeV3.sol";
6
6
  import {IPAllEventsV3} from "./IPAllEventsV3.sol";
7
7
 
@@ -40,20 +40,4 @@ interface IPActionSwapYTV3 is IPAllEventsV3 {
40
40
  uint256 minSyOut,
41
41
  LimitOrderData calldata limit
42
42
  ) external returns (uint256 netSyOut, uint256 netSyFee);
43
-
44
- function swapExactPtForYt(
45
- address receiver,
46
- address market,
47
- uint256 exactPtIn,
48
- uint256 minYtOut,
49
- ApproxParams calldata guessTotalPtToSwap
50
- ) external returns (uint256 netYtOut, uint256 netSyFee);
51
-
52
- function swapExactYtForPt(
53
- address receiver,
54
- address market,
55
- uint256 exactYtIn,
56
- uint256 minPtOut,
57
- ApproxParams calldata guessTotalPtFromSwap
58
- ) external returns (uint256 netPtOut, uint256 netSyFee);
59
43
  }
@@ -1,3 +1,4 @@
1
+ // SPDX-License-Identifier: None
1
2
  pragma solidity ^0.8.0;
2
3
 
3
4
  interface IPActionVePendleStatic {
@@ -157,14 +157,6 @@ interface IPActionSwapYTV3Events {
157
157
  int256 netTokenToAccount,
158
158
  uint256 netSyInterm
159
159
  );
160
-
161
- event SwapPtAndYt(
162
- address indexed caller,
163
- address indexed market,
164
- address indexed receiver,
165
- int256 netPtToAccount,
166
- int256 netYtToAccount
167
- );
168
160
  }
169
161
 
170
162
  interface IPActionMiscV3Events {
@@ -4,7 +4,7 @@ pragma solidity ^0.8.17;
4
4
  import "../../../interfaces/IPMarket.sol";
5
5
  import "../../../interfaces/IPRouterStatic.sol";
6
6
  import "./StorageLayout.sol";
7
- import "hardhat/console.sol";
7
+ import "./MarketApproxLibV1.sol";
8
8
 
9
9
  contract ActionMarketAuxStatic is IPActionMarketAuxStatic {
10
10
  using MarketMathCore for MarketState;
@@ -280,7 +280,7 @@ contract ActionMarketAuxStatic is IPActionMarketAuxStatic {
280
280
  MarketPreCompute memory comp = state.getMarketPreCompute(_pyIndex(market), block.timestamp);
281
281
 
282
282
  uint256 guessLowerBound = 0;
283
- uint256 guessUpperBound = MarketApproxPtOutLib.calcMaxPtOut(comp, state.totalPt);
283
+ uint256 guessUpperBound = MarketApproxPtOutLibV1.calcMaxPtOut(comp, state.totalPt);
284
284
  return genApproxParamsPtOut(netPtOut, guessLowerBound, guessUpperBound, slippage);
285
285
  }
286
286
 
@@ -4,6 +4,7 @@ pragma solidity ^0.8.17;
4
4
  import "../../../interfaces/IPMarket.sol";
5
5
  import "../../../interfaces/IPRouterStatic.sol";
6
6
  import "./StorageLayout.sol";
7
+ import "./MarketApproxLibV1.sol";
7
8
 
8
9
  contract ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
9
10
  using PMath for uint256;
@@ -12,8 +13,8 @@ contract ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
12
13
  using LogExpMath for int256;
13
14
  using PYIndexLib for PYIndex;
14
15
  using PYIndexLib for IPYieldToken;
15
- using MarketApproxPtInLib for MarketState;
16
- using MarketApproxPtOutLib for MarketState;
16
+ using MarketApproxPtInLibV1 for MarketState;
17
+ using MarketApproxPtOutLibV1 for MarketState;
17
18
  using MarketMathCore for MarketState;
18
19
 
19
20
  // ============ ADD REMOVE LIQUIDITY ============
@@ -74,7 +75,7 @@ contract ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
74
75
  {
75
76
  MarketState memory state = _readState(market);
76
77
 
77
- (netPtToSwap, , ) = state.approxSwapPtToAddLiquidity(
78
+ (netPtToSwap, , , ) = state.approxSwapPtToAddLiquidity(
78
79
  _pyIndex(market),
79
80
  netPtIn,
80
81
  0,
@@ -110,7 +111,7 @@ contract ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
110
111
  {
111
112
  MarketState memory state = _readState(market);
112
113
 
113
- (netPtFromSwap, , ) = state.approxSwapSyToAddLiquidity(
114
+ (netPtFromSwap, , , ) = state.approxSwapSyToAddLiquidity(
114
115
  _pyIndex(market),
115
116
  netSyIn,
116
117
  0,
@@ -233,7 +234,7 @@ contract ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
233
234
  MarketState memory state = _readState(market);
234
235
 
235
236
  (netSyFromBurn, netPtFromBurn) = state.removeLiquidity(netLpToRemove);
236
- (netPtFromSwap, netSyFee) = state.approxSwapExactSyForPt(
237
+ (netPtFromSwap, netSyFee, ) = state.approxSwapExactSyForPt(
237
238
  _pyIndex(market),
238
239
  netSyFromBurn,
239
240
  block.timestamp,
@@ -343,7 +344,7 @@ contract ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
343
344
  uint256 exactSyIn
344
345
  ) public view returns (uint256 netPtOut, uint256 netSyFee, uint256 priceImpact, uint256 exchangeRateAfter) {
345
346
  MarketState memory state = _readState(market);
346
- (netPtOut, netSyFee) = state.approxSwapExactSyForPt(
347
+ (netPtOut, netSyFee, ) = state.approxSwapExactSyForPt(
347
348
  _pyIndex(market),
348
349
  exactSyIn,
349
350
  block.timestamp,
@@ -455,7 +456,7 @@ contract ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
455
456
  MarketState memory state = _readState(market);
456
457
  PYIndex index = _pyIndex(market);
457
458
 
458
- (netYtOut, netSyFee) = state.approxSwapExactSyForYt(index, exactSyIn, block.timestamp, defaultApproxParams);
459
+ (netYtOut, netSyFee, ) = state.approxSwapExactSyForYt(index, exactSyIn, block.timestamp, defaultApproxParams);
459
460
 
460
461
  priceImpact = _calcPriceImpactYt(market, netYtOut.neg());
461
462