@pendle/core-v2 0.9.4-beta → 0.10.2-testnet

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 (360) hide show
  1. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +1 -1
  2. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +2 -2
  3. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
  4. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.dbg.json +1 -1
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.json +2 -2
  6. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  7. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
  8. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +2 -2
  9. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.dbg.json +1 -1
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.json +2 -2
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +1 -1
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.json +7 -2
  13. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
  14. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +2 -2
  15. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.dbg.json +1 -1
  16. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.json +2 -2
  17. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
  18. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +2 -2
  19. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultSCY.sol/PendleYearnVaultSCY.dbg.json +4 -0
  20. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/{PendleYearnVaultScy.sol → PendleYearnVaultSCY.sol}/PendleYearnVaultSCY.json +3 -3
  21. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.dbg.json +1 -1
  22. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.json +2 -2
  23. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
  24. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.json +67 -5
  27. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.json +63 -1
  29. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +65 -3
  31. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +74 -10
  33. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +79 -15
  35. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +204 -123
  38. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +127 -73
  40. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +93 -34
  42. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +90 -14
  44. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +14 -1
  46. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +139 -37
  48. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +84 -56
  50. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +122 -11
  53. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  56. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +96 -40
  58. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  60. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +4 -0
  61. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +1025 -0
  62. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  64. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +4 -0
  65. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.json +622 -0
  66. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.dbg.json +4 -0
  67. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.json +35 -0
  68. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.dbg.json +4 -0
  69. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.json +459 -0
  70. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.dbg.json +4 -0
  71. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.json +459 -0
  72. package/build/artifacts/contracts/core/actions/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +4 -0
  73. package/build/artifacts/contracts/core/actions/base/{ActionSCYAndPTBase.sol/ActionSCYAndPTBase.json → ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json} +2 -2
  74. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.json +24 -0
  80. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +4 -0
  87. package/build/artifacts/contracts/interfaces/{IPActionCore.sol/IPActionCore.json → IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json} +141 -912
  88. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +4 -0
  89. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +598 -0
  90. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +4 -0
  91. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +35 -0
  92. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +4 -0
  93. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +435 -0
  94. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +4 -0
  95. package/build/artifacts/contracts/interfaces/{IPActionYT.sol/IPActionYT.json → IPActionSwapYT.sol/IPActionSwapYT.json} +23 -11
  96. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +323 -47
  98. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +4 -0
  99. package/build/artifacts/contracts/{core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.json → interfaces/IPGauge.sol/IPGauge.json} +5 -5
  100. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +72 -29
  106. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +0 -11
  108. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +0 -37
  115. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +1 -1
  119. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  123. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.json +1 -1
  125. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  137. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.dbg.json +4 -0
  138. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.json +74 -0
  139. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
  140. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  141. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
  142. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  143. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  144. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  145. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  146. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  147. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  148. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.json +2 -2
  149. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
  150. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  151. package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  152. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  153. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
  154. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
  155. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  156. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
  157. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  158. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
  159. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
  160. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +4 -0
  161. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +93 -0
  162. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  163. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +427 -39
  164. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +4 -0
  165. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +86 -0
  166. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +4 -0
  167. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +37 -0
  168. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.dbg.json +1 -1
  169. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
  170. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +8 -0
  171. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol +1 -1
  172. package/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol +11 -5
  173. package/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol +0 -1
  174. package/contracts/SuperComposableYield/SCY-implementations/{PendleYearnVaultScy.sol → PendleYearnVaultSCY.sol} +0 -0
  175. package/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol +1 -0
  176. package/contracts/SuperComposableYield/base-implementations/SCYBase.sol +1 -1
  177. package/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol +7 -7
  178. package/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol +7 -6
  179. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +4 -5
  180. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol +6 -3
  181. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol +6 -3
  182. package/contracts/core/LiquidityMining/PendleGauge.sol +3 -2
  183. package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +22 -28
  184. package/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +71 -13
  185. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +7 -4
  186. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +6 -2
  187. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +4 -3
  188. package/contracts/core/Market/PendleMarket.sol +93 -57
  189. package/contracts/core/Market/PendleMarketFactory.sol +18 -33
  190. package/contracts/core/PendleRouter.sol +60 -52
  191. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +12 -12
  192. package/contracts/core/YieldContracts/PendleYieldToken.sol +1 -1
  193. package/contracts/core/actions/ActionAddRemoveLiq.sol +366 -0
  194. package/contracts/core/actions/ActionCallback.sol +6 -6
  195. package/contracts/core/actions/ActionMintRedeem.sol +124 -0
  196. package/contracts/core/actions/ActionMisc.sol +24 -0
  197. package/contracts/core/actions/ActionSwapPT.sol +199 -0
  198. package/contracts/core/actions/{base/ActionSCYAndYTBase.sol → ActionSwapYT.sol} +109 -74
  199. package/contracts/core/actions/base/{ActionSCYAndPYBase.sol → ActionBaseMintRedeem.sol} +9 -8
  200. package/contracts/interfaces/IBenQiComptroller.sol +2 -0
  201. package/contracts/interfaces/IPActionAddRemoveLiq.sol +188 -0
  202. package/contracts/interfaces/IPActionMintRedeem.sol +115 -0
  203. package/contracts/interfaces/IPActionMisc.sol +9 -0
  204. package/contracts/interfaces/IPActionSwapPT.sol +69 -0
  205. package/contracts/interfaces/{IPActionYT.sol → IPActionSwapYT.sol} +12 -10
  206. package/contracts/interfaces/IPAllAction.sol +12 -3
  207. package/contracts/interfaces/IPGauge.sol +6 -0
  208. package/contracts/interfaces/IPGaugeController.sol +0 -2
  209. package/contracts/interfaces/IPMarket.sol +28 -10
  210. package/contracts/interfaces/IPMarketFactory.sol +1 -7
  211. package/contracts/interfaces/IPVeToken.sol +1 -1
  212. package/contracts/interfaces/IPVotingController.sol +0 -2
  213. package/contracts/interfaces/IRewardManager.sol +1 -1
  214. package/contracts/libraries/OracleLib.sol +214 -0
  215. package/contracts/libraries/RewardManagerAbstract.sol +1 -1
  216. package/contracts/libraries/math/MarketApproxLib.sol +227 -14
  217. package/contracts/libraries/math/MarketMathCore.sol +0 -33
  218. package/contracts/offchain-helpers/MarketMathStatic.sol +565 -0
  219. package/contracts/offchain-helpers/RouterStatic.sol +187 -251
  220. package/contracts/periphery/BoringOwnableUpgradeable.sol +62 -0
  221. package/deployments/43113-core.json +7 -8
  222. package/deployments/43113-markets/benqi-market-590025.json +8 -0
  223. package/deployments/43113-markets/benqi-market-c93916.json +8 -0
  224. package/deployments/80001-core.json +6 -7
  225. package/deployments/80001-markets/benqi-market-3b8BD1.json +8 -0
  226. package/deployments/80001-markets/benqi-market-b61e7f.json +8 -0
  227. package/package.json +11 -11
  228. package/typechain-types/ActionAddRemoveLiq.ts +1037 -0
  229. package/typechain-types/ActionBaseMintRedeem.ts +87 -0
  230. package/typechain-types/ActionCore.ts +21 -20
  231. package/typechain-types/ActionMintRedeem.ts +665 -0
  232. package/typechain-types/ActionMisc.ts +105 -0
  233. package/typechain-types/ActionSwapPT.ts +515 -0
  234. package/typechain-types/ActionSwapYT.ts +515 -0
  235. package/typechain-types/ActionYT.ts +5 -4
  236. package/typechain-types/BoringOwnable.ts +194 -0
  237. package/typechain-types/BoringOwnableData.ts +100 -0
  238. package/typechain-types/BoringOwnableUpgradeable.ts +194 -0
  239. package/typechain-types/BoringOwnableUpgradeableData.ts +100 -0
  240. package/typechain-types/CelerReceiverUpg.ts +124 -19
  241. package/typechain-types/CelerSenderUpg.ts +116 -11
  242. package/typechain-types/IBenQiComptroller.ts +39 -0
  243. package/typechain-types/IPActionAddRemoveLiq.ts +1018 -0
  244. package/typechain-types/IPActionCore.ts +21 -20
  245. package/typechain-types/IPActionMintRedeem.ts +646 -0
  246. package/typechain-types/IPActionMisc.ts +105 -0
  247. package/typechain-types/IPActionSwapPT.ts +496 -0
  248. package/typechain-types/IPActionSwapYT.ts +496 -0
  249. package/typechain-types/IPActionYT.ts +5 -4
  250. package/typechain-types/IPAllAction.ts +431 -193
  251. package/typechain-types/IPGauge.ts +87 -0
  252. package/typechain-types/IPMarket.ts +133 -50
  253. package/typechain-types/IPMarketFactory.ts +7 -17
  254. package/typechain-types/IPVeToken.ts +8 -8
  255. package/typechain-types/IPVotingController.ts +0 -20
  256. package/typechain-types/IPYieldToken.ts +3 -3
  257. package/typechain-types/IRewardManager.ts +3 -3
  258. package/typechain-types/MarketMathStatic.ts +198 -0
  259. package/typechain-types/OracleLib.ts +124 -0
  260. package/typechain-types/PendleGaugeControllerBaseUpg.ts +118 -15
  261. package/typechain-types/PendleGaugeControllerMainchainUpg.ts +136 -9
  262. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +138 -11
  263. package/typechain-types/PendleMarket.ts +178 -59
  264. package/typechain-types/PendleMarketFactory.ts +135 -61
  265. package/typechain-types/PendleRouter.ts +201 -31
  266. package/typechain-types/PendleVotingControllerUpg.ts +325 -149
  267. package/typechain-types/PendleYieldContractFactory.ts +144 -21
  268. package/typechain-types/RouterStatic.ts +344 -64
  269. package/typechain-types/VotingControllerStorageUpg.ts +182 -113
  270. package/typechain-types/VotingEscrowPendleMainchain.ts +170 -63
  271. package/typechain-types/VotingEscrowPendleSidechain.ts +163 -17
  272. package/typechain-types/VotingEscrowTokenBase.ts +27 -8
  273. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1083 -0
  274. package/typechain-types/factories/ActionBaseMintRedeem__factory.ts +43 -0
  275. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  276. package/typechain-types/factories/ActionCore__factory.ts +6 -6
  277. package/typechain-types/factories/ActionMintRedeem__factory.ts +680 -0
  278. package/typechain-types/factories/ActionMisc__factory.ts +85 -0
  279. package/typechain-types/factories/ActionSwapPT__factory.ts +514 -0
  280. package/typechain-types/factories/ActionSwapYT__factory.ts +514 -0
  281. package/typechain-types/factories/ActionYT__factory.ts +2 -2
  282. package/typechain-types/factories/BoringOwnableData__factory.ts +90 -0
  283. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +96 -0
  284. package/typechain-types/factories/BoringOwnableUpgradeable__factory.ts +143 -0
  285. package/typechain-types/factories/BoringOwnable__factory.ts +141 -0
  286. package/typechain-types/factories/CelerReceiverUpg__factory.ts +67 -5
  287. package/typechain-types/factories/CelerSenderUpg__factory.ts +63 -1
  288. package/typechain-types/factories/IBenQiComptroller__factory.ts +24 -0
  289. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +1020 -0
  290. package/typechain-types/factories/IPActionCore__factory.ts +5 -5
  291. package/typechain-types/factories/IPActionMintRedeem__factory.ts +613 -0
  292. package/typechain-types/factories/IPActionMisc__factory.ts +47 -0
  293. package/typechain-types/factories/IPActionSwapPT__factory.ts +450 -0
  294. package/typechain-types/factories/IPActionSwapYT__factory.ts +450 -0
  295. package/typechain-types/factories/IPActionYT__factory.ts +1 -1
  296. package/typechain-types/factories/IPAllAction__factory.ts +323 -47
  297. package/typechain-types/factories/IPGauge__factory.ts +36 -0
  298. package/typechain-types/factories/IPMarketFactory__factory.ts +0 -11
  299. package/typechain-types/factories/IPMarket__factory.ts +72 -29
  300. package/typechain-types/factories/IPVeToken__factory.ts +1 -1
  301. package/typechain-types/factories/IPVotingController__factory.ts +0 -37
  302. package/typechain-types/factories/IPYieldToken__factory.ts +1 -1
  303. package/typechain-types/factories/IRewardManager__factory.ts +1 -1
  304. package/typechain-types/factories/MarketMathStatic__factory.ts +146 -0
  305. package/typechain-types/factories/OracleLib__factory.ts +124 -0
  306. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -1
  307. package/typechain-types/factories/PendleERC4626SCY__factory.ts +1 -1
  308. package/typechain-types/factories/PendleEulerSCY__factory.ts +10 -1
  309. package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +65 -3
  310. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +73 -13
  311. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +79 -23
  312. package/typechain-types/factories/PendleMarketFactory__factory.ts +84 -86
  313. package/typechain-types/factories/PendleMarket__factory.ts +131 -37
  314. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  315. package/typechain-types/factories/PendleQiSAvaxSCY__factory.ts +1 -1
  316. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -1
  317. package/typechain-types/factories/PendleRouter__factory.ts +141 -22
  318. package/typechain-types/factories/PendleSAvaxSCY__factory.ts +1 -1
  319. package/typechain-types/factories/PendleSJoeSCY__factory.ts +1 -1
  320. package/typechain-types/factories/PendleStargateSCY__factory.ts +1 -1
  321. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +203 -129
  322. package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
  323. package/typechain-types/factories/PendleYearnVaultSCY__factory.ts +1 -1
  324. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +97 -72
  325. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  326. package/typechain-types/factories/RouterStatic__factory.ts +233 -39
  327. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +126 -72
  328. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +93 -41
  329. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +90 -17
  330. package/typechain-types/factories/VotingEscrowTokenBase__factory.ts +14 -1
  331. package/typechain-types/hardhat.d.ts +162 -0
  332. package/typechain-types/index.ts +36 -0
  333. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +0 -4
  334. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +0 -4
  335. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +0 -1801
  336. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +0 -4
  337. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +0 -447
  338. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +0 -4
  339. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +0 -4
  340. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +0 -4
  341. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.json +0 -24
  342. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +0 -4
  343. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +0 -4
  344. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +0 -4
  345. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +0 -874
  346. package/contracts/core/actions/ActionCore.sol +0 -382
  347. package/contracts/core/actions/ActionYT.sol +0 -93
  348. package/contracts/core/actions/base/ActionSCYAndPTBase.sol +0 -303
  349. package/contracts/interfaces/IPActionCore.sol +0 -306
  350. package/contracts/interfaces/IPRouterStatic.sol +0 -152
  351. package/deployments/43113-markets/benqi-market-599408.json +0 -7
  352. package/deployments/43113-markets/benqi-market-93bbf0.json +0 -7
  353. package/deployments/43113-markets/benqi-market-95E744.json +0 -7
  354. package/deployments/43113-markets/benqi-market-D91a3F.json +0 -7
  355. package/deployments/80001-markets/benqi-market-007811.json +0 -7
  356. package/deployments/80001-markets/benqi-market-3fe528.json +0 -7
  357. package/typechain-types/FeeDistributorAbstract.ts +0 -164
  358. package/typechain-types/IPVotingControllerStorage.ts +0 -169
  359. package/typechain-types/factories/FeeDistributorAbstract__factory.ts +0 -90
  360. package/typechain-types/factories/IPVotingControllerStorage__factory.ts +0 -107
@@ -4,33 +4,7 @@
4
4
  "sourceName": "contracts/core/YieldContracts/PendleYieldContractFactory.sol",
5
5
  "abi": [
6
6
  {
7
- "inputs": [
8
- {
9
- "internalType": "uint96",
10
- "name": "_expiryDivisor",
11
- "type": "uint96"
12
- },
13
- {
14
- "internalType": "uint128",
15
- "name": "_interestFeeRate",
16
- "type": "uint128"
17
- },
18
- {
19
- "internalType": "uint128",
20
- "name": "_rewardFeeRate",
21
- "type": "uint128"
22
- },
23
- {
24
- "internalType": "address",
25
- "name": "_treasury",
26
- "type": "address"
27
- },
28
- {
29
- "internalType": "address",
30
- "name": "_governanceManager",
31
- "type": "address"
32
- }
33
- ],
7
+ "inputs": [],
34
8
  "stateMutability": "nonpayable",
35
9
  "type": "constructor"
36
10
  },
@@ -65,6 +39,25 @@
65
39
  "name": "CreateYieldContract",
66
40
  "type": "event"
67
41
  },
42
+ {
43
+ "anonymous": false,
44
+ "inputs": [
45
+ {
46
+ "indexed": true,
47
+ "internalType": "address",
48
+ "name": "previousOwner",
49
+ "type": "address"
50
+ },
51
+ {
52
+ "indexed": true,
53
+ "internalType": "address",
54
+ "name": "newOwner",
55
+ "type": "address"
56
+ }
57
+ ],
58
+ "name": "OwnershipTransferred",
59
+ "type": "event"
60
+ },
68
61
  {
69
62
  "anonymous": false,
70
63
  "inputs": [
@@ -117,6 +110,13 @@
117
110
  "name": "SetTreasury",
118
111
  "type": "event"
119
112
  },
113
+ {
114
+ "inputs": [],
115
+ "name": "claimOwnership",
116
+ "outputs": [],
117
+ "stateMutability": "nonpayable",
118
+ "type": "function"
119
+ },
120
120
  {
121
121
  "inputs": [
122
122
  {
@@ -208,20 +208,27 @@
208
208
  "type": "function"
209
209
  },
210
210
  {
211
- "inputs": [],
212
- "name": "governanceManager",
213
- "outputs": [
211
+ "inputs": [
212
+ {
213
+ "internalType": "uint96",
214
+ "name": "_expiryDivisor",
215
+ "type": "uint96"
216
+ },
217
+ {
218
+ "internalType": "uint128",
219
+ "name": "_interestFeeRate",
220
+ "type": "uint128"
221
+ },
222
+ {
223
+ "internalType": "uint128",
224
+ "name": "_rewardFeeRate",
225
+ "type": "uint128"
226
+ },
214
227
  {
215
228
  "internalType": "address",
216
- "name": "",
229
+ "name": "_treasury",
217
230
  "type": "address"
218
- }
219
- ],
220
- "stateMutability": "view",
221
- "type": "function"
222
- },
223
- {
224
- "inputs": [
231
+ },
225
232
  {
226
233
  "internalType": "bytes",
227
234
  "name": "_pendleYtCreationCode",
@@ -284,6 +291,32 @@
284
291
  "stateMutability": "view",
285
292
  "type": "function"
286
293
  },
294
+ {
295
+ "inputs": [],
296
+ "name": "owner",
297
+ "outputs": [
298
+ {
299
+ "internalType": "address",
300
+ "name": "",
301
+ "type": "address"
302
+ }
303
+ ],
304
+ "stateMutability": "view",
305
+ "type": "function"
306
+ },
307
+ {
308
+ "inputs": [],
309
+ "name": "pendingOwner",
310
+ "outputs": [
311
+ {
312
+ "internalType": "address",
313
+ "name": "",
314
+ "type": "address"
315
+ }
316
+ ],
317
+ "stateMutability": "view",
318
+ "type": "function"
319
+ },
287
320
  {
288
321
  "inputs": [],
289
322
  "name": "pendleYtCreationCodePointer",
@@ -362,6 +395,29 @@
362
395
  "stateMutability": "nonpayable",
363
396
  "type": "function"
364
397
  },
398
+ {
399
+ "inputs": [
400
+ {
401
+ "internalType": "address",
402
+ "name": "newOwner",
403
+ "type": "address"
404
+ },
405
+ {
406
+ "internalType": "bool",
407
+ "name": "direct",
408
+ "type": "bool"
409
+ },
410
+ {
411
+ "internalType": "bool",
412
+ "name": "renounce",
413
+ "type": "bool"
414
+ }
415
+ ],
416
+ "name": "transferOwnership",
417
+ "outputs": [],
418
+ "stateMutability": "nonpayable",
419
+ "type": "function"
420
+ },
365
421
  {
366
422
  "inputs": [],
367
423
  "name": "treasury",
@@ -376,8 +432,8 @@
376
432
  "type": "function"
377
433
  }
378
434
  ],
379
- "bytecode": "0x60a06040523480156200001157600080fd5b506040516200386238038062003862833981016040819052620000349162000407565b806001600160a01b038116620000805760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064015b60405180910390fd5b6001600160a01b03166080526200009785620000c3565b620000a284620001a5565b620000ad836200021e565b620000b88262000296565b5050505050620004e6565b620000cd62000364565b6001600160a01b0316336001600160a01b031614620001005760405162461bcd60e51b8152600401620000779062000484565b806001600160601b0316600003620001485760405162461bcd60e51b815260206004820152600a6024820152697a65726f2076616c756560b01b604482015260640162000077565b606680546001600160a01b0316600160a01b6001600160601b038416908102919091179091556040519081527fdaf60f79a59eb1d8c1748ab26dc83c44f364ce8c1fc497ec2df45d9538a1aa11906020015b60405180910390a150565b620001af62000364565b6001600160a01b0316336001600160a01b031614620001e25760405162461bcd60e51b8152600401620000779062000484565b606580546001600160801b0319166001600160801b03831617905560405160008051602062003842833981519152906200019a908390620004ad565b6200022862000364565b6001600160a01b0316336001600160a01b0316146200025b5760405162461bcd60e51b8152600401620000779062000484565b606580546001600160801b03808416600160801b02911617905560405160008051602062003842833981519152906200019a908390620004ad565b620002a062000364565b6001600160a01b0316336001600160a01b031614620002d35760405162461bcd60e51b8152600401620000779062000484565b6001600160a01b0381166200031a5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b604482015260640162000077565b606680546001600160a01b0319166001600160a01b0383169081179091556040517fcb7ef3e545f5cdb893f5c568ba710fe08f336375a2d9fd66e161033f8fc09ef390600090a250565b60006080516001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cd9190620004c1565b905090565b80516001600160801b0381168114620003ea57600080fd5b919050565b80516001600160a01b0381168114620003ea57600080fd5b600080600080600060a086880312156200042057600080fd5b85516001600160601b03811681146200043857600080fd5b94506200044860208701620003d2565b93506200045860408701620003d2565b92506200046860608701620003ef565b91506200047860808701620003ef565b90509295509295909350565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b6001600160801b0391909116815260200190565b600060208284031215620004d457600080fd5b620004df82620003ef565b9392505050565b608051613339620005096000396000818161028f0152610da301526133396000f3fe60806040523480156200001157600080fd5b5060043610620000e25760003560e01c806318b7373d14620000e7578063439fab91146200012257806344601d69146200013b578063586007bc146200015257806361d027b3146200016957806371846aa8146200018c5780637d39cabf14620001b257806387efe5a714620001c95780638c9f79621462000200578063a18248c91462000237578063af64d741146200026f578063d2e6d1c31462000289578063dd86fea114620002b1578063e9e5f3cf14620002d4578063f0f4426014620002fe578063f5de2d1f1462000315575b600080fd5b6200010d620000f836600462001876565b60696020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b620001396200013336600462001910565b62000330565b005b620001396200014c36600462001997565b62000425565b6200013962000163366004620019c2565b620004a8565b6066546200017d906001600160a01b031681565b604051620001199190620019ed565b6200010d6200019d36600462001876565b606a6020526000908152604090205460ff1681565b62000139620001c336600462001997565b6200057f565b6200017d620001da36600462001a01565b60676020908152600092835260408084209091529082529020546001600160a01b031681565b6200017d6200021136600462001a01565b60686020908152600092835260408084209091529082529020546001600160a01b031681565b6200024e6200024836600462001a30565b620005f8565b604080516001600160a01b0393841681529290911660208301520162000119565b6064546200017d906201000090046001600160a01b031681565b6200017d7f000000000000000000000000000000000000000000000000000000000000000081565b606554620002c5906001600160801b031681565b60405162000119919062001a76565b606654620002ef90600160a01b90046001600160601b031681565b60405162000119919062001a8a565b620001396200030f36600462001876565b62000c7e565b606554620002c590600160801b90046001600160801b031681565b606454610100900460ff166200034d5760645460ff161562000351565b303b155b620003ba5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b606454610100900460ff16158015620003dd576064805461ffff19166101011790555b620003e88262000d4c565b606460026101000a8154816001600160a01b0302191690836001600160a01b03160217905550801562000421576064805461ff00191690555b5050565b6200042f62000d9f565b6001600160a01b0316336001600160a01b031614620004625760405162461bcd60e51b8152600401620003b19062001a9e565b606580546001600160801b03808416600160801b029116179055604051600080516020620032e4833981519152906200049d90839062001a76565b60405180910390a150565b620004b262000d9f565b6001600160a01b0316336001600160a01b031614620004e55760405162461bcd60e51b8152600401620003b19062001a9e565b806001600160601b03166000036200052d5760405162461bcd60e51b815260206004820152600a6024820152697a65726f2076616c756560b01b6044820152606401620003b1565b606680546001600160a01b0316600160a01b6001600160601b038416021790556040517fdaf60f79a59eb1d8c1748ab26dc83c44f364ce8c1fc497ec2df45d9538a1aa11906200049d90839062001a8a565b6200058962000d9f565b6001600160a01b0316336001600160a01b031614620005bc5760405162461bcd60e51b8152600401620003b19062001a9e565b606580546001600160801b0319166001600160801b038316179055604051600080516020620032e4833981519152906200049d90839062001a76565b60008063ffffffff83164210620006515760405162461bcd60e51b815260206004820152601c60248201527b657870697279206d75737420626520696e207468652066757475726560201b6044820152606401620003b1565b6066546200067690600160a01b90046001600160601b031663ffffffff851662001add565b6001600160601b031615620006cc5760405162461bcd60e51b815260206004820152601b60248201527a36bab9ba1031329036bab63a34b836329037b3103234bb34b9b7b960291b6044820152606401620003b1565b6001600160a01b03848116600090815260676020908152604080832063ffffffff8816845290915290205416156200073c5760405162461bcd60e51b8152602060048201526012602482015271141508185b1c9958591e48195e1a5cdd195960721b6044820152606401620003b1565b60008490506000816001600160a01b031663a40bee506040518163ffffffff1660e01b8152600401606060405180830381865afa15801562000782573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007a8919062001b06565b925050506200097c60405180602001620007c2906200184f565b6020820181038252601f19601f820116604052504660001b8862000895866001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa1580156200081e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000848919081019062001b95565b8a63ffffffff16604051806040016040528060018152602001600160fd1b81525060405180604001604052806002815260200161141560f21b81525062000e2b909392919063ffffffff16565b6200094f876001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015620008d8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000902919081019062001b95565b8b63ffffffff16604051806040016040528060018152602001602d60f81b81525060405180604001604052806002815260200161141560f21b81525062000e2b909392919063ffffffff16565b868b6040516020016200096795949392919062001c39565b60405160208183030381529060405262000e6b565b935062000b40606460029054906101000a90046001600160a01b03164660001b888762000a58876001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015620009e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000a0b919081019062001b95565b8b63ffffffff16604051806040016040528060018152602001600160fd1b81525060405180604001604052806002815260200161165560f21b81525062000e2b909392919063ffffffff16565b62000b12886001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000a9b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000ac5919081019062001b95565b8c63ffffffff16604051806040016040528060018152602001602d60f81b81525060405180604001604052806002815260200161165560f21b81525062000e2b909392919063ffffffff16565b878c60405160200162000b2b9695949392919062001c95565b60405160208183030381529060405262000eab565b60405163189acdbd60e31b81529093506001600160a01b0385169063c4d66de89062000b71908690600401620019ed565b600060405180830381600087803b15801562000b8c57600080fd5b505af115801562000ba1573d6000803e3d6000fd5b505050506001600160a01b03868116600081815260676020908152604080832063ffffffff8b1680855290835281842080548b88166001600160a01b031991821681179092558686526068855283862083875285528386208054988c16989091168817905580855260698452828520805460ff199081166001908117909255888752606a86529584902080549096161790945581519384529183019490945292810192909252907f7c10d2914fa2900a53b0058359f4d5581f2b83982b0964c38c182079e884ba2f9060600160405180910390a250509250929050565b62000c8862000d9f565b6001600160a01b0316336001600160a01b03161462000cbb5760405162461bcd60e51b8152600401620003b19062001a9e565b6001600160a01b03811662000d025760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b6044820152606401620003b1565b606680546001600160a01b0319166001600160a01b0383169081179091556040517fcb7ef3e545f5cdb893f5c568ba710fe08f336375a2d9fd66e161033f8fc09ef390600090a250565b60008082511162000d8e5760405162461bcd60e51b815260206004820152600b60248201526a0f4cae4de40d8cadccee8d60ab1b6044820152606401620003b1565b62000d998262000ecc565b92915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000e00573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e26919062001cfa565b905090565b60608482858462000e3c8762000f77565b60405160200162000e5295949392919062001d1a565b6040516020818303038152906040529050949350505050565b600080848360405160200162000e8392919062001d8f565b604051602081830303815290604052905062000ea26000858362000ff5565b95945050505050565b600062000ec462000ebc85620010fc565b848462000e6b565b949350505050565b6000808260405160200162000ee2919062001dc2565b604051602081830303815290604052905060008160405160200162000f08919062001dea565b60405160208183030381529060405290508051602082016000f092506001600160a01b03831662000f705760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b6044820152606401620003b1565b5050919050565b6060600062000f868362001121565b9050600062000f9c826040015160ff16620012d6565b9050600062000fab8362001410565b9050600062000fc2846000015161ffff16620012d6565b905082828260405160200162000fdb9392919062001e20565b604051602081830303815290604052945050505050919050565b600080844710156200104a5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401620003b1565b82516000036200109d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401620003b1565b8383516020850187f590506001600160a01b03811662000ec45760405162461bcd60e51b8152602060048201526019602482015278437265617465323a204661696c6564206f6e206465706c6f7960381b6044820152606401620003b1565b606062000d998260016200111b816001600160a01b0384163b62001e7f565b6200159a565b604080516060810182526000808252602082018190529181018290529080806200114b85620015bd565b61ffff1684526200115e6107b2620016d6565b84516200116f9061ffff16620016d6565b6200117b919062001e7f565b91506200118d826301e2850062001e99565b62001199908462001ebb565b9250816107b28560000151620011b0919062001ed6565b61ffff16620011c0919062001e7f565b620011d0906301e1338062001e99565b620011dc908462001ebb565b92506000600191505b600c8260ff16116200125b576200120182866000015162001727565b620012139060ff166201518062001e99565b90508562001222858362001ebb565b1115620012385760ff821660208601526200125b565b62001244818562001ebb565b935081620012528162001efc565b925050620011e5565b600191505b620012748560200151866000015162001727565b60ff168260ff1611620012cd578562001291856201518062001ebb565b1115620012a75760ff82166040860152620012cd565b620012b6620151808562001ebb565b935081620012c48162001efc565b92505062001260565b50505050919050565b606081600003620012fe5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156200132e5780620013158162001f1e565b9150620013269050600a8362001f3a565b915062001302565b6000816001600160401b038111156200134b576200134b6200189d565b6040519080825280601f01601f19166020018201604052801562001376576020820181803683370190505b50905060006200138860018462001e7f565b90505b851562001407576200139f600a8762001f51565b620013ac90603062001ebb565b60f81b828281518110620013c457620013c462001f68565b60200101906001600160f81b031916908160001a9053508015620013f25780620013ee8162001f7e565b9150505b620013ff600a8762001f3a565b95506200138b565b50949350505050565b604080516101c08101825260036101808201818152622520a760e91b6101a0840152825282518084018452818152622322a160e91b60208281019190915280840191909152835180850185528281526226a0a960e91b8183015283850152835180850185528281526220a82960e91b8183015260608481019190915284518086018652838152624d415960e81b8184015260808501528451808601865283815262252aa760e91b8184015260a0850152845180860186528381526212955360ea1b8184015260c0850152845180860186528381526241554760e81b8184015260e0850152845180860186528381526205345560ec1b81840152610100850152845180860186528381526213d0d560ea1b8184015261012085015284518086018652838152622727ab60e91b8184015261014085015284518086019095529184526244454360e81b84820152610160830193909352918301518190620015789060019062001f98565b60ff16600c81106200158e576200158e62001f68565b60200201519392505050565b60408051603f8301601f19168101909152818152818360208301863c9392505050565b6000808080620015d26301e133808662001f3a565b620015e0906107b262001ebb565b9150620015ef6107b2620016d6565b620015fe8361ffff16620016d6565b6200160a919062001e7f565b90506200161c816301e2850062001e99565b62001628908462001ebb565b925080620016396107b28462001ed6565b61ffff1662001649919062001e7f565b62001659906301e1338062001e99565b62001665908462001ebb565b92505b84831115620016ce57620016886200168260018462001ed6565b620017ff565b15620016a6576200169e6301e285008462001e7f565b9250620016b9565b620016b66301e133808462001e7f565b92505b620016c660018362001ed6565b915062001668565b509392505050565b6000620016e560018362001e7f565b9150620016f56101908362001f3a565b6200170260648462001f3a565b6200170f60048562001f3a565b6200171b919062001e7f565b62000d99919062001ebb565b60008260ff16600114806200173f57508260ff166003145b806200174e57508260ff166005145b806200175d57508260ff166007145b806200176c57508260ff166008145b806200177b57508260ff16600a145b806200178a57508260ff16600c145b15620017995750601f62000d99565b8260ff1660041480620017af57508260ff166006145b80620017be57508260ff166009145b80620017cd57508260ff16600b145b15620017dc5750601e62000d99565b620017e782620017ff565b15620017f65750601d62000d99565b50601c92915050565b60006200180e60048362001fbe565b61ffff161580156200182f57506200182860648362001fbe565b61ffff1615155b8062000d995750620018446101908362001fbe565b61ffff161592915050565b61130d8062001fd783390190565b6001600160a01b03811681146200187357600080fd5b50565b6000602082840312156200188957600080fd5b813562001896816200185d565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620018de57620018de6200189d565b604052919050565b60006001600160401b038211156200190257620019026200189d565b50601f01601f191660200190565b6000602082840312156200192357600080fd5b81356001600160401b038111156200193a57600080fd5b8201601f810184136200194c57600080fd5b8035620019636200195d82620018e6565b620018b3565b8181528560208385010111156200197957600080fd5b81602084016020830137600091810160200191909152949350505050565b600060208284031215620019aa57600080fd5b81356001600160801b03811681146200189657600080fd5b600060208284031215620019d557600080fd5b81356001600160601b03811681146200189657600080fd5b6001600160a01b0391909116815260200190565b6000806040838503121562001a1557600080fd5b823562001a22816200185d565b946020939093013593505050565b6000806040838503121562001a4457600080fd5b823562001a51816200185d565b9150602083013563ffffffff8116811462001a6b57600080fd5b809150509250929050565b6001600160801b0391909116815260200190565b6001600160601b0391909116815260200190565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b038381168062001afa5762001afa62001ac7565b92169190910692915050565b60008060006060848603121562001b1c57600080fd5b83516002811062001b2c57600080fd5b602085015190935062001b3f816200185d565b604085015190925060ff8116811462001b5757600080fd5b809150509250925092565b60005b8381101562001b7f57818101518382015260200162001b65565b8381111562001b8f576000848401525b50505050565b60006020828403121562001ba857600080fd5b81516001600160401b0381111562001bbf57600080fd5b8201601f8101841362001bd157600080fd5b805162001be26200195d82620018e6565b81815285602083850101111562001bf857600080fd5b62000ea282602083016020860162001b62565b6000815180845262001c2581602086016020860162001b62565b601f01601f19169290920160200192915050565b6001600160a01b038616815260a06020820181905260009062001c5f9083018762001c0b565b828103604084015262001c73818762001c0b565b91505060ff8416606083015263ffffffff831660808301529695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009062001cc39083018762001c0b565b828103606084015262001cd7818762001c0b565b91505060ff8416608083015263ffffffff831660a0830152979650505050505050565b60006020828403121562001d0d57600080fd5b815162001896816200185d565b6000865162001d2e818460208b0162001b62565b86519083019062001d44818360208b0162001b62565b865191019062001d59818360208a0162001b62565b855191019062001d6e81836020890162001b62565b845191019062001d8381836020880162001b62565b01979650505050505050565b6000835162001da381846020880162001b62565b83519083019062001db981836020880162001b62565b01949350505050565b600081526000825162001ddd81600185016020870162001b62565b9190910160010192915050565b6a600b5981380380925939f360a81b8152815160009062001e1381600b85016020870162001b62565b91909101600b0192915050565b6000845162001e3481846020890162001b62565b84519083019062001e4a81836020890162001b62565b845191019062001e5f81836020880162001b62565b0195945050505050565b634e487b7160e01b600052601160045260246000fd5b60008282101562001e945762001e9462001e69565b500390565b600081600019048311821515161562001eb65762001eb662001e69565b500290565b6000821982111562001ed15762001ed162001e69565b500190565b600061ffff8381169083168181101562001ef45762001ef462001e69565b039392505050565b600060ff821660ff810362001f155762001f1562001e69565b60010192915050565b60006001820162001f335762001f3362001e69565b5060010190565b60008262001f4c5762001f4c62001ac7565b500490565b60008262001f635762001f6362001ac7565b500690565b634e487b7160e01b600052603260045260246000fd5b60008162001f905762001f9062001e69565b506000190190565b600060ff821660ff84168082101562001fb55762001fb562001e69565b90039392505050565b600061ffff8084168062001afa5762001afa62001ac756fe6101006040523480156200001257600080fd5b506040516200130d3803806200130d83398101604081905262000035916200015e565b83838360036200004684826200029d565b5060046200005583826200029d565b5060ff166080525050600280546001600160f81b0316600160f81b1790556001600160a01b0390941660a05250505060e0523360c05262000369565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000b957600080fd5b81516001600160401b0380821115620000d657620000d662000091565b604051601f8301601f19908116603f0116810190828211818310171562000101576200010162000091565b816040528381526020925086838588010111156200011e57600080fd5b600091505b8382101562000142578582018301518183018401529082019062000123565b83821115620001545760008385830101525b9695505050505050565b600080600080600060a086880312156200017757600080fd5b85516001600160a01b03811681146200018f57600080fd5b60208701519095506001600160401b0380821115620001ad57600080fd5b620001bb89838a01620000a7565b95506040880151915080821115620001d257600080fd5b50620001e188828901620000a7565b935050606086015160ff81168114620001f957600080fd5b80925050608086015190509295509295909350565b600181811c908216806200022357607f821691505b6020821081036200024457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029857600081815260208120601f850160051c81016020861015620002735750805b601f850160051c820191505b8181101562000294578281556001016200027f565b5050505b505050565b81516001600160401b03811115620002b957620002b962000091565b620002d181620002ca84546200020e565b846200024a565b602080601f831160018114620003095760008415620002f05750858301515b600019600386901b1c1916600185901b17855562000294565b600085815260208120601f198616915b828110156200033a5788860151825594840194600190910190840162000319565b5085821015620003595787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e051610f5c620003b16000396000818161016601526102c701526000818161027a01526105c2015260006101cb015260006101920152610f5c6000f3fe608060405234801561001057600080fd5b50600436106100db5760003560e01c806306fdde03146100e0578063095ea7b3146100fe57806312a31dcc1461012157806318160ddd1461013657806323b872dd146101515780632f13b60c14610164578063313ce5671461018d57806347bfac62146101c657806370a0823114610205578063781c18db1461022e57806395d89b4114610247578063a9059cbb1461024f578063b64761f914610262578063c45a015514610275578063c4d66de81461029c578063dd62ed3e146102af578063e184c9be146102c2575b600080fd5b6100e86102e9565b6040516100f59190610cc7565b60405180910390f35b61011161010c366004610d38565b61037b565b60405190151581526020016100f5565b61013461012f366004610d38565b610393565b005b6002546001600160f81b03165b6040519081526020016100f5565b61011161015f366004610d62565b6103da565b7f0000000000000000000000000000000000000000000000000000000000000000421015610111565b6101b47f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100f5565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100f5565b610143610213366004610d9e565b6001600160a01b031660009081526020819052604090205490565b6005546101ed906201000090046001600160a01b031681565b6100e8610458565b61011161025d366004610d38565b610467565b610134610270366004610d38565b6104d9565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101346102aa366004610d9e565b610513565b6101436102bd366004610dc0565b610655565b6101437f000000000000000000000000000000000000000000000000000000000000000081565b6060600380546102f890610df3565b80601f016020809104026020016040519081016040528092919081815260200182805461032490610df3565b80156103715780601f1061034657610100808354040283529160200191610371565b820191906000526020600020905b81548152906001019060200180831161035457829003601f168201915b5050505050905090565b600033610389818585610680565b5060019392505050565b6005546201000090046001600160a01b031633146103cc5760405162461bcd60e51b81526004016103c390610e2d565b60405180910390fd5b6103d682826107a5565b5050565b600254600090600119600160f81b90910460ff160161040b5760405162461bcd60e51b81526004016103c390610e4e565b600280546001600160f81b0316600160f91b1790553361042c8582856108af565b610437858585610929565b6001915050600280546001600160f81b0316600160f81b1790559392505050565b6060600480546102f890610df3565b600254600090600119600160f81b90910460ff16016104985760405162461bcd60e51b81526004016103c390610e4e565b600280546001600160f81b0316600160f91b179055336104b9818585610929565b6001915050600280546001600160f81b0316600160f81b17905592915050565b6005546201000090046001600160a01b031633146105095760405162461bcd60e51b81526004016103c390610e2d565b6103d68282610b40565b600554610100900460ff1661052e5760055460ff1615610532565b303b155b6105955760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103c3565b600554610100900460ff161580156105b7576005805461ffff19166101011790555b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461061e5760405162461bcd60e51b815260206004820152600c60248201526b4f4e4c595f464143544f525960a01b60448201526064016103c3565b6005805462010000600160b01b031916620100006001600160a01b0385160217905580156103d6576005805461ff00191690555050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166106e25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103c3565b6001600160a01b0382166107435760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103c3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0382166107fb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103c3565b61080481610cad565b6002805460009061081f9084906001600160f81b0316610e9b565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555080600080846001600160a01b03166001600160a01b0316815260200190815260200160002060008282546108779190610ec6565b90915550506040518181526001600160a01b03831690600090600080516020610f078339815191529060200160405180910390a35050565b60006108bb8484610655565b9050600019811461092357818110156109165760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103c3565b6109238484848403610680565b50505050565b6001600160a01b03831661098d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103c3565b6001600160a01b0382166109ef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103c3565b816001600160a01b0316836001600160a01b031603610a4a5760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b60448201526064016103c3565b6001600160a01b03831660009081526020819052604090205481811015610ac25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103c3565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610af9908490610ec6565b92505081905550826001600160a01b0316846001600160a01b0316600080516020610f0783398151915284604051610b3391815260200190565b60405180910390a3610923565b6001600160a01b038216610ba05760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103c3565b6001600160a01b03821660009081526020819052604090205481811015610c145760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103c3565b6001600160a01b03831660009081526020819052604090208282039055610c3a82610cad565b60028054600090610c559084906001600160f81b0316610ede565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b0316600080516020610f078339815191528460405161079891815260200190565b60006001600160f81b03821115610cc357600080fd5b5090565b600060208083528351808285015260005b81811015610cf457858101830151858201604001528201610cd8565b81811115610d06576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610d3357600080fd5b919050565b60008060408385031215610d4b57600080fd5b610d5483610d1c565b946020939093013593505050565b600080600060608486031215610d7757600080fd5b610d8084610d1c565b9250610d8e60208501610d1c565b9150604084013590509250925092565b600060208284031215610db057600080fd5b610db982610d1c565b9392505050565b60008060408385031215610dd357600080fd5b610ddc83610d1c565b9150610dea60208401610d1c565b90509250929050565b600181811c90821680610e0757607f821691505b602082108103610e2757634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526007908201526613d3931657d65560ca1b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001600160f81b03828116848216808303821115610ebd57610ebd610e85565b01949350505050565b60008219821115610ed957610ed9610e85565b500190565b60006001600160f81b0383811690831681811015610efe57610efe610e85565b03939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209491efc9047a4ef227f45b04e333765fd9d1bea97f60f34cbdc39357a0e51c3364736f6c634300080f0033a9d618683ded3ac7317e1717ad10e9e3b92041092a8e97ceb038c699cc54d640a2646970667358221220339be98f5ee644303abf5019114883c4781d8358229d89000ab4bc1476b9325364736f6c634300080f0033a9d618683ded3ac7317e1717ad10e9e3b92041092a8e97ceb038c699cc54d640",
380
- "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620000e25760003560e01c806318b7373d14620000e7578063439fab91146200012257806344601d69146200013b578063586007bc146200015257806361d027b3146200016957806371846aa8146200018c5780637d39cabf14620001b257806387efe5a714620001c95780638c9f79621462000200578063a18248c91462000237578063af64d741146200026f578063d2e6d1c31462000289578063dd86fea114620002b1578063e9e5f3cf14620002d4578063f0f4426014620002fe578063f5de2d1f1462000315575b600080fd5b6200010d620000f836600462001876565b60696020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b620001396200013336600462001910565b62000330565b005b620001396200014c36600462001997565b62000425565b6200013962000163366004620019c2565b620004a8565b6066546200017d906001600160a01b031681565b604051620001199190620019ed565b6200010d6200019d36600462001876565b606a6020526000908152604090205460ff1681565b62000139620001c336600462001997565b6200057f565b6200017d620001da36600462001a01565b60676020908152600092835260408084209091529082529020546001600160a01b031681565b6200017d6200021136600462001a01565b60686020908152600092835260408084209091529082529020546001600160a01b031681565b6200024e6200024836600462001a30565b620005f8565b604080516001600160a01b0393841681529290911660208301520162000119565b6064546200017d906201000090046001600160a01b031681565b6200017d7f000000000000000000000000000000000000000000000000000000000000000081565b606554620002c5906001600160801b031681565b60405162000119919062001a76565b606654620002ef90600160a01b90046001600160601b031681565b60405162000119919062001a8a565b620001396200030f36600462001876565b62000c7e565b606554620002c590600160801b90046001600160801b031681565b606454610100900460ff166200034d5760645460ff161562000351565b303b155b620003ba5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b606454610100900460ff16158015620003dd576064805461ffff19166101011790555b620003e88262000d4c565b606460026101000a8154816001600160a01b0302191690836001600160a01b03160217905550801562000421576064805461ff00191690555b5050565b6200042f62000d9f565b6001600160a01b0316336001600160a01b031614620004625760405162461bcd60e51b8152600401620003b19062001a9e565b606580546001600160801b03808416600160801b029116179055604051600080516020620032e4833981519152906200049d90839062001a76565b60405180910390a150565b620004b262000d9f565b6001600160a01b0316336001600160a01b031614620004e55760405162461bcd60e51b8152600401620003b19062001a9e565b806001600160601b03166000036200052d5760405162461bcd60e51b815260206004820152600a6024820152697a65726f2076616c756560b01b6044820152606401620003b1565b606680546001600160a01b0316600160a01b6001600160601b038416021790556040517fdaf60f79a59eb1d8c1748ab26dc83c44f364ce8c1fc497ec2df45d9538a1aa11906200049d90839062001a8a565b6200058962000d9f565b6001600160a01b0316336001600160a01b031614620005bc5760405162461bcd60e51b8152600401620003b19062001a9e565b606580546001600160801b0319166001600160801b038316179055604051600080516020620032e4833981519152906200049d90839062001a76565b60008063ffffffff83164210620006515760405162461bcd60e51b815260206004820152601c60248201527b657870697279206d75737420626520696e207468652066757475726560201b6044820152606401620003b1565b6066546200067690600160a01b90046001600160601b031663ffffffff851662001add565b6001600160601b031615620006cc5760405162461bcd60e51b815260206004820152601b60248201527a36bab9ba1031329036bab63a34b836329037b3103234bb34b9b7b960291b6044820152606401620003b1565b6001600160a01b03848116600090815260676020908152604080832063ffffffff8816845290915290205416156200073c5760405162461bcd60e51b8152602060048201526012602482015271141508185b1c9958591e48195e1a5cdd195960721b6044820152606401620003b1565b60008490506000816001600160a01b031663a40bee506040518163ffffffff1660e01b8152600401606060405180830381865afa15801562000782573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007a8919062001b06565b925050506200097c60405180602001620007c2906200184f565b6020820181038252601f19601f820116604052504660001b8862000895866001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa1580156200081e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000848919081019062001b95565b8a63ffffffff16604051806040016040528060018152602001600160fd1b81525060405180604001604052806002815260200161141560f21b81525062000e2b909392919063ffffffff16565b6200094f876001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015620008d8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000902919081019062001b95565b8b63ffffffff16604051806040016040528060018152602001602d60f81b81525060405180604001604052806002815260200161141560f21b81525062000e2b909392919063ffffffff16565b868b6040516020016200096795949392919062001c39565b60405160208183030381529060405262000e6b565b935062000b40606460029054906101000a90046001600160a01b03164660001b888762000a58876001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015620009e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000a0b919081019062001b95565b8b63ffffffff16604051806040016040528060018152602001600160fd1b81525060405180604001604052806002815260200161165560f21b81525062000e2b909392919063ffffffff16565b62000b12886001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000a9b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000ac5919081019062001b95565b8c63ffffffff16604051806040016040528060018152602001602d60f81b81525060405180604001604052806002815260200161165560f21b81525062000e2b909392919063ffffffff16565b878c60405160200162000b2b9695949392919062001c95565b60405160208183030381529060405262000eab565b60405163189acdbd60e31b81529093506001600160a01b0385169063c4d66de89062000b71908690600401620019ed565b600060405180830381600087803b15801562000b8c57600080fd5b505af115801562000ba1573d6000803e3d6000fd5b505050506001600160a01b03868116600081815260676020908152604080832063ffffffff8b1680855290835281842080548b88166001600160a01b031991821681179092558686526068855283862083875285528386208054988c16989091168817905580855260698452828520805460ff199081166001908117909255888752606a86529584902080549096161790945581519384529183019490945292810192909252907f7c10d2914fa2900a53b0058359f4d5581f2b83982b0964c38c182079e884ba2f9060600160405180910390a250509250929050565b62000c8862000d9f565b6001600160a01b0316336001600160a01b03161462000cbb5760405162461bcd60e51b8152600401620003b19062001a9e565b6001600160a01b03811662000d025760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b6044820152606401620003b1565b606680546001600160a01b0319166001600160a01b0383169081179091556040517fcb7ef3e545f5cdb893f5c568ba710fe08f336375a2d9fd66e161033f8fc09ef390600090a250565b60008082511162000d8e5760405162461bcd60e51b815260206004820152600b60248201526a0f4cae4de40d8cadccee8d60ab1b6044820152606401620003b1565b62000d998262000ecc565b92915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000e00573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e26919062001cfa565b905090565b60608482858462000e3c8762000f77565b60405160200162000e5295949392919062001d1a565b6040516020818303038152906040529050949350505050565b600080848360405160200162000e8392919062001d8f565b604051602081830303815290604052905062000ea26000858362000ff5565b95945050505050565b600062000ec462000ebc85620010fc565b848462000e6b565b949350505050565b6000808260405160200162000ee2919062001dc2565b604051602081830303815290604052905060008160405160200162000f08919062001dea565b60405160208183030381529060405290508051602082016000f092506001600160a01b03831662000f705760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b6044820152606401620003b1565b5050919050565b6060600062000f868362001121565b9050600062000f9c826040015160ff16620012d6565b9050600062000fab8362001410565b9050600062000fc2846000015161ffff16620012d6565b905082828260405160200162000fdb9392919062001e20565b604051602081830303815290604052945050505050919050565b600080844710156200104a5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401620003b1565b82516000036200109d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401620003b1565b8383516020850187f590506001600160a01b03811662000ec45760405162461bcd60e51b8152602060048201526019602482015278437265617465323a204661696c6564206f6e206465706c6f7960381b6044820152606401620003b1565b606062000d998260016200111b816001600160a01b0384163b62001e7f565b6200159a565b604080516060810182526000808252602082018190529181018290529080806200114b85620015bd565b61ffff1684526200115e6107b2620016d6565b84516200116f9061ffff16620016d6565b6200117b919062001e7f565b91506200118d826301e2850062001e99565b62001199908462001ebb565b9250816107b28560000151620011b0919062001ed6565b61ffff16620011c0919062001e7f565b620011d0906301e1338062001e99565b620011dc908462001ebb565b92506000600191505b600c8260ff16116200125b576200120182866000015162001727565b620012139060ff166201518062001e99565b90508562001222858362001ebb565b1115620012385760ff821660208601526200125b565b62001244818562001ebb565b935081620012528162001efc565b925050620011e5565b600191505b620012748560200151866000015162001727565b60ff168260ff1611620012cd578562001291856201518062001ebb565b1115620012a75760ff82166040860152620012cd565b620012b6620151808562001ebb565b935081620012c48162001efc565b92505062001260565b50505050919050565b606081600003620012fe5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156200132e5780620013158162001f1e565b9150620013269050600a8362001f3a565b915062001302565b6000816001600160401b038111156200134b576200134b6200189d565b6040519080825280601f01601f19166020018201604052801562001376576020820181803683370190505b50905060006200138860018462001e7f565b90505b851562001407576200139f600a8762001f51565b620013ac90603062001ebb565b60f81b828281518110620013c457620013c462001f68565b60200101906001600160f81b031916908160001a9053508015620013f25780620013ee8162001f7e565b9150505b620013ff600a8762001f3a565b95506200138b565b50949350505050565b604080516101c08101825260036101808201818152622520a760e91b6101a0840152825282518084018452818152622322a160e91b60208281019190915280840191909152835180850185528281526226a0a960e91b8183015283850152835180850185528281526220a82960e91b8183015260608481019190915284518086018652838152624d415960e81b8184015260808501528451808601865283815262252aa760e91b8184015260a0850152845180860186528381526212955360ea1b8184015260c0850152845180860186528381526241554760e81b8184015260e0850152845180860186528381526205345560ec1b81840152610100850152845180860186528381526213d0d560ea1b8184015261012085015284518086018652838152622727ab60e91b8184015261014085015284518086019095529184526244454360e81b84820152610160830193909352918301518190620015789060019062001f98565b60ff16600c81106200158e576200158e62001f68565b60200201519392505050565b60408051603f8301601f19168101909152818152818360208301863c9392505050565b6000808080620015d26301e133808662001f3a565b620015e0906107b262001ebb565b9150620015ef6107b2620016d6565b620015fe8361ffff16620016d6565b6200160a919062001e7f565b90506200161c816301e2850062001e99565b62001628908462001ebb565b925080620016396107b28462001ed6565b61ffff1662001649919062001e7f565b62001659906301e1338062001e99565b62001665908462001ebb565b92505b84831115620016ce57620016886200168260018462001ed6565b620017ff565b15620016a6576200169e6301e285008462001e7f565b9250620016b9565b620016b66301e133808462001e7f565b92505b620016c660018362001ed6565b915062001668565b509392505050565b6000620016e560018362001e7f565b9150620016f56101908362001f3a565b6200170260648462001f3a565b6200170f60048562001f3a565b6200171b919062001e7f565b62000d99919062001ebb565b60008260ff16600114806200173f57508260ff166003145b806200174e57508260ff166005145b806200175d57508260ff166007145b806200176c57508260ff166008145b806200177b57508260ff16600a145b806200178a57508260ff16600c145b15620017995750601f62000d99565b8260ff1660041480620017af57508260ff166006145b80620017be57508260ff166009145b80620017cd57508260ff16600b145b15620017dc5750601e62000d99565b620017e782620017ff565b15620017f65750601d62000d99565b50601c92915050565b60006200180e60048362001fbe565b61ffff161580156200182f57506200182860648362001fbe565b61ffff1615155b8062000d995750620018446101908362001fbe565b61ffff161592915050565b61130d8062001fd783390190565b6001600160a01b03811681146200187357600080fd5b50565b6000602082840312156200188957600080fd5b813562001896816200185d565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620018de57620018de6200189d565b604052919050565b60006001600160401b038211156200190257620019026200189d565b50601f01601f191660200190565b6000602082840312156200192357600080fd5b81356001600160401b038111156200193a57600080fd5b8201601f810184136200194c57600080fd5b8035620019636200195d82620018e6565b620018b3565b8181528560208385010111156200197957600080fd5b81602084016020830137600091810160200191909152949350505050565b600060208284031215620019aa57600080fd5b81356001600160801b03811681146200189657600080fd5b600060208284031215620019d557600080fd5b81356001600160601b03811681146200189657600080fd5b6001600160a01b0391909116815260200190565b6000806040838503121562001a1557600080fd5b823562001a22816200185d565b946020939093013593505050565b6000806040838503121562001a4457600080fd5b823562001a51816200185d565b9150602083013563ffffffff8116811462001a6b57600080fd5b809150509250929050565b6001600160801b0391909116815260200190565b6001600160601b0391909116815260200190565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b038381168062001afa5762001afa62001ac7565b92169190910692915050565b60008060006060848603121562001b1c57600080fd5b83516002811062001b2c57600080fd5b602085015190935062001b3f816200185d565b604085015190925060ff8116811462001b5757600080fd5b809150509250925092565b60005b8381101562001b7f57818101518382015260200162001b65565b8381111562001b8f576000848401525b50505050565b60006020828403121562001ba857600080fd5b81516001600160401b0381111562001bbf57600080fd5b8201601f8101841362001bd157600080fd5b805162001be26200195d82620018e6565b81815285602083850101111562001bf857600080fd5b62000ea282602083016020860162001b62565b6000815180845262001c2581602086016020860162001b62565b601f01601f19169290920160200192915050565b6001600160a01b038616815260a06020820181905260009062001c5f9083018762001c0b565b828103604084015262001c73818762001c0b565b91505060ff8416606083015263ffffffff831660808301529695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009062001cc39083018762001c0b565b828103606084015262001cd7818762001c0b565b91505060ff8416608083015263ffffffff831660a0830152979650505050505050565b60006020828403121562001d0d57600080fd5b815162001896816200185d565b6000865162001d2e818460208b0162001b62565b86519083019062001d44818360208b0162001b62565b865191019062001d59818360208a0162001b62565b855191019062001d6e81836020890162001b62565b845191019062001d8381836020880162001b62565b01979650505050505050565b6000835162001da381846020880162001b62565b83519083019062001db981836020880162001b62565b01949350505050565b600081526000825162001ddd81600185016020870162001b62565b9190910160010192915050565b6a600b5981380380925939f360a81b8152815160009062001e1381600b85016020870162001b62565b91909101600b0192915050565b6000845162001e3481846020890162001b62565b84519083019062001e4a81836020890162001b62565b845191019062001e5f81836020880162001b62565b0195945050505050565b634e487b7160e01b600052601160045260246000fd5b60008282101562001e945762001e9462001e69565b500390565b600081600019048311821515161562001eb65762001eb662001e69565b500290565b6000821982111562001ed15762001ed162001e69565b500190565b600061ffff8381169083168181101562001ef45762001ef462001e69565b039392505050565b600060ff821660ff810362001f155762001f1562001e69565b60010192915050565b60006001820162001f335762001f3362001e69565b5060010190565b60008262001f4c5762001f4c62001ac7565b500490565b60008262001f635762001f6362001ac7565b500690565b634e487b7160e01b600052603260045260246000fd5b60008162001f905762001f9062001e69565b506000190190565b600060ff821660ff84168082101562001fb55762001fb562001e69565b90039392505050565b600061ffff8084168062001afa5762001afa62001ac756fe6101006040523480156200001257600080fd5b506040516200130d3803806200130d83398101604081905262000035916200015e565b83838360036200004684826200029d565b5060046200005583826200029d565b5060ff166080525050600280546001600160f81b0316600160f81b1790556001600160a01b0390941660a05250505060e0523360c05262000369565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000b957600080fd5b81516001600160401b0380821115620000d657620000d662000091565b604051601f8301601f19908116603f0116810190828211818310171562000101576200010162000091565b816040528381526020925086838588010111156200011e57600080fd5b600091505b8382101562000142578582018301518183018401529082019062000123565b83821115620001545760008385830101525b9695505050505050565b600080600080600060a086880312156200017757600080fd5b85516001600160a01b03811681146200018f57600080fd5b60208701519095506001600160401b0380821115620001ad57600080fd5b620001bb89838a01620000a7565b95506040880151915080821115620001d257600080fd5b50620001e188828901620000a7565b935050606086015160ff81168114620001f957600080fd5b80925050608086015190509295509295909350565b600181811c908216806200022357607f821691505b6020821081036200024457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029857600081815260208120601f850160051c81016020861015620002735750805b601f850160051c820191505b8181101562000294578281556001016200027f565b5050505b505050565b81516001600160401b03811115620002b957620002b962000091565b620002d181620002ca84546200020e565b846200024a565b602080601f831160018114620003095760008415620002f05750858301515b600019600386901b1c1916600185901b17855562000294565b600085815260208120601f198616915b828110156200033a5788860151825594840194600190910190840162000319565b5085821015620003595787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e051610f5c620003b16000396000818161016601526102c701526000818161027a01526105c2015260006101cb015260006101920152610f5c6000f3fe608060405234801561001057600080fd5b50600436106100db5760003560e01c806306fdde03146100e0578063095ea7b3146100fe57806312a31dcc1461012157806318160ddd1461013657806323b872dd146101515780632f13b60c14610164578063313ce5671461018d57806347bfac62146101c657806370a0823114610205578063781c18db1461022e57806395d89b4114610247578063a9059cbb1461024f578063b64761f914610262578063c45a015514610275578063c4d66de81461029c578063dd62ed3e146102af578063e184c9be146102c2575b600080fd5b6100e86102e9565b6040516100f59190610cc7565b60405180910390f35b61011161010c366004610d38565b61037b565b60405190151581526020016100f5565b61013461012f366004610d38565b610393565b005b6002546001600160f81b03165b6040519081526020016100f5565b61011161015f366004610d62565b6103da565b7f0000000000000000000000000000000000000000000000000000000000000000421015610111565b6101b47f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100f5565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100f5565b610143610213366004610d9e565b6001600160a01b031660009081526020819052604090205490565b6005546101ed906201000090046001600160a01b031681565b6100e8610458565b61011161025d366004610d38565b610467565b610134610270366004610d38565b6104d9565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101346102aa366004610d9e565b610513565b6101436102bd366004610dc0565b610655565b6101437f000000000000000000000000000000000000000000000000000000000000000081565b6060600380546102f890610df3565b80601f016020809104026020016040519081016040528092919081815260200182805461032490610df3565b80156103715780601f1061034657610100808354040283529160200191610371565b820191906000526020600020905b81548152906001019060200180831161035457829003601f168201915b5050505050905090565b600033610389818585610680565b5060019392505050565b6005546201000090046001600160a01b031633146103cc5760405162461bcd60e51b81526004016103c390610e2d565b60405180910390fd5b6103d682826107a5565b5050565b600254600090600119600160f81b90910460ff160161040b5760405162461bcd60e51b81526004016103c390610e4e565b600280546001600160f81b0316600160f91b1790553361042c8582856108af565b610437858585610929565b6001915050600280546001600160f81b0316600160f81b1790559392505050565b6060600480546102f890610df3565b600254600090600119600160f81b90910460ff16016104985760405162461bcd60e51b81526004016103c390610e4e565b600280546001600160f81b0316600160f91b179055336104b9818585610929565b6001915050600280546001600160f81b0316600160f81b17905592915050565b6005546201000090046001600160a01b031633146105095760405162461bcd60e51b81526004016103c390610e2d565b6103d68282610b40565b600554610100900460ff1661052e5760055460ff1615610532565b303b155b6105955760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103c3565b600554610100900460ff161580156105b7576005805461ffff19166101011790555b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461061e5760405162461bcd60e51b815260206004820152600c60248201526b4f4e4c595f464143544f525960a01b60448201526064016103c3565b6005805462010000600160b01b031916620100006001600160a01b0385160217905580156103d6576005805461ff00191690555050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166106e25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103c3565b6001600160a01b0382166107435760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103c3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0382166107fb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103c3565b61080481610cad565b6002805460009061081f9084906001600160f81b0316610e9b565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555080600080846001600160a01b03166001600160a01b0316815260200190815260200160002060008282546108779190610ec6565b90915550506040518181526001600160a01b03831690600090600080516020610f078339815191529060200160405180910390a35050565b60006108bb8484610655565b9050600019811461092357818110156109165760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103c3565b6109238484848403610680565b50505050565b6001600160a01b03831661098d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103c3565b6001600160a01b0382166109ef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103c3565b816001600160a01b0316836001600160a01b031603610a4a5760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b60448201526064016103c3565b6001600160a01b03831660009081526020819052604090205481811015610ac25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103c3565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610af9908490610ec6565b92505081905550826001600160a01b0316846001600160a01b0316600080516020610f0783398151915284604051610b3391815260200190565b60405180910390a3610923565b6001600160a01b038216610ba05760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103c3565b6001600160a01b03821660009081526020819052604090205481811015610c145760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103c3565b6001600160a01b03831660009081526020819052604090208282039055610c3a82610cad565b60028054600090610c559084906001600160f81b0316610ede565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b0316600080516020610f078339815191528460405161079891815260200190565b60006001600160f81b03821115610cc357600080fd5b5090565b600060208083528351808285015260005b81811015610cf457858101830151858201604001528201610cd8565b81811115610d06576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610d3357600080fd5b919050565b60008060408385031215610d4b57600080fd5b610d5483610d1c565b946020939093013593505050565b600080600060608486031215610d7757600080fd5b610d8084610d1c565b9250610d8e60208501610d1c565b9150604084013590509250925092565b600060208284031215610db057600080fd5b610db982610d1c565b9392505050565b60008060408385031215610dd357600080fd5b610ddc83610d1c565b9150610dea60208401610d1c565b90509250929050565b600181811c90821680610e0757607f821691505b602082108103610e2757634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526007908201526613d3931657d65560ca1b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001600160f81b03828116848216808303821115610ebd57610ebd610e85565b01949350505050565b60008219821115610ed957610ed9610e85565b500190565b60006001600160f81b0383811690831681811015610efe57610efe610e85565b03939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209491efc9047a4ef227f45b04e333765fd9d1bea97f60f34cbdc39357a0e51c3364736f6c634300080f0033a9d618683ded3ac7317e1717ad10e9e3b92041092a8e97ceb038c699cc54d640a2646970667358221220339be98f5ee644303abf5019114883c4781d8358229d89000ab4bc1476b9325364736f6c634300080f0033",
435
+ "bytecode": "0x608060405234801561001057600080fd5b506135ff806100206000396000f3fe60806040523480156200001157600080fd5b5060043610620001065760003560e01c8063078dfbe7146200010b57806318b7373d146200012457806344601d69146200015f5780634e71e0c81462000176578063586007bc146200018057806361d027b3146200019757806371846aa814620001ba5780637d39cabf14620001e057806387efe5a714620001f75780638c9f7962146200022e5780638da5cb5b1462000265578063a18248c91462000279578063af64d74114620002b1578063c2f0031d14620002c5578063dd86fea114620002dc578063e30c397814620002ff578063e9e5f3cf1462000313578063f0f44260146200033d578063f5de2d1f1462000354575b600080fd5b620001226200011c36600462001a81565b6200036f565b005b6200014a6200013536600462001acd565b60376020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b620001226200017036600462001b0c565b6200047d565b62000122620004f0565b620001226200019136600462001b42565b6200059e565b603454620001ab906001600160a01b031681565b60405162000156919062001b60565b6200014a620001cb36600462001acd565b60386020526000908152604090205460ff1681565b62000122620001f136600462001b0c565b62000665565b620001ab6200020836600462001b74565b60356020908152600092835260408084209091529082529020546001600160a01b031681565b620001ab6200023f36600462001b74565b60366020908152600092835260408084209091529082529020546001600160a01b031681565b600054620001ab906001600160a01b031681565b620002906200028a36600462001ba3565b620006ce565b604080516001600160a01b0393841681529290911660208301520162000156565b603254620001ab906001600160a01b031681565b62000122620002d636600462001c5c565b62000d54565b603354620002f0906001600160801b031681565b60405162000156919062001d30565b600154620001ab906001600160a01b031681565b6034546200032e90600160a01b90046001600160601b031681565b60405162000156919062001d44565b620001226200034e36600462001acd565b62000e8c565b603354620002f090600160801b90046001600160801b031681565b6000546001600160a01b03163314620003a55760405162461bcd60e51b81526004016200039c9062001d58565b60405180910390fd5b81156200045b576001600160a01b038316151580620003c15750805b620004075760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b60448201526064016200039c565b600080546040516001600160a01b03808716939216916000805160206200358a83398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0385166001600160a01b0319909116179055505050565b6000546001600160a01b03163314620004aa5760405162461bcd60e51b81526004016200039c9062001d58565b603380546001600160801b03808416600160801b029116179055604051600080516020620035aa83398151915290620004e590839062001d30565b60405180910390a150565b6001546001600160a01b03163381146200054d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e657260448201526064016200039c565b600080546040516001600160a01b03808516939216916000805160206200358a83398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6000546001600160a01b03163314620005cb5760405162461bcd60e51b81526004016200039c9062001d58565b806001600160601b0316600003620006135760405162461bcd60e51b815260206004820152600a6024820152697a65726f2076616c756560b01b60448201526064016200039c565b603480546001600160a01b0316600160a01b6001600160601b038416021790556040517fdaf60f79a59eb1d8c1748ab26dc83c44f364ce8c1fc497ec2df45d9538a1aa1190620004e590839062001d44565b6000546001600160a01b03163314620006925760405162461bcd60e51b81526004016200039c9062001d58565b603380546001600160801b0319166001600160801b038316179055604051600080516020620035aa83398151915290620004e590839062001d30565b60008063ffffffff83164210620007275760405162461bcd60e51b815260206004820152601c60248201527b657870697279206d75737420626520696e207468652066757475726560201b60448201526064016200039c565b6034546200074c90600160a01b90046001600160601b031663ffffffff851662001da3565b6001600160601b031615620007a25760405162461bcd60e51b815260206004820152601b60248201527a36bab9ba1031329036bab63a34b836329037b3103234bb34b9b7b960291b60448201526064016200039c565b6001600160a01b03848116600090815260356020908152604080832063ffffffff881684529091529020541615620008125760405162461bcd60e51b8152602060048201526012602482015271141508185b1c9958591e48195e1a5cdd195960721b60448201526064016200039c565b60008490506000816001600160a01b031663a40bee506040518163ffffffff1660e01b8152600401606060405180830381865afa15801562000858573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200087e919062001dcc565b9250505062000a5260405180602001620008989062001a44565b6020820181038252601f19601f820116604052504660001b886200096b866001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015620008f4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200091e919081019062001e5b565b8a63ffffffff16604051806040016040528060018152602001600160fd1b81525060405180604001604052806002815260200161141560f21b81525062000f4a909392919063ffffffff16565b62000a25876001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015620009ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620009d8919081019062001e5b565b8b63ffffffff16604051806040016040528060018152602001602d60f81b81525060405180604001604052806002815260200161141560f21b81525062000f4a909392919063ffffffff16565b868b60405160200162000a3d95949392919062001eff565b60405160208183030381529060405262000f8a565b935062000c16603260009054906101000a90046001600160a01b03164660001b888762000b2e876001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000ab7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000ae1919081019062001e5b565b8b63ffffffff16604051806040016040528060018152602001600160fd1b81525060405180604001604052806002815260200161165560f21b81525062000f4a909392919063ffffffff16565b62000be8886001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000b71573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000b9b919081019062001e5b565b8c63ffffffff16604051806040016040528060018152602001602d60f81b81525060405180604001604052806002815260200161165560f21b81525062000f4a909392919063ffffffff16565b878c60405160200162000c019695949392919062001f5b565b60405160208183030381529060405262000fca565b60405163189acdbd60e31b81529093506001600160a01b0385169063c4d66de89062000c4790869060040162001b60565b600060405180830381600087803b15801562000c6257600080fd5b505af115801562000c77573d6000803e3d6000fd5b505050506001600160a01b03868116600081815260356020908152604080832063ffffffff8b1680855290835281842080548b88166001600160a01b031991821681179092558686526036855283862083875285528386208054988c16989091168817905580855260378452828520805460ff199081166001908117909255888752603886529584902080549096161790945581519384529183019490945292810192909252907f7c10d2914fa2900a53b0058359f4d5581f2b83982b0964c38c182079e884ba2f9060600160405180910390a250509250929050565b600154600160a81b900460ff1662000d7a57600154600160a01b900460ff161562000d7e565b303b155b62000de35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200039c565b600154600160a81b900460ff1615801562000e0e576001805461ffff60a01b191661010160a01b1790555b62000e1862000feb565b62000e23866200059e565b62000e2e8562000665565b62000e39846200047d565b62000e448362000e8c565b62000e4f826200106e565b603280546001600160a01b0319166001600160a01b0392909216919091179055801562000e84576001805460ff60a81b191690555b505050505050565b6000546001600160a01b0316331462000eb95760405162461bcd60e51b81526004016200039c9062001d58565b6001600160a01b03811662000f005760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b60448201526064016200039c565b603480546001600160a01b0319166001600160a01b0383169081179091556040517fcb7ef3e545f5cdb893f5c568ba710fe08f336375a2d9fd66e161033f8fc09ef390600090a250565b60608482858462000f5b87620010c1565b60405160200162000f7195949392919062001fc0565b6040516020818303038152906040529050949350505050565b600080848360405160200162000fa292919062002035565b604051602081830303815290604052905062000fc1600085836200113f565b95945050505050565b600062000fe362000fdb8562001246565b848462000f8a565b949350505050565b600154600160a81b900460ff166200105a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016200039c565b600080546001600160a01b03191633179055565b600080825111620010b05760405162461bcd60e51b815260206004820152600b60248201526a0f4cae4de40d8cadccee8d60ab1b60448201526064016200039c565b620010bb826200126b565b92915050565b60606000620010d08362001316565b90506000620010e6826040015160ff16620014cb565b90506000620010f58362001605565b905060006200110c846000015161ffff16620014cb565b9050828282604051602001620011259392919062002068565b604051602081830303815290604052945050505050919050565b60008084471015620011945760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016200039c565b8251600003620011e75760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016200039c565b8383516020850187f590506001600160a01b03811662000fe35760405162461bcd60e51b8152602060048201526019602482015278437265617465323a204661696c6564206f6e206465706c6f7960381b60448201526064016200039c565b6060620010bb82600162001265816001600160a01b0384163b620020c7565b6200178f565b60008082604051602001620012819190620020e1565b6040516020818303038152906040529050600081604051602001620012a7919062002109565b60405160208183030381529060405290508051602082016000f092506001600160a01b0383166200130f5760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b60448201526064016200039c565b5050919050565b604080516060810182526000808252602082018190529181018290529080806200134085620017b2565b61ffff168452620013536107b2620018cb565b8451620013649061ffff16620018cb565b620013709190620020c7565b915062001382826301e285006200213f565b6200138e908462002161565b9250816107b28560000151620013a591906200217c565b61ffff16620013b59190620020c7565b620013c5906301e133806200213f565b620013d1908462002161565b92506000600191505b600c8260ff16116200145057620013f68286600001516200191c565b620014089060ff16620151806200213f565b90508562001417858362002161565b11156200142d5760ff8216602086015262001450565b62001439818562002161565b9350816200144781620021a2565b925050620013da565b600191505b62001469856020015186600001516200191c565b60ff168260ff1611620014c2578562001486856201518062002161565b11156200149c5760ff82166040860152620014c2565b620014ab620151808562002161565b935081620014b981620021a2565b92505062001455565b50505050919050565b606081600003620014f35750506040805180820190915260018152600360fc1b602082015290565b8160005b81156200152357806200150a81620021c4565b91506200151b9050600a83620021e0565b9150620014f7565b6000816001600160401b0381111562001540576200154062001be9565b6040519080825280601f01601f1916602001820160405280156200156b576020820181803683370190505b50905060006200157d600184620020c7565b90505b8515620015fc5762001594600a87620021f7565b620015a190603062002161565b60f81b828281518110620015b957620015b96200220e565b60200101906001600160f81b031916908160001a9053508015620015e75780620015e38162002224565b9150505b620015f4600a87620021e0565b955062001580565b50949350505050565b604080516101c08101825260036101808201818152622520a760e91b6101a0840152825282518084018452818152622322a160e91b60208281019190915280840191909152835180850185528281526226a0a960e91b8183015283850152835180850185528281526220a82960e91b8183015260608481019190915284518086018652838152624d415960e81b8184015260808501528451808601865283815262252aa760e91b8184015260a0850152845180860186528381526212955360ea1b8184015260c0850152845180860186528381526241554760e81b8184015260e0850152845180860186528381526205345560ec1b81840152610100850152845180860186528381526213d0d560ea1b8184015261012085015284518086018652838152622727ab60e91b8184015261014085015284518086019095529184526244454360e81b848201526101608301939093529183015181906200176d906001906200223e565b60ff16600c81106200178357620017836200220e565b60200201519392505050565b60408051603f8301601f19168101909152818152818360208301863c9392505050565b6000808080620017c76301e1338086620021e0565b620017d5906107b262002161565b9150620017e46107b2620018cb565b620017f38361ffff16620018cb565b620017ff9190620020c7565b905062001811816301e285006200213f565b6200181d908462002161565b9250806200182e6107b2846200217c565b61ffff166200183e9190620020c7565b6200184e906301e133806200213f565b6200185a908462002161565b92505b84831115620018c3576200187d620018776001846200217c565b620019f4565b156200189b57620018936301e2850084620020c7565b9250620018ae565b620018ab6301e1338084620020c7565b92505b620018bb6001836200217c565b91506200185d565b509392505050565b6000620018da600183620020c7565b9150620018ea61019083620021e0565b620018f7606484620021e0565b62001904600485620021e0565b620019109190620020c7565b620010bb919062002161565b60008260ff16600114806200193457508260ff166003145b806200194357508260ff166005145b806200195257508260ff166007145b806200196157508260ff166008145b806200197057508260ff16600a145b806200197f57508260ff16600c145b156200198e5750601f620010bb565b8260ff1660041480620019a457508260ff166006145b80620019b357508260ff166009145b80620019c257508260ff16600b145b15620019d15750601e620010bb565b620019dc82620019f4565b15620019eb5750601d620010bb565b50601c92915050565b600062001a0360048362002264565b61ffff1615801562001a24575062001a1d60648362002264565b61ffff1615155b80620010bb575062001a396101908362002264565b61ffff161592915050565b61130d806200227d83390190565b6001600160a01b038116811462001a6857600080fd5b50565b8035801515811462001a7c57600080fd5b919050565b60008060006060848603121562001a9757600080fd5b833562001aa48162001a52565b925062001ab46020850162001a6b565b915062001ac46040850162001a6b565b90509250925092565b60006020828403121562001ae057600080fd5b813562001aed8162001a52565b9392505050565b80356001600160801b038116811462001a7c57600080fd5b60006020828403121562001b1f57600080fd5b62001aed8262001af4565b80356001600160601b038116811462001a7c57600080fd5b60006020828403121562001b5557600080fd5b62001aed8262001b2a565b6001600160a01b0391909116815260200190565b6000806040838503121562001b8857600080fd5b823562001b958162001a52565b946020939093013593505050565b6000806040838503121562001bb757600080fd5b823562001bc48162001a52565b9150602083013563ffffffff8116811462001bde57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562001c2a5762001c2a62001be9565b604052919050565b60006001600160401b0382111562001c4e5762001c4e62001be9565b50601f01601f191660200190565b600080600080600060a0868803121562001c7557600080fd5b62001c808662001b2a565b945062001c906020870162001af4565b935062001ca06040870162001af4565b9250606086013562001cb28162001a52565b915060808601356001600160401b0381111562001cce57600080fd5b8601601f8101881362001ce057600080fd5b803562001cf762001cf18262001c32565b62001bff565b81815289602083850101111562001d0d57600080fd5b816020840160208301376000602083830101528093505050509295509295909350565b6001600160801b0391909116815260200190565b6001600160601b0391909116815260200190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b038381168062001dc05762001dc062001d8d565b92169190910692915050565b60008060006060848603121562001de257600080fd5b83516002811062001df257600080fd5b602085015190935062001e058162001a52565b604085015190925060ff8116811462001e1d57600080fd5b809150509250925092565b60005b8381101562001e4557818101518382015260200162001e2b565b8381111562001e55576000848401525b50505050565b60006020828403121562001e6e57600080fd5b81516001600160401b0381111562001e8557600080fd5b8201601f8101841362001e9757600080fd5b805162001ea862001cf18262001c32565b81815285602083850101111562001ebe57600080fd5b62000fc182602083016020860162001e28565b6000815180845262001eeb81602086016020860162001e28565b601f01601f19169290920160200192915050565b6001600160a01b038616815260a06020820181905260009062001f259083018762001ed1565b828103604084015262001f39818762001ed1565b91505060ff8416606083015263ffffffff831660808301529695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009062001f899083018762001ed1565b828103606084015262001f9d818762001ed1565b91505060ff8416608083015263ffffffff831660a0830152979650505050505050565b6000865162001fd4818460208b0162001e28565b86519083019062001fea818360208b0162001e28565b865191019062001fff818360208a0162001e28565b85519101906200201481836020890162001e28565b84519101906200202981836020880162001e28565b01979650505050505050565b600083516200204981846020880162001e28565b8351908301906200205f81836020880162001e28565b01949350505050565b600084516200207c81846020890162001e28565b8451908301906200209281836020890162001e28565b8451910190620020a781836020880162001e28565b0195945050505050565b634e487b7160e01b600052601160045260246000fd5b600082821015620020dc57620020dc620020b1565b500390565b6000815260008251620020fc81600185016020870162001e28565b9190910160010192915050565b6a600b5981380380925939f360a81b815281516000906200213281600b85016020870162001e28565b91909101600b0192915050565b60008160001904831182151516156200215c576200215c620020b1565b500290565b60008219821115620021775762002177620020b1565b500190565b600061ffff838116908316818110156200219a576200219a620020b1565b039392505050565b600060ff821660ff8103620021bb57620021bb620020b1565b60010192915050565b600060018201620021d957620021d9620020b1565b5060010190565b600082620021f257620021f262001d8d565b500490565b60008262002209576200220962001d8d565b500690565b634e487b7160e01b600052603260045260246000fd5b600081620022365762002236620020b1565b506000190190565b600060ff821660ff8416808210156200225b576200225b620020b1565b90039392505050565b600061ffff8084168062001dc05762001dc062001d8d56fe6101006040523480156200001257600080fd5b506040516200130d3803806200130d83398101604081905262000035916200015e565b83838360036200004684826200029d565b5060046200005583826200029d565b5060ff166080525050600280546001600160f81b0316600160f81b1790556001600160a01b0390941660a05250505060e0523360c05262000369565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000b957600080fd5b81516001600160401b0380821115620000d657620000d662000091565b604051601f8301601f19908116603f0116810190828211818310171562000101576200010162000091565b816040528381526020925086838588010111156200011e57600080fd5b600091505b8382101562000142578582018301518183018401529082019062000123565b83821115620001545760008385830101525b9695505050505050565b600080600080600060a086880312156200017757600080fd5b85516001600160a01b03811681146200018f57600080fd5b60208701519095506001600160401b0380821115620001ad57600080fd5b620001bb89838a01620000a7565b95506040880151915080821115620001d257600080fd5b50620001e188828901620000a7565b935050606086015160ff81168114620001f957600080fd5b80925050608086015190509295509295909350565b600181811c908216806200022357607f821691505b6020821081036200024457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029857600081815260208120601f850160051c81016020861015620002735750805b601f850160051c820191505b8181101562000294578281556001016200027f565b5050505b505050565b81516001600160401b03811115620002b957620002b962000091565b620002d181620002ca84546200020e565b846200024a565b602080601f831160018114620003095760008415620002f05750858301515b600019600386901b1c1916600185901b17855562000294565b600085815260208120601f198616915b828110156200033a5788860151825594840194600190910190840162000319565b5085821015620003595787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e051610f5c620003b16000396000818161016601526102c701526000818161027a01526105c2015260006101cb015260006101920152610f5c6000f3fe608060405234801561001057600080fd5b50600436106100db5760003560e01c806306fdde03146100e0578063095ea7b3146100fe57806312a31dcc1461012157806318160ddd1461013657806323b872dd146101515780632f13b60c14610164578063313ce5671461018d57806347bfac62146101c657806370a0823114610205578063781c18db1461022e57806395d89b4114610247578063a9059cbb1461024f578063b64761f914610262578063c45a015514610275578063c4d66de81461029c578063dd62ed3e146102af578063e184c9be146102c2575b600080fd5b6100e86102e9565b6040516100f59190610cc7565b60405180910390f35b61011161010c366004610d38565b61037b565b60405190151581526020016100f5565b61013461012f366004610d38565b610393565b005b6002546001600160f81b03165b6040519081526020016100f5565b61011161015f366004610d62565b6103da565b7f0000000000000000000000000000000000000000000000000000000000000000421015610111565b6101b47f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100f5565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100f5565b610143610213366004610d9e565b6001600160a01b031660009081526020819052604090205490565b6005546101ed906201000090046001600160a01b031681565b6100e8610458565b61011161025d366004610d38565b610467565b610134610270366004610d38565b6104d9565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101346102aa366004610d9e565b610513565b6101436102bd366004610dc0565b610655565b6101437f000000000000000000000000000000000000000000000000000000000000000081565b6060600380546102f890610df3565b80601f016020809104026020016040519081016040528092919081815260200182805461032490610df3565b80156103715780601f1061034657610100808354040283529160200191610371565b820191906000526020600020905b81548152906001019060200180831161035457829003601f168201915b5050505050905090565b600033610389818585610680565b5060019392505050565b6005546201000090046001600160a01b031633146103cc5760405162461bcd60e51b81526004016103c390610e2d565b60405180910390fd5b6103d682826107a5565b5050565b600254600090600119600160f81b90910460ff160161040b5760405162461bcd60e51b81526004016103c390610e4e565b600280546001600160f81b0316600160f91b1790553361042c8582856108af565b610437858585610929565b6001915050600280546001600160f81b0316600160f81b1790559392505050565b6060600480546102f890610df3565b600254600090600119600160f81b90910460ff16016104985760405162461bcd60e51b81526004016103c390610e4e565b600280546001600160f81b0316600160f91b179055336104b9818585610929565b6001915050600280546001600160f81b0316600160f81b17905592915050565b6005546201000090046001600160a01b031633146105095760405162461bcd60e51b81526004016103c390610e2d565b6103d68282610b40565b600554610100900460ff1661052e5760055460ff1615610532565b303b155b6105955760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103c3565b600554610100900460ff161580156105b7576005805461ffff19166101011790555b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461061e5760405162461bcd60e51b815260206004820152600c60248201526b4f4e4c595f464143544f525960a01b60448201526064016103c3565b6005805462010000600160b01b031916620100006001600160a01b0385160217905580156103d6576005805461ff00191690555050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166106e25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103c3565b6001600160a01b0382166107435760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103c3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0382166107fb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103c3565b61080481610cad565b6002805460009061081f9084906001600160f81b0316610e9b565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555080600080846001600160a01b03166001600160a01b0316815260200190815260200160002060008282546108779190610ec6565b90915550506040518181526001600160a01b03831690600090600080516020610f078339815191529060200160405180910390a35050565b60006108bb8484610655565b9050600019811461092357818110156109165760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103c3565b6109238484848403610680565b50505050565b6001600160a01b03831661098d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103c3565b6001600160a01b0382166109ef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103c3565b816001600160a01b0316836001600160a01b031603610a4a5760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b60448201526064016103c3565b6001600160a01b03831660009081526020819052604090205481811015610ac25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103c3565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610af9908490610ec6565b92505081905550826001600160a01b0316846001600160a01b0316600080516020610f0783398151915284604051610b3391815260200190565b60405180910390a3610923565b6001600160a01b038216610ba05760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103c3565b6001600160a01b03821660009081526020819052604090205481811015610c145760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103c3565b6001600160a01b03831660009081526020819052604090208282039055610c3a82610cad565b60028054600090610c559084906001600160f81b0316610ede565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b0316600080516020610f078339815191528460405161079891815260200190565b60006001600160f81b03821115610cc357600080fd5b5090565b600060208083528351808285015260005b81811015610cf457858101830151858201604001528201610cd8565b81811115610d06576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610d3357600080fd5b919050565b60008060408385031215610d4b57600080fd5b610d5483610d1c565b946020939093013593505050565b600080600060608486031215610d7757600080fd5b610d8084610d1c565b9250610d8e60208501610d1c565b9150604084013590509250925092565b600060208284031215610db057600080fd5b610db982610d1c565b9392505050565b60008060408385031215610dd357600080fd5b610ddc83610d1c565b9150610dea60208401610d1c565b90509250929050565b600181811c90821680610e0757607f821691505b602082108103610e2757634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526007908201526613d3931657d65560ca1b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001600160f81b03828116848216808303821115610ebd57610ebd610e85565b01949350505050565b60008219821115610ed957610ed9610e85565b500190565b60006001600160f81b0383811690831681811015610efe57610efe610e85565b03939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207bd8cc9f960a4ce1d41caff84b4952300cc8cd922bca2bf579b2d59ae8159d8664736f6c634300080f00338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a9d618683ded3ac7317e1717ad10e9e3b92041092a8e97ceb038c699cc54d640a26469706673582212209d915fed84480eb47207a81fc5d54f07bf210053f5bb6d2233b578563c491ab664736f6c634300080f0033",
436
+ "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620001065760003560e01c8063078dfbe7146200010b57806318b7373d146200012457806344601d69146200015f5780634e71e0c81462000176578063586007bc146200018057806361d027b3146200019757806371846aa814620001ba5780637d39cabf14620001e057806387efe5a714620001f75780638c9f7962146200022e5780638da5cb5b1462000265578063a18248c91462000279578063af64d74114620002b1578063c2f0031d14620002c5578063dd86fea114620002dc578063e30c397814620002ff578063e9e5f3cf1462000313578063f0f44260146200033d578063f5de2d1f1462000354575b600080fd5b620001226200011c36600462001a81565b6200036f565b005b6200014a6200013536600462001acd565b60376020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b620001226200017036600462001b0c565b6200047d565b62000122620004f0565b620001226200019136600462001b42565b6200059e565b603454620001ab906001600160a01b031681565b60405162000156919062001b60565b6200014a620001cb36600462001acd565b60386020526000908152604090205460ff1681565b62000122620001f136600462001b0c565b62000665565b620001ab6200020836600462001b74565b60356020908152600092835260408084209091529082529020546001600160a01b031681565b620001ab6200023f36600462001b74565b60366020908152600092835260408084209091529082529020546001600160a01b031681565b600054620001ab906001600160a01b031681565b620002906200028a36600462001ba3565b620006ce565b604080516001600160a01b0393841681529290911660208301520162000156565b603254620001ab906001600160a01b031681565b62000122620002d636600462001c5c565b62000d54565b603354620002f0906001600160801b031681565b60405162000156919062001d30565b600154620001ab906001600160a01b031681565b6034546200032e90600160a01b90046001600160601b031681565b60405162000156919062001d44565b620001226200034e36600462001acd565b62000e8c565b603354620002f090600160801b90046001600160801b031681565b6000546001600160a01b03163314620003a55760405162461bcd60e51b81526004016200039c9062001d58565b60405180910390fd5b81156200045b576001600160a01b038316151580620003c15750805b620004075760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b60448201526064016200039c565b600080546040516001600160a01b03808716939216916000805160206200358a83398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0385166001600160a01b0319909116179055505050565b6000546001600160a01b03163314620004aa5760405162461bcd60e51b81526004016200039c9062001d58565b603380546001600160801b03808416600160801b029116179055604051600080516020620035aa83398151915290620004e590839062001d30565b60405180910390a150565b6001546001600160a01b03163381146200054d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e657260448201526064016200039c565b600080546040516001600160a01b03808516939216916000805160206200358a83398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6000546001600160a01b03163314620005cb5760405162461bcd60e51b81526004016200039c9062001d58565b806001600160601b0316600003620006135760405162461bcd60e51b815260206004820152600a6024820152697a65726f2076616c756560b01b60448201526064016200039c565b603480546001600160a01b0316600160a01b6001600160601b038416021790556040517fdaf60f79a59eb1d8c1748ab26dc83c44f364ce8c1fc497ec2df45d9538a1aa1190620004e590839062001d44565b6000546001600160a01b03163314620006925760405162461bcd60e51b81526004016200039c9062001d58565b603380546001600160801b0319166001600160801b038316179055604051600080516020620035aa83398151915290620004e590839062001d30565b60008063ffffffff83164210620007275760405162461bcd60e51b815260206004820152601c60248201527b657870697279206d75737420626520696e207468652066757475726560201b60448201526064016200039c565b6034546200074c90600160a01b90046001600160601b031663ffffffff851662001da3565b6001600160601b031615620007a25760405162461bcd60e51b815260206004820152601b60248201527a36bab9ba1031329036bab63a34b836329037b3103234bb34b9b7b960291b60448201526064016200039c565b6001600160a01b03848116600090815260356020908152604080832063ffffffff881684529091529020541615620008125760405162461bcd60e51b8152602060048201526012602482015271141508185b1c9958591e48195e1a5cdd195960721b60448201526064016200039c565b60008490506000816001600160a01b031663a40bee506040518163ffffffff1660e01b8152600401606060405180830381865afa15801562000858573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200087e919062001dcc565b9250505062000a5260405180602001620008989062001a44565b6020820181038252601f19601f820116604052504660001b886200096b866001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015620008f4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200091e919081019062001e5b565b8a63ffffffff16604051806040016040528060018152602001600160fd1b81525060405180604001604052806002815260200161141560f21b81525062000f4a909392919063ffffffff16565b62000a25876001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015620009ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620009d8919081019062001e5b565b8b63ffffffff16604051806040016040528060018152602001602d60f81b81525060405180604001604052806002815260200161141560f21b81525062000f4a909392919063ffffffff16565b868b60405160200162000a3d95949392919062001eff565b60405160208183030381529060405262000f8a565b935062000c16603260009054906101000a90046001600160a01b03164660001b888762000b2e876001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000ab7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000ae1919081019062001e5b565b8b63ffffffff16604051806040016040528060018152602001600160fd1b81525060405180604001604052806002815260200161165560f21b81525062000f4a909392919063ffffffff16565b62000be8886001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000b71573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000b9b919081019062001e5b565b8c63ffffffff16604051806040016040528060018152602001602d60f81b81525060405180604001604052806002815260200161165560f21b81525062000f4a909392919063ffffffff16565b878c60405160200162000c019695949392919062001f5b565b60405160208183030381529060405262000fca565b60405163189acdbd60e31b81529093506001600160a01b0385169063c4d66de89062000c4790869060040162001b60565b600060405180830381600087803b15801562000c6257600080fd5b505af115801562000c77573d6000803e3d6000fd5b505050506001600160a01b03868116600081815260356020908152604080832063ffffffff8b1680855290835281842080548b88166001600160a01b031991821681179092558686526036855283862083875285528386208054988c16989091168817905580855260378452828520805460ff199081166001908117909255888752603886529584902080549096161790945581519384529183019490945292810192909252907f7c10d2914fa2900a53b0058359f4d5581f2b83982b0964c38c182079e884ba2f9060600160405180910390a250509250929050565b600154600160a81b900460ff1662000d7a57600154600160a01b900460ff161562000d7e565b303b155b62000de35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200039c565b600154600160a81b900460ff1615801562000e0e576001805461ffff60a01b191661010160a01b1790555b62000e1862000feb565b62000e23866200059e565b62000e2e8562000665565b62000e39846200047d565b62000e448362000e8c565b62000e4f826200106e565b603280546001600160a01b0319166001600160a01b0392909216919091179055801562000e84576001805460ff60a81b191690555b505050505050565b6000546001600160a01b0316331462000eb95760405162461bcd60e51b81526004016200039c9062001d58565b6001600160a01b03811662000f005760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b60448201526064016200039c565b603480546001600160a01b0319166001600160a01b0383169081179091556040517fcb7ef3e545f5cdb893f5c568ba710fe08f336375a2d9fd66e161033f8fc09ef390600090a250565b60608482858462000f5b87620010c1565b60405160200162000f7195949392919062001fc0565b6040516020818303038152906040529050949350505050565b600080848360405160200162000fa292919062002035565b604051602081830303815290604052905062000fc1600085836200113f565b95945050505050565b600062000fe362000fdb8562001246565b848462000f8a565b949350505050565b600154600160a81b900460ff166200105a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016200039c565b600080546001600160a01b03191633179055565b600080825111620010b05760405162461bcd60e51b815260206004820152600b60248201526a0f4cae4de40d8cadccee8d60ab1b60448201526064016200039c565b620010bb826200126b565b92915050565b60606000620010d08362001316565b90506000620010e6826040015160ff16620014cb565b90506000620010f58362001605565b905060006200110c846000015161ffff16620014cb565b9050828282604051602001620011259392919062002068565b604051602081830303815290604052945050505050919050565b60008084471015620011945760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016200039c565b8251600003620011e75760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016200039c565b8383516020850187f590506001600160a01b03811662000fe35760405162461bcd60e51b8152602060048201526019602482015278437265617465323a204661696c6564206f6e206465706c6f7960381b60448201526064016200039c565b6060620010bb82600162001265816001600160a01b0384163b620020c7565b6200178f565b60008082604051602001620012819190620020e1565b6040516020818303038152906040529050600081604051602001620012a7919062002109565b60405160208183030381529060405290508051602082016000f092506001600160a01b0383166200130f5760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b60448201526064016200039c565b5050919050565b604080516060810182526000808252602082018190529181018290529080806200134085620017b2565b61ffff168452620013536107b2620018cb565b8451620013649061ffff16620018cb565b620013709190620020c7565b915062001382826301e285006200213f565b6200138e908462002161565b9250816107b28560000151620013a591906200217c565b61ffff16620013b59190620020c7565b620013c5906301e133806200213f565b620013d1908462002161565b92506000600191505b600c8260ff16116200145057620013f68286600001516200191c565b620014089060ff16620151806200213f565b90508562001417858362002161565b11156200142d5760ff8216602086015262001450565b62001439818562002161565b9350816200144781620021a2565b925050620013da565b600191505b62001469856020015186600001516200191c565b60ff168260ff1611620014c2578562001486856201518062002161565b11156200149c5760ff82166040860152620014c2565b620014ab620151808562002161565b935081620014b981620021a2565b92505062001455565b50505050919050565b606081600003620014f35750506040805180820190915260018152600360fc1b602082015290565b8160005b81156200152357806200150a81620021c4565b91506200151b9050600a83620021e0565b9150620014f7565b6000816001600160401b0381111562001540576200154062001be9565b6040519080825280601f01601f1916602001820160405280156200156b576020820181803683370190505b50905060006200157d600184620020c7565b90505b8515620015fc5762001594600a87620021f7565b620015a190603062002161565b60f81b828281518110620015b957620015b96200220e565b60200101906001600160f81b031916908160001a9053508015620015e75780620015e38162002224565b9150505b620015f4600a87620021e0565b955062001580565b50949350505050565b604080516101c08101825260036101808201818152622520a760e91b6101a0840152825282518084018452818152622322a160e91b60208281019190915280840191909152835180850185528281526226a0a960e91b8183015283850152835180850185528281526220a82960e91b8183015260608481019190915284518086018652838152624d415960e81b8184015260808501528451808601865283815262252aa760e91b8184015260a0850152845180860186528381526212955360ea1b8184015260c0850152845180860186528381526241554760e81b8184015260e0850152845180860186528381526205345560ec1b81840152610100850152845180860186528381526213d0d560ea1b8184015261012085015284518086018652838152622727ab60e91b8184015261014085015284518086019095529184526244454360e81b848201526101608301939093529183015181906200176d906001906200223e565b60ff16600c81106200178357620017836200220e565b60200201519392505050565b60408051603f8301601f19168101909152818152818360208301863c9392505050565b6000808080620017c76301e1338086620021e0565b620017d5906107b262002161565b9150620017e46107b2620018cb565b620017f38361ffff16620018cb565b620017ff9190620020c7565b905062001811816301e285006200213f565b6200181d908462002161565b9250806200182e6107b2846200217c565b61ffff166200183e9190620020c7565b6200184e906301e133806200213f565b6200185a908462002161565b92505b84831115620018c3576200187d620018776001846200217c565b620019f4565b156200189b57620018936301e2850084620020c7565b9250620018ae565b620018ab6301e1338084620020c7565b92505b620018bb6001836200217c565b91506200185d565b509392505050565b6000620018da600183620020c7565b9150620018ea61019083620021e0565b620018f7606484620021e0565b62001904600485620021e0565b620019109190620020c7565b620010bb919062002161565b60008260ff16600114806200193457508260ff166003145b806200194357508260ff166005145b806200195257508260ff166007145b806200196157508260ff166008145b806200197057508260ff16600a145b806200197f57508260ff16600c145b156200198e5750601f620010bb565b8260ff1660041480620019a457508260ff166006145b80620019b357508260ff166009145b80620019c257508260ff16600b145b15620019d15750601e620010bb565b620019dc82620019f4565b15620019eb5750601d620010bb565b50601c92915050565b600062001a0360048362002264565b61ffff1615801562001a24575062001a1d60648362002264565b61ffff1615155b80620010bb575062001a396101908362002264565b61ffff161592915050565b61130d806200227d83390190565b6001600160a01b038116811462001a6857600080fd5b50565b8035801515811462001a7c57600080fd5b919050565b60008060006060848603121562001a9757600080fd5b833562001aa48162001a52565b925062001ab46020850162001a6b565b915062001ac46040850162001a6b565b90509250925092565b60006020828403121562001ae057600080fd5b813562001aed8162001a52565b9392505050565b80356001600160801b038116811462001a7c57600080fd5b60006020828403121562001b1f57600080fd5b62001aed8262001af4565b80356001600160601b038116811462001a7c57600080fd5b60006020828403121562001b5557600080fd5b62001aed8262001b2a565b6001600160a01b0391909116815260200190565b6000806040838503121562001b8857600080fd5b823562001b958162001a52565b946020939093013593505050565b6000806040838503121562001bb757600080fd5b823562001bc48162001a52565b9150602083013563ffffffff8116811462001bde57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562001c2a5762001c2a62001be9565b604052919050565b60006001600160401b0382111562001c4e5762001c4e62001be9565b50601f01601f191660200190565b600080600080600060a0868803121562001c7557600080fd5b62001c808662001b2a565b945062001c906020870162001af4565b935062001ca06040870162001af4565b9250606086013562001cb28162001a52565b915060808601356001600160401b0381111562001cce57600080fd5b8601601f8101881362001ce057600080fd5b803562001cf762001cf18262001c32565b62001bff565b81815289602083850101111562001d0d57600080fd5b816020840160208301376000602083830101528093505050509295509295909350565b6001600160801b0391909116815260200190565b6001600160601b0391909116815260200190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b038381168062001dc05762001dc062001d8d565b92169190910692915050565b60008060006060848603121562001de257600080fd5b83516002811062001df257600080fd5b602085015190935062001e058162001a52565b604085015190925060ff8116811462001e1d57600080fd5b809150509250925092565b60005b8381101562001e4557818101518382015260200162001e2b565b8381111562001e55576000848401525b50505050565b60006020828403121562001e6e57600080fd5b81516001600160401b0381111562001e8557600080fd5b8201601f8101841362001e9757600080fd5b805162001ea862001cf18262001c32565b81815285602083850101111562001ebe57600080fd5b62000fc182602083016020860162001e28565b6000815180845262001eeb81602086016020860162001e28565b601f01601f19169290920160200192915050565b6001600160a01b038616815260a06020820181905260009062001f259083018762001ed1565b828103604084015262001f39818762001ed1565b91505060ff8416606083015263ffffffff831660808301529695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009062001f899083018762001ed1565b828103606084015262001f9d818762001ed1565b91505060ff8416608083015263ffffffff831660a0830152979650505050505050565b6000865162001fd4818460208b0162001e28565b86519083019062001fea818360208b0162001e28565b865191019062001fff818360208a0162001e28565b85519101906200201481836020890162001e28565b84519101906200202981836020880162001e28565b01979650505050505050565b600083516200204981846020880162001e28565b8351908301906200205f81836020880162001e28565b01949350505050565b600084516200207c81846020890162001e28565b8451908301906200209281836020890162001e28565b8451910190620020a781836020880162001e28565b0195945050505050565b634e487b7160e01b600052601160045260246000fd5b600082821015620020dc57620020dc620020b1565b500390565b6000815260008251620020fc81600185016020870162001e28565b9190910160010192915050565b6a600b5981380380925939f360a81b815281516000906200213281600b85016020870162001e28565b91909101600b0192915050565b60008160001904831182151516156200215c576200215c620020b1565b500290565b60008219821115620021775762002177620020b1565b500190565b600061ffff838116908316818110156200219a576200219a620020b1565b039392505050565b600060ff821660ff8103620021bb57620021bb620020b1565b60010192915050565b600060018201620021d957620021d9620020b1565b5060010190565b600082620021f257620021f262001d8d565b500490565b60008262002209576200220962001d8d565b500690565b634e487b7160e01b600052603260045260246000fd5b600081620022365762002236620020b1565b506000190190565b600060ff821660ff8416808210156200225b576200225b620020b1565b90039392505050565b600061ffff8084168062001dc05762001dc062001d8d56fe6101006040523480156200001257600080fd5b506040516200130d3803806200130d83398101604081905262000035916200015e565b83838360036200004684826200029d565b5060046200005583826200029d565b5060ff166080525050600280546001600160f81b0316600160f81b1790556001600160a01b0390941660a05250505060e0523360c05262000369565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000b957600080fd5b81516001600160401b0380821115620000d657620000d662000091565b604051601f8301601f19908116603f0116810190828211818310171562000101576200010162000091565b816040528381526020925086838588010111156200011e57600080fd5b600091505b8382101562000142578582018301518183018401529082019062000123565b83821115620001545760008385830101525b9695505050505050565b600080600080600060a086880312156200017757600080fd5b85516001600160a01b03811681146200018f57600080fd5b60208701519095506001600160401b0380821115620001ad57600080fd5b620001bb89838a01620000a7565b95506040880151915080821115620001d257600080fd5b50620001e188828901620000a7565b935050606086015160ff81168114620001f957600080fd5b80925050608086015190509295509295909350565b600181811c908216806200022357607f821691505b6020821081036200024457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029857600081815260208120601f850160051c81016020861015620002735750805b601f850160051c820191505b8181101562000294578281556001016200027f565b5050505b505050565b81516001600160401b03811115620002b957620002b962000091565b620002d181620002ca84546200020e565b846200024a565b602080601f831160018114620003095760008415620002f05750858301515b600019600386901b1c1916600185901b17855562000294565b600085815260208120601f198616915b828110156200033a5788860151825594840194600190910190840162000319565b5085821015620003595787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e051610f5c620003b16000396000818161016601526102c701526000818161027a01526105c2015260006101cb015260006101920152610f5c6000f3fe608060405234801561001057600080fd5b50600436106100db5760003560e01c806306fdde03146100e0578063095ea7b3146100fe57806312a31dcc1461012157806318160ddd1461013657806323b872dd146101515780632f13b60c14610164578063313ce5671461018d57806347bfac62146101c657806370a0823114610205578063781c18db1461022e57806395d89b4114610247578063a9059cbb1461024f578063b64761f914610262578063c45a015514610275578063c4d66de81461029c578063dd62ed3e146102af578063e184c9be146102c2575b600080fd5b6100e86102e9565b6040516100f59190610cc7565b60405180910390f35b61011161010c366004610d38565b61037b565b60405190151581526020016100f5565b61013461012f366004610d38565b610393565b005b6002546001600160f81b03165b6040519081526020016100f5565b61011161015f366004610d62565b6103da565b7f0000000000000000000000000000000000000000000000000000000000000000421015610111565b6101b47f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100f5565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100f5565b610143610213366004610d9e565b6001600160a01b031660009081526020819052604090205490565b6005546101ed906201000090046001600160a01b031681565b6100e8610458565b61011161025d366004610d38565b610467565b610134610270366004610d38565b6104d9565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101346102aa366004610d9e565b610513565b6101436102bd366004610dc0565b610655565b6101437f000000000000000000000000000000000000000000000000000000000000000081565b6060600380546102f890610df3565b80601f016020809104026020016040519081016040528092919081815260200182805461032490610df3565b80156103715780601f1061034657610100808354040283529160200191610371565b820191906000526020600020905b81548152906001019060200180831161035457829003601f168201915b5050505050905090565b600033610389818585610680565b5060019392505050565b6005546201000090046001600160a01b031633146103cc5760405162461bcd60e51b81526004016103c390610e2d565b60405180910390fd5b6103d682826107a5565b5050565b600254600090600119600160f81b90910460ff160161040b5760405162461bcd60e51b81526004016103c390610e4e565b600280546001600160f81b0316600160f91b1790553361042c8582856108af565b610437858585610929565b6001915050600280546001600160f81b0316600160f81b1790559392505050565b6060600480546102f890610df3565b600254600090600119600160f81b90910460ff16016104985760405162461bcd60e51b81526004016103c390610e4e565b600280546001600160f81b0316600160f91b179055336104b9818585610929565b6001915050600280546001600160f81b0316600160f81b17905592915050565b6005546201000090046001600160a01b031633146105095760405162461bcd60e51b81526004016103c390610e2d565b6103d68282610b40565b600554610100900460ff1661052e5760055460ff1615610532565b303b155b6105955760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103c3565b600554610100900460ff161580156105b7576005805461ffff19166101011790555b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461061e5760405162461bcd60e51b815260206004820152600c60248201526b4f4e4c595f464143544f525960a01b60448201526064016103c3565b6005805462010000600160b01b031916620100006001600160a01b0385160217905580156103d6576005805461ff00191690555050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166106e25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103c3565b6001600160a01b0382166107435760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103c3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0382166107fb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103c3565b61080481610cad565b6002805460009061081f9084906001600160f81b0316610e9b565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555080600080846001600160a01b03166001600160a01b0316815260200190815260200160002060008282546108779190610ec6565b90915550506040518181526001600160a01b03831690600090600080516020610f078339815191529060200160405180910390a35050565b60006108bb8484610655565b9050600019811461092357818110156109165760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103c3565b6109238484848403610680565b50505050565b6001600160a01b03831661098d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103c3565b6001600160a01b0382166109ef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103c3565b816001600160a01b0316836001600160a01b031603610a4a5760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b60448201526064016103c3565b6001600160a01b03831660009081526020819052604090205481811015610ac25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103c3565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610af9908490610ec6565b92505081905550826001600160a01b0316846001600160a01b0316600080516020610f0783398151915284604051610b3391815260200190565b60405180910390a3610923565b6001600160a01b038216610ba05760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103c3565b6001600160a01b03821660009081526020819052604090205481811015610c145760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103c3565b6001600160a01b03831660009081526020819052604090208282039055610c3a82610cad565b60028054600090610c559084906001600160f81b0316610ede565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b0316600080516020610f078339815191528460405161079891815260200190565b60006001600160f81b03821115610cc357600080fd5b5090565b600060208083528351808285015260005b81811015610cf457858101830151858201604001528201610cd8565b81811115610d06576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610d3357600080fd5b919050565b60008060408385031215610d4b57600080fd5b610d5483610d1c565b946020939093013593505050565b600080600060608486031215610d7757600080fd5b610d8084610d1c565b9250610d8e60208501610d1c565b9150604084013590509250925092565b600060208284031215610db057600080fd5b610db982610d1c565b9392505050565b60008060408385031215610dd357600080fd5b610ddc83610d1c565b9150610dea60208401610d1c565b90509250929050565b600181811c90821680610e0757607f821691505b602082108103610e2757634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526007908201526613d3931657d65560ca1b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001600160f81b03828116848216808303821115610ebd57610ebd610e85565b01949350505050565b60008219821115610ed957610ed9610e85565b500190565b60006001600160f81b0383811690831681811015610efe57610efe610e85565b03939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207bd8cc9f960a4ce1d41caff84b4952300cc8cd922bca2bf579b2d59ae8159d8664736f6c634300080f00338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a9d618683ded3ac7317e1717ad10e9e3b92041092a8e97ceb038c699cc54d640a26469706673582212209d915fed84480eb47207a81fc5d54f07bf210053f5bb6d2233b578563c491ab664736f6c634300080f0033",
381
437
  "linkReferences": {},
382
438
  "deployedLinkReferences": {}
383
439
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/987b355c42d305653de3414653194fca.json"
3
+ "buildInfo": "../../../../build-info/492a77e993ce31b17542cf37561d3792.json"
4
4
  }