@pendle/core-v2 3.0.0-beta-2 → 3.0.0-beta-3

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 (334) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  12. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.json +2 -2
  16. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  18. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  30. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  32. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  34. package/build/artifacts/contracts/core/Market/PendleExternalRewardDistributor.sol/PendleExternalRewardDistributor.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/Market/PendleExternalRewardDistributor.sol/PendleExternalRewardDistributor.json +2 -2
  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 +2 -2
  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/Market/v2/PendleMarketFactoryV2.sol/PendleMarketFactoryV2.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/v2/PendleMarketFactoryV2.sol/PendleMarketFactoryV2.json +2 -2
  42. package/build/artifacts/contracts/core/Market/v2/PendleMarketV2.sol/PendleMarketV2.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/Market/v2/PendleMarketV2.sol/PendleMarketV2.json +2 -2
  44. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ankr/PendleAnkrBNBSY.sol/PendleAnkrBNBSY.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ankr/PendleAnkrBNBSY.sol/PendleAnkrBNBSY.json +2 -2
  48. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraEthxBbAWethSY.sol/AuraEthxBbAWethSY.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraEthxBbAWethSY.sol/AuraEthxBbAWethSY.json +2 -2
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraSwEthBbAWethSYV2.sol/AuraSwEthBbAWethSYV2.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraSwEthBbAWethSYV2.sol/AuraSwEthBbAWethSYV2.json +2 -2
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.json +2 -2
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.json +2 -2
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.json +2 -2
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.json +2 -2
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethVethSY.sol/PendleAuraWethVethSY.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethVethSY.sol/PendleAuraWethVethSY.json +2 -2
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.json +2 -2
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWstethAnkreth.sol/PendleAuraWstethAnkreth.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWstethAnkreth.sol/PendleAuraWstethAnkreth.json +2 -2
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.json +2 -2
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkReceiver.sol/PendleChainlinkReceiver.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkReceiver.sol/PendleChainlinkReceiver.json +2 -2
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/Flux/FluxTokenLib.sol/FluxTokenLib.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/Flux/FluxTokenLib.sol/FluxTokenLib.json +2 -2
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/Flux/PendleFluxLendingSY.sol/PendleFluxLendingSY.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/Flux/PendleFluxLendingSY.sol/PendleFluxLendingSY.json +2 -2
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/PendleHlpSY.sol/PendleHlpSY.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/PendleHlpSY.sol/PendleHlpSY.json +2 -2
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleMantleStakedEthSY.sol/PendleMantleStakedEthSY.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleMantleStakedEthSY.sol/PendleMantleStakedEthSY.json +2 -2
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleOracleForSyProxy.sol/PendleOracleForSyProxy.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleOracleForSyProxy.sol/PendleOracleForSyProxy.json +2 -2
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.json +2 -2
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleBridgedLSDSY.sol/PendleBridgedLSDSY.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleBridgedLSDSY.sol/PendleBridgedLSDSY.json +2 -2
  98. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626SY.sol/PendleERC4626SY.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626SY.sol/PendleERC4626SY.json +2 -2
  100. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleEUSDSY.sol/PendleEUSDSY.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleEUSDSY.sol/PendleEUSDSY.json +2 -2
  102. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  103. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  104. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  105. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  106. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  107. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
  108. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  109. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.json +2 -2
  110. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWbEthSY.sol/PendleWbEthSY.dbg.json +1 -1
  111. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWbEthSY.sol/PendleWbEthSY.json +2 -2
  112. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  113. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  114. package/build/artifacts/contracts/core/StandardizedYield/implementations/Stader/PendleETHXSY.sol/PendleETHXSY.dbg.json +1 -1
  115. package/build/artifacts/contracts/core/StandardizedYield/implementations/Stader/PendleETHXSY.sol/PendleETHXSY.json +2 -2
  116. package/build/artifacts/contracts/core/StandardizedYield/implementations/Swell/PendleSwETH.sol/SwETHSY.dbg.json +1 -1
  117. package/build/artifacts/contracts/core/StandardizedYield/implementations/Swell/PendleSwETH.sol/SwETHSY.json +2 -2
  118. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/PendleThenaSY.sol/PendleThenaSY.dbg.json +1 -1
  119. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/PendleThenaSY.sol/PendleThenaSY.json +2 -2
  120. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  121. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  122. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  123. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  124. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  125. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  126. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  127. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  128. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  129. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  130. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  131. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  132. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  133. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +2 -50
  134. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +61 -1
  136. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +94 -20
  139. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  141. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +40 -0
  142. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +40 -0
  144. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +235 -21
  146. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/ILimitOrderCallee.dbg.json +1 -1
  147. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +1 -1
  148. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.json +43 -139
  149. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPOrderMixin.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPOrderMixin.json +33 -139
  151. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPOrderMixinType.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  153. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  156. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  157. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +1 -1
  158. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.json +2 -2
  159. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
  160. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +2 -2
  161. package/build/artifacts/contracts/limit/PendleOrderMixin.sol/PendleOrderMixin.dbg.json +1 -1
  162. package/build/artifacts/contracts/limit/PendleOrderMixin.sol/PendleOrderMixin.json +47 -153
  163. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  164. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  165. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  166. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  167. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +1 -1
  168. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +2 -2
  169. package/build/artifacts/contracts/offchain-helpers/PtAndLpToAsset.sol/PtAndLpToAsset.dbg.json +1 -1
  170. package/build/artifacts/contracts/offchain-helpers/PtAndLpToAsset.sol/PtAndLpToAsset.json +2 -2
  171. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  172. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  173. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  174. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  175. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  176. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  177. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  178. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  179. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  180. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  181. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  182. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  183. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  184. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  185. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  186. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  187. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
  188. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  189. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.json +2 -2
  190. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  191. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.json +2 -2
  192. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +1 -1
  193. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.json +2 -2
  194. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  195. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.json +2 -2
  196. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  197. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +63 -3
  198. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  199. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +18 -22
  200. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  201. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  202. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  203. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  204. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  205. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  206. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  207. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +2 -2
  208. package/build/artifacts/contracts/router/PendleRouterHelper.sol/RouterV2InterfaceForRouterHelper.dbg.json +1 -1
  209. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  210. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  211. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  212. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  213. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  214. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  215. package/build/artifacts/contracts/router/base/SimulateHelper.sol/SimulateHelper.dbg.json +4 -0
  216. package/build/artifacts/contracts/router/base/SimulateHelper.sol/SimulateHelper.json +69 -0
  217. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  218. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
  219. package/build/artifacts/contracts/router/swap-aggregator/oneinch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +1 -1
  220. package/contracts/core/libraries/Errors.sol +0 -3
  221. package/contracts/interfaces/IPActionAddRemoveLiq.sol +1 -1
  222. package/contracts/interfaces/IPActionMisc.sol +9 -2
  223. package/contracts/interfaces/IPLimitRouter.sol +15 -30
  224. package/contracts/limit/LimitMathCore.sol +54 -31
  225. package/contracts/limit/PendleLimitRouter.sol +3 -3
  226. package/contracts/limit/PendleOrderMixin.sol +172 -182
  227. package/contracts/router/ActionAddRemoveLiq.sol +3 -3
  228. package/contracts/router/ActionMisc.sol +16 -22
  229. package/contracts/router/PendleRouter.sol +84 -74
  230. package/contracts/router/base/MarketApproxLib.sol +1 -1
  231. package/contracts/router/base/SimulateHelper.sol +33 -0
  232. package/package.json +1 -1
  233. package/typechain-types/ActionAddRemoveLiq.ts +13 -10
  234. package/typechain-types/ActionMisc.ts +40 -14
  235. package/typechain-types/ActionSwapPT.ts +7 -4
  236. package/typechain-types/ActionSwapYT.ts +7 -4
  237. package/typechain-types/IPActionAddRemoveLiq.ts +13 -10
  238. package/typechain-types/IPActionMisc.ts +84 -14
  239. package/typechain-types/IPActionSwapPT.ts +7 -4
  240. package/typechain-types/IPActionSwapYT.ts +7 -4
  241. package/typechain-types/IPAllAction.ts +105 -32
  242. package/typechain-types/IPLimitRouter.ts +46 -176
  243. package/typechain-types/IPOrderMixin.ts +44 -174
  244. package/typechain-types/PendleLimitRouter.ts +47 -177
  245. package/typechain-types/PendleOrderMixin.ts +45 -175
  246. package/typechain-types/SimulateHelper.ts +146 -0
  247. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +62 -2
  248. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  249. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  250. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  251. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  252. package/typechain-types/factories/ActionMisc__factory.ts +17 -21
  253. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  254. package/typechain-types/factories/ActionSwapPT__factory.ts +41 -1
  255. package/typechain-types/factories/ActionSwapYT__factory.ts +41 -1
  256. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  257. package/typechain-types/factories/AuraEthxBbAWethSY__factory.ts +1 -1
  258. package/typechain-types/factories/AuraSwEthBbAWethSYV2__factory.ts +1 -1
  259. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  260. package/typechain-types/factories/Errors__factory.ts +1 -49
  261. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +61 -1
  262. package/typechain-types/factories/IPActionMisc__factory.ts +94 -20
  263. package/typechain-types/factories/IPActionSwapPT__factory.ts +40 -0
  264. package/typechain-types/factories/IPActionSwapYT__factory.ts +40 -0
  265. package/typechain-types/factories/IPAllAction__factory.ts +235 -21
  266. package/typechain-types/factories/IPLimitRouter__factory.ts +43 -139
  267. package/typechain-types/factories/IPOrderMixin__factory.ts +33 -139
  268. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  269. package/typechain-types/factories/PendleAnkrBNBSY__factory.ts +1 -1
  270. package/typechain-types/factories/PendleArbitrumStakedEthSY__factory.ts +1 -1
  271. package/typechain-types/factories/PendleAuraBbAWethSwethSY__factory.ts +1 -1
  272. package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1 -1
  273. package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1 -1
  274. package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1 -1
  275. package/typechain-types/factories/PendleAuraWethVethSY__factory.ts +1 -1
  276. package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1 -1
  277. package/typechain-types/factories/PendleAuraWstethAnkreth__factory.ts +1 -1
  278. package/typechain-types/factories/PendleBridgedLSDSY__factory.ts +1 -1
  279. package/typechain-types/factories/PendleCamelotV1VolatileSY__factory.ts +1 -1
  280. package/typechain-types/factories/PendleChainlinkReceiver__factory.ts +1 -1
  281. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  282. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  283. package/typechain-types/factories/PendleERC4626SY__factory.ts +1 -1
  284. package/typechain-types/factories/PendleETHXSY__factory.ts +1 -1
  285. package/typechain-types/factories/PendleEUSDSY__factory.ts +1 -1
  286. package/typechain-types/factories/PendleExternalRewardDistributor__factory.ts +1 -1
  287. package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
  288. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  289. package/typechain-types/factories/PendleFluxLendingSY__factory.ts +1 -1
  290. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  291. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  292. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  293. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  294. package/typechain-types/factories/PendleHlpSY__factory.ts +1 -1
  295. package/typechain-types/factories/PendleLimitRouter__factory.ts +58 -154
  296. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  297. package/typechain-types/factories/PendleLpGlpOracle__factory.ts +1 -1
  298. package/typechain-types/factories/PendleMantleStakedEthSY__factory.ts +1 -1
  299. package/typechain-types/factories/PendleMarketFactoryV2__factory.ts +1 -1
  300. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  301. package/typechain-types/factories/PendleMarketV2__factory.ts +1 -1
  302. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  303. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  304. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  305. package/typechain-types/factories/PendleOracleForSyProxy__factory.ts +1 -1
  306. package/typechain-types/factories/PendleOrderMixin__factory.ts +47 -153
  307. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  308. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  309. package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
  310. package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
  311. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  312. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  313. package/typechain-types/factories/PendleRouterHelper__factory.ts +1 -1
  314. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  315. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  316. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  317. package/typechain-types/factories/PendleStargateLPSY__factory.ts +1 -1
  318. package/typechain-types/factories/PendleSwap__factory.ts +1 -1
  319. package/typechain-types/factories/PendleThenaSY__factory.ts +1 -1
  320. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  321. package/typechain-types/factories/PendleWbEthSY__factory.ts +1 -1
  322. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  323. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  324. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  325. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  326. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  327. package/typechain-types/factories/PtAndLpToAsset__factory.ts +1 -1
  328. package/typechain-types/factories/SAPE__factory.ts +1 -1
  329. package/typechain-types/factories/SimulateHelper__factory.ts +84 -0
  330. package/typechain-types/factories/SwETHSY__factory.ts +1 -1
  331. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  332. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  333. package/typechain-types/hardhat.d.ts +9 -9
  334. package/typechain-types/index.ts +2 -2
@@ -20,61 +20,6 @@ const _abi = [
20
20
  stateMutability: "nonpayable",
21
21
  type: "constructor",
22
22
  },
23
- {
24
- anonymous: false,
25
- inputs: [
26
- {
27
- indexed: true,
28
- internalType: "enum IPOrderMixinType.OrderType",
29
- name: "orderType",
30
- type: "uint8",
31
- },
32
- {
33
- indexed: true,
34
- internalType: "address",
35
- name: "YT",
36
- type: "address",
37
- },
38
- {
39
- indexed: true,
40
- internalType: "address",
41
- name: "taker",
42
- type: "address",
43
- },
44
- {
45
- indexed: false,
46
- internalType: "uint256",
47
- name: "netOutputToTaker",
48
- type: "uint256",
49
- },
50
- {
51
- indexed: false,
52
- internalType: "uint256",
53
- name: "netInputFromTaker",
54
- type: "uint256",
55
- },
56
- {
57
- indexed: false,
58
- internalType: "uint256",
59
- name: "totalFee",
60
- type: "uint256",
61
- },
62
- {
63
- indexed: false,
64
- internalType: "uint256",
65
- name: "rawTotalMaking",
66
- type: "uint256",
67
- },
68
- {
69
- indexed: false,
70
- internalType: "uint256",
71
- name: "rawTotalTaking",
72
- type: "uint256",
73
- },
74
- ],
75
- name: "FlashFill",
76
- type: "event",
77
- },
78
23
  {
79
24
  anonymous: false,
80
25
  inputs: [
@@ -118,98 +63,73 @@ const _abi = [
118
63
  inputs: [
119
64
  {
120
65
  indexed: true,
121
- internalType: "enum IPOrderMixinType.OrderType",
122
- name: "orderType",
123
- type: "uint8",
66
+ internalType: "address",
67
+ name: "maker",
68
+ type: "address",
124
69
  },
125
70
  {
126
71
  indexed: true,
127
- internalType: "address",
128
- name: "YT",
129
- type: "address",
72
+ internalType: "bytes32",
73
+ name: "orderHash",
74
+ type: "bytes32",
130
75
  },
76
+ ],
77
+ name: "OrderCanceled",
78
+ type: "event",
79
+ },
80
+ {
81
+ anonymous: false,
82
+ inputs: [
131
83
  {
132
84
  indexed: true,
133
- internalType: "address",
134
- name: "taker",
135
- type: "address",
85
+ internalType: "bytes32",
86
+ name: "orderHash",
87
+ type: "bytes32",
136
88
  },
137
89
  {
138
- indexed: false,
139
- internalType: "uint256",
140
- name: "actualMaking",
141
- type: "uint256",
90
+ indexed: true,
91
+ internalType: "enum IPOrderMixinType.OrderType",
92
+ name: "orderType",
93
+ type: "uint8",
142
94
  },
143
95
  {
144
- indexed: false,
145
- internalType: "uint256",
146
- name: "actualTaking",
147
- type: "uint256",
96
+ indexed: true,
97
+ internalType: "address",
98
+ name: "YT",
99
+ type: "address",
148
100
  },
149
101
  {
150
102
  indexed: false,
151
- internalType: "uint256",
152
- name: "totalFee",
153
- type: "uint256",
103
+ internalType: "address",
104
+ name: "token",
105
+ type: "address",
154
106
  },
155
107
  {
156
108
  indexed: false,
157
109
  internalType: "uint256",
158
- name: "rawTotalMaking",
110
+ name: "netInputFromMaker",
159
111
  type: "uint256",
160
112
  },
161
113
  {
162
114
  indexed: false,
163
115
  internalType: "uint256",
164
- name: "rawTotalTaking",
116
+ name: "netOutputToMaker",
165
117
  type: "uint256",
166
118
  },
167
- ],
168
- name: "NormalFill",
169
- type: "event",
170
- },
171
- {
172
- anonymous: false,
173
- inputs: [
174
- {
175
- indexed: true,
176
- internalType: "address",
177
- name: "maker",
178
- type: "address",
179
- },
180
- {
181
- indexed: true,
182
- internalType: "bytes32",
183
- name: "orderHash",
184
- type: "bytes32",
185
- },
186
119
  {
187
120
  indexed: false,
188
121
  internalType: "uint256",
189
- name: "remaining",
122
+ name: "feeAmount",
190
123
  type: "uint256",
191
124
  },
192
- ],
193
- name: "OrderCanceled",
194
- type: "event",
195
- },
196
- {
197
- anonymous: false,
198
- inputs: [
199
- {
200
- indexed: true,
201
- internalType: "bytes32",
202
- name: "orderHash",
203
- type: "bytes32",
204
- },
205
125
  {
206
126
  indexed: false,
207
127
  internalType: "uint256",
208
- name: "remaining",
128
+ name: "notionalVolume",
209
129
  type: "uint256",
210
130
  },
211
131
  ],
212
- name: "OrderRemainingUpdated",
132
+ name: "OrderFilled",
213
133
  type: "event",
214
134
  },
215
135
  {
@@ -336,6 +256,11 @@ const _abi = [
336
256
  name: "lnImpliedRate",
337
257
  type: "uint256",
338
258
  },
259
+ {
260
+ internalType: "uint256",
261
+ name: "failSafeRate",
262
+ type: "uint256",
263
+ },
339
264
  {
340
265
  internalType: "bytes",
341
266
  name: "permit",
@@ -406,6 +331,11 @@ const _abi = [
406
331
  name: "lnImpliedRate",
407
332
  type: "uint256",
408
333
  },
334
+ {
335
+ internalType: "uint256",
336
+ name: "failSafeRate",
337
+ type: "uint256",
338
+ },
409
339
  {
410
340
  internalType: "bytes",
411
341
  name: "permit",
@@ -498,6 +428,11 @@ const _abi = [
498
428
  name: "lnImpliedRate",
499
429
  type: "uint256",
500
430
  },
431
+ {
432
+ internalType: "uint256",
433
+ name: "failSafeRate",
434
+ type: "uint256",
435
+ },
501
436
  {
502
437
  internalType: "bytes",
503
438
  name: "permit",
@@ -560,47 +495,6 @@ const _abi = [
560
495
  stateMutability: "nonpayable",
561
496
  type: "function",
562
497
  },
563
- {
564
- inputs: [
565
- {
566
- internalType: "address",
567
- name: "YT",
568
- type: "address",
569
- },
570
- ],
571
- name: "getOnchainParams",
572
- outputs: [
573
- {
574
- components: [
575
- {
576
- internalType: "uint256",
577
- name: "timeToExpiry",
578
- type: "uint256",
579
- },
580
- {
581
- internalType: "uint256",
582
- name: "pyIndex",
583
- type: "uint256",
584
- },
585
- {
586
- internalType: "address",
587
- name: "feeRecipient",
588
- type: "address",
589
- },
590
- {
591
- internalType: "uint256",
592
- name: "lnFeeRateRoot",
593
- type: "uint256",
594
- },
595
- ],
596
- internalType: "struct IPOrderMixinType.OnchainParams",
597
- name: "",
598
- type: "tuple",
599
- },
600
- ],
601
- stateMutability: "nonpayable",
602
- type: "function",
603
- },
604
498
  {
605
499
  inputs: [
606
500
  {
@@ -655,6 +549,11 @@ const _abi = [
655
549
  name: "lnImpliedRate",
656
550
  type: "uint256",
657
551
  },
552
+ {
553
+ internalType: "uint256",
554
+ name: "failSafeRate",
555
+ type: "uint256",
556
+ },
658
557
  {
659
558
  internalType: "bytes",
660
559
  name: "permit",
@@ -814,6 +713,11 @@ const _abi = [
814
713
  name: "lnImpliedRate",
815
714
  type: "uint256",
816
715
  },
716
+ {
717
+ internalType: "uint256",
718
+ name: "failSafeRate",
719
+ type: "uint256",
720
+ },
817
721
  {
818
722
  internalType: "bytes",
819
723
  name: "permit",
@@ -1007,7 +911,7 @@ const _abi = [
1007
911
  ];
1008
912
 
1009
913
  const _bytecode =
1010
- "0x60a034620001a457601f62005bd438819003918201601f19168301916001600160401b03831184841017620001a957808492602094604052833981010312620001a457516001600160a01b0381168103620001a4576080526001805460ff8160a81c16159081809262000194575b801562000179575b156200011d5760ff60a01b198116600160a01b1783558162000105575b50620000c7575b604051615a149081620001c08239608051818181613cc00152818161463801528181614ce10152614d470152f35b805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a13862000099565b61ffff60a01b191661010160a01b1782553862000092565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156200007557508260ff8260a01c161462000075565b508260ff8260a01c16106200006d565b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c8063078dfbe71461018b5780633644e51514610186578063469048401461018157806348a40d031461017c5780634e71e0c81461017757806352400f681461017257806370ae92d21461016d57806372c244a81461016857806374a87808146101635780637e54f0921461015e5780638da5cb5b1461015957806393407c3f14610154578063942461bb1461014f5780639c1ea38f1461014a578063acdb32df14610145578063bc1ed74c14610140578063c53a02921461013b578063c60000d214610136578063cf6fc6e314610131578063d0bd5f191461012c578063e30c397814610127578063f163ba1f146101225763f2a413740361000e57611272565b611219565b6111c7565b611188565b61111b565b6110bf565b611029565b610f58565b610ea3565b610e3d565b610d1e565b610cc6565b610c74565b610c2a565b610bc7565b610ac2565b610a59565b6109d7565b61088d565b61084f565b61041f565b6103de565b6101d7565b73ffffffffffffffffffffffffffffffffffffffff8116036101ae57565b600080fd5b602435906101c082610190565b565b35906101c082610190565b801515036101ae57565b346101ae5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae5760043561021281610190565b6024359061021f826101cd565b6044359061022c826101cd565b73ffffffffffffffffffffffffffffffffffffffff6000936102528286541633146113da565b156103a45781169182159081159161039c575b501561033e5761030e916102a9610290855473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08580a373ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006000541617600055565b61033b7fffffffffffffffffffffffff000000000000000000000000000000000000000060015416600155565b80f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f776e61626c653a207a65726f206164647265737300000000000000000000006044820152fd5b905038610265565b9150167fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015580f35b60009103126101ae57565b346101ae5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae576020610417611b33565b604051908152f35b346101ae5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae57602073ffffffffffffffffffffffffffffffffffffffff60675416604051908152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176104bc57604052565b610471565b67ffffffffffffffff81116104bc57604052565b610140810190811067ffffffffffffffff8211176104bc57604052565b6080810190811067ffffffffffffffff8211176104bc57604052565b6040810190811067ffffffffffffffff8211176104bc57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176104bc57604052565b60405190610160820182811067ffffffffffffffff8211176104bc57604052565b604051906101c0826104f2565b67ffffffffffffffff81116104bc5760051b60200190565b359060048210156101ae57565b67ffffffffffffffff81116104bc57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f820112156101ae5780359061060f826105be565b9261061d604051948561052a565b828452602083830101116101ae57816000926020809301838601378301015290565b9190610160838203126101ae5761065461056b565b92803584526020810135602085015260408101356040850152610679606082016105b1565b606085015261068a608082016101c2565b608085015261069b60a082016101c2565b60a08501526106ac60c082016101c2565b60c08501526106bd60e082016101c2565b60e085015261010080820135908501526101208082013590850152610140918282013567ffffffffffffffff81116101ae576106f992016105f8565b90830152565b60807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126101ae5767ffffffffffffffff906004358281116101ae57816023820112156101ae5780600401359060249061075a83610599565b9260406107698151958661052a565b818552602093808587019360051b850101938785116101ae57818101935b8585106107bc57505050505050509261079e6101b3565b92604435926064359182116101ae576107b9916004016105f8565b90565b84358a81116101ae57820160607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc828c0301126101ae578451916107ff836104a0565b848201358c81116101ae578b866108189285010161063f565b83526044820135928c84116101ae5760648361083a8e898e98899801016105f8565b85840152013587820152815201940193610787565b346101ae5761088961086c610863366106ff565b929190916120d1565b604080519384526020840192909252908201529081906060820190565b0390f35b346101ae576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126109d45773ffffffffffffffffffffffffffffffffffffffff8060015416803303610976578061094b928454167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08580a373ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006000541617600055565b7fffffffffffffffffffffffff00000000000000000000000000000000000000006001541660015580f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152fd5b80fd5b346101ae5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae576080610a1c600435610a1781610190565b614f7a565b606060405191805183526020810151602084015273ffffffffffffffffffffffffffffffffffffffff604082015116604084015201516060820152f35b346101ae5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae5773ffffffffffffffffffffffffffffffffffffffff600435610aa981610190565b1660005260666020526020604060002054604051908152f35b346101ae5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae5760043560ff81168091036101ae576000903382526066602052604082205490808201809211610b70573383526066602052816040842055810390808211610b705760408051928352602083019190915233917fdc0537f71d06d3708f52baf4ddf6918b25f1a145ba08873de27485682b35cac191819081015b0390a280f35b61143f565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60409101126101ae57600435610bab81610190565b906024356bffffffffffffffffffffffff811681036101ae5790565b346101ae57610bd536610b75565b7fffffffffffffffffffffffff000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff91610c1b836000541633146113da565b60a01b16911617606755600080f35b346101ae5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae5760043560005260686020526020604060002054604051908152f35b346101ae5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae57602073ffffffffffffffffffffffffffffffffffffffff60005416604051908152f35b346101ae5761088961086c610cda366106ff565b92919091611df2565b6020908160408183019282815285518094520193019160005b828110610d0a575050505090565b835185529381019392810192600101610cfc565b346101ae576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae5760043567ffffffffffffffff81116101ae57366023820112156101ae57806004013590610d7a82610599565b91610d88604051938461052a565b80835260248484019160051b830101913683116101ae57602401905b828210610dc357610889610db785611ae3565b60405191829182610ce3565b81358152908401908401610da4565b9060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126101ae5760043567ffffffffffffffff928382116101ae57806023830112156101ae5781600401359384116101ae5760248460051b830101116101ae576024019190565b346101ae57610e4b36610dd2565b60005b818110610e5757005b8060051b830135907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea1843603018212156101ae57610e99610e9e92850161196f565b61146e565b610e4e565b346101ae57610eb136610dd2565b6000905b808210610ebe57005b8160051b8301357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1843603018112156101ae578391930160009160208201925b610f0883806114ca565b9050811015610f485780610f42610f33610f2e600194610f2888806114ca565b9061151e565b611533565b610f3c87611533565b90611587565b01610efe565b5093929050600191500190610eb5565b346101ae5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae5760043560005260686020526040600020548015610fcb576020907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405191018152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4c4f503a20556e6b6e6f776e206f7264657200000000000000000000000000006044820152fd5b346101ae576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126109d4573381526066602052604081205460018101808211610b7057610b6a7fdc0537f71d06d3708f52baf4ddf6918b25f1a145ba08873de27485682b35cac191338552606660205280604086205560405191829133958360209093929193604081019481520152565b346101ae577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6020813601126101ae576004359067ffffffffffffffff82116101ae576101609082360301126101ae576100199060040161196f565b346101ae5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae5773ffffffffffffffffffffffffffffffffffffffff60043561116b81610190565b166000526066602052602060243560406000205414604051908152f35b346101ae5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae57602060675460a01c604051908152f35b346101ae5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346101ae5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ae5760043567ffffffffffffffff81116101ae5761041761126d602092369060040161063f565b6151a2565b346101ae576112f961128336610b75565b600192919254926112ab60ff8560a81c1615809581966113c8575b81156113a5575b50611b9f565b836112f0740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6001541617600155565b61135b57611c2a565b6112ff57005b61132c7fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff60015416600155565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b6113a075010000000000000000000000000000000000000000007fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff6001541617600155565b611c2a565b303b159150816113b7575b50386112a5565b60a01c60ff166001149050386113b0565b9050600160ff8260a01c16109061129e565b156113e157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b705760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101ae570180359067ffffffffffffffff82116101ae57602001918160051b360383136101ae57565b919081101561152e5760051b0190565b61149b565b356107b981610190565b908160209103126101ae575190565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b919073ffffffffffffffffffffffffffffffffffffffff8316928315611620576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff831660248201526020948590829060449082905afa8015611796576b7fffffffffffffffffffffff91600091611769575b5010611626575b50509050565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000085820190815273ffffffffffffffffffffffffffffffffffffffff84166024830152600060448301819052918291906116ae81606481015b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261052a565b519082855af16116bc61179b565b81611739575b50156116db576116d39293506117e0565b803880611620565b606484604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152600c60248201527f5361666520417070726f766500000000000000000000000000000000000000006044820152fd5b80518015925086908315611751575b505050386116c2565b61176193508201810191016117cb565b388581611748565b6117899150863d881161178f575b611781818361052a565b81019061153d565b38611619565b503d611777565b61154c565b3d156117c6573d906117ac826105be565b916117ba604051938461052a565b82523d6000602084013e565b606090565b908160209103126101ae57516107b9816101cd565b6040517f095ea7b3000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff90931660248201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604482015260009283929183906118638160648101611682565b51925af161186f61179b565b816118db575b501561187d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5361666520417070726f766500000000000000000000000000000000000000006044820152fd5b80518015925082156118f0575b505038611875565b61190392506020809183010191016117cb565b38806118e8565b1561191157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4c4f503a20616c72656164792066696c6c6564000000000000000000000000006044820152fd5b60c081013561197d81610190565b73ffffffffffffffffffffffffffffffffffffffff33911603611a1557611a0f6119ae61126d6101c093369061063f565b806119c3816000526068602052604060002090565b546119d1600182141561190a565b60405190815233907fcbfa7d191838ece7ba4783ca3a30afd316619b7f368094b57ee7ffde9a923db190602090a36000526068602052604060002090565b60019055565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4c4f503a204163636573732064656e69656400000000000000000000000000006044820152fd5b90611a7d82610599565b611a8a604051918261052a565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611ab88294610599565b0190602036910137565b80511561152e5760200190565b805182101561152e5760209160051b010190565b90611aee8251611a73565b600092835b8151811015611b2c5780611b0a611b279284611acf565b51865260686020526040862054611b218286611acf565b5261146e565b611af3565b5090925050565b6002546003546040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176104bc5760405251902090565b15611ba657565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b9073ffffffffffffffffffffffffffffffffffffffff9060ff60015460a81c1690611c5482611d1c565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000913383600054161760005560405190611c8d8261050e565b601b8252602082017f50656e646c65204c696d6974204f726465722050726f746f636f6c0000000000815260405192611cc58461050e565b60018452611d0260208501937f31000000000000000000000000000000000000000000000000000000000000008552611cfd81611d1c565b611d1c565b519020915190209060025560035560a01b16911617606755565b15611d2357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60041115611de057565b611da7565b516004811015611de05790565b9392919380511561152e57611e0e606060208301515101611de5565b611e1782613ae7565b6004811015611de05780159081156120bd575b5015611e435790611e3c9394916124c4565b9192909190565b90611ee29392611e5161058c565b928352611e786020840192839073ffffffffffffffffffffffffffffffffffffffff169052565b6040830195865260608301908152611e9d6060611e958551611ac2565b515101611de5565b611ea78451613e86565b90959199611eb6828951612af3565b918251986020840197885190611ed26040870192835190612ae6565b9e8f92519e8f96518411156123bc565b611eeb8a611dd6565b60018a036120b357611f3c905b73ffffffffffffffffffffffffffffffffffffffff98611f2e8651915173ffffffffffffffffffffffffffffffffffffffff1690565b908a60608b01519316614e73565b518051611ff6575b506040611fb39493611f927f3e156c9468d5a9260d69488b3cd3b03d6f086b1302be445127582bb676fb059d9994611f83611fad9530338d8a166133ce565b518c5160808a015191876148b7565b015173ffffffffffffffffffffffffffffffffffffffff1690565b90612706565b51935190611fc084611dd6565b60408051888152602081018c90529081018a905260608101959095526080850191909152339416928060a081015b0390a4929190565b9293505094333b156101ae5760008a888f948f906120429160405197889586957fbc6ab22500000000000000000000000000000000000000000000000000000000875260048701612494565b038183335af18015611796576040611fb3948f8f9599611f83611f92927f3e156c9468d5a9260d69488b3cd3b03d6f086b1302be445127582bb676fb059d9c611fad9761209a575b5095505094995050939450611f44565b806120a76120ad926104c1565b806103d3565b3861208a565b50611f3c8b611ef8565b600291506120ca81611dd6565b1438611e2a565b9392919380511561152e576120ed606060208301515101611de5565b6120f682613ae7565b6004811015611de057801590811561239b575b501561211b5790611e3c9394916134f8565b92919061214a9061212a61058c565b94855273ffffffffffffffffffffffffffffffffffffffff166020850152565b6040938484015260608301526121656060611e958451611ac2565b916121708151613e86565b919590929361217d612a05565b506121898382516137cd565b6121a08c869d959d9c949a939c01518d1115613493565b60608501518051612331575b506121b686611dd6565b60038614928315612329578c81945b1561231c5761220591506121f58a915b8b73ffffffffffffffffffffffffffffffffffffffff97883391166133ce565b8987518660608601519316614e73565b83517fbcb7ea5d000000000000000000000000000000000000000000000000000000008152306004820152946020866024816000888e165af1928315611796576122b6866122c09361229e8e7f66ed2f51315962584d12bfd2284e75f9c52f9c0d922295c9911b9e0dea66fe509b611fee996122fd575b50602083015173ffffffffffffffffffffffffffffffffffffffff1686612706565b519a611f92602087019c8d51608089015191876148b7565b8684015191612706565b519551926122cd86611dd6565b51928392339816968b8d8b869192608093969594919660a084019784526020840152604083015260608201520152565b6123159060203d60201161178f57611781818361052a565b503861227c565b6121f561220592916121d5565b8c89946121c5565b333b156101ae5760008a888f938f90612377918a5196879586957f441d4c6200000000000000000000000000000000000000000000000000000000875260048701612494565b038183335af1801561179657156121ac57806120a7612395926104c1565b386121ac565b600291506123a881611dd6565b1438612109565b91908203918211610b7057565b156123c357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4c4f503a206d617854616b696e672065786365656465640000000000000000006044820152fd5b906004821015611de05752565b60005b8381106124415750506000910152565b8181015183820152602001612431565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361248d8151809281875287808801910161242e565b0116010190565b919260a0936124a8846107b9989794612421565b6020840152604083015260608201528160808201520190612451565b939291906124f4906124d461058c565b95865273ffffffffffffffffffffffffffffffffffffffff166020860152565b6040840152606083015261250d6060611e958451611ac2565b916125188151613d6b565b949293909195612529868351612af3565b805161253b60408301918251906123af565b93602083015191518098839a879c61255960408601518711156123bc565b6125848961257e602088015173ffffffffffffffffffffffffffffffffffffffff1690565b85612706565b89886060870151805161264b575b5060406125fe94611f9261263f98957f3e156c9468d5a9260d69488b3cd3b03d6f086b1302be445127582bb676fb059d9c9895856125d2611fad97611dd6565b61264457505b73ffffffffffffffffffffffffffffffffffffffff9a5160808a0151918c339116614ed2565b602081519101519061260f87611dd6565b8a604051958695339b1699869192608093969594919660a084019784526020840152604083015260608201520152565b0390a4565b90506125d8565b92989495505050333b156101ae57600089896126988f948a9560405196879586957fbc6ab22500000000000000000000000000000000000000000000000000000000875260048701612494565b038183335af193841561179657611fad60406125fe948f947f3e156c9468d5a9260d69488b3cd3b03d6f086b1302be445127582bb676fb059d9b8f8e611f929361263f9c6126f3575b50955095989c50959850509450612592565b806120a7612700926104c1565b386126e1565b91909181156127ad5773ffffffffffffffffffffffffffffffffffffffff1691826127a4576000809350809281925af161273e61179b565b501561274657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6574682073656e64206661696c656400000000000000000000000000000000006044820152fd5b6101c0926127b2565b505050565b6101c09273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb00000000000000000000000000000000000000000000000000000000602086015216602484015260448301526044825261280d826104f2565b61289d565b1561281957565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff1690604051906128c18261050e565b6020928383527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656484840152803b1561293857600082819282876129139796519301915af161290d61179b565b906129a7565b8051908161292057505050565b826101c0936129339383010191016117cb565b612812565b606484604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b9060206107b9928181520190612451565b909190156129b3575090565b8151156129c35750805190602001fd5b612a01906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401526024830190612451565b0390fd5b6040519060c0820182811067ffffffffffffffff8211176104bc57604052606060a08360008152600060208201526000604082015282808201528260808201520152565b15612a5057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4c4f503a2063616e27742073776170203020616d6f756e7400000000000000006044820152fd5b6024019081602411610b7057565b6002019081600211610b7057565b9060028201809211610b7057565b9060038201809211610b7057565b91908201809211610b7057565b9190612afd612a05565b92805191612b0a83611a73565b60608601908152612b1a84611a73565b9260808701938452612b2b85611a73565b9060a08801918252612b49612b446060611e9584611ac2565b6131aa565b5093612b5b6060820151825190612c79565b90600096602090818c01946040908d8281019b5b8d8110612b86575050505050505050505050505050565b6001918789838f8f908f908c8c92612b9e868d611acf565b51978d890192835115612c6957612bf7612c2599612c08968a968795612c0295612c2d9f888e612bd9610120612bed94510151865190612c79565b9551612be6838351611acf565b5251611acf565b51910151926158b1565b929096519351611acf565b52611acf565b52612c1f612c17838c51611acf565b511515612a49565b51611acf565b518251612ae6565b9052612c45612c3d828751611acf565b518a51612ae6565b8952612c5e8d612c56838d51611acf565b519051612ae6565b8d525b018e90612b6f565b5050505050505050505050612c61565b6301e1338091612c8891612d27565b047f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81116101ae57612cb990612dc8565b600081126101ae5790565b908160011b9180830460021490151715610b7057565b908160011b917f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811603610b7057565b90670de0b6b3a764000091828102928184041490151715610b7057565b81810292918115918404141715610b7057565b8115612d44570490565b611558565b15612d5057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f496e76616c6964206578706f6e656e74000000000000000000000000000000006044820152fd5b8015612d44576ec097ce7bc90715b34b9f10000000000590565b7ffffffffffffffffffffffffffffffffffffffffffffffffdc702bd3a30fc000081121580613197575b612dfb90612d49565b60008112613182576064906806f05b59d3b2000000811261311f577ffffffffffffffffffffffffffffffffffffffffffffffff90fa4a62c4e0000000168056bc75e2d6310000082770195e54c5dd42177f53a27172fa9ec630262827000000000925b0280829168ad78ebc5ac620000008112156130e3575b50806856bc75e2d631000000849212156130a9575b682b5e3af16b18800000811215613071575b6815af1d78b58c400000811215613039575b680ad78ebc5ac6200000811215613002575b81811215612fcb575b6802b5e3af16b1880000811215612f94575b68015af1d78b58c40000811215612f5d575b60028282800205056003838383020505600484848302050560058585830205056006868683020505600787878302050590600888888402050592600989898602050594600a8a8a8802050596600b8b8b8a02050598600c8c8c8c0205059a0101010101010101010101010205020590565b6806f5f17757889379377ffffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c000083920193020591612eec565b6808f00f760a4b2db55d7ffffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e78000083920193020591612eda565b680ebc5fb417461211107ffffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf0000083920193020591612ec8565b68280e60114edb805d037ffffffffffffffffffffffffffffffffffffffffffffffff5287143a539e0000083920193020591612ebf565b690127fa27722cc06cc5e27fffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c0000083920193020591612ead565b693f1fce3da636ea5cf8507fffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e780000083920193020591612e9b565b6b02df0ab5a80a22c61ab5a7007fffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf00000083920193020591612e89565b6e01855144814a7ff805980ff008400092507fffffffffffffffffffffffffffffffffffffffffffffff5287143a539e00000001905082612e74565b6803782dace9d9000000811261316f577ffffffffffffffffffffffffffffffffffffffffffffffffc87d25316270000000168056bc75e2d63100000826b1425982cf597cd205cef738092612e5e565b68056bc75e2d6310000082600192612e5e565b61318e90600003612dc8565b6107b990612dae565b5068070c1cc73b00c80000811315612df2565b6131b381611dd6565b806131c15750600190600590565b6131ca81611dd6565b600181036131db5750600290600690565b806131e7600292611dd6565b036131f457600390600790565b600490600890565b670de0b6b3a76400009161320f91612d27565b0490565b90670de0b6b3a764000090818102918183041490151715610b7057818101809111610b70577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908111610b70578115612d44570490565b9392909161327a9085612d27565b90670de0b6b3a76400009182810190818111610b7057670de0b6b3a763ffff01908111610b705783836132ad9204612d27565b947ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c000095868501948511610b70578415612d4457849004958201828111610b70576132f691612d27565b8115612d445704818102918183041490151715610b70570490565b919392907ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c00009485820193828511610b70578461334c91612d27565b918015612d445761335e920490613213565b938101908111610b7057612d3a9084612d27565b9093928461337f91613213565b918103908111610b70578103908111610b70579190565b92670de0b6b3a7640000808502908582041485151715610b70578115612d445704918101809111610b70578103908111610b70579091565b929190821515806133f7575b6133e5575b50505050565b6133ee93613417565b388080806133df565b503073ffffffffffffffffffffffffffffffffffffffff821614156133da565b9290604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015273ffffffffffffffffffffffffffffffffffffffff809216602485015216604483015260648201526064815260a081019181831067ffffffffffffffff8411176104bc576101c09260405261289d565b1561349a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c4f503a206d6178496e707574206578636565646564000000000000000000006044820152fd5b939091929361350561058c565b90815261352c6020820193849073ffffffffffffffffffffffffffffffffffffffff169052565b60408101938452606081019485526135496060611e958351611ac2565b926135548251613d6b565b9161356197939197612a05565b5061356d8387516137cd565b919892939094859b8a9e613585879f51881115613493565b518051613764575b5073ffffffffffffffffffffffffffffffffffffffff946135b28730338987166133ce565b61367d60206135c287518a612ae6565b936135dd6135d660408a01968751906123af565b8288612706565b6135e68d611dd6565b888d159e8f988960001461375c57985b1561373e57309f5b15613736575173ffffffffffffffffffffffffffffffffffffffff16915b16809e60006040518096819582947fdb74aa150000000000000000000000000000000000000000000000000000000084526004840190602090939293604083019473ffffffffffffffffffffffffffffffffffffffff809216845216910152565b03925af1998a1561179657611f9261263f986136da976136d2956040957f66ed2f51315962584d12bfd2284e75f9c52f9c0d922295c9911b9e0dea66fe509f613718575b50519060808b015192309116614ed2565b905191612706565b60208151910151906136eb87611dd6565b604051948594339a869192608093969594919660a084019784526020840152604083015260608201520152565b61372f9060203d811161178f57611781818361052a565b50386136c1565b50309161361c565b805173ffffffffffffffffffffffffffffffffffffffff169f6135fe565b5082986135f6565b333b156101ae5760008c8b6137a98a948c60405196879586957f441d4c6200000000000000000000000000000000000000000000000000000000875260048701612494565b038183335af18015611796571561358d57806120a76137c7926104c1565b3861358d565b90916137d7612a05565b5081511561152e5761381d613802846137fa612b44606060208801515101611de5565b959050612af3565b928351946020850151604086019660208851930151936158b1565b9290935191565b1561382b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4c4f503a20656d707479206261746368000000000000000000000000000000006044820152fd5b1561389057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c4f503a205059206578706972656400000000000000000000000000000000006044820152fd5b156138f557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4c4f503a206e6f742073616d65206f72646572547970650000000000000000006044820152fd5b1561395a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4c4f503a206e6f742073616d65205954000000000000000000000000000000006044820152fd5b156139bf57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4c4f503a206f72646572206578706972656400000000000000000000000000006044820152fd5b15613a2457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c4f503a206f7264657220696e76616c696461746564000000000000000000006044820152fd5b15613a8957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4c4f503a20696e76616c696420746f6b656e4f757400000000000000000000006044820152fd5b8051613af4811515613824565b60a0613b2081613b0385611ac2565b5151015173ffffffffffffffffffffffffffffffffffffffff1690565b606091613b3083611e9587611ac2565b613b3981611dd6565b600195868214928315613d0b575b73ffffffffffffffffffffffffffffffffffffffff809516906040938451937fe184c9be0000000000000000000000000000000000000000000000000000000085526020948581600481885afa801561179657613bae91600091613cee575b504210613889565b60005b8a8110613bc657505050505050505050505050565b80613bd28d9284611acf565b5151613bfd858d830151613be581611dd6565b613bee82611dd6565b613bf781611dd6565b146138ee565b613c2a87613c246102908985015173ffffffffffffffffffffffffffffffffffffffff1690565b14613953565b613c388882015142106139b8565b89613c928a830151613c8a613c6460c086015173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff166000526066602052604060002090565b541115613a1d565b613c9e575b5001613bb1565b60800151613ce89073ffffffffffffffffffffffffffffffffffffffff168b167f00000000000000000000000000000000000000000000000000000000000000008c161415613a82565b38613c97565b613d059150873d891161178f57611781818361052a565b38613ba6565b9250613d1682611dd6565b6003821492613b47565b604051906080820182811067ffffffffffffffff8211176104bc5760405260006060838281528260208201528260408201520152565b908160209103126101ae57516107b981610190565b613d73613d20565b50613d7d81613f87565b613d8b60a0613b0383611ac2565b73ffffffffffffffffffffffffffffffffffffffff811692604051927fafd27bf50000000000000000000000000000000000000000000000000000000084526020908185600481895afa94851561179657600095613e67575b506004828697604051928380927fd94073d40000000000000000000000000000000000000000000000000000000082525afa90811561179657613e3193600092613e3a575b5050946143b9565b6107b982614f7a565b613e599250803d10613e60575b613e51818361052a565b810190613d56565b3880613e29565b503d613e47565b613e7f919550823d8411613e6057613e51818361052a565b9338613de4565b60a0613b03613ea692613e97613d20565b50613ea181613f87565b611ac2565b9073ffffffffffffffffffffffffffffffffffffffff8216916040517fafd27bf50000000000000000000000000000000000000000000000000000000081526020908181600481885afa908115611796576004918391600091613f6a575b5095604051928380927fd94073d40000000000000000000000000000000000000000000000000000000082525afa91821561179657600092613f4d575b5050916107b982614f7a565b613f639250803d10613e6057613e51818361052a565b3880613f41565b613f819150823d8411613e6057613e51818361052a565b38613f04565b80519060005b828110613f9957505050565b807fd28e5b1468261e3199fa4f021d06e7f7ae7f9e3a5c3a5e5f893755dff2e2bbde613fc760019385611acf565b518051613fda60209182840151906140e2565b93909160408094019384518681106000146140105780965b03908460005260688352888201816000205551908152a25201613f8d565b508580613ff2565b1561401f57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4c4f503a20626164207369676e617475726500000000000000000000000000006044820152fd5b1561408457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4c4f503a207265656e7472616e637920646574656374656400000000000000006044820152fd5b91906140ed836151a2565b90816000526068602052604060002054600181146141d957806141b0575061413961413e918361413460c088015173ffffffffffffffffffffffffffffffffffffffff1690565b6141fb565b614018565b61014061010084015193015160148151101561415957509190565b60148101805191517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec01815261418e91615330565b6141ac6141a5826000526068602052604060002090565b541561407d565b9190565b919350507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b505090915090600090565b6040906107b9939281528160208201520190612451565b909161420781846142cc565b6005811015611de0571590816142a9575b506142a157600091829160405161425f8161168260208201947f1626ba7e00000000000000000000000000000000000000000000000000000000998a8752602484016141e4565b51915afa9061426c61179b565b82614295575b8261427c57505090565b6142919192506020808251830101910161153d565b1490565b80516020149250614272565b505050600190565b905073ffffffffffffffffffffffffffffffffffffffff80841691161438614218565b9060418151146000146142fa576142f6916020820151906060604084015193015160001a90614304565b9091565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083116143ad5760ff16601b811415806143a2575b614396579160809493916020936040519384528484015260408301526060820152600093849182805260015afa1561179657815173ffffffffffffffffffffffffffffffffffffffff811615614390579190565b50600190565b50505050600090600490565b50601c81141561433c565b50505050600090600390565b908051916143c682614e04565b9091600092835b8681106145005750156144665773ffffffffffffffffffffffffffffffffffffffff80821690831614801561445e575b6144575761440c918391614636565b9060005b84811061441e575050505050565b60019060406144438461443e8784614436878c611acf565b510151612d27565b612d3a565b9061444e8388611acf565b51015201614410565b5050505050565b5082156143fd565b9291505060005b83811061447a5750505050565b8061448760019284611acf565b5160408101908151801580156144d9575b6144d1576144c260806144c893510173ffffffffffffffffffffffffffffffffffffffff90511690565b87614636565b90525b0161446d565b5050506144cb565b5081516080015173ffffffffffffffffffffffffffffffffffffffff888116911614614498565b61450a8187611acf565b51826040820191825190811561458e5790614568915161456260c0614546608084015173ffffffffffffffffffffffffffffffffffffffff1690565b92015173ffffffffffffffffffffffffffffffffffffffff1690565b9061459a565b614578575b506001905b016143cd565b60019195614587915190612ae6565b949061456d565b50505050600190614572565b90919073ffffffffffffffffffffffffffffffffffffffff16806146215750905034036145c357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f657468206d69736d6174636800000000000000000000000000000000000000006044820152fd5b8161462b57505050565b6101c0923091613417565b7f0000000000000000000000000000000000000000000000000000000000000000929173ffffffffffffffffffffffffffffffffffffffff8082168186161480614750575b90846147069660209695949361473b575b5050600081831615600014614735575083905b6040518097819682957f20e8c56500000000000000000000000000000000000000000000000000000000845230600485016000929493606092608083019673ffffffffffffffffffffffffffffffffffffffff809216845216602083015260408201520152565b0393165af19081156117965760009161471d575090565b6107b9915060203d811161178f57611781818361052a565b9061469f565b6147469293506147f7565b600090833861468c565b506040517ffa5a4f0600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152939291906020856024818487165afa948515611796576147069660209686926000916147ca575b501592939495509650945061467b565b6147ea9150883d81116147f0575b6147e2818361052a565b8101906117cb565b386147ba565b503d6147d8565b73ffffffffffffffffffffffffffffffffffffffff1680614867575060003b156101ae576000600491604051928380927fd0e30db0000000000000000000000000000000000000000000000000000000008252845af180156117965761485a5750565b806120a76101c0926104c1565b803b156101ae576040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815260048101929092526000908290602490829084905af180156117965761485a5750565b9092918351936148c681614e04565b90156149d25773ffffffffffffffffffffffffffffffffffffffff9384811680868416146149c057506148fb91849130614bc0565b9060005b86811061490f5750505050505050565b8061491c60019284611acf565b51516149368661443e87614930868d611acf565b51612d27565b87614958608084015173ffffffffffffffffffffffffffffffffffffffff1690565b1680614991575061498661029060e061498b94015173ffffffffffffffffffffffffffffffffffffffff1690565b614aa8565b016148ff565b6149b560e06149bb94015173ffffffffffffffffffffffffffffffffffffffff1690565b906127b2565b61498b565b9350505091506101c093503090614ed2565b50949392905060005b8381106149ea57505050509050565b806149f760019288611acf565b5151608081015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff81811690871603614a6b575060e00151614a659073ffffffffffffffffffffffffffffffffffffffff16614a5d8386611acf565b519086612706565b016149db565b614a8f60e0614aa293015173ffffffffffffffffffffffffffffffffffffffff1690565b9086614a9b8588611acf565b5192614bc0565b50614a65565b814710614b6257600080809373ffffffffffffffffffffffffffffffffffffffff8294165af1614ad661179b565b5015614ade57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152fd5b9392919073ffffffffffffffffffffffffffffffffffffffff90818316614d8b576040517f784367d600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201529082169560209490919085826024818b5afa94851561179657614cc3958793600091614d6e575b5015614d44579788915b60006040518098819582947f769f8e5d0000000000000000000000000000000000000000000000000000000084523060048501608091600093959460a083019673ffffffffffffffffffffffffffffffffffffffff809316845260208401521660408201528260608201520152565b03925af1928315611796576101c094600094614d25575b50508295837f00000000000000000000000000000000000000000000000000000000000000009184808416911614614d15575b505016614aa8565b614d1e916147f7565b3883614d0d565b614d3c929450803d1061178f57611781818361052a565b913880614cda565b507f0000000000000000000000000000000000000000000000000000000000000000978891614c54565b614d859150843d86116147f0576147e2818361052a565b38614c4a565b909260006020946147069697604051978896879586937f769f8e5d00000000000000000000000000000000000000000000000000000000855260048501608091600093959460a083019673ffffffffffffffffffffffffffffffffffffffff809316845260208401521660408201528260608201520152565b908151801561152e5773ffffffffffffffffffffffffffffffffffffffff608081816020870151510151169460015b848110614e4557505050505060019190565b868484614e528486611acf565b515101511603614e6457600101614e33565b50505050509050600090600090565b9093929184519260005b848110614e8d5750505050509050565b80614ecc73ffffffffffffffffffffffffffffffffffffffff60c0614eb46001958c611acf565b515101511685614ec48487611acf565b519188613417565b01614e7d565b8251929493909173ffffffffffffffffffffffffffffffffffffffff81163003614f3957509091929360005b848110614f0c575050505050565b80614f33614f2160e0613b0360019587611acf565b614f2b8387611acf565b5190876127b2565b01614efe565b60005b848110614f4c5750505050509050565b80614f74614f6160e0613b036001958c611acf565b614f6b8387611acf565b51908588613417565b01614f3c565b614f82613d20565b5073ffffffffffffffffffffffffffffffffffffffff809116906040517fe184c9be0000000000000000000000000000000000000000000000000000000081526020918282600481875afa801561179657614fea84916000948591615085575b5042906123af565b946004604051809581937f1d52edc40000000000000000000000000000000000000000000000000000000083525af180156117965761505d92600091615068575b506067549361503861058c565b958652850152821673ffffffffffffffffffffffffffffffffffffffff166040840152565b60a01c606082015290565b61507f9150843d861161178f57611781818361052a565b3861502b565b61509c9150833d851161178f57611781818361052a565b38614fe2565b61016090939291936101808101947f7add545d7d8f07e77f0a943685e28dc6e6e5467c45a31dccbd8095ea82b43dcf825280516020830152602081015160408301526040810151606083015261510060608201516080840190612421565b608081015173ffffffffffffffffffffffffffffffffffffffff1660a083015260a081015173ffffffffffffffffffffffffffffffffffffffff1660c083015260c081015173ffffffffffffffffffffffffffffffffffffffff1660e083015260e081015161518a610100918285019073ffffffffffffffffffffffffffffffffffffffff169052565b81015190610120918284015201516101408201520152565b6107b9906040516151b2816104d5565b6101206000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152611682615212610140830151602081519101206040519283916020830195866150a2565b51902061521d611b33565b906040519060208201927f190100000000000000000000000000000000000000000000000000000000000084526022830152604282015260428152615261816104f2565b51902090565b9061527a6020928281519485920161242e565b0190565b906004917f8fcbaf0c0000000000000000000000000000000000000000000000000000000081526152b8825180936020868501910161242e565b010190565b906004917fd505accf0000000000000000000000000000000000000000000000000000000081526152b8825180936020868501910161242e565b604051906153048261050e565b600f82527f5065726d6974206661696c65643a2000000000000000000000000000000000006020830152565b9080518061533d57505050565b60009060e081036153c2575050600091829182604051615365816116826020820195866152bd565b51925af161537161179b565b905b1561537b5750565b615390612a019161538a6152f7565b906154bb565b6040519182917f08c379a000000000000000000000000000000000000000000000000000000000835260048301612996565b909290610100036153f7578291826040516153e58161168260208201958661527e565b51925af16153f161179b565b90615373565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f57726f6e67207065726d6974206c656e677468000000000000000000000000006044820152606490fd5b1561545d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e76616c69642072657665727420726561736f6e00000000000000000000006044820152fd5b80516004811015615549575b506154f1916116826155206154de6107b994615716565b61551a6040519687956020870190615267565b7f556e6b6e6f776e28000000000000000000000000000000000000000000000000815260080190565b90615267565b7f2900000000000000000000000000000000000000000000000000000000000000815260010190565b7fffffffff000000000000000000000000000000000000000000000000000000006020830151167f08c379a000000000000000000000000000000000000000000000000000000000811480615686575b156156025750506155d991611682615520836154de60246107b99601516155d26155ca602483860101945192612aae565b845190612ae6565b1115615456565b7f4572726f72280000000000000000000000000000000000000000000000000000815260060190565b7f4e487b710000000000000000000000000000000000000000000000000000000014908161567b575b50615638576154f16154c7565b615652916116826155206154de60246107b9950151615691565b7f50616e6963280000000000000000000000000000000000000000000000000000815260060190565b60249150143861562b565b506044821015615599565b6107b990604051906020820152602081526156ab8161050e565b615716565b906156ba826105be565b6156c7604051918261052a565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611ab882946105be565b80516001101561152e5760210190565b90815181101561152e570160200190565b9061573161572c6157278451612cc4565b612abc565b6156b0565b603061573c82611ac2565b536078615748826156f5565b5360005b835181101561587d576157c56157bf6157b961579161576b8589615705565b517fff000000000000000000000000000000000000000000000000000000000000001690565b60041c7f0f000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b60ff1690565b906010918281101561152e577f303132333435363738396162636465660000000000000000000000000000000080911a61580f61580961580485612cda565b612aca565b86615705565b5361584b6157bf7f0f0000000000000000000000000000000000000000000000000000000000000061584461576b868b615705565b1660f81c90565b9283101561152e57615878921a61587261586c61586784612cda565b612ad8565b85615705565b5361146e565b61574c565b509150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052605160045260246000fd5b9392919093806001146159865780600214615926578060031461591c578060041461591257806005146158fe578060061461590857806007146158fe57600803615882576142f693613396565b506142f693613372565b506142f693613396565b506142f693613311565b506142f69361326c565b5091939261593390612d0a565b918015612d4457615945920490613213565b917ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c00008101818111610b705761597a9084612d27565b928115612d4457920490565b506159aa906159a493959492670de0b6b3a764000094859185612d27565b046131fc565b937ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c00008101908111610b705761320f91612d2756fea2646970667358221220d8248282c041c68602a3d5e47d933d3ac3e454ede01ebb561dbcb41b6b6a151764736f6c63430008150033";
914
+ "0x60a034620001ab57601f62005aea38819003918201601f19168301916001600160401b03831184841017620001b057808492602094604052833981010312620001ab57516001600160a01b0381168103620001ab576080526001805460ff8160a81c1615908180926200019b575b801562000180575b15620001245760ff60a01b198116600160a01b178355816200010c575b50620000ce575b6040516159239081620001c782396080518181816145e101528181614b8a01528181614bd901528181614c370152614e530152f35b805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a13862000099565b61ffff60a01b191661010160a01b1782553862000092565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156200007557508260ff8260a01c161462000075565b508260ff8260a01c16106200006d565b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c8063078dfbe71461017b57806332707597146101765780633644e51514610171578063469048401461016c5780634e71e0c8146101675780635413fba71461016257806370ae92d21461015d57806372c244a81461015857806374a87808146101535780637e54f0921461014e5780638da5cb5b14610149578063942461bb14610144578063acdb32df1461013f578063bc1ed74c1461013a578063bc6257d214610135578063c53a029214610130578063cf6fc6e31461012b578063d0bd5f1914610126578063d2b68b3014610121578063e30c39781461011c578063f1d4deb3146101175763f2a413740361000e576111eb565b611185565b611133565b611116565b6110d7565b61106a565b610fd4565b610f9a565b610d79565b610cc4565b610ba1565b610afc565b610ab2565b610a4f565b61094a565b6108e1565b610885565b61073b565b6106e9565b6106b0565b610644565b6101c7565b73ffffffffffffffffffffffffffffffffffffffff81160361019e57565b600080fd5b602435906101b082610180565b565b35906101b082610180565b8015150361019e57565b3461019e5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019e5760043561020281610180565b6024359061020f826101bd565b6044359061021c826101bd565b73ffffffffffffffffffffffffffffffffffffffff600093610242828654163314611353565b156103945781169182159081159161038c575b501561032e576102fe91610299610280855473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08580a373ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006000541617600055565b61032b7fffffffffffffffffffffffff000000000000000000000000000000000000000060015416600155565b80f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f776e61626c653a207a65726f206164647265737300000000000000000000006044820152fd5b905038610255565b9150167fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015580f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761040e57604052565b6103c3565b67ffffffffffffffff811161040e57604052565b610160810190811067ffffffffffffffff82111761040e57604052565b60a0810190811067ffffffffffffffff82111761040e57604052565b6040810190811067ffffffffffffffff82111761040e57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761040e57604052565b60405190610180820182811067ffffffffffffffff82111761040e57604052565b604051906101b082610444565b3590600482101561019e57565b67ffffffffffffffff811161040e57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f8201121561019e57803590610549826104f8565b92610557604051948561047c565b8284526020838301011161019e57816000926020809301838601378301015290565b91906101808382031261019e5761058e6104bd565b928035845260208101356020850152604081013560408501526105b3606082016104eb565b60608501526105c4608082016101b2565b60808501526105d560a082016101b2565b60a08501526105e660c082016101b2565b60c08501526105f760e082016101b2565b60e0850152610100808201359085015261012080820135908501526101408082013590850152610160918282013567ffffffffffffffff811161019e5761063e9201610532565b90830152565b3461019e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019e5760043567ffffffffffffffff811161019e5761069d6106986020923690600401610579565b61508c565b604051908152f35b600091031261019e57565b3461019e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019e57602061069d611a99565b3461019e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019e57602073ffffffffffffffffffffffffffffffffffffffff60675416604051908152f35b3461019e576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126108825773ffffffffffffffffffffffffffffffffffffffff806001541680330361082457806107f9928454167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08580a373ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006000541617600055565b7fffffffffffffffffffffffff00000000000000000000000000000000000000006001541660015580f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152fd5b80fd5b3461019e577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60208136011261019e576004359067ffffffffffffffff821161019e5761018090823603011261019e5761001990600401611883565b3461019e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019e5773ffffffffffffffffffffffffffffffffffffffff60043561093181610180565b1660005260666020526020604060002054604051908152f35b3461019e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019e5760043560ff811680910361019e5760009033825260666020526040822054908082018092116109f85733835260666020528160408420558103908082116109f85760408051928352602083019190915233917fdc0537f71d06d3708f52baf4ddf6918b25f1a145ba08873de27485682b35cac191819081015b0390a280f35b6113b8565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc604091011261019e57600435610a3381610180565b906024356bffffffffffffffffffffffff8116810361019e5790565b3461019e57610a5d366109fd565b7fffffffffffffffffffffffff000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff91610aa383600054163314611353565b60a01b16911617606755600080f35b3461019e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019e5760043560005260686020526020604060002054604051908152f35b3461019e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019e57602073ffffffffffffffffffffffffffffffffffffffff60005416604051908152f35b67ffffffffffffffff811161040e5760051b60200190565b6020908160408183019282815285518094520193019160005b828110610b8d575050505090565b835185529381019392810192600101610b7f565b3461019e576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019e5760043567ffffffffffffffff811161019e573660238201121561019e57806004013590610bfd82610b4e565b91610c0b604051938461047c565b80835260248484019160051b8301019136831161019e57602401905b828210610c4a57610c46610c3a85611a49565b60405191829182610b66565b0390f35b81358152908401908401610c27565b9060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83011261019e5760043567ffffffffffffffff9283821161019e578060238301121561019e57816004013593841161019e5760248460051b8301011161019e576024019190565b3461019e57610cd236610c59565b6000905b808210610cdf57005b8160051b8301357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18436030181121561019e578391930160009160208201925b610d298380611443565b9050811015610d695780610d63610d54610d4f600194610d498880611443565b90611497565b6114ac565b610d5d876114ac565b90611500565b01610d1f565b5093929050600191500190610cd6565b3461019e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019e5760043560005260686020526040600020548015610dec576020907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405191018152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4c4f503a20556e6b6e6f776e206f7264657200000000000000000000000000006044820152fd5b60807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261019e5767ffffffffffffffff9060043582811161019e578160238201121561019e57806004013590602490610ea583610b4e565b926040610eb48151958661047c565b818552602093808587019360051b8501019387851161019e57818101935b858510610f07575050505050505092610ee96101a3565b926044359260643591821161019e57610f0491600401610532565b90565b84358a811161019e57820160607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc828c03011261019e57845191610f4a836103f2565b848201358c811161019e578b86610f6392850101610579565b83526044820135928c841161019e57606483610f858e898e9889980101610532565b85840152013587820152815201940193610ed2565b3461019e57610c46610fb7610fae36610e4a565b92919091611d64565b604080519384526020840192909252908201529081906060820190565b3461019e576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126108825733815260666020526040812054600181018082116109f8576109f27fdc0537f71d06d3708f52baf4ddf6918b25f1a145ba08873de27485682b35cac191338552606660205280604086205560405191829133958360209093929193604081019481520152565b3461019e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019e5773ffffffffffffffffffffffffffffffffffffffff6004356110ba81610180565b166000526066602052602060243560406000205414604051908152f35b3461019e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019e57602060675460a01c604051908152f35b3461019e57610c46610fb761112a36610e4a565b92919091611e26565b3461019e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019e57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461019e5761119336610c59565b60005b81811061119f57005b8060051b830135907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe818436030182121561019e576111e16111e6928501611883565b6113e7565b611196565b3461019e576112726111fc366109fd565b6001929192549261122460ff8560a81c161580958196611341575b811561131e575b50611b05565b83611269740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6001541617600155565b6112d457611b90565b61127857005b6112a57fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff60015416600155565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61131975010000000000000000000000000000000000000000007fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff6001541617600155565b611b90565b303b15915081611330575b503861121e565b60a01c60ff16600114905038611329565b9050600160ff8260a01c161090611217565b1561135a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109f85760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561019e570180359067ffffffffffffffff821161019e57602001918160051b3603831361019e57565b91908110156114a75760051b0190565b611414565b35610f0481610180565b9081602091031261019e575190565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b919073ffffffffffffffffffffffffffffffffffffffff8316928315611599576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff831660248201526020948590829060449082905afa801561170f576b7fffffffffffffffffffffff916000916116e2575b501061159f575b50509050565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000085820190815273ffffffffffffffffffffffffffffffffffffffff841660248301526000604483018190529182919061162781606481015b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261047c565b519082855af1611635611714565b816116b2575b50156116545761164c929350611759565b803880611599565b606484604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152600c60248201527f5361666520417070726f766500000000000000000000000000000000000000006044820152fd5b805180159250869083156116ca575b5050503861163b565b6116da9350820181019101611744565b3885816116c1565b6117029150863d8811611708575b6116fa818361047c565b8101906114b6565b38611592565b503d6116f0565b6114c5565b3d1561173f573d90611725826104f8565b91611733604051938461047c565b82523d6000602084013e565b606090565b9081602091031261019e5751610f04816101bd565b6040517f095ea7b3000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff90931660248201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604482015260009283929183906117dc81606481016115fb565b51925af16117e8611714565b81611854575b50156117f657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5361666520417070726f766500000000000000000000000000000000000000006044820152fd5b8051801592508215611869575b5050386117ee565b61187c9250602080918301019101611744565b3880611861565b60c081013561189181610180565b73ffffffffffffffffffffffffffffffffffffffff3391160361197b576106986118bc913690610579565b60016118d2826000526068602052604060002090565b541461191d576118f56118ef826000526068602052604060002090565b60019055565b337f35ab4a1a0e9bec7fd7ae164679b9cc00e6568e4db238d8055a75b1862f62ec2e600080a3565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4c4f503a20616c72656164792066696c6c6564000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4c4f503a204163636573732064656e69656400000000000000000000000000006044820152fd5b906119e382610b4e565b6119f0604051918261047c565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611a1e8294610b4e565b0190602036910137565b8051156114a75760200190565b80518210156114a75760209160051b010190565b90611a5482516119d9565b600092835b8151811015611a925780611a70611a8d9284611a35565b51865260686020526040862054611a878286611a35565b526113e7565b611a59565b5090925050565b6002546003546040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff82111761040e5760405251902090565b15611b0c57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b9073ffffffffffffffffffffffffffffffffffffffff9060ff60015460a81c1690611bba82611c82565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000913383600054161760005560405190611bf382610460565b601b8252602082017f50656e646c65204c696d6974204f726465722050726f746f636f6c0000000000815260405192611c2b84610460565b60018452611c6860208501937f31000000000000000000000000000000000000000000000000000000000000008552611c6381611c82565b611c82565b519020915190209060025560035560a01b16911617606755565b15611c8957565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60041115611d4657565b611d0d565b516004811015611d465790565b6004821015611d465752565b91929092611d7183613ae5565b611d876060611d7f85611a28565b515101611d4b565b92611d9184611d3c565b83158015611e13575b15611df157611dea94611ddb91611db9611db26104de565b9687611d58565b602086015273ffffffffffffffffffffffffffffffffffffffff166040850152565b60608301526080820152611ff2565b9192909190565b611dea94611e0491611db9611db26104de565b60608301526080820152613030565b50611e1d84611d3c565b60028414611d9a565b91929092611e3383613ae5565b611e416060611d7f85611a28565b92611e4b84611d3c565b83158015611e9d575b15611e7b57611dea94611e6c91611db9611db26104de565b6060830152608082015261330a565b611dea94611e8e91611db9611db26104de565b6060830152608082015261367d565b50611ea784611d3c565b60028414611e54565b907ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c000082019182116109f857565b919082039182116109f857565b15611ef157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4c4f503a206d617854616b696e672065786365656465640000000000000000006044820152fd5b906004821015611d465752565b60005b838110611f6f5750506000910152565b8181015183820152602001611f5f565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093611fbb81518092818752878088019101611f5c565b0116010190565b919260a093611fd684610f04989794611f4f565b6020840152604083015260608201528160808201520190611f7f565b60208101906120018251613cb0565b6120128697949295939751836143b5565b9061203f87518761203961202860675460a01c90565b6bffffffffffffffffffffffff1690565b91612532565b9182519761205360408501998a5190611edd565b99602085015199519889978b8d6120706060840151831115611eea565b61209b81612095604086015173ffffffffffffffffffffffffffffffffffffffff1690565b8c6121ce565b6080830190815151612136575b505050916101b0989161211a93516120bf81611d3c565b6120c881611d3c565b61212e5750965b6120fa84519860a08901998a519173ffffffffffffffffffffffffffffffffffffffff339116614ed9565b60675473ffffffffffffffffffffffffffffffffffffffff165b906121ce565b5193519160e060c085015194015194613e8e565b9050966120cf565b90919492809b50519161214883611d3c565b5191333b1561019e5761218c6000938f60405198899586957fbc6ab22500000000000000000000000000000000000000000000000000000000875260048701611fc2565b038183335af191821561170f576101b09961211a948d946121b5575b82949b50819395506120a8565b806121c26121c892610413565b806106a5565b386121a8565b91909181156122755773ffffffffffffffffffffffffffffffffffffffff16918261226c576000809350809281925af1612206611714565b501561220e57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6574682073656e64206661696c656400000000000000000000000000000000006044820152fd5b6101b09261227a565b505050565b9173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb000000000000000000000000000000000000000000000000000000006020850152166024830152604482015260448152608081019181831067ffffffffffffffff84111761040e576101b092604052612378565b156122f457565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff16906040519061239c82610460565b6020928383527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656484840152803b1561241357600082819282876123ee9796519301915af16123e8611714565b90612482565b805190816123fb57505050565b826101b09361240e938301019101611744565b6122ed565b606484604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b906020610f04928181520190611f7f565b9091901561248e575090565b81511561249e5750805190602001fd5b6124dc906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401526024830190611f7f565b0390fd5b60405190610100820182811067ffffffffffffffff82111761040e57604052606060e0836000815260006020820152600060408201526000838201528260808201528260a08201528260c08201520152565b919073ffffffffffffffffffffffffffffffffffffffff906125526124e0565b5016604051907fe184c9be0000000000000000000000000000000000000000000000000000000082526020938483600481855afa801561170f576125a38691600095869161260b575b504290611edd565b926004604051809681937f1d52edc40000000000000000000000000000000000000000000000000000000083525af192831561170f57610f04956000946125ec575b50506126d2565b612603929450803d10611708576116fa818361047c565b9138806125e5565b6126229150833d8511611708576116fa818361047c565b3861259b565b1561262f57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4c4f503a2063616e27742073776170203020616d6f756e7400000000000000006044820152fd5b60240190816024116109f857565b60020190816002116109f857565b90600282018092116109f857565b90600382018092116109f857565b919082018092116109f857565b93929091936126df6124e0565b948151936126ec856119d9565b60808801526126fa856119d9565b60a0880152612708856119d9565b60c0880152612716856119d9565b60e088015261274461273f826127386127336060611d7f89611a28565b612dc2565b5096612921565b612891565b92600094602089019060408a01928a60608101985b8a811061276d575050505050505050505050565b88888260019461277d8288611a35565b51908860408301928d84511561287a5761286f976128439760e09688956127b06127d6956101206127fd98510151612887565b91516127c08860808b0151611a35565b526127cf8760808a0151611a35565b51906157f4565b906127f78560a08897959701519360c0890151906127f7838c8c0151611a35565b52611a35565b5261281761280f8460a0840151611a35565b511515612628565b612830612828846080840151611a35565b5182516126c5565b815261284b6128438460a0840151611a35565b518b516126c5565b8a5261286661285e8460c0840151611a35565b518c516126c5565b8b520151611a35565b8a525b018b90612759565b5050505050505050612872565b9061289191612921565b6000811261019e5790565b908160011b91808304600214901517156109f857565b908160011b917f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116036109f857565b90670de0b6b3a7640000918281029281840414901517156109f857565b818102929181159184041417156109f857565b811561291c570490565b6114d1565b6301e1338091612930916128ff565b047f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811161019e57610f04906129e0565b1561296857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f496e76616c6964206578706f6e656e74000000000000000000000000000000006044820152fd5b801561291c576ec097ce7bc90715b34b9f10000000000590565b7ffffffffffffffffffffffffffffffffffffffffffffffffdc702bd3a30fc000081121580612daf575b612a1390612961565b60008112612d9a576064906806f05b59d3b20000008112612d37577ffffffffffffffffffffffffffffffffffffffffffffffff90fa4a62c4e0000000168056bc75e2d6310000082770195e54c5dd42177f53a27172fa9ec630262827000000000925b0280829168ad78ebc5ac62000000811215612cfb575b50806856bc75e2d63100000084921215612cc1575b682b5e3af16b18800000811215612c89575b6815af1d78b58c400000811215612c51575b680ad78ebc5ac6200000811215612c1a575b81811215612be3575b6802b5e3af16b1880000811215612bac575b68015af1d78b58c40000811215612b75575b60028282800205056003838383020505600484848302050560058585830205056006868683020505600787878302050590600888888402050592600989898602050594600a8a8a8802050596600b8b8b8a02050598600c8c8c8c0205059a0101010101010101010101010205020590565b6806f5f17757889379377ffffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c000083920193020591612b04565b6808f00f760a4b2db55d7ffffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e78000083920193020591612af2565b680ebc5fb417461211107ffffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf0000083920193020591612ae0565b68280e60114edb805d037ffffffffffffffffffffffffffffffffffffffffffffffff5287143a539e0000083920193020591612ad7565b690127fa27722cc06cc5e27fffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c0000083920193020591612ac5565b693f1fce3da636ea5cf8507fffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e780000083920193020591612ab3565b6b02df0ab5a80a22c61ab5a7007fffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf00000083920193020591612aa1565b6e01855144814a7ff805980ff008400092507fffffffffffffffffffffffffffffffffffffffffffffff5287143a539e00000001905082612a8c565b6803782dace9d90000008112612d87577ffffffffffffffffffffffffffffffffffffffffffffffffc87d25316270000000168056bc75e2d63100000826b1425982cf597cd205cef738092612a76565b68056bc75e2d6310000082600192612a76565b612da6906000036129e0565b610f04906129c6565b5068070c1cc73b00c80000811315612a0a565b612dcb81611d3c565b80612dd95750600190600590565b612de281611d3c565b60018103612df35750600290600690565b80612dff600292611d3c565b03612e0c57600390600790565b600490600890565b670de0b6b3a764000091612e27916128ff565b0490565b90670de0b6b3a7640000908181029181830414901517156109f8578181018091116109f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081116109f857811561291c570490565b670de0b6b3a7640000908181029181830414901517156109f857811561291c570490565b9391612eb790939193856128ff565b670de0b6b3a764000090818101908181116109f857670de0b6b3a763ffff019081116109f857612ee9918591046128ff565b937ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c000094858501908582116109f857811561291c57049482018281116109f857612f3290826128ff565b821561291c57612f53612f5991610f0494612f4c88611eb0565b9104612e84565b94611eb0565b90612e84565b92909391937ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c000094858201948286116109f85785612f9b916128ff565b91801561291c57612fad920490612e2b565b9381019081116109f857612fc190846128ff565b821561291c5782610f0491049284612e84565b90939284612fe191612e2b565b9181039081116109f85781039081116109f8579190565b92670de0b6b3a76400008085029085820414851517156109f857811561291c57049181018091116109f85781039081116109f8579091565b602081019161303f8351613cb0565b939261305a8793969297518861203961202860675460a01c90565b9081519560208301519461307460408501968751906126c5565b9551978699819b61308b60608901518a1115611eea565b6001885161309881611d3c565b6130a181611d3c565b036131ea5750955b73ffffffffffffffffffffffffffffffffffffffff916130f58451986130e6604085015173ffffffffffffffffffffffffffffffffffffffff1690565b60808a019a868c519316614e7a565b6080820191825151613161575b5050506101b096613118913090339087166131f2565b61314d8861312d835160a08801519087614911565b9461211460675473ffffffffffffffffffffffffffffffffffffffff1690565b5193519060e060c085015194015194613e8e565b519161316c83611d3c565b5190333b1561019e5789926131b26000938e6040519d8e9586957fbc6ab22500000000000000000000000000000000000000000000000000000000875260048701611fc2565b038183335af191821561170f576101b098613118936131d7575b829950819350613102565b806121c26131e492610413565b386131cc565b9050956130a9565b9291908215158061321b575b613209575b50505050565b6132129361323b565b38808080613203565b503073ffffffffffffffffffffffffffffffffffffffff821614156131fe565b90926101b093604051937f23b872dd00000000000000000000000000000000000000000000000000000000602086015273ffffffffffffffffffffffffffffffffffffffff80921660248601521660448401526064830152606482526132a082610444565b612378565b156132ac57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c4f503a206d6178496e707574206578636565646564000000000000000000006044820152fd5b602081016133188151613cb0565b61332a859397949596929651866143b5565b906133336124e0565b5061334f84518861334961202860675460a01c90565b9161356d565b94929691999080998b9c899c61336b60608b01518c11156132a5565b60808a01908151516134f1575b5073ffffffffffffffffffffffffffffffffffffffff9a905061339f813033868f166131f2565b88516133aa916126c5565b60408901516133b891611edd565b6133c39085846121ce565b88516133ce81611d3c565b6133d781611d3c565b158060001494602092613473966134e9579a5b82156134c85730925b156134c0576040015173ffffffffffffffffffffffffffffffffffffffff16915b60008d6040518099819682957fdb74aa150000000000000000000000000000000000000000000000000000000084526004840190602090939293604083019473ffffffffffffffffffffffffffffffffffffffff809216845216910152565b0393165af1801561170f576101b09961211a946120fa926134a2575b50855160a08a019a8b5192309116614ed9565b6134b99060203d8111611708576116fa818361047c565b503861348f565b503091613414565b604081015173ffffffffffffffffffffffffffffffffffffffff16926133f3565b50809a6133ea565b8a51916134fd83611d3c565b5190333b1561019e578c926135436000938860405196879586957f441d4c6200000000000000000000000000000000000000000000000000000000875260048701611fc2565b038183335af1801561170f5761355a575b80613378565b806121c261356792610413565b38613554565b929091926135796124e0565b5073ffffffffffffffffffffffffffffffffffffffff6135a06127336060611d7f85611a28565b94905016604051917fe184c9be0000000000000000000000000000000000000000000000000000000083526020958684600481865afa801561170f576135f28891600096879161260b57504290611edd565b936004604051809781937f1d52edc40000000000000000000000000000000000000000000000000000000083525af191821561170f576136559460009361365c575b50918093613641936126d2565b9384519585015160408601968751926157b3565b9290935191565b613641935061367790893d8b11611708576116fa818361047c565b92613634565b906020820161368c8151613cb0565b94926136966124e0565b506136ac85518361334961202860675460a01c90565b9392989181989198819b8b6136c760608301518211156132a5565b608082018051516137f7575b5060009989613740602093600386516136eb81611d3c565b6136f481611d3c565b1493848f146137f05780945b8f146137e6575061372e83915b73ffffffffffffffffffffffffffffffffffffffff9e8f96873391166131f2565b828c60808b5191019e8f519316614e7a565b6040517fbcb7ea5d0000000000000000000000000000000000000000000000000000000081523060048201529b8c92602492849291165af192831561170f576137b160406137b7936101b09c61314d976137c8575b50015173ffffffffffffffffffffffffffffffffffffffff1690565b876121ce565b61312d835160a08801519087614911565b6137df9060203d8111611708576116fa818361047c565b5038613795565b61372e909161370d565b8394613700565b9982519a6138048c611d3c565b51333b1561019e576040519b8c917f441d4c62000000000000000000000000000000000000000000000000000000008352868589600486019461384695611fc2565b038b3391815a6000948591f19a8b1561170f576137406020938c9260009e613874575b5093505050996136d3565b806121c261388192610413565b38613869565b1561388e57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4c4f503a20656d707479206261746368000000000000000000000000000000006044820152fd5b156138f357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c4f503a205059206578706972656400000000000000000000000000000000006044820152fd5b1561395857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4c4f503a206e6f742073616d65206f72646572547970650000000000000000006044820152fd5b156139bd57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4c4f503a206e6f742073616d65205954000000000000000000000000000000006044820152fd5b15613a2257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4c4f503a206f72646572206578706972656400000000000000000000000000006044820152fd5b15613a8757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c4f503a206f7264657220696e76616c696461746564000000000000000000006044820152fd5b805190613af3821515613887565b60a090613b2082613b0383611a28565b5151015173ffffffffffffffffffffffffffffffffffffffff1690565b9060609273ffffffffffffffffffffffffffffffffffffffff613b4685611d7f85611a28565b9316906040938451937fe184c9be0000000000000000000000000000000000000000000000000000000085526020948581600481885afa801561170f57613b9791600091613c7e575b5042106138ec565b60005b888110613bac57505050505050505050565b80613c78613bbc60019385611a35565b5151613be7868c830151613bcf81611d3c565b613bd882611d3c565b613be181611d3c565b14613951565b613c1488613c0e6102808a85015173ffffffffffffffffffffffffffffffffffffffff1690565b146139b6565b613c22898201514210613a1b565b613c70613c4a60c08c84015193015173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff166000526066602052604060002090565b541115613a80565b01613b9a565b613c959150873d8911611708576116fa818361047c565b38613b8f565b9081602091031261019e5751610f0481610180565b90815191613cbd836119d9565b9260005b818110613dbc57505060a0613b03613cd892611a28565b73ffffffffffffffffffffffffffffffffffffffff8116926040517fafd27bf50000000000000000000000000000000000000000000000000000000081526020908181600481895afa90811561170f576004918391600091613d9f575b5096604051928380927fd94073d40000000000000000000000000000000000000000000000000000000082525afa91821561170f57600092613d7657505092565b613d959250803d10613d98575b613d8d818361047c565b810190613c9b565b92565b503d613d83565b613db69150823d8411613d9857613d8d818361047c565b38613d35565b80613dc960019285611a35565b516040613ddc82516020840151906140de565b9190920184613dec838351613e17565b80930301613e04846000526068602052604060002090565b5552613e108288611a35565b5201613cc1565b9080821015613e24575090565b905090565b15613e3057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4c4f503a206661696c20736166650000000000000000000000000000000000006044820152fd5b9491939080519560005b878110613fd1575060005b878110613eb4575050505050505050565b613ebe8183611a35565b5151613eca8285611a35565b51606082015190613eda82611d3c565b60a083015173ffffffffffffffffffffffffffffffffffffffff1660809093015173ffffffffffffffffffffffffffffffffffffffff16613f1b858c611a35565b5193613f27868c611a35565b5191613f33878b611a35565b51613f3e888d611a35565b5190613f4987611d3c565b6040519473ffffffffffffffffffffffffffffffffffffffff86951698613fa594869192608093969594919673ffffffffffffffffffffffffffffffffffffffff60a08501981684526020840152604083015260608201520152565b037fe7f5a9a61ce868cc79cb6ee4bbcca47e8d1c018bc2c3c960ae35c7244830188891a4600101613ea3565b8061400e613ffc613fe46001948b611a35565b51610140613ff28588611a35565b5151015190612e14565b614006838a611a35565b511015613e29565b01613e98565b1561401b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4c4f503a20626164207369676e617475726500000000000000000000000000006044820152fd5b1561408057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4c4f503a207265656e7472616e637920646574656374656400000000000000006044820152fd5b91906140e98361508c565b90816000526068602052604060002054600181146141d557806141ac575061413561413a918361413060c088015173ffffffffffffffffffffffffffffffffffffffff1690565b6141f7565b614014565b61016061010084015193015160148151101561415557509190565b60148101805191517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec01815261418a91615232565b6141a86141a1826000526068602052604060002090565b5415614079565b9190565b919350507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b505090915090600090565b604090610f04939281528160208201520190611f7f565b909161420381846142c8565b6005811015611d46571590816142a5575b5061429d57600091829160405161425b816115fb60208201947f1626ba7e00000000000000000000000000000000000000000000000000000000998a8752602484016141e0565b51915afa90614268611714565b82614291575b8261427857505090565b61428d919250602080825183010191016114b6565b1490565b8051602014925061426e565b505050600190565b905073ffffffffffffffffffffffffffffffffffffffff80841691161438614214565b9060418151146000146142f6576142f2916020820151906060604084015193015160001a90614300565b9091565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083116143a95760ff16601b8114158061439e575b614392579160809493916020936040519384528484015260408301526060820152600093849182805260015afa1561170f57815173ffffffffffffffffffffffffffffffffffffffff81161561438c579190565b50600190565b50505050600090600490565b50601c811415614338565b50505050600090600390565b919080516143c2816119d9565b93600080915b8382106143d6575050505050565b60809693949592966143ec81613b03858a611a35565b936000985b87811080614514575b1561447957614409818a611a35565b515160c0015173ffffffffffffffffffffffffffffffffffffffff169960409a8b614434848d611a35565b5101516144419189614543565b8a61444c838c611a35565b510151614458916126c5565b99614463828b611a35565b5101516144708289611a35565b526001016143f1565b9598929490979693915073ffffffffffffffffffffffffffffffffffffffff80861690821614801561450c575b61450457826144b591866145df565b905b8581106144cb575050505b829092916143c8565b60019060406144f0856144eb86846144e3878f611a35565b5101516128ff565b612912565b906144fb838b611a35565b510152016144b7565b5050506144c2565b5082156144a6565b5061452383613b03838c611a35565b73ffffffffffffffffffffffffffffffffffffffff8088169116146143fa565b90919073ffffffffffffffffffffffffffffffffffffffff16806145ca57509050340361456c57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f657468206d69736d6174636800000000000000000000000000000000000000006044820152fd5b816145d457505050565b6101b092309161323b565b7f0000000000000000000000000000000000000000000000000000000000000000929173ffffffffffffffffffffffffffffffffffffffff80821681861614806146f9575b90846146af966020969594936146e4575b50506000818316156000146146de575083905b6040518097819682957f20e8c56500000000000000000000000000000000000000000000000000000000845230600485016000929493606092608083019673ffffffffffffffffffffffffffffffffffffffff809216845216602083015260408201520152565b0393165af190811561170f576000916146c6575090565b610f04915060203d8111611708576116fa818361047c565b90614648565b6146ef9293506147a0565b6000908338614635565b506040517ffa5a4f0600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152939291906020856024818487165afa94851561170f576146af966020968692600091614773575b5015929394955096509450614624565b6147939150883d8111614799575b61478b818361047c565b810190611744565b38614763565b503d614781565b73ffffffffffffffffffffffffffffffffffffffff1680614810575060003b1561019e576000600491604051928380927fd0e30db0000000000000000000000000000000000000000000000000000000008252845af1801561170f576148035750565b806121c26101b092610413565b803b1561019e576040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815260048101929092526000908290818381602481015b03925af1801561170f576148035750565b73ffffffffffffffffffffffffffffffffffffffff91908216806148c8575016803b1561019e576000906004604051809481937fd0e30db00000000000000000000000000000000000000000000000000000000083525af1801561170f576148035750565b915050803b1561019e576040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810192909252600090829081838160248101614852565b929190805191614920836119d9565b9460009081935b85831061493657505050505050565b608097949293959761494c81613b038785611a35565b9360005b8a821080614b38575b1561497d5761497560019161496e848c611a35565b51906126c5565b910190614950565b90979580939495929a979a73ffffffffffffffffffffffffffffffffffffffff808516938189168514614ae1578b6149b86001958692611edd565b036149ff5750505050506149eb6149f2916149d860e0613b038688611a35565b90866149e4868a611a35565b5192614c00565b9189611a35565b525b849190949394614927565b909193958d8c898c614a16868b8f9c9a9c30614c00565b94925b8310614a2f5750505050505050505050506149f4565b899382848a8e8a8a8f97859998614a4787809b611a35565b5151015173ffffffffffffffffffffffffffffffffffffffff1698614a6b91611a35565b5190614a76916128ff565b90614a8091612912565b614a8a8487611a35565b528b86161415613b03614aba97614ab395614aad9460e094614ac5575b50611a35565b92611a35565b51916121ce565b018e90898c8f614a19565b614adb908a614ad4858c611a35565b5191614863565b8f614aa7565b5050505050505b858110614af557506149f4565b80614b1c614b0a60e0613b0360019587611a35565b614b148388611a35565b5190866121ce565b614b268186611a35565b51614b31828b611a35565b5201614ae8565b50614b50614b4a84613b038588611a35565b87614b55565b614959565b73ffffffffffffffffffffffffffffffffffffffff808093169116818114928315614bc5575b8315614b88575b50505090565b7f00000000000000000000000000000000000000000000000000000000000000001614915081614bbc575b50388080614b82565b90501538614bb3565b9250801580614bd5575b92614b7b565b50827f0000000000000000000000000000000000000000000000000000000000000000168214614bcf565b73ffffffffffffffffffffffffffffffffffffffff8381169594928615808015614e4f575b15614dd257829060009015614dcc57507f0000000000000000000000000000000000000000000000000000000000000000915b6040517f784367d600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff881660048201526020969290911692918682602481875afa92831561170f57614d3b938893600091614daf575b5015614da75750879384915b60006040518096819582947f769f8e5d0000000000000000000000000000000000000000000000000000000084523060048501608091600093959460a083019673ffffffffffffffffffffffffffffffffffffffff809316845260208401521660408201528260608201520152565b03925af194851561170f57600095614d88575b50508385819884841603614d77575b5050503090821603614d6e57505050565b6101b0926121ce565b614d8092614863565b388385614d5d565b614d9f929550803d10611708576116fa818361047c565b923880614d4e565b938491614ccc565b614dc69150843d86116147995761478b818361047c565b38614cc0565b91614c58565b50916146af9596506020949391600091604051978896879586937f769f8e5d00000000000000000000000000000000000000000000000000000000855260048501608091600093959460a083019673ffffffffffffffffffffffffffffffffffffffff809316845260208401521660408201528260608201520152565b50827f0000000000000000000000000000000000000000000000000000000000000000168814614c25565b9093929184519260005b848110614e945750505050509050565b80614ed373ffffffffffffffffffffffffffffffffffffffff60c0614ebb6001958c611a35565b515101511685614ecb8487611a35565b51918861323b565b01614e84565b8251929493909173ffffffffffffffffffffffffffffffffffffffff81163003614f4057509091929360005b848110614f13575050505050565b80614f3a614f2860e0613b0360019587611a35565b614f328387611a35565b51908761227a565b01614f05565b60005b848110614f535750505050509050565b80614f7b614f6860e0613b036001958c611a35565b614f728387611a35565b5190858861323b565b01614f43565b61018090939291936101a08101947f22742a2f8610a2d0e945db84f408aacc9d3081f99974bc30b023966fa2fd59318252805160208301526020810151604083015260408101516060830152614fdf60608201516080840190611f4f565b608081015173ffffffffffffffffffffffffffffffffffffffff1660a083015260a081015173ffffffffffffffffffffffffffffffffffffffff1660c083015260c081015173ffffffffffffffffffffffffffffffffffffffff1660e083015260e0810151615069610100918285019073ffffffffffffffffffffffffffffffffffffffff169052565b810151610120908184015281015190610140918284015201516101608201520152565b610f049060405161509c81610427565b6101406000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015201526115fb61510361016083015160208151910120604051928391602083019586614f81565b51902061510e611a99565b906040519060208201927f1901000000000000000000000000000000000000000000000000000000000000845260228301526042820152604281526080810181811067ffffffffffffffff82111761040e5760405251902090565b9061517c60209282815194859201611f5c565b0190565b906004917f8fcbaf0c0000000000000000000000000000000000000000000000000000000081526151ba8251809360208685019101611f5c565b010190565b906004917fd505accf0000000000000000000000000000000000000000000000000000000081526151ba8251809360208685019101611f5c565b6040519061520682610460565b600f82527f5065726d6974206661696c65643a2000000000000000000000000000000000006020830152565b9080518061523f57505050565b60009060e081036152c4575050600091829182604051615267816115fb6020820195866151bf565b51925af1615273611714565b905b1561527d5750565b6152926124dc9161528c6151f9565b906153bd565b6040519182917f08c379a000000000000000000000000000000000000000000000000000000000835260048301612471565b909290610100036152f9578291826040516152e7816115fb602082019586615180565b51925af16152f3611714565b90615275565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f57726f6e67207065726d6974206c656e677468000000000000000000000000006044820152606490fd5b1561535f57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e76616c69642072657665727420726561736f6e00000000000000000000006044820152fd5b8051600481101561544b575b506153f3916115fb6154226153e0610f0494615618565b61541c6040519687956020870190615169565b7f556e6b6e6f776e28000000000000000000000000000000000000000000000000815260080190565b90615169565b7f2900000000000000000000000000000000000000000000000000000000000000815260010190565b7fffffffff000000000000000000000000000000000000000000000000000000006020830151167f08c379a000000000000000000000000000000000000000000000000000000000811480615588575b156155045750506154db916115fb615422836153e06024610f049601516154d46154cc60248386010194519261268d565b8451906126c5565b1115615358565b7f4572726f72280000000000000000000000000000000000000000000000000000815260060190565b7f4e487b710000000000000000000000000000000000000000000000000000000014908161557d575b5061553a576153f36153c9565b615554916115fb6154226153e06024610f04950151615593565b7f50616e6963280000000000000000000000000000000000000000000000000000815260060190565b60249150143861552d565b50604482101561549b565b610f0490604051906020820152602081526155ad81610460565b615618565b906155bc826104f8565b6155c9604051918261047c565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611a1e82946104f8565b8051600110156114a75760210190565b9081518110156114a7570160200190565b9061563361562e615629845161289c565b61269b565b6155b2565b603061563e82611a28565b53607861564a826155f7565b5360005b835181101561577f576156c76156c16156bb61569361566d8589615607565b517fff000000000000000000000000000000000000000000000000000000000000001690565b60041c7f0f000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b60ff1690565b90601091828110156114a7577f303132333435363738396162636465660000000000000000000000000000000080911a61571161570b615706856128b2565b6126a9565b86615607565b5361574d6156c17f0f0000000000000000000000000000000000000000000000000000000000000061574661566d868b615607565b1660f81c90565b928310156114a75761577a921a61577461576e615769846128b2565b6126b7565b85615607565b536113e7565b61564e565b509150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052605160045260246000fd5b9392919093806005146157e057806006146157ea57806007146157e057600803615784576142f293612ff8565b506142f293612fd4565b506142f293612ff8565b93929190938060011461588d578060021461582b57806003146158215760040361578457611dea93612f5f565b50611dea93612ea8565b50919392615838906128e2565b91801561291c5761584a920490612e2b565b907ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c000083018381116109f85761587f90836128ff565b92801561291c578293049190565b50906158b26158ac92670de0b6b3a764000096949680948194886128ff565b046128ff565b04937ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c000081019081116109f8576158e890846128ff565b04919056fea2646970667358221220d06f53104a5134052ef56f2f945a39166797b04d91560121c995801730e1b76764736f6c63430008150033";
1011
915
 
1012
916
  type PendleLimitRouterConstructorParams =
1013
917
  | [signer?: Signer]