@pendle/core-v2 0.7.1-beta → 0.8.0-beta

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 (294) hide show
  1. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +1 -1
  2. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +33 -17
  3. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
  4. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.json +2 -2
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  6. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  7. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
  8. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +33 -17
  9. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +33 -17
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +33 -17
  13. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +1 -1
  14. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.json +33 -17
  15. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
  16. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.json +31 -15
  17. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
  18. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.json +31 -15
  19. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
  20. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
  21. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  22. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  24. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  26. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.json +0 -26
  28. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  30. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  33. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  35. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +125 -111
  38. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  40. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.json +2 -2
  42. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
  44. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -2
  46. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +77 -2
  49. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +51 -20
  51. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +72 -93
  53. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  55. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +3 -3
  57. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +2 -2
  59. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  63. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  64. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  65. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  66. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  67. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  68. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  69. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +48 -83
  85. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  88. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +20 -15
  91. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  93. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.json +30 -4
  96. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +8 -92
  98. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.json +31 -2
  105. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  109. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
  110. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  111. package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.dbg.json +1 -1
  112. package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.json +2 -2
  113. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
  114. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.json +2 -2
  115. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  116. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  117. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  118. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  119. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  120. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.json +2 -2
  121. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  122. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.json +2 -2
  123. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  124. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.json +2 -2
  125. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
  126. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.json +2 -2
  127. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  128. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  129. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
  130. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
  131. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
  132. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  133. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
  134. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  135. package/build/artifacts/contracts/libraries/math/Math.sol/Math.json +2 -2
  136. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
  137. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.json +2 -2
  138. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
  139. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.json +2 -2
  140. package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.dbg.json +1 -1
  141. package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.json +2 -2
  142. package/build/artifacts/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +1 -1
  143. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  144. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +166 -13
  145. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.dbg.json +1 -1
  146. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.json +2 -2
  147. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
  148. package/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol +16 -12
  149. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol +3 -3
  150. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +20 -0
  151. package/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol +20 -0
  152. package/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol +20 -0
  153. package/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol +29 -2
  154. package/contracts/SuperComposableYield/base-implementations/SCYBase.sol +63 -41
  155. package/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol +0 -7
  156. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +1 -1
  157. package/contracts/core/LiquidityMining/PendleGauge.sol +24 -8
  158. package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +47 -96
  159. package/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +86 -73
  160. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +17 -16
  161. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +1 -1
  162. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +3 -4
  163. package/contracts/core/Market/PendleMarket.sol +32 -62
  164. package/contracts/core/PendleRouter.sol +1 -1
  165. package/contracts/core/YieldContracts/InterestManagerYT.sol +11 -8
  166. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +3 -3
  167. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +18 -12
  168. package/contracts/core/YieldContracts/PendleYieldToken.sol +167 -140
  169. package/contracts/core/actions/ActionCallback.sol +11 -10
  170. package/contracts/core/actions/ActionCore.sol +84 -22
  171. package/contracts/core/actions/ActionYT.sol +33 -15
  172. package/contracts/core/actions/base/ActionSCYAndPTBase.sol +4 -15
  173. package/contracts/core/actions/base/ActionSCYAndPYBase.sol +20 -50
  174. package/contracts/core/actions/base/ActionSCYAndYTBase.sol +2 -12
  175. package/contracts/interfaces/IPActionCore.sol +72 -1
  176. package/contracts/interfaces/IPActionYT.sol +15 -0
  177. package/contracts/interfaces/IPMarket.sol +7 -26
  178. package/contracts/interfaces/IPRouterStatic.sol +67 -47
  179. package/contracts/interfaces/IPVeToken.sol +0 -2
  180. package/contracts/interfaces/IPVotingEscrow.sol +1 -1
  181. package/contracts/interfaces/IPYieldContractFactory.sol +6 -2
  182. package/contracts/interfaces/IPYieldToken.sol +21 -11
  183. package/contracts/interfaces/ISuperComposableYield.sol +22 -28
  184. package/contracts/interfaces/IYearnVault.sol +8 -0
  185. package/contracts/libraries/RewardManager.sol +9 -6
  186. package/contracts/libraries/RewardManagerAbstract.sol +6 -8
  187. package/contracts/libraries/SCY/SCYIndex.sol +10 -0
  188. package/contracts/libraries/VeBalanceLib.sol +0 -1
  189. package/contracts/libraries/helpers/ArrayLib.sol +11 -0
  190. package/contracts/libraries/helpers/TokenHelper.sol +6 -5
  191. package/contracts/libraries/math/MarketApproxLib.sol +91 -36
  192. package/contracts/libraries/math/Math.sol +2 -4
  193. package/contracts/offchain-helpers/RouterStatic.sol +144 -115
  194. package/deployments/43113-core.json +11 -9
  195. package/deployments/43113-markets/benqi-market-0xF3150c14F776c50C9D397054d38979c7B77FC41D.json +7 -0
  196. package/deployments/80001-core.json +10 -8
  197. package/deployments/80001-markets/benqi-market-0x150b6eb90Bf636eC0c4328d13d1e1d4adDBAF904.json +7 -0
  198. package/package.json +2 -2
  199. package/typechain-types/ActionCore.ts +8 -8
  200. package/typechain-types/CelerReceiver.ts +267 -0
  201. package/typechain-types/CelerSender.ts +164 -0
  202. package/typechain-types/IPActionCore.ts +8 -8
  203. package/typechain-types/IPAllAction.ts +8 -8
  204. package/typechain-types/IPMarket.ts +66 -109
  205. package/typechain-types/IPRouterStatic.ts +64 -41
  206. package/typechain-types/IPVotingEscrowController.ts +154 -0
  207. package/typechain-types/IPYieldContractFactory.ts +34 -0
  208. package/typechain-types/IPYieldToken.ts +12 -112
  209. package/typechain-types/ISuperComposableYield.ts +54 -10
  210. package/typechain-types/PendleAaveV3SCY.ts +54 -29
  211. package/typechain-types/PendleBtrflyScy.ts +56 -58
  212. package/typechain-types/PendleERC4626SCY.ts +54 -29
  213. package/typechain-types/PendleGauge.ts +0 -32
  214. package/typechain-types/PendleGaugeController.ts +282 -0
  215. package/typechain-types/PendleGaugeControllerMainchain.ts +346 -0
  216. package/typechain-types/PendleGaugeControllerSidechain.ts +460 -0
  217. package/typechain-types/PendleJoeLpSCY.ts +56 -58
  218. package/typechain-types/PendleMarket.ts +169 -140
  219. package/typechain-types/PendlePrincipalToken.ts +104 -0
  220. package/typechain-types/PendleQiTokenSCY.ts +54 -29
  221. package/typechain-types/PendleVotingController.ts +865 -0
  222. package/typechain-types/PendleWstEthSCY.ts +54 -29
  223. package/typechain-types/PendleYearnVaultSCY.ts +54 -29
  224. package/typechain-types/PendleYieldContractFactory.ts +66 -19
  225. package/typechain-types/PendleYieldToken.ts +122 -158
  226. package/typechain-types/RouterStatic.ts +297 -24
  227. package/typechain-types/SCYBase.ts +54 -29
  228. package/typechain-types/SCYBaseWithRewards.ts +54 -29
  229. package/typechain-types/VotingControllerStorage.ts +410 -0
  230. package/typechain-types/VotingEscrowController.ts +154 -0
  231. package/typechain-types/VotingEscrowToken.ts +335 -0
  232. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  233. package/typechain-types/factories/ActionCore__factory.ts +2 -2
  234. package/typechain-types/factories/ActionYT__factory.ts +1 -1
  235. package/typechain-types/factories/CelerReceiver__factory.ts +140 -0
  236. package/typechain-types/factories/CelerSender__factory.ts +67 -0
  237. package/typechain-types/factories/ERC20__factory.ts +1 -1
  238. package/typechain-types/factories/IPActionCore__factory.ts +1 -1
  239. package/typechain-types/factories/IPAllAction__factory.ts +1 -1
  240. package/typechain-types/factories/IPMarket__factory.ts +48 -83
  241. package/typechain-types/factories/IPRouterStatic__factory.ts +20 -15
  242. package/typechain-types/factories/IPVotingEscrowController__factory.ts +80 -0
  243. package/typechain-types/factories/IPYieldContractFactory__factory.ts +30 -4
  244. package/typechain-types/factories/IPYieldToken__factory.ts +6 -90
  245. package/typechain-types/factories/ISuperComposableYield__factory.ts +31 -2
  246. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +32 -16
  247. package/typechain-types/factories/PendleBtrflyScy__factory.ts +52 -28
  248. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  249. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  250. package/typechain-types/factories/PendleERC4626SCY__factory.ts +32 -16
  251. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  252. package/typechain-types/factories/PendleGaugeControllerMainchain__factory.ts +269 -0
  253. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  254. package/typechain-types/factories/PendleGaugeControllerSidechain__factory.ts +328 -0
  255. package/typechain-types/factories/PendleGaugeController__factory.ts +149 -0
  256. package/typechain-types/factories/PendleGauge__factory.ts +0 -26
  257. package/typechain-types/factories/PendleGovernanceManager__factory.ts +1 -1
  258. package/typechain-types/factories/PendleJoeLpSCY__factory.ts +34 -28
  259. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  260. package/typechain-types/factories/PendleMarket__factory.ts +124 -110
  261. package/typechain-types/factories/PendlePrincipalToken__factory.ts +76 -1
  262. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  263. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +32 -16
  264. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  265. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  266. package/typechain-types/factories/PendleVotingController__factory.ts +584 -0
  267. package/typechain-types/factories/PendleWstEthSCY__factory.ts +32 -16
  268. package/typechain-types/factories/PendleYearnVaultSCY__factory.ts +32 -16
  269. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +54 -19
  270. package/typechain-types/factories/PendleYieldToken__factory.ts +70 -91
  271. package/typechain-types/factories/RouterStatic__factory.ts +165 -12
  272. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +31 -15
  273. package/typechain-types/factories/SCYBase__factory.ts +31 -15
  274. package/typechain-types/factories/VotingControllerStorage__factory.ts +298 -0
  275. package/typechain-types/factories/VotingEscrowController__factory.ts +80 -0
  276. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  277. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  278. package/typechain-types/factories/VotingEscrowToken__factory.ts +225 -0
  279. package/typechain-types/hardhat.d.ts +0 -27
  280. package/typechain-types/index.ts +0 -6
  281. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol/PendleBtrflyScy.dbg.json +0 -4
  282. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol/PendleBtrflyScy.json +0 -635
  283. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol/PendleJoeLpSCY.dbg.json +0 -4
  284. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol/PendleJoeLpSCY.json +0 -653
  285. package/build/artifacts/contracts/interfaces/IPMarketAddRemoveCallback.sol/IPMarketAddRemoveCallback.dbg.json +0 -4
  286. package/build/artifacts/contracts/interfaces/IPMarketAddRemoveCallback.sol/IPMarketAddRemoveCallback.json +0 -67
  287. package/build/artifacts/contracts/libraries/solmate/Bytes32AddressLib.sol/Bytes32AddressLib.dbg.json +0 -4
  288. package/build/artifacts/contracts/libraries/solmate/Bytes32AddressLib.sol/Bytes32AddressLib.json +0 -10
  289. package/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol +0 -123
  290. package/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol +0 -245
  291. package/contracts/interfaces/IPMarketAddRemoveCallback.sol +0 -18
  292. package/contracts/libraries/solmate/Bytes32AddressLib.sol +0 -14
  293. package/deployments/43113-markets/benqi-market.json +0 -7
  294. package/deployments/80001-markets/benqi-market.json +0 -7
@@ -516,7 +516,7 @@ const _abi = [
516
516
  ];
517
517
 
518
518
  const _bytecode =
519
- "0x60a06040523480156200001157600080fd5b5060405162003a2738038062003a27833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b608051613978620000af6000396000818160d6015281816113a70152818161140901528181611d140152611d5701526139786000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c806321aab8591461007257806322f7feb9146100985780636c2f5256146100ab5780637eb6953c146100be5780638a38466e146100d157806392126dab14610105578063d8cc26aa14610118575b600080fd5b610085610080366004613087565b61012b565b6040519081526020015b60405180910390f35b6100856100a63660046131db565b610142565b6100856100b9366004613269565b610161565b6100856100cc3660046132e4565b61017e565b6100f87f000000000000000000000000000000000000000000000000000000000000000081565b60405161008f9190613341565b6100856101133660046132e4565b610199565b610085610126366004613087565b6101aa565b6000610139858585856101ba565b95945050505050565b60006101558888888888888860016102eb565b98975050505050505050565b6000610173878787878787600161038a565b979650505050505050565b600061018f86868686866001610453565b9695505050505050565b600061018f86868686866001610682565b6000610139858585856001610887565b600080846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156101fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021f9190613355565b92505050846001600160a01b031663d8e763c1828661023f338b89610ac5565b6040518463ffffffff1660e01b815260040161025d939291906133fa565b60408051808303816000875af115801561027b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029f9190613421565b5050856001600160a01b03166000805160206139238339815191526102c386610af8565b6102cc85610b12565b6040516102da929190613445565b60405180910390a250949350505050565b6000806000896001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561032e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103529190613355565b9250509150600061036982848c60018c8c8b610b2f565b905061037a8c8c838c8a6000610453565b9c9b505050505050505050505050565b600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156103cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ef9190613355565b505090506000610403828a8a600188610887565b90506104458a83838a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201829052509250610d5f915050565b9a9950505050505050505050565b6000806000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ba9190613355565b604051631cf38c7b60e11b81526000600482018190529395509093506001600160a01b038b1691506339e718f69060240161018060405180830381865afa158015610509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052d919061345e565b905061054e610544846001600160a01b0316610f7e565b82908a428a610fe2565b5093508684101561059c5760405162461bcd60e51b81526020600482015260136024820152721a5b9cdd59999a58da595b9d081655081bdd5d606a1b60448201526064015b60405180910390fd5b84156105b7576105b76001600160a01b03841633848b6111e1565b886001600160a01b031663d8e763c183866105d28e8c611241565b6040518463ffffffff1660e01b81526004016105f0939291906133fa565b60408051808303816000875af115801561060e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106329190613421565b5050896001600160a01b031660008051602061392383398151915261065686610af8565b61065f8b610b12565b60405161066d929190613445565b60405180910390a25050509695505050505050565b604051631cf38c7b60e11b81526000600482018190529081906001600160a01b038816906339e718f69060240161018060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f1919061345e565b9050600080886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610734573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107589190613355565b925050915061077c610772836001600160a01b0316610f7e565b84908a428a611270565b509350868411156107c45760405162461bcd60e51b8152602060048201526012602482015271195e18d95959081655081a5b881b1a5b5a5d60721b6044820152606401610593565b84156107df576107df6001600160a01b0382163383876111e1565b886001600160a01b0316637bb0e71082866107fa8e8d611388565b6040518463ffffffff1660e01b8152600401610818939291906133fa565b60408051808303816000875af1158015610836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085a9190613421565b5050896001600160a01b031660008051602061392383398151915261087e86610b12565b61065f8b610af8565b6000806000866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156108ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ee9190613355565b9250509150831561090e5761090e6001600160a01b0382163383896111e1565b6040516370a0823160e01b81526000906001600160a01b038416906370a082319061093d908c90600401613341565b602060405180830381865afa15801561095a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097e91906134ff565b9050876001600160a01b0316637bb0e710838961099b8d8b611388565b6040518463ffffffff1660e01b81526004016109b9939291906133fa565b60408051808303816000875af11580156109d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fb9190613421565b50506040516370a0823160e01b815281906001600160a01b038516906370a0823190610a2b908d90600401613341565b602060405180830381865afa158015610a48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6c91906134ff565b610a76919061352e565b9350886001600160a01b0316600080516020613923833981519152610a9a89610b12565b610aa387610af8565b604051610ab1929190613445565b60405180910390a250505095945050505050565b60606000848484604051602001610adf9493929190613567565b60405160208183030381529060405290505b9392505050565b60006001600160ff1b03821115610b0e57600080fd5b5090565b6000610b1d82610af8565b610b299060001961359c565b92915050565b60008115610c1a576001839003610b8457610b7f33888887876000818110610b5957610b59613621565b9050602002016020810190610b6e9190613637565b6001600160a01b03169291906111e1565b610c1a565b610bd833610bc48686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506113a092505050565b8887876000818110610b5957610b59613621565b610c188484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508a92508b91506114019050565b505b60008484610c2960018261352e565b818110610c3857610c38613621565b9050602002016020810190610c4d9190613637565b6040516320e8c56560e01b81526001600160a01b038b8116600483015280831660248301526000604483015260648201899052919250908916906320e8c565906084016020604051808303816000875af1158015610caf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd391906134ff565b9150876001600160a01b031685856000818110610cf257610cf2613621565b9050602002016020810190610d079190613637565b6001600160a01b0316336001600160a01b03167f9a46898979f8e41b23cc1fa2b4875c37a6e8c890596f5d4e3c3199f3cf7556b48a86604051610d4b929190613445565b60405180910390a450979650505050505050565b60008115610d7c57610d7c6001600160a01b0387163388886111e1565b600083600081518110610d9157610d91613621565b602002602001015190508351600103610e215760405163f3f094a160e01b81526001600160a01b0388169063f3f094a190610dd7908b9060009086908b90600401613654565b6020604051808303816000875af1158015610df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1a91906134ff565b9150610ef6565b6000876001600160a01b031663f3f094a1610e3b876113a0565b60008560016040518563ffffffff1660e01b8152600401610e5f9493929190613654565b6020604051808303816000875af1158015610e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea291906134ff565b9050610eaf85828b611401565b925085831015610ef45760405162461bcd60e51b815260206004820152601060248201526f1a5b9cdd59999a58da595b9d081bdd5d60821b6044820152606401610593565b505b8360018551610f05919061352e565b81518110610f1557610f15613621565b60200260200101516001600160a01b0316876001600160a01b0316336001600160a01b03167f04b1fcce47c6812ab96e0c8493a043d013e688798285effca7507448bc763dea8986604051610f6b929190613445565b60405180910390a4509695505050505050565b6000816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2991906134ff565b600080610fee8361146d565b61100a5760405162461bcd60e51b81526004016105939061367e565b61104c6040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081525090565b6000611059898988611495565b90506000198560200151036110805761107a896000015182602001516115d0565b60208601525b61108a88886115f0565b60c083015260005b85606001518110156111a0576110a881876115fc565b8084528a5160808501516110be9285929161165b565b6080850152151560a084018190526110e85782516110de9060019061352e565b6020870152611092565b611101826110f98560000151610b12565b8c91906116ae565b5060208401819052611112906117bb565b604084018190528351611125919061352e565b6060840181905260c0840151106111845782518652606083015160c084015160808801516000926111579290916117ca565b9050801561117e5783516060850151611171908c906117fe565b95509550505050506111d7565b50611198565b82516111929060019061352e565b60208701525b600101611092565b5060405162461bcd60e51b815260206004820152600b60248201526a185c1c1c9bde0819985a5b60aa1b6044820152606401610593565b9550959350505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261123b90859061180a565b50505050565b606060018383604051602001611259939291906136ad565b604051602081830303815290604052905092915050565b60008061127c8361146d565b6112985760405162461bcd60e51b81526004016105939061367e565b60006112a5888887611495565b90506000198460200151036112c65787516112c090826118e1565b60208501525b60006112d288886115f0565b905060005b85606001518110156111a05760006112ef82886115fc565b905060006113088561130084610af8565b8e91906116ae565b509050600061131682611998565b90506000611324828561352e565b905085811061136b57838a602001818152505061134681878c608001516119af565b1561136657836113568e836117fe565b98509850505050505050506111d7565b611379565b6113768460016136d5565b8a525b846001019450505050506112d7565b606060028383604051602001611259939291906136ad565b6000610b297f0000000000000000000000000000000000000000000000000000000000000000836000815181106113d9576113d9613621565b6020026020010151846001815181106113f4576113f4613621565b60200260200101516119dd565b60008061142f7f00000000000000000000000000000000000000000000000000000000000000008587611aac565b905061143c818685611c31565b806001825161144b919061352e565b8151811061145b5761145b613621565b60200260200101519150509392505050565b60008160200151826000015111158015610b2957505060800151670de0b6b3a7640000101590565b6114c06040518060800160405280600081526020016000815260200160008152602001600081525090565b61010084015182106115055760405162461bcd60e51b815260206004820152600e60248201526d1b585c9ad95d08195e1c1a5c995960921b6044820152606401610593565b600082856101000151611518919061352e565b90506115248582611e26565b82526020850151611536908590611eaa565b602083015284511580159061154e5750602082015115155b6115915760405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206d61726b657420737461746560601b6044820152606401610593565b6115af85600001518661014001518460200151856000015185611ee1565b604083015260c08501516115c39082611f5e565b6060830152509392505050565b600060016115e66115e18585611f92565b6117bb565b610af1919061352e565b6000610af18383611fa8565b60008215801561160f5750604082015115155b1561161f57506040810151610b29565b60208201518251111561163757506020810151610b29565b6020820151825160029161164a916136d5565b6116549190613703565b9050610b29565b600080828411611670575060019050816116a5565b60006116858661167f87610b12565b89611fc7565b90506000811261169c5760018592509250506116a5565b60008492509250505b94509492505050565b60008060006116d08660000151866020015187600001518860400151886120c6565b905060006116e66116e18684612190565b6121bf565b606087015190915060008613156117515760006117038483612190565b9050670de0b6b3a764000081121561172d5760405162461bcd60e51b815260040161059390613717565b61174961174283670de0b6b3a7640000613746565b84906121cd565b91505061177e565b61177b8161176781670de0b6b3a7640000613746565b611771908561359c565b6116e19190613785565b90505b606461178e896101200151610af8565b611798908361359c565b6117a29190613785565b93506117ae8183613746565b9450505050935093915050565b600080821215610b0e57600080fd5b60008284111580156117f657506117f2836117ed84670de0b6b3a764000061352e565b6121eb565b8410155b949350505050565b6000610af1838361220b565b600061185f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166122209092919063ffffffff16565b8051909150156118dc578080602001905181019061187d91906137b3565b6118dc5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610593565b505050565b600080611928611923846000015185604001516119138760600151670de0b6b3a76400006121cd90919063ffffffff16565b61191d9190613746565b906121cd565b61222f565b90506000611948611941670de0b6b3a7640000846137d5565b8390612190565b9050600061196685602001518761195f91906137d5565b83906121cd565b905060006119748288613746565b90506103e8611982826117bb565b61198e906103e7613816565b6101739190613703565b6000808213610b0e576119aa82613835565b610b29565b60008284101580156117f657506119d2836117ed84670de0b6b3a76400006136d5565b909311159392505050565b60008060006119ec8585612644565b6040516001600160601b0319606084811b8216602084015283901b1660348201529193509150869060480160405160208183030381529060405280519060200120604051602001611a8a9291906001600160f81b0319815260609290921b6001600160601b031916600183015260158201527f0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b6060600282511015611afb5760405162461bcd60e51b8152602060048201526018602482015277094deca98d2c4e4c2e4f27440929cac82989288bea082a8960431b6044820152606401610593565b81516001600160401b03811115611b1457611b14613111565b604051908082528060200260200182016040528015611b3d578160200160208202803683370190505b5090508281600081518110611b5457611b54613621565b60200260200101818152505060005b60018351611b71919061352e565b811015611c2957600080611bc487868581518110611b9157611b91613621565b602002602001015187866001611ba791906136d5565b81518110611bb757611bb7613621565b6020026020010151612728565b91509150611bec848481518110611bdd57611bdd613621565b602002602001015183836127f2565b84611bf88560016136d5565b81518110611c0857611c08613621565b60200260200101818152505050508080611c2190613851565b915050611b63565b509392505050565b60005b60018351611c42919061352e565b81101561123b57600080848381518110611c5e57611c5e613621565b602002602001015185846001611c7491906136d5565b81518110611c8457611c84613621565b6020026020010151915091506000611c9c8383612644565b509050600087611cad8660016136d5565b81518110611cbd57611cbd613621565b60200260200101519050600080836001600160a01b0316866001600160a01b031614611ceb57826000611cef565b6000835b91509150600060028a51611d03919061352e565b8810611d0f5788611d50565b611d507f0000000000000000000000000000000000000000000000000000000000000000878c611d408c60026136d5565b815181106113f4576113f4613621565b9050611d7d7f000000000000000000000000000000000000000000000000000000000000000088886119dd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f191660200182016040528015611dba576020820181803683370190505b506040518563ffffffff1660e01b8152600401611dda949392919061386a565b600060405180830381600087803b158015611df457600080fd5b505af1158015611e08573d6000803e3d6000fd5b50505050505050505050508080611e1e90613851565b915050611c34565b6000611e3182610af8565b611e48611e436201518061016d613816565b610af8565b8460a00151611e57919061359c565b611e619190613785565b905060008113610b295760405162461bcd60e51b8152602060048201526014602482015273726174655363616c617220756e646572666c6f7760601b6044820152606401610593565b60008060008312611ebc576001611ec0565b6000195b9050611ed7611e4385611ed286611998565b611fa8565b6117f6908261359c565b600080611eee8684611f5e565b9050670de0b6b3a7640000811215611f185760405162461bcd60e51b815260040161059390613717565b6000611f2e611f27878a6137d5565b8990612190565b90506000611f3b826128fb565b9050611f478187612190565b611f519084613746565b9998505050505050505050565b600080611f706201518061016d613816565b611f7a8486613816565b611f849190613703565b90506117f661192382610af8565b6000818312611fa15781610af1565b5090919050565b6000670de0b6b3a7640000611fbd8484613816565b610af19190613703565b600080611fd384613835565b90506000818460200151611fe79190613746565b90506000611ff587846137d5565b90506000821380156120075750600081135b6120485760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610593565b6000612076612057848461359c565b6020880151612066908b6137d5565b612070908761359c565b90612190565b9050600061208c6120878486612190565b612976565b87519091506000906120a790670de0b6b3a764000090612190565b90506120b78161191d8486613746565b88604001516104459190613746565b6000806120d38784612a07565b905060006120e4611941888a6137d5565b9050670d529ae9e86000008113156121385760405162461bcd60e51b81526020600482015260176024820152761b585e081c1c9bdc1bdc9d1a5bdb88195e18d959591959604a1b6044820152606401610593565b6000612143826128fb565b9050856121508289612190565b61215a91906137d5565b9350670de0b6b3a76400008412156121845760405162461bcd60e51b815260040161059390613717565b50505095945050505050565b6000806121a5670de0b6b3a76400008561359c565b90508281816121b6576121b66136ed565b05949350505050565b6000610b298260001961359c565b6000806121da838561359c565b9050670de0b6b3a7640000816121b6565b6000806121f88385613816565b670de0b6b3a76400009004949350505050565b600082611fbd670de0b6b3a764000084613816565b60606117f68484600085612a4e565b6000680238fd42c5cf03ffff198212158015612254575068070c1cc73b00c800008213155b6122935760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610593565b60008212156122cb576122a88260000361222f565b6a0c097ce7bc90715b34b9f160241b816122c4576122c46136ed565b0592915050565b60006806f05b59d3b2000000831261230957506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61233f565b6803782dace9d9000000831261233b57506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061233f565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261238f5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126123cb576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261240557682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c400000841261243f576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261247857680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126124b15768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126124ea576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126125235768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080826001600160a01b0316846001600160a01b0316036126a85760405162461bcd60e51b815260206004820152601f60248201527f4a6f654c6962726172793a204944454e544943414c5f414444524553534553006044820152606401610593565b826001600160a01b0316846001600160a01b0316106126c85782846126cb565b83835b90925090506001600160a01b0382166127215760405162461bcd60e51b81526020600482015260186024820152774a6f654c6962726172793a205a45524f5f4144445245535360401b6044820152606401610593565b9250929050565b60008060006127378585612644565b5090506000806127488888886119dd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a991906138ae565b506001600160701b031691506001600160701b03169150826001600160a01b0316876001600160a01b0316146127e05780826127e3565b81815b90999098509650505050505050565b60008084116128515760405162461bcd60e51b815260206004820152602560248201527f4a6f654c6962726172793a20494e53554646494349454e545f494e5055545f416044820152641353d5539560da1b6064820152608401610593565b6000831180156128615750600082115b6128b85760405162461bcd60e51b815260206004820152602260248201527f4a6f654c6962726172793a20494e53554646494349454e545f4c495155494449604482015261545960f01b6064820152608401610593565b60006128c6856103e5613816565b905060006128d48483613816565b90506000826128e5876103e8613816565b6128ef91906136d5565b90506101738183613703565b6000670de0b6b3a764000082036129515760405162461bcd60e51b815260206004820152601a60248201527970726f706f7274696f6e206d757374206e6f74206265206f6e6560301b6044820152606401610593565b600061296f61296884670de0b6b3a7640000613746565b8490612190565b9050610af1815b60008082136129b75760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610593565b670c7d713b49da0000821380156129d55750670f43fc2c04ee000082125b156129f957670de0b6b3a76400006129ec83612b74565b816122c4576122c46136ed565b610b2982612c93565b919050565b600081831215612a445760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610593565b610af18284613746565b606082471015612aaf5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610593565b6001600160a01b0385163b612b065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610593565b600080866001600160a01b03168587604051612b2291906138f3565b60006040518083038185875af1925050503d8060008114612b5f576040519150601f19603f3d011682016040523d82523d6000602084013e612b64565b606091505b5091509150610173828286613036565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281612bb557612bb56136ed565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215612cd457612ccb826a0c097ce7bc90715b34b9f160241b81612cc557612cc56136ed565b05612c93565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312612d1f5772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312612d56576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612d9e576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612dd9576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312612e1057693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312612e4757690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312612e7c5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312612ea757680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612edc576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612f11576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312612f45576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312612f79576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281612fa257612fa26136ed565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b60608315613045575081610af1565b8251156130555782518084602001fd5b8160405162461bcd60e51b8152600401610593919061390f565b6001600160a01b038116811461308457600080fd5b50565b6000806000806080858703121561309d57600080fd5b84356130a88161306f565b935060208501356130b88161306f565b93969395505050506040820135916060013590565b60008083601f8401126130df57600080fd5b5081356001600160401b038111156130f657600080fd5b6020830191508360208260051b850101111561272157600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b038111828210171561315857634e487b7160e01b600052604160045260246000fd5b60405290565b600060a0828403121561317057600080fd5b60405160a081016001600160401b03811182821017156131a057634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b6000806000806000806000610140888a0312156131f757600080fd5b87356132028161306f565b965060208801356132128161306f565b9550604088013594506060880135935060808801356001600160401b0381111561323b57600080fd5b6132478a828b016130cd565b909450925061325b90508960a08a0161315e565b905092959891949750929550565b60008060008060008060a0878903121561328257600080fd5b863561328d8161306f565b9550602087013561329d8161306f565b9450604087013593506060870135925060808701356001600160401b038111156132c657600080fd5b6132d289828a016130cd565b979a9699509497509295939492505050565b600080600080600061012086880312156132fd57600080fd5b85356133088161306f565b945060208601356133188161306f565b93506040860135925060608601359150613335876080880161315e565b90509295509295909350565b6001600160a01b0391909116815260200190565b60008060006060848603121561336a57600080fd5b83516133758161306f565b60208501519093506133868161306f565b60408501519092506133978161306f565b809150509250925092565b60005b838110156133bd5781810151838201526020016133a5565b8381111561123b5750506000910152565b600081518084526133e68160208601602086016133a2565b601f01601f19169290920160200192915050565b60018060a01b038416815282602082015260606040820152600061013960608301846133ce565b6000806040838503121561343457600080fd5b505080516020909101519092909150565b918252602082015260400190565b8051612a028161306f565b6000610180828403121561347157600080fd5b613479613127565b825181526020830151602082015260408301516040820152606083015160608201526134a760808401613453565b608082015260a0838101519082015260c0808401519082015260e08084015190820152610100808401519082015261012080840151908201526101408084015190820152610160928301519281019290925250919050565b60006020828403121561351157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561354057613540613518565b500390565b6003811061356357634e487b7160e01b600052602160045260246000fd5b9052565b608081016135758287613545565b6001600160a01b039485166020830152929093166040840152606090920191909152919050565b60006001600160ff1b03818413828413808216868404861116156135c2576135c2613518565b600160ff1b60008712828116878305891216156135e1576135e1613518565b600087129250878205871284841616156135fd576135fd613518565b8785058712818416161561361357613613613518565b505050929093029392505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561364957600080fd5b8135610af18161306f565b6001600160a01b039485168152602081019390935292166040820152606081019190915260800190565b6020808252601590820152740d2dcecc2d8d2c840c2e0e0e4def040c2e0e0e4def605b1b604082015260600190565b606081016136bb8286613545565b6001600160a01b0393909316602082015260400152919050565b600082198211156136e8576136e8613518565b500190565b634e487b7160e01b600052601260045260246000fd5b600082613712576137126136ed565b500490565b60208082526015908201527465786368616e676520726174652062656c6f77203160581b604082015260600190565b60008083128015600160ff1b85018412161561376457613764613518565b6001600160ff1b038401831381161561377f5761377f613518565b50500390565b600082613794576137946136ed565b600160ff1b8214600019841416156137ae576137ae613518565b500590565b6000602082840312156137c557600080fd5b81518015158114610af157600080fd5b600080821280156001600160ff1b03849003851316156137f7576137f7613518565b600160ff1b839003841281161561381057613810613518565b50500190565b600081600019048311821515161561383057613830613518565b500290565b6000600160ff1b820161384a5761384a613518565b5060000390565b60006001820161386357613863613518565b5060010190565b84815283602082015260018060a01b038316604082015260806060820152600061018f60808301846133ce565b80516001600160701b0381168114612a0257600080fd5b6000806000606084860312156138c357600080fd5b6138cc84613897565b92506138da60208501613897565b9150604084015163ffffffff8116811461339757600080fd5b600082516139058184602087016133a2565b9190910192915050565b602081526000610af160208301846133ce56fec717020614c269674c210a910c330e6517f1e7b048cc60f1361ab34485edd669a2646970667358221220f09094c9a7c8107c411a861e4275c3eae2748d4909401c37a4240c85cfa2faf464736f6c634300080f0033";
519
+ "0x60a06040523480156200001157600080fd5b5060405162003f0b38038062003f0b833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b608051613e5c620000af6000396000818160e601528181611656015281816116b80152818161204601526120890152613e5c6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80637eb6953c1161005b5780637eb6953c146100ce5780638a38466e146100e157806392126dab14610120578063d8cc26aa1461013357600080fd5b806321aab8591461008257806322f7feb9146100a85780636c2f5256146100bb575b600080fd5b6100956100903660046135db565b610146565b6040519081526020015b60405180910390f35b6100956100b6366004613732565b61015d565b6100956100c93660046137c1565b61017c565b6100956100dc36600461383d565b610199565b6101087f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161009f565b61009561012e36600461383d565b6101b4565b6100956101413660046135db565b6101c5565b6000610154858585856101d5565b95945050505050565b600061017088888888888888600161031a565b98975050505050505050565b600061018e87878787878760016103b9565b979650505050505050565b60006101aa86868686866001610482565b9695505050505050565b60006101aa868686868660016106e8565b6000610154858585856001610923565b600080846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610216573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023a919061389a565b92505050846001600160a01b031663d8e763c1828661025a338b89610ba3565b6040518463ffffffff1660e01b81526004016102789392919061393f565b60408051808303816000875af1158015610296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ba9190613967565b5050856001600160a01b03167fc717020614c269674c210a910c330e6517f1e7b048cc60f1361ab34485edd6696102f086610bd6565b6102f985610c09565b6040805192835260208301919091520160405180910390a250949350505050565b6000806000896001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561035d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610381919061389a565b9250509150600061039882848c60018c8c8b610c26565b90506103a98c8c838c8a6000610482565b9c9b505050505050505050505050565b600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156103fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041e919061389a565b505090506000610432828a8a600188610923565b90506104748a83838a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201829052509250610f10915050565b9a9950505050505050505050565b6000806000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e9919061389a565b6040517f39e718f60000000000000000000000000000000000000000000000000000000081526000600482018190529395509093506001600160a01b038b1691506339e718f69060240161018060405180830381865afa158015610551573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105759190613996565b905061059661058c846001600160a01b031661118d565b82908a428a6111f1565b509350868410156105ee5760405162461bcd60e51b815260206004820152601360248201527f696e73756666696369656e74205954206f75740000000000000000000000000060448201526064015b60405180910390fd5b8415610609576106096001600160a01b03841633848b611432565b886001600160a01b031663d8e763c183866106248e8c6114c0565b6040518463ffffffff1660e01b81526004016106429392919061393f565b60408051808303816000875af1158015610660573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106849190613967565b5050896001600160a01b03167fc717020614c269674c210a910c330e6517f1e7b048cc60f1361ab34485edd6696106ba86610bd6565b6106c38b610c09565b6040805192835260208301919091520160405180910390a25050509695505050505050565b6040517f39e718f60000000000000000000000000000000000000000000000000000000081526000600482018190529081906001600160a01b038816906339e718f69060240161018060405180830381865afa15801561074c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107709190613996565b9050600080886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156107b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d7919061389a565b92505091506107fb6107f1836001600160a01b031661118d565b84908a428a6114ef565b5093508684111561084e5760405162461bcd60e51b815260206004820152601260248201527f65786365656420595420696e206c696d6974000000000000000000000000000060448201526064016105e5565b8415610869576108696001600160a01b038216338387611432565b886001600160a01b0316637bb0e71082866108848e8d611637565b6040518463ffffffff1660e01b81526004016108a29392919061393f565b60408051808303816000875af11580156108c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e49190613967565b5050896001600160a01b03167fc717020614c269674c210a910c330e6517f1e7b048cc60f1361ab34485edd66961091a86610c09565b6106c38b610bd6565b6000806000866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098a919061389a565b925050915083156109aa576109aa6001600160a01b038216338389611432565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038981166004830152600091908416906370a0823190602401602060405180830381865afa158015610a0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a319190613a37565b9050876001600160a01b0316637bb0e7108389610a4e8d8b611637565b6040518463ffffffff1660e01b8152600401610a6c9392919061393f565b60408051808303816000875af1158015610a8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aae9190613967565b50506040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038a811660048301528291908516906370a0823190602401602060405180830381865afa158015610b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b369190613a37565b610b409190613a66565b9350886001600160a01b03167fc717020614c269674c210a910c330e6517f1e7b048cc60f1361ab34485edd669610b7689610c09565b610b7f87610bd6565b6040805192835260208301919091520160405180910390a250505095945050505050565b60606000848484604051602001610bbd9493929190613a9f565b60405160208183030381529060405290505b9392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115610c0557600080fd5b5090565b6000610c1482610bd6565b610c2090600019613ad4565b92915050565b6000806001849003610c7e578215610c7757610c7733308988886000818110610c5157610c51613b74565b9050602002016020810190610c669190613b8a565b6001600160a01b0316929190611432565b5085610d1b565b8215610cd857610cd833610cc487878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061164f92505050565b8988886000818110610c5157610c51613b74565b610d188585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508b92503091506116b09050565b90505b60008585610d2a600182613a66565b818110610d3957610d39613b74565b9050602002016020810190610d4e9190613b8a565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038b81166004830152602482018590529192509082169063095ea7b3906044016020604051808303816000875af1158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190613ba7565b506040517f20e8c5650000000000000000000000000000000000000000000000000000000081526001600160a01b038b81166004830152828116602483015260448201849052606482018990528a16906320e8c565906084016020604051808303816000875af1158015610e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7a9190613a37565b9250886001600160a01b031686866000818110610e9957610e99613b74565b9050602002016020810190610eae9190613b8a565b6001600160a01b0316336001600160a01b03167f9a46898979f8e41b23cc1fa2b4875c37a6e8c890596f5d4e3c3199f3cf7556b48b87604051610efb929190918252602082015260400190565b60405180910390a45050979650505050505050565b60008115610f2d57610f2d6001600160a01b038716338888611432565b600083600081518110610f4257610f42613b74565b602002602001015190508351600103610ff0576040517fa2bbcf130000000000000000000000000000000000000000000000000000000081526001600160a01b03898116600483015282811660248301526044820187905288169063a2bbcf13906064016020604051808303816000875af1158015610fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe99190613a37565b91506110fc565b6000876001600160a01b031663a2bbcf1361100a8761164f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0391821660048201529085166024820152600160448201526064016020604051808303816000875af1158015611077573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109b9190613a37565b90506110a885828b6116b0565b9250858310156110fa5760405162461bcd60e51b815260206004820152601060248201527f696e73756666696369656e74206f75740000000000000000000000000000000060448201526064016105e5565b505b836001855161110b9190613a66565b8151811061111b5761111b613b74565b60200260200101516001600160a01b0316876001600160a01b0316336001600160a01b03167f04b1fcce47c6812ab96e0c8493a043d013e688798285effca7507448bc763dea898660405161117a929190918252602082015260400190565b60405180910390a4509695505050505050565b6000816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c209190613a37565b6000806111fd8361171c565b6112495760405162461bcd60e51b815260206004820152601560248201527f696e76616c696420617070726f7820617070726f78000000000000000000000060448201526064016105e5565b61128b6040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081525090565b6000611298898988611744565b90506000198560200151036112bf576112b989600001518260200151611897565b60208601525b6112c988886118b7565b60c083015260005b85606001518110156113df576112e781876118c3565b8084528a5160808501516112fd92859291611922565b6080850152151560a0840181905261132757825161131d90600190613a66565b60208701526112d1565b611340826113388560000151610c09565b8c9190611975565b506020840181905261135190611ab2565b6040840181905283516113649190613a66565b6060840181905260c0840151106113c35782518652606083015160c08401516080880151600092611396929091611ac1565b905080156113bd57835160608501516113b0908c90611af5565b9550955050505050611428565b506113d7565b82516113d190600190613a66565b60208701525b6001016112d1565b5060405162461bcd60e51b815260206004820152600b60248201527f617070726f78206661696c00000000000000000000000000000000000000000060448201526064016105e5565b9550959350505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526114ba908590611b01565b50505050565b6060600183836040516020016114d893929190613bc9565b604051602081830303815290604052905092915050565b6000806114fb8361171c565b6115475760405162461bcd60e51b815260206004820152601560248201527f696e76616c696420617070726f7820617070726f78000000000000000000000060448201526064016105e5565b6000611554888887611744565b905060001984602001510361157557875161156f9082611beb565b60208501525b600061158188886118b7565b905060005b85606001518110156113df57600061159e82886118c3565b905060006115b7856115af84610bd6565b8e9190611975565b50905060006115c582611ca2565b905060006115d38285613a66565b905085811061161a57838a60200181815250506115f581878c60800151611cb9565b1561161557836116058e83611af5565b9850985050505050505050611428565b611628565b611625846001613bf1565b8a525b84600101945050505050611586565b6060600283836040516020016114d893929190613bc9565b6000610c207f00000000000000000000000000000000000000000000000000000000000000008360008151811061168857611688613b74565b6020026020010151846001815181106116a3576116a3613b74565b6020026020010151611ce7565b6000806116de7f00000000000000000000000000000000000000000000000000000000000000008587611dd8565b90506116eb818685611f63565b80600182516116fa9190613a66565b8151811061170a5761170a613b74565b60200260200101519150509392505050565b60008160200151826000015111158015610c2057505060800151670de0b6b3a7640000101590565b61176f6040518060800160405280600081526020016000815260200160008152602001600081525090565b61010084015182106117c35760405162461bcd60e51b815260206004820152600e60248201527f6d61726b6574206578706972656400000000000000000000000000000000000060448201526064016105e5565b6000828561010001516117d69190613a66565b90506117e28582612158565b825260208501516117f49085906121e5565b602083015284511580159061180c5750602082015115155b6118585760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206d61726b657420737461746500000000000000000000000060448201526064016105e5565b6118768560000151866101400151846020015185600001518561221c565b604083015260c085015161188a90826122c9565b6060830152509392505050565b600060016118ad6118a885856122fd565b611ab2565b610bcf9190613a66565b6000610bcf8383612313565b6000821580156118d65750604082015115155b156118e657506040810151610c20565b6020820151825111156118fe57506020810151610c20565b6020820151825160029161191191613bf1565b61191b9190613c1f565b9050610c20565b6000808284116119375750600190508161196c565b600061194c8661194687610c09565b89612332565b90506000811261196357600185925092505061196c565b60008492509250505b94509492505050565b600080600061199786600001518660200151876000015188604001518861243c565b905060006119ad6119a8868461253c565b61256b565b60608701519091506000861315611a485760006119ca848361253c565b9050670de0b6b3a7640000811215611a245760405162461bcd60e51b815260206004820152601560248201527f65786368616e676520726174652062656c6f772031000000000000000000000060448201526064016105e5565b611a40611a3983670de0b6b3a7640000613c33565b8490612579565b915050611a75565b611a7281611a5e81670de0b6b3a7640000613c33565b611a689085613ad4565b6119a89190613c8b565b90505b6064611a85896101200151610bd6565b611a8f9083613ad4565b611a999190613c8b565b9350611aa58183613c33565b9450505050935093915050565b600080821215610c0557600080fd5b6000828411158015611aed5750611ae983611ae484670de0b6b3a7640000613a66565b612597565b8410155b949350505050565b6000610bcf83836125b7565b6000611b56826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166125cc9092919063ffffffff16565b805190915015611be65780806020019051810190611b749190613ba7565b611be65760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016105e5565b505050565b600080611c32611c2d84600001518560400151611c1d8760600151670de0b6b3a764000061257990919063ffffffff16565b611c279190613c33565b90612579565b6125db565b90506000611c52611c4b670de0b6b3a764000084613cb9565b839061253c565b90506000611c70856020015187611c699190613cb9565b8390612579565b90506000611c7e8288613c33565b90506103e8611c8c82611ab2565b611c98906103e7613d11565b61018e9190613c1f565b6000808213610c0557611cb482613d30565b610c20565b6000828410158015611aed5750611cdc83611ae484670de0b6b3a7640000613bf1565b909311159392505050565b6000806000611cf68585612af2565b6040516bffffffffffffffffffffffff19606084811b8216602084015283901b1660348201529193509150869060480160405160208183030381529060405280519060200120604051602001611db69291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b6bffffffffffffffffffffffff1916600183015260158201527f0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b6060600282511015611e2c5760405162461bcd60e51b815260206004820152601860248201527f4a6f654c6962726172793a20494e56414c49445f50415448000000000000000060448201526064016105e5565b815167ffffffffffffffff811115611e4657611e46613666565b604051908082528060200260200182016040528015611e6f578160200160208202803683370190505b5090508281600081518110611e8657611e86613b74565b60200260200101818152505060005b60018351611ea39190613a66565b811015611f5b57600080611ef687868581518110611ec357611ec3613b74565b602002602001015187866001611ed99190613bf1565b81518110611ee957611ee9613b74565b6020026020010151612bdb565b91509150611f1e848481518110611f0f57611f0f613b74565b60200260200101518383612cb3565b84611f2a856001613bf1565b81518110611f3a57611f3a613b74565b60200260200101818152505050508080611f5390613d4c565b915050611e95565b509392505050565b60005b60018351611f749190613a66565b8110156114ba57600080848381518110611f9057611f90613b74565b602002602001015185846001611fa69190613bf1565b81518110611fb657611fb6613b74565b6020026020010151915091506000611fce8383612af2565b509050600087611fdf866001613bf1565b81518110611fef57611fef613b74565b60200260200101519050600080836001600160a01b0316866001600160a01b03161461201d57826000612021565b6000835b91509150600060028a516120359190613a66565b88106120415788612082565b6120827f0000000000000000000000000000000000000000000000000000000000000000878c6120728c6002613bf1565b815181106116a3576116a3613b74565b90506120af7f00000000000000000000000000000000000000000000000000000000000000008888611ce7565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156120ec576020820181803683370190505b506040518563ffffffff1660e01b815260040161210c9493929190613d66565b600060405180830381600087803b15801561212657600080fd5b505af115801561213a573d6000803e3d6000fd5b5050505050505050505050808061215090613d4c565b915050611f66565b600061216382610bd6565b61217a6121756201518061016d613d11565b610bd6565b8460a001516121899190613ad4565b6121939190613c8b565b905060008113610c205760405162461bcd60e51b815260206004820152601460248201527f726174655363616c617220756e646572666c6f7700000000000000000000000060448201526064016105e5565b600080600083126121f75760016121fb565b6000195b90506122126121758561220d86611ca2565b612313565b611aed9082613ad4565b60008061222986846122c9565b9050670de0b6b3a76400008112156122835760405162461bcd60e51b815260206004820152601560248201527f65786368616e676520726174652062656c6f772031000000000000000000000060448201526064016105e5565b6000612299612292878a613cb9565b899061253c565b905060006122a682612def565b90506122b2818761253c565b6122bc9084613c33565b9998505050505050505050565b6000806122db6201518061016d613d11565b6122e58486613d11565b6122ef9190613c1f565b9050611aed611c2d82610bd6565b600081831261230c5781610bcf565b5090919050565b6000670de0b6b3a76400006123288484613d11565b610bcf9190613c1f565b60008061233e84613d30565b905060008184602001516123529190613c33565b905060006123608784613cb9565b90506000821380156123725750600081135b6123be5760405162461bcd60e51b815260206004820152601260248201527f696e76616c6964207074546f4d61726b6574000000000000000000000000000060448201526064016105e5565b60006123ec6123cd8484613ad4565b60208801516123dc908b613cb9565b6123e69087613ad4565b9061253c565b905060006124026123fd848661253c565b612e6d565b875190915060009061241d90670de0b6b3a76400009061253c565b905061242d81611c278486613c33565b88604001516104749190613c33565b6000806124498784612f0e565b9050600061245a611c4b888a613cb9565b9050670d529ae9e86000008113156124b45760405162461bcd60e51b815260206004820152601760248201527f6d61782070726f706f7274696f6e20657863656564656400000000000000000060448201526064016105e5565b60006124bf82612def565b9050856124cc828961253c565b6124d69190613cb9565b9350670de0b6b3a76400008412156125305760405162461bcd60e51b815260206004820152601560248201527f65786368616e676520726174652062656c6f772031000000000000000000000060448201526064016105e5565b50505095945050505050565b600080612551670de0b6b3a764000085613ad4565b905082818161256257612562613c09565b05949350505050565b6000610c2082600019613ad4565b6000806125868385613ad4565b9050670de0b6b3a764000081612562565b6000806125a48385613d11565b670de0b6b3a76400009004949350505050565b600082612328670de0b6b3a764000084613d11565b6060611aed8484600085612f6a565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc702bd3a30fc00008212158015612616575068070c1cc73b00c800008213155b6126625760405162461bcd60e51b815260206004820152601060248201527f496e76616c6964206578706f6e656e740000000000000000000000000000000060448201526064016105e5565b600082121561269b57612677826000036125db565b6ec097ce7bc90715b34b9f10000000008161269457612694613c09565b0592915050565b60006806f05b59d3b200000083126126f157507ffffffffffffffffffffffffffffffffffffffffffffffff90fa4a62c4e00000090910190770195e54c5dd42177f53a27172fa9ec63026282700000000061273d565b6803782dace9d9000000831261273957507ffffffffffffffffffffffffffffffffffffffffffffffffc87d2531627000000909101906b1425982cf597cd205cef738061273d565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126127a3577fffffffffffffffffffffffffffffffffffffffffffffff5287143a539e0000009093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126127f5577fffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf0000009093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412612845577fffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e78000009093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412612895577fffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c000009093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126128e4577ffffffffffffffffffffffffffffffffffffffffffffffff5287143a539e000009093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412612933577ffffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf000009093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412612982577ffffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e7800009093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126129d1577ffffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c00009093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080826001600160a01b0316846001600160a01b031603612b565760405162461bcd60e51b815260206004820152601f60248201527f4a6f654c6962726172793a204944454e544943414c5f4144445245535345530060448201526064016105e5565b826001600160a01b0316846001600160a01b031610612b76578284612b79565b83835b90925090506001600160a01b038216612bd45760405162461bcd60e51b815260206004820152601860248201527f4a6f654c6962726172793a205a45524f5f41444452455353000000000000000060448201526064016105e5565b9250929050565b6000806000612bea8585612af2565b509050600080612bfb888888611ce7565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5c9190613db2565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b031614612ca1578082612ca4565b81815b90999098509650505050505050565b6000808411612d2a5760405162461bcd60e51b815260206004820152602560248201527f4a6f654c6962726172793a20494e53554646494349454e545f494e5055545f4160448201527f4d4f554e5400000000000000000000000000000000000000000000000000000060648201526084016105e5565b600083118015612d3a5750600082115b612dac5760405162461bcd60e51b815260206004820152602260248201527f4a6f654c6962726172793a20494e53554646494349454e545f4c49515549444960448201527f545900000000000000000000000000000000000000000000000000000000000060648201526084016105e5565b6000612dba856103e5613d11565b90506000612dc88483613d11565b9050600082612dd9876103e8613d11565b612de39190613bf1565b905061018e8183613c1f565b6000670de0b6b3a76400008203612e485760405162461bcd60e51b815260206004820152601a60248201527f70726f706f7274696f6e206d757374206e6f74206265206f6e6500000000000060448201526064016105e5565b6000612e66612e5f84670de0b6b3a7640000613c33565b849061253c565b9050610bcf815b6000808213612ebe5760405162461bcd60e51b815260206004820152600d60248201527f6f7574206f6620626f756e64730000000000000000000000000000000000000060448201526064016105e5565b670c7d713b49da000082138015612edc5750670f43fc2c04ee000082125b15612f0057670de0b6b3a7640000612ef3836130a7565b8161269457612694613c09565b610c20826131df565b919050565b600081831215612f605760405162461bcd60e51b815260206004820152600860248201527f6e6567617469766500000000000000000000000000000000000000000000000060448201526064016105e5565b610bcf8284613c33565b606082471015612fe25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016105e5565b6001600160a01b0385163b6130395760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105e5565b600080866001600160a01b031685876040516130559190613df7565b60006040518083038185875af1925050503d8060008114613092576040519150601f19603f3d011682016040523d82523d6000602084013e613097565b606091505b509150915061018e82828661358a565b670de0b6b3a7640000026000806ec097ce7bc90715b34b9f1000000000808401907fffffffffffffffffffffffffffffffffff3f68318436f8ea4cb460f000000000850102816130f9576130f9613c09565b05905060006ec097ce7bc90715b34b9f100000000082800205905081806ec097ce7bc90715b34b9f100000000081840205915060038205016ec097ce7bc90715b34b9f100000000082840205915060058205016ec097ce7bc90715b34b9f100000000082840205915060078205016ec097ce7bc90715b34b9f100000000082840205915060098205016ec097ce7bc90715b34b9f1000000000828402059150600b8205016ec097ce7bc90715b34b9f1000000000828402059150600d8205016ec097ce7bc90715b34b9f1000000000828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121561322157613218826ec097ce7bc90715b34b9f10000000008161321257613212613c09565b056131df565b60000392915050565b60007e1600ef3172e58d2e933ec884fde10064c63b5372d805e203c0000000000000831261327257770195e54c5dd42177f53a27172fa9ec630262827000000000830592506806f05b59d3b2000000015b73011798004d755d3c8bc8e03204cf44619e00000083126132aa576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff008400083126132f2576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a700831261332d576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261336457693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e2831261339b57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126133d05768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb4174612111083126133fb57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312613430576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312613465576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312613499576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126134cd576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d6310000080860302816134f6576134f6613c09565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b60608315613599575081610bcf565b8251156135a95782518084602001fd5b8160405162461bcd60e51b81526004016105e59190613e13565b6001600160a01b03811681146135d857600080fd5b50565b600080600080608085870312156135f157600080fd5b84356135fc816135c3565b9350602085013561360c816135c3565b93969395505050506040820135916060013590565b60008083601f84011261363357600080fd5b50813567ffffffffffffffff81111561364b57600080fd5b6020830191508360208260051b8501011115612bd457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051610180810167ffffffffffffffff811182821017156136ae57634e487b7160e01b600052604160045260246000fd5b60405290565b600060a082840312156136c657600080fd5b60405160a0810181811067ffffffffffffffff821117156136f757634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b6000806000806000806000610140888a03121561374e57600080fd5b8735613759816135c3565b96506020880135613769816135c3565b95506040880135945060608801359350608088013567ffffffffffffffff81111561379357600080fd5b61379f8a828b01613621565b90945092506137b390508960a08a016136b4565b905092959891949750929550565b60008060008060008060a087890312156137da57600080fd5b86356137e5816135c3565b955060208701356137f5816135c3565b94506040870135935060608701359250608087013567ffffffffffffffff81111561381f57600080fd5b61382b89828a01613621565b979a9699509497509295939492505050565b6000806000806000610120868803121561385657600080fd5b8535613861816135c3565b94506020860135613871816135c3565b9350604086013592506060860135915061388e87608088016136b4565b90509295509295909350565b6000806000606084860312156138af57600080fd5b83516138ba816135c3565b60208501519093506138cb816135c3565b60408501519092506138dc816135c3565b809150509250925092565b60005b838110156139025781810151838201526020016138ea565b838111156114ba5750506000910152565b6000815180845261392b8160208601602086016138e7565b601f01601f19169290920160200192915050565b6001600160a01b03841681528260208201526060604082015260006101546060830184613913565b6000806040838503121561397a57600080fd5b505080516020909101519092909150565b8051612f09816135c3565b600061018082840312156139a957600080fd5b6139b161367c565b825181526020830151602082015260408301516040820152606083015160608201526139df6080840161398b565b608082015260a0838101519082015260c0808401519082015260e08084015190820152610100808401519082015261012080840151908201526101408084015190820152610160928301519281019290925250919050565b600060208284031215613a4957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015613a7857613a78613a50565b500390565b60038110613a9b57634e487b7160e01b600052602160045260246000fd5b9052565b60808101613aad8287613a7d565b6001600160a01b039485166020830152929093166040840152606090920191909152919050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615613b1557613b15613a50565b600160ff1b6000871286820588128184161615613b3457613b34613a50565b60008712925087820587128484161615613b5057613b50613a50565b87850587128184161615613b6657613b66613a50565b505050929093029392505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215613b9c57600080fd5b8135610bcf816135c3565b600060208284031215613bb957600080fd5b81518015158114610bcf57600080fd5b60608101613bd78286613a7d565b6001600160a01b0393909316602082015260400152919050565b60008219821115613c0457613c04613a50565b500190565b634e487b7160e01b600052601260045260246000fd5b600082613c2e57613c2e613c09565b500490565b600080831283600160ff1b01831281151615613c5157613c51613a50565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018313811615613c8557613c85613a50565b50500390565b600082613c9a57613c9a613c09565b6000198314600160ff1b83141615613cb457613cb4613a50565b500590565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615613cf357613cf3613a50565b82600160ff1b038412811615613d0b57613d0b613a50565b50500190565b6000816000190483118215151615613d2b57613d2b613a50565b500290565b6000600160ff1b8203613d4557613d45613a50565b5060000390565b60006000198203613d5f57613d5f613a50565b5060010190565b8481528360208201526001600160a01b03831660408201526080606082015260006101aa6080830184613913565b80516dffffffffffffffffffffffffffff81168114612f0957600080fd5b600080600060608486031215613dc757600080fd5b613dd084613d94565b9250613dde60208501613d94565b9150604084015163ffffffff811681146138dc57600080fd5b60008251613e098184602087016138e7565b9190910192915050565b602081526000610bcf602083018461391356fea2646970667358221220aa29f8b8c78b06b3233889182a66c7d5e7b86d4315d44de9437b00444cdca36364736f6c634300080d0033";
520
520
 
521
521
  type ActionYTConstructorParams =
522
522
  | [signer?: Signer]
@@ -0,0 +1,140 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Contract, Signer, utils } from "ethers";
6
+ import { Provider } from "@ethersproject/providers";
7
+ import type { CelerReceiver, CelerReceiverInterface } from "../CelerReceiver";
8
+
9
+ const _abi = [
10
+ {
11
+ inputs: [],
12
+ name: "celerMessageBus",
13
+ outputs: [
14
+ {
15
+ internalType: "address",
16
+ name: "",
17
+ type: "address",
18
+ },
19
+ ],
20
+ stateMutability: "view",
21
+ type: "function",
22
+ },
23
+ {
24
+ inputs: [
25
+ {
26
+ internalType: "address",
27
+ name: "_sender",
28
+ type: "address",
29
+ },
30
+ {
31
+ internalType: "uint64",
32
+ name: "_srcChainId",
33
+ type: "uint64",
34
+ },
35
+ {
36
+ internalType: "bytes",
37
+ name: "_message",
38
+ type: "bytes",
39
+ },
40
+ {
41
+ internalType: "address",
42
+ name: "",
43
+ type: "address",
44
+ },
45
+ ],
46
+ name: "executeMessage",
47
+ outputs: [
48
+ {
49
+ internalType: "enum ICelerMessageReceiverApp.ExecutionStatus",
50
+ name: "",
51
+ type: "uint8",
52
+ },
53
+ ],
54
+ stateMutability: "payable",
55
+ type: "function",
56
+ },
57
+ {
58
+ inputs: [],
59
+ name: "governanceManager",
60
+ outputs: [
61
+ {
62
+ internalType: "address",
63
+ name: "",
64
+ type: "address",
65
+ },
66
+ ],
67
+ stateMutability: "view",
68
+ type: "function",
69
+ },
70
+ {
71
+ inputs: [],
72
+ name: "originAddress",
73
+ outputs: [
74
+ {
75
+ internalType: "address",
76
+ name: "",
77
+ type: "address",
78
+ },
79
+ ],
80
+ stateMutability: "view",
81
+ type: "function",
82
+ },
83
+ {
84
+ inputs: [],
85
+ name: "originChainId",
86
+ outputs: [
87
+ {
88
+ internalType: "uint256",
89
+ name: "",
90
+ type: "uint256",
91
+ },
92
+ ],
93
+ stateMutability: "view",
94
+ type: "function",
95
+ },
96
+ {
97
+ inputs: [
98
+ {
99
+ internalType: "address",
100
+ name: "_celerMessageBus",
101
+ type: "address",
102
+ },
103
+ ],
104
+ name: "setCelerMessageBus",
105
+ outputs: [],
106
+ stateMutability: "nonpayable",
107
+ type: "function",
108
+ },
109
+ {
110
+ inputs: [
111
+ {
112
+ internalType: "address",
113
+ name: "_addr",
114
+ type: "address",
115
+ },
116
+ {
117
+ internalType: "uint256",
118
+ name: "_chainId",
119
+ type: "uint256",
120
+ },
121
+ ],
122
+ name: "setOrigin",
123
+ outputs: [],
124
+ stateMutability: "nonpayable",
125
+ type: "function",
126
+ },
127
+ ];
128
+
129
+ export class CelerReceiver__factory {
130
+ static readonly abi = _abi;
131
+ static createInterface(): CelerReceiverInterface {
132
+ return new utils.Interface(_abi) as CelerReceiverInterface;
133
+ }
134
+ static connect(
135
+ address: string,
136
+ signerOrProvider: Signer | Provider
137
+ ): CelerReceiver {
138
+ return new Contract(address, _abi, signerOrProvider) as CelerReceiver;
139
+ }
140
+ }
@@ -0,0 +1,67 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Contract, Signer, utils } from "ethers";
6
+ import { Provider } from "@ethersproject/providers";
7
+ import type { CelerSender, CelerSenderInterface } from "../CelerSender";
8
+
9
+ const _abi = [
10
+ {
11
+ inputs: [
12
+ {
13
+ internalType: "address",
14
+ name: "_address",
15
+ type: "address",
16
+ },
17
+ {
18
+ internalType: "uint256",
19
+ name: "_chainId",
20
+ type: "uint256",
21
+ },
22
+ ],
23
+ name: "addSidechainContract",
24
+ outputs: [],
25
+ stateMutability: "payable",
26
+ type: "function",
27
+ },
28
+ {
29
+ inputs: [],
30
+ name: "governanceManager",
31
+ outputs: [
32
+ {
33
+ internalType: "address",
34
+ name: "",
35
+ type: "address",
36
+ },
37
+ ],
38
+ stateMutability: "view",
39
+ type: "function",
40
+ },
41
+ {
42
+ inputs: [
43
+ {
44
+ internalType: "address",
45
+ name: "_celerMessageBus",
46
+ type: "address",
47
+ },
48
+ ],
49
+ name: "setCelerMessageBus",
50
+ outputs: [],
51
+ stateMutability: "nonpayable",
52
+ type: "function",
53
+ },
54
+ ];
55
+
56
+ export class CelerSender__factory {
57
+ static readonly abi = _abi;
58
+ static createInterface(): CelerSenderInterface {
59
+ return new utils.Interface(_abi) as CelerSenderInterface;
60
+ }
61
+ static connect(
62
+ address: string,
63
+ signerOrProvider: Signer | Provider
64
+ ): CelerSender {
65
+ return new Contract(address, _abi, signerOrProvider) as CelerSender;
66
+ }
67
+ }
@@ -295,7 +295,7 @@ const _abi = [
295
295
  ];
296
296
 
297
297
  const _bytecode =
298
- "0x60806040523480156200001157600080fd5b5060405162000ba638038062000ba6833981016040819052620000349162000127565b600362000042838262000220565b50600462000051828262000220565b505050620002ec565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b81604052838152602092508683858801011115620000e757600080fd5b600091505b838210156200010b5785820183015181830184015290820190620000ec565b838211156200011d5760008385830101525b9695505050505050565b600080604083850312156200013b57600080fd5b82516001600160401b03808211156200015357600080fd5b620001618683870162000070565b935060208501519150808211156200017857600080fd5b50620001878582860162000070565b9150509250929050565b600181811c90821680620001a657607f821691505b602082108103620001c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021b57600081815260208120601f850160051c81016020861015620001f65750805b601f850160051c820191505b81811015620002175782815560010162000202565b5050505b505050565b81516001600160401b038111156200023c576200023c6200005a565b62000254816200024d845462000191565b84620001cd565b602080601f8311600181146200028c5760008415620002735750858301515b600019600386901b1c1916600185901b17855562000217565b600085815260208120601f198616915b82811015620002bd578886015182559484019460019091019084016200029c565b5085821015620002dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6108aa80620002fc6000396000f3fe608060405234801561001057600080fd5b50600436106100995760003560e01c806306fdde031461009e578063095ea7b3146100bc57806318160ddd146100df57806323b872dd146100f1578063313ce56714610104578063395093511461011357806370a082311461012657806395d89b411461014f578063a457c2d714610157578063a9059cbb1461016a578063dd62ed3e1461017d575b600080fd5b6100a6610190565b6040516100b391906106e8565b60405180910390f35b6100cf6100ca366004610759565b610222565b60405190151581526020016100b3565b6002545b6040519081526020016100b3565b6100cf6100ff366004610783565b61023a565b604051601281526020016100b3565b6100cf610121366004610759565b61025e565b6100e36101343660046107bf565b6001600160a01b031660009081526020819052604090205490565b6100a661029d565b6100cf610165366004610759565b6102ac565b6100cf610178366004610759565b610343565b6100e361018b3660046107e1565b610351565b60606003805461019f90610814565b80601f01602080910402602001604051908101604052809291908181526020018280546101cb90610814565b80156102185780601f106101ed57610100808354040283529160200191610218565b820191906000526020600020905b8154815290600101906020018083116101fb57829003601f168201915b5050505050905090565b60003361023081858561037c565b5060019392505050565b6000336102488582856104a0565b61025385858561051a565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190610230908290869061029890879061084e565b61037c565b60606004805461019f90610814565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103365760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610253828686840361037c565b60003361023081858561051a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103de5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161032d565b6001600160a01b03821661043f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161032d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104ac8484610351565b9050600019811461051457818110156105075760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161032d565b610514848484840361037c565b50505050565b6001600160a01b03831661057e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161032d565b6001600160a01b0382166105e05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161032d565b6001600160a01b038316600090815260208190526040902054818110156106585760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161032d565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061068f90849061084e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106db91815260200190565b60405180910390a3610514565b600060208083528351808285015260005b81811015610715578581018301518582016040015282016106f9565b81811115610727576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461075457600080fd5b919050565b6000806040838503121561076c57600080fd5b6107758361073d565b946020939093013593505050565b60008060006060848603121561079857600080fd5b6107a18461073d565b92506107af6020850161073d565b9150604084013590509250925092565b6000602082840312156107d157600080fd5b6107da8261073d565b9392505050565b600080604083850312156107f457600080fd5b6107fd8361073d565b915061080b6020840161073d565b90509250929050565b600181811c9082168061082857607f821691505b60208210810361084857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561086f57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220b937c5b0c6f0369def6b1ba5513b94513093cc4a68eb08af5ee32733af944b8d64736f6c634300080f0033";
298
+ "0x60806040523480156200001157600080fd5b5060405162000c8138038062000c818339810160408190526200003491620001db565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b50505062000281565b828054620000769062000245565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013657600080fd5b81516001600160401b03808211156200015357620001536200010e565b604051601f8301601f19908116603f011681019082821181831017156200017e576200017e6200010e565b816040528381526020925086838588010111156200019b57600080fd5b600091505b83821015620001bf5785820183015181830184015290820190620001a0565b83821115620001d15760008385830101525b9695505050505050565b60008060408385031215620001ef57600080fd5b82516001600160401b03808211156200020757600080fd5b620002158683870162000124565b935060208501519150808211156200022c57600080fd5b506200023b8582860162000124565b9150509250929050565b600181811c908216806200025a57607f821691505b6020821081036200027b57634e487b7160e01b600052602260045260246000fd5b50919050565b6109f080620002916000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e391906107de565b60405180910390f35b6100ff6100fa36600461086d565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f366004610897565b610290565b604051601281526020016100e3565b6100ff61015136600461086d565b6102b4565b6101136101643660046108d3565b6001600160a01b031660009081526020819052604090205490565b6100d66102f3565b6100ff61019536600461086d565b610302565b6100ff6101a836600461086d565b6103b1565b6101136101bb3660046108f5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f590610928565b80601f016020809104026020016040519081016040528092919081815260200182805461022190610928565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103bf565b5060019392505050565b60003361029e858285610517565b6102a98585856105c7565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102ee90879061097b565b6103bf565b6060600480546101f590610928565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102a982868684036103bf565b6000336102868185856105c7565b6001600160a01b03831661043a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b0382166104b65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105c157818110156105b45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039b565b6105c184848484036103bf565b50505050565b6001600160a01b0383166106435760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b0382166106bf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b0383166000908152602081905260409020548181101561074e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061078590849061097b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107d191815260200190565b60405180910390a36105c1565b600060208083528351808285015260005b8181101561080b578581018301518582016040015282016107ef565b8181111561081d576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b80356001600160a01b038116811461086857600080fd5b919050565b6000806040838503121561088057600080fd5b61088983610851565b946020939093013593505050565b6000806000606084860312156108ac57600080fd5b6108b584610851565b92506108c360208501610851565b9150604084013590509250925092565b6000602082840312156108e557600080fd5b6108ee82610851565b9392505050565b6000806040838503121561090857600080fd5b61091183610851565b915061091f60208401610851565b90509250929050565b600181811c9082168061093c57607f821691505b602082108103610975577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600082198211156109b5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50019056fea2646970667358221220df1f136e7044e4d6fc7c697c8ee54f6843e1a374913d82ae07f4592b1487307664736f6c634300080d0033";
299
299
 
300
300
  type ERC20ConstructorParams =
301
301
  | [signer?: Signer]
@@ -157,7 +157,7 @@ const _abi = [
157
157
  type: "address[]",
158
158
  },
159
159
  ],
160
- name: "redeemDueIncome",
160
+ name: "redeemDueInterestAndRewards",
161
161
  outputs: [
162
162
  {
163
163
  internalType: "uint256[][]",
@@ -157,7 +157,7 @@ const _abi = [
157
157
  type: "address[]",
158
158
  },
159
159
  ],
160
- name: "redeemDueIncome",
160
+ name: "redeemDueInterestAndRewards",
161
161
  outputs: [
162
162
  {
163
163
  internalType: "uint256[][]",
@@ -175,50 +175,6 @@ const _abi = [
175
175
  name: "UpdateImpliedRate",
176
176
  type: "event",
177
177
  },
178
- {
179
- inputs: [
180
- {
181
- internalType: "address",
182
- name: "receiver",
183
- type: "address",
184
- },
185
- {
186
- internalType: "uint256",
187
- name: "scyDesired",
188
- type: "uint256",
189
- },
190
- {
191
- internalType: "uint256",
192
- name: "ptDesired",
193
- type: "uint256",
194
- },
195
- {
196
- internalType: "bytes",
197
- name: "data",
198
- type: "bytes",
199
- },
200
- ],
201
- name: "addLiquidity",
202
- outputs: [
203
- {
204
- internalType: "uint256",
205
- name: "lpToAccount",
206
- type: "uint256",
207
- },
208
- {
209
- internalType: "uint256",
210
- name: "scyUsed",
211
- type: "uint256",
212
- },
213
- {
214
- internalType: "uint256",
215
- name: "ptUsed",
216
- type: "uint256",
217
- },
218
- ],
219
- stateMutability: "nonpayable",
220
- type: "function",
221
- },
222
178
  {
223
179
  inputs: [
224
180
  {
@@ -286,6 +242,35 @@ const _abi = [
286
242
  stateMutability: "view",
287
243
  type: "function",
288
244
  },
245
+ {
246
+ inputs: [
247
+ {
248
+ internalType: "address",
249
+ name: "receiverScy",
250
+ type: "address",
251
+ },
252
+ {
253
+ internalType: "address",
254
+ name: "receiverPt",
255
+ type: "address",
256
+ },
257
+ ],
258
+ name: "burn",
259
+ outputs: [
260
+ {
261
+ internalType: "uint256",
262
+ name: "scyToAccount",
263
+ type: "uint256",
264
+ },
265
+ {
266
+ internalType: "uint256",
267
+ name: "ptToAccount",
268
+ type: "uint256",
269
+ },
270
+ ],
271
+ stateMutability: "nonpayable",
272
+ type: "function",
273
+ },
289
274
  {
290
275
  inputs: [],
291
276
  name: "decimals",
@@ -325,6 +310,25 @@ const _abi = [
325
310
  stateMutability: "view",
326
311
  type: "function",
327
312
  },
313
+ {
314
+ inputs: [
315
+ {
316
+ internalType: "address",
317
+ name: "receiver",
318
+ type: "address",
319
+ },
320
+ ],
321
+ name: "mint",
322
+ outputs: [
323
+ {
324
+ internalType: "uint256",
325
+ name: "",
326
+ type: "uint256",
327
+ },
328
+ ],
329
+ stateMutability: "nonpayable",
330
+ type: "function",
331
+ },
328
332
  {
329
333
  inputs: [],
330
334
  name: "name",
@@ -461,45 +465,6 @@ const _abi = [
461
465
  stateMutability: "nonpayable",
462
466
  type: "function",
463
467
  },
464
- {
465
- inputs: [
466
- {
467
- internalType: "address",
468
- name: "receiverScy",
469
- type: "address",
470
- },
471
- {
472
- internalType: "address",
473
- name: "receiverPt",
474
- type: "address",
475
- },
476
- {
477
- internalType: "uint256",
478
- name: "lpToRemove",
479
- type: "uint256",
480
- },
481
- {
482
- internalType: "bytes",
483
- name: "data",
484
- type: "bytes",
485
- },
486
- ],
487
- name: "removeLiquidity",
488
- outputs: [
489
- {
490
- internalType: "uint256",
491
- name: "scyToAccount",
492
- type: "uint256",
493
- },
494
- {
495
- internalType: "uint256",
496
- name: "ptToAccount",
497
- type: "uint256",
498
- },
499
- ],
500
- stateMutability: "nonpayable",
501
- type: "function",
502
- },
503
468
  {
504
469
  inputs: [
505
470
  {