@pendle/core-v2 0.16.2-testnet → 0.16.3-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.
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.json +13 -0
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +13 -0
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +4 -0
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +695 -0
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +4 -0
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +531 -0
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +4 -0
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +10 -0
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +15 -2
- package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +89 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +15 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +15 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
- package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
- package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +2 -2
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +13 -0
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +2 -2
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +208 -2
- package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.json +30 -83
- package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +91 -17
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +50 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +20 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +20 -0
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +181 -17
- package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.json +173 -0
- package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.json +86 -0
- package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.json +34 -0
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.json +45 -0
- package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +15 -2
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +67 -0
- package/build/artifacts/contracts/offchain-helpers/ImplicitSwapfeeContract.sol/ImplicitSwapfeeContract.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/ImplicitSwapfeeContract.sol/ImplicitSwapfeeContract.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -36
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +237 -61
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +120 -41
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +2 -2
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +79 -24
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +49 -24
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +49 -24
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +15 -2
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +14 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +191 -2
- package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +35 -0
- package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +1 -1
- package/contracts/core/BulkSeller/BulkSeller.sol +250 -0
- package/contracts/core/BulkSeller/BulkSellerFactory.sol +89 -0
- package/contracts/core/BulkSeller/BulkSellerMathCore.sol +143 -0
- package/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/PendleConvexLPSY.sol +2 -4
- package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +107 -0
- package/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol +19 -4
- package/contracts/core/libraries/Errors.sol +17 -0
- package/contracts/interfaces/Curve/ICrvPool.sol +9 -27
- package/contracts/interfaces/IPActionAddRemoveLiq.sol +3 -5
- package/contracts/interfaces/IPActionMintRedeem.sol +2 -0
- package/contracts/interfaces/IPBulkSeller.sol +28 -0
- package/contracts/interfaces/IPBulkSellerFactory.sol +12 -0
- package/contracts/interfaces/IPBulkSellerSYCallback.sol +10 -0
- package/contracts/interfaces/IStETH.sol +6 -0
- package/contracts/offchain-helpers/BulkSellerOffchain.sol +43 -0
- package/contracts/offchain-helpers/MarketMathStatic.sol +0 -144
- package/contracts/offchain-helpers/RouterStatic.sol +167 -51
- package/contracts/router/ActionAddRemoveLiq.sol +60 -44
- package/contracts/router/ActionMintRedeem.sol +19 -15
- package/contracts/router/ActionSwapPT.sol +3 -3
- package/contracts/router/ActionSwapYT.sol +11 -4
- package/contracts/router/base/ActionBaseMintRedeem.sol +73 -74
- package/contracts/router/kyberswap/AggregationRouterHelper.sol +17 -1
- package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +10 -0
- package/contracts/router/kyberswap/KyberSwapHelper.sol +17 -8
- package/deployments/43113-core.json +3 -2
- package/deployments/43113-markets/benqi-market-QI-AVAX-FEB-2ND.json +9 -0
- package/deployments/80001-core.json +3 -2
- package/package.json +3 -2
- package/typechain-types/AccessControl.ts +360 -0
- package/typechain-types/ActionAddRemoveLiq.ts +83 -52
- package/typechain-types/ActionBaseMintRedeem.ts +27 -8
- package/typechain-types/ActionMintRedeem.ts +68 -17
- package/typechain-types/ActionSwapPT.ts +53 -12
- package/typechain-types/ActionSwapYT.ts +53 -12
- package/typechain-types/AggregationRouterHelper.ts +287 -3
- package/typechain-types/BaseSplitCodeFactoryContract.ts +9 -0
- package/typechain-types/BeaconProxy.ts +97 -0
- package/typechain-types/BoringOwnableUpgradeable.ts +9 -0
- package/typechain-types/BulkSeller.ts +776 -0
- package/typechain-types/BulkSellerFactory.ts +707 -0
- package/typechain-types/BulkSellerOffchain.ts +117 -0
- package/typechain-types/Curve3CrvPoolHelper.ts +236 -0
- package/typechain-types/CurveFraxUsdcPoolHelper.ts +158 -0
- package/typechain-types/CurveUsdd3CrvPoolHelper.ts +184 -0
- package/typechain-types/ERC165.ts +102 -0
- package/typechain-types/IAccessControl.ts +305 -0
- package/typechain-types/IAggregationRouterHelper.ts +108 -0
- package/typechain-types/ICrvPool.ts +66 -164
- package/typechain-types/IERC165.ts +102 -0
- package/typechain-types/IPActionAddRemoveLiq.ts +56 -44
- package/typechain-types/IPActionMintRedeem.ts +41 -9
- package/typechain-types/IPActionSwapPT.ts +26 -4
- package/typechain-types/IPActionSwapYT.ts +26 -4
- package/typechain-types/IPAllAction.ts +77 -55
- package/typechain-types/IPBulkSeller.ts +290 -0
- package/typechain-types/IPBulkSellerCallback.ts +115 -0
- package/typechain-types/IPBulkSellerFactory.ts +147 -0
- package/typechain-types/IStETH.ts +56 -0
- package/typechain-types/ITriCrvPool.ts +345 -0
- package/typechain-types/Initializable.ts +68 -0
- package/typechain-types/KyberSwapHelper.ts +8 -8
- package/typechain-types/MarketMathStatic.ts +0 -50
- package/typechain-types/PendleCurveFraxUsdcSY.ts +1228 -0
- package/typechain-types/PendleCurveUsdd3CrvSY.ts +1299 -0
- package/typechain-types/PendleFeeDistributor.ts +9 -0
- package/typechain-types/PendleFeeDistributorFactory.ts +9 -0
- package/typechain-types/PendleGaugeControllerBaseUpg.ts +9 -0
- package/typechain-types/PendleGaugeControllerMainchainUpg.ts +9 -0
- package/typechain-types/PendleGaugeControllerSidechainUpg.ts +9 -0
- package/typechain-types/PendleMarketFactory.ts +9 -0
- package/typechain-types/PendleMsgReceiveEndpointUpg.ts +9 -0
- package/typechain-types/PendleMsgSendEndpointUpg.ts +9 -0
- package/typechain-types/PendleMsgSenderAppUpg.ts +9 -0
- package/typechain-types/PendlePrincipalToken.ts +9 -0
- package/typechain-types/PendleRouter.ts +9 -0
- package/typechain-types/PendleVotingControllerUpg.ts +9 -0
- package/typechain-types/PendleYieldContractFactory.ts +9 -0
- package/typechain-types/ReentrancyGuardUpgradeable.ts +68 -0
- package/typechain-types/RouterStatic.ts +203 -22
- package/typechain-types/VotingEscrowPendleMainchain.ts +9 -0
- package/typechain-types/VotingEscrowPendleSidechain.ts +9 -0
- package/typechain-types/factories/AccessControl__factory.ts +227 -0
- package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +131 -59
- package/typechain-types/factories/ActionBaseMintRedeem__factory.ts +14 -1
- package/typechain-types/factories/ActionCallback__factory.ts +1 -1
- package/typechain-types/factories/ActionMintRedeem__factory.ts +90 -42
- package/typechain-types/factories/ActionMisc__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPT__factory.ts +60 -42
- package/typechain-types/factories/ActionSwapYT__factory.ts +60 -42
- package/typechain-types/factories/AggregationRouterHelper__factory.ts +190 -1
- package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +14 -1
- package/typechain-types/factories/BaseSplitCodeFactory__factory.ts +1 -1
- package/typechain-types/factories/BeaconProxy__factory.ts +141 -0
- package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
- package/typechain-types/factories/BoringOwnableUpgradeable__factory.ts +13 -0
- package/typechain-types/factories/BulkSellerFactory__factory.ts +584 -0
- package/typechain-types/factories/BulkSellerOffchain__factory.ts +120 -0
- package/typechain-types/factories/BulkSeller__factory.ts +745 -0
- package/typechain-types/factories/Curve3CrvPoolHelper__factory.ts +220 -0
- package/typechain-types/factories/CurveFraxUsdcPoolHelper__factory.ts +146 -0
- package/typechain-types/factories/CurveUsdd3CrvPoolHelper__factory.ts +172 -0
- package/typechain-types/factories/ERC165__factory.ts +39 -0
- package/typechain-types/factories/ERC20__factory.ts +1 -1
- package/typechain-types/factories/Errors__factory.ts +207 -1
- package/typechain-types/factories/IAccessControl__factory.ts +198 -0
- package/typechain-types/factories/IAggregationRouterHelper__factory.ts +54 -0
- package/typechain-types/factories/ICrvPool__factory.ts +30 -83
- package/typechain-types/factories/IERC165__factory.ts +42 -0
- package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +91 -17
- package/typechain-types/factories/IPActionMintRedeem__factory.ts +50 -0
- package/typechain-types/factories/IPActionSwapPT__factory.ts +20 -0
- package/typechain-types/factories/IPActionSwapYT__factory.ts +20 -0
- package/typechain-types/factories/IPAllAction__factory.ts +181 -17
- package/typechain-types/factories/IPBulkSellerCallback__factory.ts +53 -0
- package/typechain-types/factories/IPBulkSellerFactory__factory.ts +101 -0
- package/typechain-types/factories/IPBulkSeller__factory.ts +185 -0
- package/typechain-types/factories/IStETH__factory.ts +45 -0
- package/typechain-types/factories/ITriCrvPool__factory.ts +225 -0
- package/typechain-types/factories/ImplicitSwapfeeContract__factory.ts +1 -1
- package/typechain-types/factories/Initializable__factory.ts +36 -0
- package/typechain-types/factories/KyberSwapHelper__factory.ts +1 -1
- package/typechain-types/factories/MarketMathStatic__factory.ts +1 -35
- package/typechain-types/factories/OracleLib__factory.ts +1 -1
- package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1068 -0
- package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1168 -0
- package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
- package/typechain-types/factories/PendleERC20__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +14 -1
- package/typechain-types/factories/PendleFeeDistributor__factory.ts +14 -1
- package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +13 -0
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +14 -1
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +14 -1
- package/typechain-types/factories/PendleMarketFactory__factory.ts +14 -1
- package/typechain-types/factories/PendleMarket__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +14 -1
- package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +14 -1
- package/typechain-types/factories/PendleMsgSenderAppUpg__factory.ts +13 -0
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +14 -1
- package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
- package/typechain-types/factories/PendleRouter__factory.ts +14 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +14 -1
- package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +14 -1
- package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
- package/typechain-types/factories/ReentrancyGuardUpgradeable__factory.ts +43 -0
- package/typechain-types/factories/RouterStatic__factory.ts +182 -2
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +14 -1
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +14 -1
- package/typechain-types/hardhat.d.ts +139 -13
- package/typechain-types/index.ts +30 -4
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol/Pendle3CrvAndTokenSY.dbg.json +0 -4
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol/Pendle3CrvAndTokenSY.json +0 -1018
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.dbg.json +0 -4
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.json +0 -76
- package/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol +0 -167
- package/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol +0 -83
|
@@ -10,7 +10,12 @@ const _abi = [
|
|
|
10
10
|
inputs: [
|
|
11
11
|
{
|
|
12
12
|
internalType: "address",
|
|
13
|
-
name: "
|
|
13
|
+
name: "_kyberScalingLib",
|
|
14
|
+
type: "address",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
internalType: "address",
|
|
18
|
+
name: "_bulkSellerDirectory",
|
|
14
19
|
type: "address",
|
|
15
20
|
},
|
|
16
21
|
],
|
|
@@ -208,6 +213,11 @@ const _abi = [
|
|
|
208
213
|
name: "RouterInsufficientTokenOut",
|
|
209
214
|
type: "error",
|
|
210
215
|
},
|
|
216
|
+
{
|
|
217
|
+
inputs: [],
|
|
218
|
+
name: "RouterKyberSwapDataZero",
|
|
219
|
+
type: "error",
|
|
220
|
+
},
|
|
211
221
|
{
|
|
212
222
|
anonymous: false,
|
|
213
223
|
inputs: [
|
|
@@ -290,7 +300,20 @@ const _abi = [
|
|
|
290
300
|
},
|
|
291
301
|
{
|
|
292
302
|
inputs: [],
|
|
293
|
-
name: "
|
|
303
|
+
name: "bulkFactory",
|
|
304
|
+
outputs: [
|
|
305
|
+
{
|
|
306
|
+
internalType: "contract IPBulkSellerFactory",
|
|
307
|
+
name: "",
|
|
308
|
+
type: "address",
|
|
309
|
+
},
|
|
310
|
+
],
|
|
311
|
+
stateMutability: "view",
|
|
312
|
+
type: "function",
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
inputs: [],
|
|
316
|
+
name: "kyberScalingLib",
|
|
294
317
|
outputs: [
|
|
295
318
|
{
|
|
296
319
|
internalType: "address",
|
|
@@ -374,11 +397,21 @@ const _abi = [
|
|
|
374
397
|
name: "tokenRedeemSy",
|
|
375
398
|
type: "address",
|
|
376
399
|
},
|
|
400
|
+
{
|
|
401
|
+
internalType: "address",
|
|
402
|
+
name: "kyberRouter",
|
|
403
|
+
type: "address",
|
|
404
|
+
},
|
|
377
405
|
{
|
|
378
406
|
internalType: "bytes",
|
|
379
407
|
name: "kybercall",
|
|
380
408
|
type: "bytes",
|
|
381
409
|
},
|
|
410
|
+
{
|
|
411
|
+
internalType: "bool",
|
|
412
|
+
name: "useBulk",
|
|
413
|
+
type: "bool",
|
|
414
|
+
},
|
|
382
415
|
],
|
|
383
416
|
internalType: "struct TokenOutput",
|
|
384
417
|
name: "output",
|
|
@@ -538,11 +571,21 @@ const _abi = [
|
|
|
538
571
|
name: "tokenMintSy",
|
|
539
572
|
type: "address",
|
|
540
573
|
},
|
|
574
|
+
{
|
|
575
|
+
internalType: "address",
|
|
576
|
+
name: "kyberRouter",
|
|
577
|
+
type: "address",
|
|
578
|
+
},
|
|
541
579
|
{
|
|
542
580
|
internalType: "bytes",
|
|
543
581
|
name: "kybercall",
|
|
544
582
|
type: "bytes",
|
|
545
583
|
},
|
|
584
|
+
{
|
|
585
|
+
internalType: "bool",
|
|
586
|
+
name: "useBulk",
|
|
587
|
+
type: "bool",
|
|
588
|
+
},
|
|
546
589
|
],
|
|
547
590
|
internalType: "struct TokenInput",
|
|
548
591
|
name: "input",
|
|
@@ -678,68 +721,47 @@ const _abi = [
|
|
|
678
721
|
];
|
|
679
722
|
|
|
680
723
|
const _bytecode =
|
|
681
|
-
"0x60a06040523480156200001157600080fd5b506040516200386338038062003863833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516137c2620000a16000396000818160a101528181611274015261134101526137c26000f3fe6080604052600436106100605760003560e01c80630c56fc7a146100655780631ef6f3271461008f5780632032aecd146100d05780636b8bdf32146100f05780637027acd01461011057806383c71b6914610130578063dd371acd14610150575b600080fd5b610078610073366004612fb1565b610170565b604051610086929190613030565b60405180910390f35b34801561009b57600080fd5b506100c37f000000000000000000000000000000000000000000000000000000000000000081565b604051610086919061303e565b3480156100dc57600080fd5b506100786100eb366004613052565b610275565b3480156100fc57600080fd5b5061007861010b366004613052565b6103f8565b34801561011c57600080fd5b5061007861012b366004613098565b6105fb565b34801561013c57600080fd5b5061007861014b366004613103565b61076d565b34801561015c57600080fd5b5061007861016b366004613103565b610857565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d89190613160565b925050915060006101ec8984600189610a82565b90506101fc8a8a84848c8c610c3b565b909550935061020e60208701876131ad565b6001600160a01b0316896001600160a01b0316336001600160a01b031660008051602061374d8339815191528d6102448a610d8d565b6102518c60200135610da7565b604051610260939291906131ca565b60405180910390a45050509550959350505050565b6000806000856001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102dc9190613160565b5091506102f690506001600160a01b038216338888610dc4565b604080516000815260208101918290526329910b1160e01b9091526001600160a01b038716906329910b1190610333908a9089906024810161323b565b60408051808303816000875af1158015610351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103759190613262565b9093509150838310156103a85782846040516305221cf360e11b815260040161039f929190613030565b60405180910390fd5b6001600160a01b038088169087163360008051602061376d8339815191526103cf89610da7565b6103d888610d8d565b6040516103e6929190613030565b60405180910390a45094509492505050565b6000806000856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561043c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046091906132d0565b9050600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c79190613160565b92505091506104ea6104e1826001600160a01b0316610e35565b84908942610e9b565b5094508585111561051257848660405163039d13e760e61b815260040161039f929190613030565b6105276001600160a01b038316338a88610dc4565b60408051600081526020810191829052635b709f1760e01b9091526001600160a01b03891690635b709f1790610564908c908b906024810161323b565b60408051808303816000875af1158015610582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a69190613262565b9450506001600160a01b03808a169089163360008051602061376d8339815191526105d08b610d8d565b6105d98a610da7565b6040516105e7929190613030565b60405180910390a450505094509492505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561063f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106639190613160565b50909250905061067e6001600160a01b038216338989610dc4565b60408051600080825260208201928390526329910b1160e01b9092526001600160a01b038916906329910b11906106bc9086908b906024810161323b565b60408051808303816000875af11580156106da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fe9190613262565b94509050610710898483896000610ee2565b945061071f60208701876131ad565b6001600160a01b0316886001600160a01b0316336001600160a01b031660008051602061374d8339815191528c6107558c610da7565b61075e8b610d8d565b6040516105e7939291906131ca565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190613160565b9193509091506107f290506001600160a01b038316338a8a610dc4565b6108008989838a8a8a610c3b565b90945092506001600160a01b03808a169089163360008051602061376d83398151915261082c88610d8d565b6108358c610da7565b604051610843929190613030565b60405180910390a450509550959350505050565b6000806000866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf91906132d0565b9050600080886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109269190613160565b925092505061095b610940826001600160a01b0316610e35565b8942610951368b90038b018b613352565b87939291906110d2565b509095505086851115610985578487604051633c0e098d60e11b815260040161039f929190613030565b61099a6001600160a01b038316338b88610dc4565b60408051600080825260208201928390526329910b1160e01b9092526001600160a01b038b16906329910b11906109d8908e908a906024810161323b565b60408051808303816000875af11580156109f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1a9190613262565b9550905088811015610a2e57610a2e6133c1565b6001600160a01b03808c16908b163360008051602061376d833981519152610a558a610da7565b610a5e8e610d8d565b604051610a6c929190613030565b60405180910390a4505050509550959350505050565b6000610a9f610a9460208401846131ad565b338460200135611202565b610aaf60608301604084016131ad565b6001600160a01b0316610ac560208401846131ad565b6001600160a01b031614610b2f57610b2f610ae360208401846131ad565b6020840135610af560608601866133d7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061126e92505050565b610b48610b4260608401604085016131ad565b8561136f565b6000610b62610b5d60608501604086016131ad565b611427565b9050600080610b7760608601604087016131ad565b6001600160a01b031614610b8c576000610b8e565b815b90506001600160a01b0386166320e8c5658289610bb16060890160408a016131ad565b6040516001600160e01b031960e086901b1681526001600160a01b03928316600482015291166024820152604481018690526064810189905260840160206040518083038185885af1158015610c0b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c309190613424565b979650505050505050565b6000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610c7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca391906132d0565b9050610cd5610cba886001600160a01b0316610e35565b8742610ccb36899003890189613352565b85939291906114b1565b50925084831015610cfd578285604051634e6ffe4760e11b815260040161039f929190613030565b60408051600081526020810191829052635b709f1760e01b9091526001600160a01b03891690635b709f1790610d3a908c9087906024810161323b565b60408051808303816000875af1158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c9190613262565b939a93995092975050505050505050565b60006001600160ff1b03821115610da357600080fd5b5090565b6000610db282610d8d565b610dbe90600019613453565b92915050565b6040516001600160a01b0380851660248301528316604482015260648101829052610e2f9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526115b4565b50505050565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610e77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe9190613424565b600080600080610eb58888610eaf89610d8d565b88611686565b91509150610eca610ec583611714565b611722565b9350610ed581611722565b9250505094509492505050565b60008115610eff57610eff6001600160a01b038616338787610dc4565b610f0c60208401846131ad565b6001600160a01b0316610f2560608501604086016131ad565b6001600160a01b031603610fc5576001600160a01b03851663769f8e5d8786610f5460608801604089016131ad565b876020013560016040518663ffffffff1660e01b8152600401610f7b959493929190613483565b6020604051808303816000875af1158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190613424565b90506110c9565b60006001600160a01b03861663769f8e5d3087610fe86060890160408a016131ad565b6001806040518663ffffffff1660e01b815260040161100b959493929190613483565b6020604051808303816000875af115801561102a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104e9190613424565b905061107161106360608601604087016131ad565b82610af560608801886133d7565b611081610b5d60208601866131ad565b915083602001358210156110b05781846020013560405163c5b5576d60e01b815260040161039f929190613030565b6110c76110c060208601866131ad565b8884611731565b505b95945050505050565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816111068a8a896117f5565b9050600061112287600061111d85602001516118ef565b611906565b905060005b81606001518110156111dd5760008061114a8486886000015160000151866119df565b915091508161115e576020840152506111cd565b6000806111758860000151888a6020015186611a4a565b91509150876040015182106111c4578286602001818152505060006111a3838a604001518960800151611a74565b905080156111be5750919950975095506111f7945050505050565b506111c8565b8286525b505050505b6111d6816134b7565b9050611127565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b6001600160a01b0383166112535780341461124e5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b604482015260640161039f565b505050565b801561124e5761124e6001600160a01b038416833084610dc4565b611298837f000000000000000000000000000000000000000000000000000000000000000061136f565b60405163726d379760e11b815260009073__$802f57dc5d2627d21bbb7805eff3c348c4$__9063e4da6f2e906112d490859087906004016134d0565b600060405180830381865af41580156112f1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261131991908101906134f2565b9050611368816001600160a01b03861615611335576000611337565b845b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611aaa565b5050505050565b6001600160a01b038216611381575050565b61139360026001600160601b036135a9565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156113ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114109190613424565b1015611423576114238282600019611ad0565b5050565b60006001600160a01b038216156114aa576040516370a0823160e01b81526001600160a01b038316906370a082319061146490309060040161303e565b602060405180830381865afa158015611481573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a59190613424565b610dbe565b4792915050565b6040805160808101825286815260208101869052908101849052606081018390526000908190816114e38989886117f5565b905060006115048660006114ff85876000015160000151611bdd565b611c7a565b905060005b81606001518110156111dd5760006115218383611cac565b905060008061153a876000015187896020015186611d18565b9150915086604001518211611585578285526040870151608086015160009161156591859190611d39565b9050801561157f57509197509095506115aa945050505050565b50611596565b6115906001846135cf565b60208601525b505050806115a3906134b7565b9050611509565b9550959350505050565b6000611609826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d679092919063ffffffff16565b80519091501561124e578080602001905181019061162791906135e2565b61124e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161039f565b6000806116978660c0015184101590565b156116b55760405163b2094b5960e01b815260040160405180910390fd5b855184126116db578551604051632185509b60e21b815261039f91908690600401613030565b60006116e88787866117f5565b90506116f687828888611d76565b909350915061170a8782888887878a611ebc565b5094509492505050565b6000610dbe82600019613453565b600080821215610da357600080fd5b8060000361173e57505050565b6001600160a01b0383166117e1576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611799576040519150601f19603f3d011682016040523d82523d6000602084013e61179e565b606091505b5050905080610e2f5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b604482015260640161039f565b61124e6001600160a01b0384168383611f4e565b6118206040518060800160405280600081526020016000815260200160008152602001600081525090565b60c084015182106118445760405163b2094b5960e01b815260040160405180910390fd5b6000828560c0015161185691906135cf565b90506118628582611f6d565b82526020850151611874908590611fce565b60208301528451158061188957506020820151155b156118b0578451602083015160405163b1c4aefb60e01b815261039f929190600401613030565b6118ce8560000151866101000151846020015185600001518561200d565b604083015260a08501516118e2908261208e565b6060830152509392505050565b600060016118fc83611722565b610dbe91906135cf565b61193f6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b835161194b90846120c2565b8152602084015161195c90836120d8565b602082018190528151118061197c5750670de0b6b3a76400008460800151115b156119b757835160208501516080860151604051632cc06bc160e21b815260048101939093526024830191909152604482015260640161039f565b6040808501519082015260608085015190820152608093840151938101939093525090919050565b60008060006119ee8785611cac565b90508660a001518111611a0657600192509050611a41565b6000611a1b8787611a1685610d8d565b6120e7565b90506000811215611a325750600092509050611a41565b5060a087018190526001925090505b94509492505050565b600080600080611a678787611a5e88610da7565b8b929190611d76565b91509150610eca82611722565b6000828410158015611aa05750611a9c83611a9784670de0b6b3a7640000613604565b6121d9565b8411155b90505b9392505050565b6060611aa0848484604051806060016040528060298152602001613724602991396121f9565b600080846001600160a01b031663095ea7b360e01b8585604051602401611af8929190613617565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611b369190613630565b6000604051808303816000865af19150503d8060008114611b73576040519150601f19603f3d011682016040523d82523d6000602084013e611b78565b606091505b5091509150818015611ba2575080511580611ba2575080806020019051810190611ba291906135e2565b6113685760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161039f565b600080611c0a611c05856000015186604001518760600151611bff919061364c565b9061231f565b612342565b90506000611c2a611c23670de0b6b3a764000084613673565b8390612757565b90506000611c48866020015186611c419190613673565b839061231f565b90506000611c56828761364c565b90506103e8611c6482611722565b611c70906103e761369b565b610c3091906136b2565b61193f6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081158015611cbf5750604083015115155b15611ccf57506040820151610dbe565b6020830151835111611cff5760208301518351600291611cee91613604565b611cf891906136b2565b9050610dbe565b604051637d388ed960e11b815260040160405180910390fd5b600080600080611d2c8787611a5e88610d8d565b91509150610eca8261277d565b6000828411158015611aa05750611d5c83611a9784670de0b6b3a76400006135cf565b909310159392505050565b6060611aa084846000856121f9565b6000806000611d9887600001518760200151886000015189604001518861278f565b90506000611dae611da98684612757565b611714565b60608801519091506000861315611e1d576000611dcb8483612757565b9050670de0b6b3a7640000811215611df95760405163329e322960e21b81526004810182905260240161039f565b611e15611e0e83670de0b6b3a764000061364c565b849061231f565b915050611e4a565b611e4781611e3381670de0b6b3a764000061364c565b611e3d9085613453565b611da991906136c6565b90505b60006064611e5b8b60e00151610d8d565b611e659084613453565b611e6f91906136c6565b90506000611e7d838561364c565b905060008112611e9657611e918982612840565b611ea0565b611ea0898261286d565b9650611eac8983612840565b9550505050505094509492505050565b6000818860c00151611ece91906135cf565b8851909150611edd908661289a565b8852611ef7611eec8486613673565b60208a01519061289a565b602089018190528851611f1c91611f0f908990611fce565b895160408b0151856128e1565b6101008901819052600003611f4457604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b61124e8363a9059cbb60e01b8484604051602401610df8929190613617565b6000611f7882610d8d565b611f8f611f8a6201518061016d61369b565b610d8d565b8460800151611f9e9190613453565b611fa891906136c6565b905060008113610dbe57604051630e520c3b60e11b81526004810182905260240161039f565b60008060008312611fe0576001611fe4565b6000195b9050611ffb611f8a85611ff68661277d565b612934565b6120059082613453565b949350505050565b60008061201a868461208e565b9050670de0b6b3a76400008112156120485760405163329e322960e21b81526004810182905260240161039f565b600061205e612057878a613673565b8990612757565b9050600061206b82612953565b90506120778187612757565b612081908461364c565b9998505050505050505050565b6000806120a06201518061016d61369b565b6120aa848661369b565b6120b491906136b2565b9050612005611c0582610d8d565b60008183116120d15781611aa3565b5090919050565b60008183106120d15781611aa3565b6000808285602001516120fa919061364c565b905060006121088585613673565b905060008213801561211a5750600081135b61215b5760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b604482015260640161039f565b600061218961216a8484613453565b60208901516121799089613673565b6121839088613453565b90612757565b9050600061219f61219a8486612757565b6129a2565b88519091506000906121ba90670de0b6b3a764000090612757565b90506121ca81611bff848661364c565b8960400151612081919061364c565b6000806121e6838561369b565b670de0b6b3a76400009004949350505050565b60608247101561225a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161039f565b6001600160a01b0385163b6122b15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161039f565b600080866001600160a01b031685876040516122cd9190613630565b60006040518083038185875af1925050503d806000811461230a576040519150601f19603f3d011682016040523d82523d6000602084013e61230f565b606091505b5091509150610c30828286612a33565b60008061232c8385613453565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff198212158015612367575068070c1cc73b00c800008213155b6123a65760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161039f565b60008212156123de576123bb82600003612342565b6a0c097ce7bc90715b34b9f160241b816123d7576123d7613593565b0592915050565b60006806f05b59d3b2000000831261241c57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b612452565b6803782dace9d9000000831261244e57506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380612452565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126124a25768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126124de576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261251857682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412612552576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261258b57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126125c45768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126125fd576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126126365768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60008061276c670de0b6b3a764000085613453565b905082818161233957612339613593565b6000808213610da3576114a5826136f4565b60008061279c878461289a565b905060006127ad611c23888a613673565b9050670d529ae9e86000008113156127e45780670d529ae9e8600000604051637e34684f60e11b815260040161039f929190613030565b60006127ef82612953565b9050856127fc8289612757565b6128069190613673565b9350670de0b6b3a76400008412156128345760405163329e322960e21b81526004810185905260240161039f565b50505095945050505050565b60008060008312612852576001612856565b6000195b9050611ffb611f8a856128688661277d565b612a6c565b6000806000831261287f576001612883565b6000195b9050611ffb611f8a856128958661277d565b612a81565b6000818312156128d75760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b604482015260640161039f565b611aa3828461364c565b6000806128f287878787600061278f565b90506000612902610ec5836129a2565b9050836129146201518061016d61369b565b61291e908361369b565b61292891906136b2565b98975050505050505050565b6000670de0b6b3a7640000612949848461369b565b611aa391906136b2565b6000670de0b6b3a7640000820361297d5760405163a9c8b14d60e01b815260040160405180910390fd5b600061299b61299484670de0b6b3a764000061364c565b8490612757565b9050611aa3815b60008082136129e35760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b604482015260640161039f565b670c7d713b49da000082138015612a015750670f43fc2c04ee000082125b15612a2557670de0b6b3a7640000612a1883612aad565b816123d7576123d7613593565b610dbe82612bcc565b919050565b60608315612a42575081611aa3565b825115612a525782518084602001fd5b8160405162461bcd60e51b815260040161039f9190613710565b600082612949670de0b6b3a76400008461369b565b600082600181612a99670de0b6b3a76400008661369b565b612aa39190613604565b61294991906135cf565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281612aee57612aee613593565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215612c0d57612c04826a0c097ce7bc90715b34b9f160241b81612bfe57612bfe613593565b05612bcc565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312612c585772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312612c8f576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612cd7576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612d12576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312612d4957693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312612d8057690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312612db55768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312612de057680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612e15576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612e4a576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312612e7e576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312612eb2576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281612edb57612edb613593565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b0381168114612f8457600080fd5b50565b600060a08284031215612f9957600080fd5b50919050565b600060808284031215612f9957600080fd5b60008060008060006101208688031215612fca57600080fd5b8535612fd581612f6f565b94506020860135612fe581612f6f565b935060408601359250612ffb8760608801612f87565b91506101008601356001600160401b0381111561301757600080fd5b61302388828901612f9f565b9150509295509295909350565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6000806000806080858703121561306857600080fd5b843561307381612f6f565b9350602085013561308381612f6f565b93969395505050506040820135916060013590565b600080600080608085870312156130ae57600080fd5b84356130b981612f6f565b935060208501356130c981612f6f565b92506040850135915060608501356001600160401b038111156130eb57600080fd5b6130f787828801612f9f565b91505092959194509250565b6000806000806000610120868803121561311c57600080fd5b853561312781612f6f565b9450602086013561313781612f6f565b935060408601359250606086013591506131548760808801612f87565b90509295509295909350565b60008060006060848603121561317557600080fd5b835161318081612f6f565b602085015190935061319181612f6f565b60408501519092506131a281612f6f565b809150509250925092565b6000602082840312156131bf57600080fd5b8135611aa381612f6f565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b838110156132065781810151838201526020016131ee565b50506000910152565b600081518084526132278160208601602086016131eb565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006110c9606083018461320f565b6000806040838503121561327557600080fd5b505080516020909101519092909150565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156132bf576132bf613286565b60405290565b8051612a2e81612f6f565b600061012082840312156132e357600080fd5b6132eb61329c565b82518152602083015160208201526040830151604082015261330f606084016132c5565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060a0828403121561336457600080fd5b60405160a081016001600160401b038111828210171561338657613386613286565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b634e487b7160e01b600052600160045260246000fd5b6000808335601e198436030181126133ee57600080fd5b8301803591506001600160401b0382111561340857600080fd5b60200191503681900382131561341d57600080fd5b9250929050565b60006020828403121561343657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820260008212600160ff1b8414161561346f5761346f61343d565b8181058314821517610dbe57610dbe61343d565b6001600160a01b03958616815260208101949094529190931660408301526060820192909252901515608082015260a00190565b6000600182016134c9576134c961343d565b5060010190565b6040815260006134e3604083018561320f565b90508260208301529392505050565b60006020828403121561350457600080fd5b81516001600160401b038082111561351b57600080fd5b818401915084601f83011261352f57600080fd5b81518181111561354157613541613286565b604051601f8201601f19908116603f0116810190838211818310171561356957613569613286565b8160405282815287602084870101111561358257600080fd5b610c308360208301602088016131eb565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b03838116806135c3576135c3613593565b92169190910492915050565b81810381811115610dbe57610dbe61343d565b6000602082840312156135f457600080fd5b81518015158114611aa357600080fd5b80820180821115610dbe57610dbe61343d565b6001600160a01b03929092168252602082015260400190565b600082516136428184602087016131eb565b9190910192915050565b818103600083128015838313168383128216171561366c5761366c61343d565b5092915050565b80820182811260008312801582168215821617156136935761369361343d565b505092915050565b8082028115828204841417610dbe57610dbe61343d565b6000826136c1576136c1613593565b500490565b6000826136d5576136d5613593565b600160ff1b8214600019841416156136ef576136ef61343d565b500590565b6000600160ff1b82016137095761370961343d565b5060000390565b602081526000611aa3602083018461320f56fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c656478e08a1e3c7a72f78d2c8ad8254052914bad73f8c681dbdc4267d0bb8ac9423c3f5e2944826baeaed8eb77f0f74e6088a154a0fc1317f062fd984585607b4739a2646970667358221220ecd0b381cb58b1ee2f3b34471c28631826389da5b870b19973efb339fe5cbdc464736f6c63430008110033";
|
|
724
|
+
"0x60c06040523480156200001157600080fd5b5060405162003d1138038062003d11833981016040819052620000349162000069565b6001600160a01b039182166080521660a052620000a1565b80516001600160a01b03811681146200006457600080fd5b919050565b600080604083850312156200007d57600080fd5b62000088836200004c565b915062000098602084016200004c565b90509250929050565b60805160a051613c2f620000e260003960008181608201528181610c8801528181611025015261111d01526000818161018d01526116910152613c2f6000f3fe60806040526004361061006b5760003560e01c80631bd76e40146100705780632032aecd146100ba57806350d19b77146100e85780635eeec16e146100fb5780636b8bdf321461011b57806383c71b691461013b578063dd371acd1461015b578063f95308001461017b575b600080fd5b34801561007c57600080fd5b506100a47f000000000000000000000000000000000000000000000000000000000000000081565b6040516100b19190613269565b60405180910390f35b3480156100c657600080fd5b506100da6100d5366004613295565b6101af565b6040516100b19291906132db565b6100da6100f6366004613313565b610332565b34801561010757600080fd5b506100da610116366004613392565b610437565b34801561012757600080fd5b506100da610136366004613295565b6105dc565b34801561014757600080fd5b506100da6101563660046133fd565b6107cb565b34801561016757600080fd5b506100da6101763660046133fd565b6108b5565b34801561018757600080fd5b506100a47f000000000000000000000000000000000000000000000000000000000000000081565b6000806000856001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156101f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610216919061345a565b50915061023090506001600160a01b038216338888610ae0565b604080516000815260208101918290526329910b1160e01b9091526001600160a01b038716906329910b119061026d908a908990602481016134f7565b60408051808303816000875af115801561028b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102af9190613527565b9093509150838310156102e25782846040516305221cf360e11b81526004016102d99291906132db565b60405180910390fd5b6001600160a01b0380881690871633600080516020613bda83398151915261030989610b51565b61031288610b6e565b6040516103209291906132db565b60405180910390a45094509492505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610376573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039a919061345a565b925050915060006103ae8984600189610b88565b90506103be8a8a84848c8c610ea6565b90955093506103d0602087018761354b565b6001600160a01b0316896001600160a01b0316336001600160a01b0316600080516020613bba8339815191528d6104068a610b6e565b6104138c60200135610b51565b60405161042293929190613568565b60405180910390a45050509550959350505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561047b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049f919061345a565b5090925090506104ba6001600160a01b038216338989610ae0565b60006001600160a01b0388166329910b116104dd856104d88a61368e565b610ff8565b604080516000815260208101918290526001600160e01b031960e085901b1690915261050f91908b90602481016134f7565b60408051808303816000875af115801561052d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105519190613527565b9450905061056b8984836105648a61368e565b60006110a3565b945061057a602087018761354b565b6001600160a01b0316886001600160a01b0316336001600160a01b0316600080516020613bba8339815191528c6105b08c610b51565b6105b98b610b6e565b6040516105c893929190613568565b60405180910390a450505094509492505050565b6000806000856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106449190613756565b9050600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610687573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ab919061345a565b92505091506106ce6106c5826001600160a01b031661131f565b84908942611385565b509450858511156106f657848660405163039d13e760e61b81526004016102d99291906132db565b61070b6001600160a01b038316338a88610ae0565b60408051600081526020810191829052635b709f1760e01b9091526001600160a01b03891690635b709f1790610748908c908b90602481016134f7565b60408051808303816000875af1158015610766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078a9190613527565b9450506001600160a01b03808a1690891633600080516020613bda8339815191526107b48b610b6e565b6107bd8a610b51565b6040516105c89291906132db565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561080f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610833919061345a565b91935090915061085090506001600160a01b038316338a8a610ae0565b61085e8989838a8a8a610ea6565b90945092506001600160a01b03808a1690891633600080516020613bda83398151915261088a88610b6e565b6108938c610b51565b6040516108a19291906132db565b60405180910390a450509550959350505050565b6000806000866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156108f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091d9190613756565b9050600080886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610960573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610984919061345a565b92509250506109b961099e826001600160a01b031661131f565b89426109af368b90038b018b6137d8565b87939291906113cc565b5090955050868511156109e3578487604051633c0e098d60e11b81526004016102d99291906132db565b6109f86001600160a01b038316338b88610ae0565b60408051600080825260208201928390526329910b1160e01b9092526001600160a01b038b16906329910b1190610a36908e908a90602481016134f7565b60408051808303816000875af1158015610a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a789190613527565b9550905088811015610a8c57610a8c613847565b6001600160a01b03808c16908b1633600080516020613bda833981519152610ab38a610b51565b610abc8e610b6e565b604051610aca9291906132db565b60405180910390a4505050509550959350505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610b4b9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526114fc565b50505050565b6000610b5c82610b6e565b610b6890600019613873565b92915050565b60006001600160ff1b03821115610b8457600080fd5b5090565b6000610ba5610b9a602084018461354b565b3384602001356115d3565b6000610bb7606084016040850161354b565b6001600160a01b0316610bcd602085018561354b565b6001600160a01b03161480159150610c4b57610c4b610bef602085018561354b565b6020850135610c04608087016060880161354b565b610c1160808801886138a3565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061163a92505050565b6000610c65610c60606086016040870161354b565b611744565b9050610c7760c0850160a086016138f0565b15610db35760006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663d81e8423610cbd606088016040890161354b565b896040518363ffffffff1660e01b8152600401610cdb92919061390d565b602060405180830381865afa158015610cf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1c9190613927565b9050610d38610d31606087016040880161354b565b82846117ce565b604051630b27670760e41b81526001600160a01b0382169063b276707090610d68908b9086908b90600401613568565b6020604051808303816000875af1158015610d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dab9190613944565b935050610e9c565b600080610dc6606087016040880161354b565b6001600160a01b031614610ddb576000610ddd565b815b9050610df8610df2606087016040880161354b565b88611892565b6001600160a01b0387166320e8c565828a610e1960608a0160408b0161354b565b6040516001600160e01b031960e086901b1681526001600160a01b0392831660048201529116602482015260448101869052606481018a905260840160206040518083038185885af1158015610e73573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e989190613944565b9350505b5050949350505050565b6000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e9190613756565b9050610f40610f25886001600160a01b031661131f565b8742610f36368990038901896137d8565b8593929190611945565b50925084831015610f68578285604051634e6ffe4760e11b81526004016102d99291906132db565b60408051600081526020810191829052635b709f1760e01b9091526001600160a01b03891690635b709f1790610fa5908c908790602481016134f7565b60408051808303816000875af1158015610fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe79190613527565b939a93995092975050505050505050565b60008160a00151611009578261109c565b604080830151905163d81e842360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163d81e84239161105b9190879060040161390d565b602060405180830381865afa158015611078573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109c9190613927565b9392505050565b600081156110cb576110cb336110b98786610ff8565b6001600160a01b038816919087610ae0565b825160408401516001600160a01b03908116911614156000816110ee57876110f0565b305b905060008560a001511561121257604080870151905163d81e842360e01b81526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163d81e842391611152918d9060040161390d565b602060405180830381865afa15801561116f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111939190613927565b60405163bd5688d560e01b81529091506001600160a01b0382169063bd5688d5906111c79086908c90600090600401613568565b6020604051808303816000875af11580156111e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120a9190613944565b9150506112a4565b604086810151905163769f8e5d60e01b81526001600160a01b038481166004830152602482018a9052918216604482015260006064820152600160848201529089169063769f8e5d9060a4016020604051808303816000875af115801561127d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a19190613944565b90505b82156112e3576112c28660400151828860600151896080015161163a565b85516112cd90611744565b93506112de86600001518a866117ce565b6112e7565b8093505b856020015184101561131357602086015160405163c5b5576d60e01b81526102d99186916004016132db565b50505095945050505050565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611361573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b689190613944565b60008060008061139f888861139989610b6e565b88611a48565b915091506113b46113af83611ad6565b611ae4565b93506113bf81611ae4565b9250505094509492505050565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816114008a8a89611af3565b9050600061141c8760006114178560200151611bed565b611c04565b905060005b81606001518110156114d757600080611444848688600001516000015186611cdd565b9150915081611458576020840152506114c7565b60008061146f8860000151888a6020015186611d48565b91509150876040015182106114be5782866020018181525050600061149d838a604001518960800151611d72565b905080156114b85750919950975095506114f1945050505050565b506114c2565b8286525b505050505b6114d08161395d565b9050611421565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b6000611551826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611da69092919063ffffffff16565b8051909150156115ce578080602001905181019061156f9190613976565b6115ce5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102d9565b505050565b6001600160a01b03831661161f578034146115ce5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016102d9565b80156115ce576115ce6001600160a01b038416833084610ae0565b6001600160a01b038216158061164f57508051155b1561166d57604051631e59c84360e01b815260040160405180910390fd5b6116778483611892565b60405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906116c89085908890600401613993565b600060405180830381865afa1580156116e5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261170d91908101906139b5565b905061173c816001600160a01b0387161561172957600061172b565b855b6001600160a01b0386169190611db5565b505050505050565b60006001600160a01b038216156117c7576040516370a0823160e01b81526001600160a01b038316906370a0823190611781903090600401613269565b602060405180830381865afa15801561179e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c29190613944565b610b68565b4792915050565b806000036117db57505050565b6001600160a01b03831661187e576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611836576040519150601f19603f3d011682016040523d82523d6000602084013e61183b565b606091505b5050905080610b4b5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b60448201526064016102d9565b6115ce6001600160a01b0384168383611ddb565b6001600160a01b0382166118a4575050565b6118b660026001600160601b03613a38565b6001600160601b0316826001600160a01b031663dd62ed3e30846040518363ffffffff1660e01b81526004016118ed92919061390d565b602060405180830381865afa15801561190a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192e9190613944565b1015611941576119418282600019611dfa565b5050565b604080516080810182528681526020810186905290810184905260608101839052600090819081611977898988611af3565b9050600061199886600061199385876000015160000151611f0e565b611fb6565b905060005b81606001518110156114d75760006119b58383611fe8565b90506000806119ce876000015187896020015186612054565b9150915086604001518211611a1957828552604087015160808601516000916119f991859190612075565b90508015611a135750919750909550611a3e945050505050565b50611a2a565b611a24600184613a5e565b60208601525b50505080611a379061395d565b905061199d565b9550959350505050565b600080611a598660c0015184101590565b15611a775760405163b2094b5960e01b815260040160405180910390fd5b85518412611a9d578551604051632185509b60e21b81526102d9919086906004016132db565b6000611aaa878786611af3565b9050611ab8878288886120a3565b9093509150611acc8782888887878a6121e9565b5094509492505050565b6000610b6882600019613873565b600080821215610b8457600080fd5b611b1e6040518060800160405280600081526020016000815260200160008152602001600081525090565b60c08401518210611b425760405163b2094b5960e01b815260040160405180910390fd5b6000828560c00151611b549190613a5e565b9050611b60858261227b565b82526020850151611b729085906122dc565b602083015284511580611b8757506020820151155b15611bae578451602083015160405163b1c4aefb60e01b81526102d99291906004016132db565b611bcc85600001518661010001518460200151856000015185612313565b604083015260a0850151611be09082612394565b6060830152509392505050565b60006001611bfa83611ae4565b610b689190613a5e565b611c3d6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8351611c4990846123c8565b81526020840151611c5a90836123de565b6020820181905281511180611c7a5750670de0b6b3a76400008460800151115b15611cb557835160208501516080860151604051632cc06bc160e21b81526004810193909352602483019190915260448201526064016102d9565b6040808501519082015260608085015190820152608093840151938101939093525090919050565b6000806000611cec8785611fe8565b90508660a001518111611d0457600192509050611d3f565b6000611d198787611d1485610b6e565b6123ed565b90506000811215611d305750600092509050611d3f565b5060a087018190526001925090505b94509492505050565b600080600080611d658787611d5c88610b51565b8b9291906120a3565b915091506113b482611ae4565b6000828410158015611d9e5750611d9a83611d9584670de0b6b3a7640000613a71565b6124df565b8411155b949350505050565b6060611d9e84846000856124ff565b6060611d9e848484604051806060016040528060298152602001613b91602991396124ff565b6115ce8363a9059cbb60e01b8484604051602401610b14929190613a84565b600080846001600160a01b031663095ea7b360e01b8585604051602401611e22929190613a84565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611e609190613a9d565b6000604051808303816000865af19150503d8060008114611e9d576040519150601f19603f3d011682016040523d82523d6000602084013e611ea2565b606091505b5091509150818015611ecc575080511580611ecc575080806020019051810190611ecc9190613976565b611f075760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016102d9565b5050505050565b600080611f3b611f36856000015186604001518760600151611f309190613ab9565b90612625565b612648565b90506000611f5b611f54670de0b6b3a764000084613ae0565b8390612a5d565b90506000611f79866020015186611f729190613ae0565b8390612625565b90506000611f878287613ab9565b90506103e8611f9582611ae4565b611fa1906103e7613b08565b611fab9190613b1f565b979650505050505050565b611c3d6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081158015611ffb5750604083015115155b1561200b57506040820151610b68565b602083015183511161203b576020830151835160029161202a91613a71565b6120349190613b1f565b9050610b68565b604051637d388ed960e11b815260040160405180910390fd5b6000806000806120688787611d5c88610b6e565b915091506113b482612a83565b6000828411158015611d9e575061209883611d9584670de0b6b3a7640000613a5e565b909310159392505050565b60008060006120c5876000015187602001518860000151896040015188612a95565b905060006120db6120d68684612a5d565b611ad6565b6060880151909150600086131561214a5760006120f88483612a5d565b9050670de0b6b3a76400008112156121265760405163329e322960e21b8152600481018290526024016102d9565b61214261213b83670de0b6b3a7640000613ab9565b8490612625565b915050612177565b6121748161216081670de0b6b3a7640000613ab9565b61216a9085613873565b6120d69190613b33565b90505b600060646121888b60e00151610b6e565b6121929084613873565b61219c9190613b33565b905060006121aa8385613ab9565b9050600081126121c3576121be8982612b3a565b6121cd565b6121cd8982612b67565b96506121d98983612b3a565b9550505050505094509492505050565b6000818860c001516121fb9190613a5e565b885190915061220a9086612b94565b88526122246122198486613ae0565b60208a015190612b94565b6020890181905288516122499161223c9089906122dc565b895160408b015185612bdb565b610100890181905260000361227157604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b600061228682610b6e565b61229d6122986201518061016d613b08565b610b6e565b84608001516122ac9190613873565b6122b69190613b33565b905060008113610b6857604051630e520c3b60e11b8152600481018290526024016102d9565b600080600083126122ee5760016122f2565b6000195b90506123096122988561230486612a83565b612c2e565b611d9e9082613873565b6000806123208684612394565b9050670de0b6b3a764000081121561234e5760405163329e322960e21b8152600481018290526024016102d9565b600061236461235d878a613ae0565b8990612a5d565b9050600061237182612c4d565b905061237d8187612a5d565b6123879084613ab9565b9998505050505050505050565b6000806123a66201518061016d613b08565b6123b08486613b08565b6123ba9190613b1f565b9050611d9e611f3682610b6e565b60008183116123d7578161109c565b5090919050565b60008183106123d7578161109c565b6000808285602001516124009190613ab9565b9050600061240e8585613ae0565b90506000821380156124205750600081135b6124615760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b60448201526064016102d9565b600061248f6124708484613873565b602089015161247f9089613ae0565b6124899088613873565b90612a5d565b905060006124a56124a08486612a5d565b612c9c565b88519091506000906124c090670de0b6b3a764000090612a5d565b90506124d081611f308486613ab9565b89604001516123879190613ab9565b6000806124ec8385613b08565b670de0b6b3a76400009004949350505050565b6060824710156125605760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102d9565b6001600160a01b0385163b6125b75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102d9565b600080866001600160a01b031685876040516125d39190613a9d565b60006040518083038185875af1925050503d8060008114612610576040519150601f19603f3d011682016040523d82523d6000602084013e612615565b606091505b5091509150611fab828286612d2d565b6000806126328385613873565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff19821215801561266d575068070c1cc73b00c800008213155b6126ac5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016102d9565b60008212156126e4576126c182600003612648565b6a0c097ce7bc90715b34b9f160241b816126dd576126dd613a22565b0592915050565b60006806f05b59d3b2000000831261272257506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b612758565b6803782dace9d9000000831261275457506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380612758565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126127a85768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126127e4576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261281e57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412612858576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261289157680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126128ca5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412612903576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c40000841261293c5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080612a72670de0b6b3a764000085613873565b905082818161263f5761263f613a22565b6000808213610b84576117c282613b61565b600080612aa28784612b94565b90506000612ab3611f54888a613ae0565b9050670d529ae9e8600000811315612aea5780670d529ae9e8600000604051637e34684f60e11b81526004016102d99291906132db565b6000612af582612c4d565b905085612b028289612a5d565b612b0c9190613ae0565b9350670de0b6b3a76400008412156113135760405163329e322960e21b8152600481018590526024016102d9565b60008060008312612b4c576001612b50565b6000195b905061230961229885612b6286612a83565b612d66565b60008060008312612b79576001612b7d565b6000195b905061230961229885612b8f86612a83565b612d7b565b600081831215612bd15760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016102d9565b61109c8284613ab9565b600080612bec878787876000612a95565b90506000612bfc6113af83612c9c565b905083612c0e6201518061016d613b08565b612c189083613b08565b612c229190613b1f565b98975050505050505050565b6000670de0b6b3a7640000612c438484613b08565b61109c9190613b1f565b6000670de0b6b3a76400008203612c775760405163a9c8b14d60e01b815260040160405180910390fd5b6000612c95612c8e84670de0b6b3a7640000613ab9565b8490612a5d565b905061109c815b6000808213612cdd5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016102d9565b670c7d713b49da000082138015612cfb5750670f43fc2c04ee000082125b15612d1f57670de0b6b3a7640000612d1283612da7565b816126dd576126dd613a22565b610b6882612ec6565b919050565b60608315612d3c57508161109c565b825115612d4c5782518084602001fd5b8160405162461bcd60e51b81526004016102d99190613b7d565b600082612c43670de0b6b3a764000084613b08565b600082600181612d93670de0b6b3a764000086613b08565b612d9d9190613a71565b612c439190613a5e565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281612de857612de8613a22565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215612f0757612efe826a0c097ce7bc90715b34b9f160241b81612ef857612ef8613a22565b05612ec6565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312612f525772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312612f89576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612fd1576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a700831261300c576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261304357693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e2831261307a57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126130af5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb4174612111083126130da57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d831261310f576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312613144576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312613178576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126131ac576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d6310000080860302816131d5576131d5613a22565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461329257600080fd5b50565b600080600080608085870312156132ab57600080fd5b84356132b68161327d565b935060208501356132c68161327d565b93969395505050506040820135916060013590565b918252602082015260400190565b600060a082840312156132fb57600080fd5b50919050565b600060c082840312156132fb57600080fd5b6000806000806000610120868803121561332c57600080fd5b85356133378161327d565b945060208601356133478161327d565b93506040860135925061335d87606088016132e9565b91506101008601356001600160401b0381111561337957600080fd5b61338588828901613301565b9150509295509295909350565b600080600080608085870312156133a857600080fd5b84356133b38161327d565b935060208501356133c38161327d565b92506040850135915060608501356001600160401b038111156133e557600080fd5b6133f187828801613301565b91505092959194509250565b6000806000806000610120868803121561341657600080fd5b85356134218161327d565b945060208601356134318161327d565b9350604086013592506060860135915061344e87608088016132e9565b90509295509295909350565b60008060006060848603121561346f57600080fd5b835161347a8161327d565b602085015190935061348b8161327d565b604085015190925061349c8161327d565b809150509250925092565b60005b838110156134c25781810151838201526020016134aa565b50506000910152565b600081518084526134e38160208601602086016134a7565b601f01601f19169290920160200192915050565b60018060a01b038416815282602082015260606040820152600061351e60608301846134cb565b95945050505050565b6000806040838503121561353a57600080fd5b505080516020909101519092909150565b60006020828403121561355d57600080fd5b813561109c8161327d565b6001600160a01b039390931683526020830191909152604082015260600190565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156135c2576135c2613589565b60405290565b604051601f8201601f191681016001600160401b03811182821017156135f0576135f0613589565b604052919050565b60006001600160401b0382111561361157613611613589565b50601f01601f191660200190565b600082601f83011261363057600080fd5b813561364361363e826135f8565b6135c8565b81815284602083860101111561365857600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461329257600080fd5b8035612d2881613675565b600060c082360312156136a057600080fd5b60405160c081016001600160401b0380821183831017156136c3576136c3613589565b81604052843591506136d48261327d565b81835260208501356020840152604085013591506136f18261327d565b816040840152606085013591506137078261327d565b816060840152608085013591508082111561372157600080fd5b5061372e3682860161361f565b60808301525061374060a08401613683565b60a082015292915050565b8051612d288161327d565b6000610120828403121561376957600080fd5b61377161359f565b8251815260208301516020820152604083015160408201526137956060840161374b565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060a082840312156137ea57600080fd5b60405160a081016001600160401b038111828210171561380c5761380c613589565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820260008212600160ff1b8414161561388f5761388f61385d565b8181058314821517610b6857610b6861385d565b6000808335601e198436030181126138ba57600080fd5b8301803591506001600160401b038211156138d457600080fd5b6020019150368190038213156138e957600080fd5b9250929050565b60006020828403121561390257600080fd5b813561109c81613675565b6001600160a01b0392831681529116602082015260400190565b60006020828403121561393957600080fd5b815161109c8161327d565b60006020828403121561395657600080fd5b5051919050565b60006001820161396f5761396f61385d565b5060010190565b60006020828403121561398857600080fd5b815161109c81613675565b6040815260006139a660408301856134cb565b90508260208301529392505050565b6000602082840312156139c757600080fd5b81516001600160401b038111156139dd57600080fd5b8201601f810184136139ee57600080fd5b80516139fc61363e826135f8565b818152856020838501011115613a1157600080fd5b61351e8260208301602086016134a7565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680613a5257613a52613a22565b92169190910492915050565b81810381811115610b6857610b6861385d565b80820180821115610b6857610b6861385d565b6001600160a01b03929092168252602082015260400190565b60008251613aaf8184602087016134a7565b9190910192915050565b8181036000831280158383131683831282161715613ad957613ad961385d565b5092915050565b8082018281126000831280158216821582161715613b0057613b0061385d565b505092915050565b8082028115828204841417610b6857610b6861385d565b600082613b2e57613b2e613a22565b500490565b600082613b4257613b42613a22565b600160ff1b821460001984141615613b5c57613b5c61385d565b500590565b6000600160ff1b8201613b7657613b7661385d565b5060000390565b60208152600061109c60208301846134cb56fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c656478e08a1e3c7a72f78d2c8ad8254052914bad73f8c681dbdc4267d0bb8ac9423c3f5e2944826baeaed8eb77f0f74e6088a154a0fc1317f062fd984585607b4739a2646970667358221220bb53e091cfa26e6e332adb620b64efe96ee9a8027864b1c2fd8f750a95c3976864736f6c63430008110033";
|
|
682
725
|
|
|
683
726
|
type ActionSwapPTConstructorParams =
|
|
684
|
-
| [
|
|
727
|
+
| [signer?: Signer]
|
|
685
728
|
| ConstructorParameters<typeof ContractFactory>;
|
|
686
729
|
|
|
687
730
|
const isSuperArgs = (
|
|
688
731
|
xs: ActionSwapPTConstructorParams
|
|
689
|
-
): xs is ConstructorParameters<typeof ContractFactory> =>
|
|
690
|
-
return (
|
|
691
|
-
typeof xs[0] === "string" ||
|
|
692
|
-
(Array.isArray as (arg: any) => arg is readonly any[])(xs[0]) ||
|
|
693
|
-
"_isInterface" in xs[0]
|
|
694
|
-
);
|
|
695
|
-
};
|
|
732
|
+
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
696
733
|
|
|
697
734
|
export class ActionSwapPT__factory extends ContractFactory {
|
|
698
735
|
constructor(...args: ActionSwapPTConstructorParams) {
|
|
699
736
|
if (isSuperArgs(args)) {
|
|
700
737
|
super(...args);
|
|
701
738
|
} else {
|
|
702
|
-
|
|
703
|
-
super(
|
|
704
|
-
_abi,
|
|
705
|
-
ActionSwapPT__factory.linkBytecode(linkLibraryAddresses),
|
|
706
|
-
signer
|
|
707
|
-
);
|
|
739
|
+
super(_abi, _bytecode, args[0]);
|
|
708
740
|
}
|
|
709
741
|
this.contractName = "ActionSwapPT";
|
|
710
742
|
}
|
|
711
743
|
|
|
712
|
-
static linkBytecode(
|
|
713
|
-
linkLibraryAddresses: ActionSwapPTLibraryAddresses
|
|
714
|
-
): string {
|
|
715
|
-
let linkedBytecode = _bytecode;
|
|
716
|
-
|
|
717
|
-
linkedBytecode = linkedBytecode.replace(
|
|
718
|
-
new RegExp("__\\$802f57dc5d2627d21bbb7805eff3c348c4\\$__", "g"),
|
|
719
|
-
linkLibraryAddresses[
|
|
720
|
-
"contracts/router/kyberswap/AggregationRouterHelper.sol:AggregationRouterHelper"
|
|
721
|
-
]
|
|
722
|
-
.replace(/^0x/, "")
|
|
723
|
-
.toLowerCase()
|
|
724
|
-
);
|
|
725
|
-
|
|
726
|
-
return linkedBytecode;
|
|
727
|
-
}
|
|
728
|
-
|
|
729
744
|
deploy(
|
|
730
|
-
|
|
745
|
+
_kyberScalingLib: string,
|
|
746
|
+
_bulkSellerDirectory: string,
|
|
731
747
|
overrides?: Overrides & { from?: string | Promise<string> }
|
|
732
748
|
): Promise<ActionSwapPT> {
|
|
733
749
|
return super.deploy(
|
|
734
|
-
|
|
750
|
+
_kyberScalingLib,
|
|
751
|
+
_bulkSellerDirectory,
|
|
735
752
|
overrides || {}
|
|
736
753
|
) as Promise<ActionSwapPT>;
|
|
737
754
|
}
|
|
738
755
|
getDeployTransaction(
|
|
739
|
-
|
|
756
|
+
_kyberScalingLib: string,
|
|
757
|
+
_bulkSellerDirectory: string,
|
|
740
758
|
overrides?: Overrides & { from?: string | Promise<string> }
|
|
741
759
|
): TransactionRequest {
|
|
742
|
-
return super.getDeployTransaction(
|
|
760
|
+
return super.getDeployTransaction(
|
|
761
|
+
_kyberScalingLib,
|
|
762
|
+
_bulkSellerDirectory,
|
|
763
|
+
overrides || {}
|
|
764
|
+
);
|
|
743
765
|
}
|
|
744
766
|
attach(address: string): ActionSwapPT {
|
|
745
767
|
return super.attach(address) as ActionSwapPT;
|
|
@@ -761,7 +783,3 @@ export class ActionSwapPT__factory extends ContractFactory {
|
|
|
761
783
|
return new Contract(address, _abi, signerOrProvider) as ActionSwapPT;
|
|
762
784
|
}
|
|
763
785
|
}
|
|
764
|
-
|
|
765
|
-
export interface ActionSwapPTLibraryAddresses {
|
|
766
|
-
["contracts/router/kyberswap/AggregationRouterHelper.sol:AggregationRouterHelper"]: string;
|
|
767
|
-
}
|
|
@@ -10,7 +10,12 @@ const _abi = [
|
|
|
10
10
|
inputs: [
|
|
11
11
|
{
|
|
12
12
|
internalType: "address",
|
|
13
|
-
name: "
|
|
13
|
+
name: "_kyberScalingLib",
|
|
14
|
+
type: "address",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
internalType: "address",
|
|
18
|
+
name: "_bulkSellerDirectory",
|
|
14
19
|
type: "address",
|
|
15
20
|
},
|
|
16
21
|
],
|
|
@@ -155,6 +160,11 @@ const _abi = [
|
|
|
155
160
|
name: "RouterInsufficientYtOut",
|
|
156
161
|
type: "error",
|
|
157
162
|
},
|
|
163
|
+
{
|
|
164
|
+
inputs: [],
|
|
165
|
+
name: "RouterKyberSwapDataZero",
|
|
166
|
+
type: "error",
|
|
167
|
+
},
|
|
158
168
|
{
|
|
159
169
|
anonymous: false,
|
|
160
170
|
inputs: [
|
|
@@ -237,7 +247,20 @@ const _abi = [
|
|
|
237
247
|
},
|
|
238
248
|
{
|
|
239
249
|
inputs: [],
|
|
240
|
-
name: "
|
|
250
|
+
name: "bulkFactory",
|
|
251
|
+
outputs: [
|
|
252
|
+
{
|
|
253
|
+
internalType: "contract IPBulkSellerFactory",
|
|
254
|
+
name: "",
|
|
255
|
+
type: "address",
|
|
256
|
+
},
|
|
257
|
+
],
|
|
258
|
+
stateMutability: "view",
|
|
259
|
+
type: "function",
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
inputs: [],
|
|
263
|
+
name: "kyberScalingLib",
|
|
241
264
|
outputs: [
|
|
242
265
|
{
|
|
243
266
|
internalType: "address",
|
|
@@ -385,11 +408,21 @@ const _abi = [
|
|
|
385
408
|
name: "tokenMintSy",
|
|
386
409
|
type: "address",
|
|
387
410
|
},
|
|
411
|
+
{
|
|
412
|
+
internalType: "address",
|
|
413
|
+
name: "kyberRouter",
|
|
414
|
+
type: "address",
|
|
415
|
+
},
|
|
388
416
|
{
|
|
389
417
|
internalType: "bytes",
|
|
390
418
|
name: "kybercall",
|
|
391
419
|
type: "bytes",
|
|
392
420
|
},
|
|
421
|
+
{
|
|
422
|
+
internalType: "bool",
|
|
423
|
+
name: "useBulk",
|
|
424
|
+
type: "bool",
|
|
425
|
+
},
|
|
393
426
|
],
|
|
394
427
|
internalType: "struct TokenInput",
|
|
395
428
|
name: "input",
|
|
@@ -485,11 +518,21 @@ const _abi = [
|
|
|
485
518
|
name: "tokenRedeemSy",
|
|
486
519
|
type: "address",
|
|
487
520
|
},
|
|
521
|
+
{
|
|
522
|
+
internalType: "address",
|
|
523
|
+
name: "kyberRouter",
|
|
524
|
+
type: "address",
|
|
525
|
+
},
|
|
488
526
|
{
|
|
489
527
|
internalType: "bytes",
|
|
490
528
|
name: "kybercall",
|
|
491
529
|
type: "bytes",
|
|
492
530
|
},
|
|
531
|
+
{
|
|
532
|
+
internalType: "bool",
|
|
533
|
+
name: "useBulk",
|
|
534
|
+
type: "bool",
|
|
535
|
+
},
|
|
493
536
|
],
|
|
494
537
|
internalType: "struct TokenOutput",
|
|
495
538
|
name: "output",
|
|
@@ -625,68 +668,47 @@ const _abi = [
|
|
|
625
668
|
];
|
|
626
669
|
|
|
627
670
|
const _bytecode =
|
|
628
|
-
"0x60a06040523480156200001157600080fd5b506040516200385b3803806200385b833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516137ba620000a16000396000818160a1015281816112d501526113a201526137ba6000f3fe6080604052600436106100605760003560e01c80630edb44b8146100655780631ef6f3271461008f578063357d6540146100d057806353f9e1a3146100f0578063bf1bd43414610110578063e15cc09814610130578063fdd71f4314610150575b600080fd5b610078610073366004612fee565b610170565b60405161008692919061306d565b60405180910390f35b34801561009b57600080fd5b506100c37f000000000000000000000000000000000000000000000000000000000000000081565b604051610086919061307b565b3480156100dc57600080fd5b506100786100eb36600461308f565b610266565b3480156100fc57600080fd5b5061007861010b3660046130d5565b61034f565b34801561011c57600080fd5b5061007861012b36600461308f565b610459565b34801561013c57600080fd5b5061007861014b366004613140565b61066e565b34801561015c57600080fd5b5061007861016b366004613140565b610877565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d8919061319d565b925050915060006101ec828460018961093f565b90506101fc8a8a84848c8c610af8565b90955093506001600160a01b03808b16908a163360008051602061376583398151915261022c60208b018b6131ea565b6102358a610c35565b6102428c60200135610c4f565b60405161025193929190613207565b60405180910390a45050509550959350505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ce919061319d565b9193509091506102eb90506001600160a01b038216338389610c6c565b6102f9888884848a8a610cdd565b90945092506001600160a01b03808916908816336000805160206137458339815191526103258a610c4f565b61032e89610c35565b60405161033c92919061306d565b60405180910390a4505094509492505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b7919061319d565b9193509091506103d490506001600160a01b038216338389610c6c565b60006103e5838985858b6001610cdd565b945090506103f7898483896000610e57565b94506001600160a01b03808a169089163360008051602061376583398151915261042460208b018b6131ea565b61042d8c610c4f565b6104368b610c35565b60405161044593929190613207565b60405180910390a450505094509492505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561049d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c1919061319d565b92505091506000826001600160a01b03166370a08231336040518263ffffffff1660e01b81526004016104f4919061307b565b602060405180830381865afa158015610511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105359190613228565b9050876001600160a01b03166329910b118389610553338e8c611047565b6040518463ffffffff1660e01b815260040161057193929190613291565b60408051808303816000875af115801561058f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b391906132b8565b6040516370a0823160e01b81529095506001600160a01b03851691506370a08231906105e390339060040161307b565b602060405180830381865afa158015610600573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106249190613228565b61062e90826132f2565b94506001600160a01b03808a16908916336000805160206137458339815191526106578b610c35565b6106608a610c4f565b60405161044592919061306d565b6000806000866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156106b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d69190613310565b90506000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073c919061319d565b9250505061075f610755826001600160a01b031661107a565b83908942896110e0565b50909450508584111561079257838660405163570cfb8160e01b815260040161078992919061306d565b60405180910390fd5b6107a76001600160a01b038216338387610c6c565b876001600160a01b0316635b709f1782866107c28d8c611234565b6040518463ffffffff1660e01b81526004016107e093929190613291565b60408051808303816000875af11580156107fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082291906132b8565b9350506001600160a01b03808a169089163360008051602061374583398151915261084c88610c4f565b6108558c610c35565b60405161086392919061306d565b60405180910390a450509550959350505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156108bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108df919061319d565b9193509091506108fc90506001600160a01b03831633838a610c6c565b61090a8989838a8a8a610af8565b90945092506001600160a01b03808a169089163360008051602061374583398151915261093688610c35565b6108558c610c4f565b600061095c61095160208401846131ea565b338460200135611263565b61096c60608301604084016131ea565b6001600160a01b031661098260208401846131ea565b6001600160a01b0316146109ec576109ec6109a060208401846131ea565b60208401356109b26060860186613392565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112cf92505050565b610a056109ff60608401604085016131ea565b856113d0565b6000610a1f610a1a60608501604086016131ea565b611488565b9050600080610a3460608601604087016131ea565b6001600160a01b031614610a49576000610a4b565b815b90506001600160a01b0386166320e8c5658289610a6e6060890160408a016131ea565b6040516001600160e01b031960e086901b1681526001600160a01b03928316600482015291166024820152604481018690526064810189905260840160206040518083038185885af1158015610ac8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aed9190613228565b979650505050505050565b6000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610b3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b609190613310565b9050610b81610b77886001600160a01b031661107a565b8290884288611512565b50925084831015610ba957828560405163a59b8c3160e01b815260040161078992919061306d565b876001600160a01b03166329910b118885610bc48d8a61165a565b6040518463ffffffff1660e01b8152600401610be293929190613291565b60408051808303816000875af1158015610c00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2491906132b8565b939a93995092975050505050505050565b60006001600160ff1b03821115610c4b57600080fd5b5090565b6000610c5a82610c35565b610c66906000196133df565b92915050565b6040516001600160a01b0380851660248301528316604482015260648101829052610cd79085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611672565b50505050565b6000806000866001600160a01b03166370a082318a6040518263ffffffff1660e01b8152600401610d0e919061307b565b602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f9190613228565b9050876001600160a01b0316635b709f178787610d6c8d89611234565b6040518463ffffffff1660e01b8152600401610d8a93929190613291565b60408051808303816000875af1158015610da8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcc91906132b8565b6040516370a0823160e01b81529093508291506001600160a01b038916906370a0823190610dfe908d9060040161307b565b602060405180830381865afa158015610e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3f9190613228565b610e4991906132f2565b925050965096945050505050565b60008115610e7457610e746001600160a01b038616338787610c6c565b610e8160208401846131ea565b6001600160a01b0316610e9a60608501604086016131ea565b6001600160a01b031603610f3a576001600160a01b03851663769f8e5d8786610ec960608801604089016131ea565b876020013560016040518663ffffffff1660e01b8152600401610ef095949392919061340f565b6020604051808303816000875af1158015610f0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f339190613228565b905061103e565b60006001600160a01b03861663769f8e5d3087610f5d6060890160408a016131ea565b6001806040518663ffffffff1660e01b8152600401610f8095949392919061340f565b6020604051808303816000875af1158015610f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc39190613228565b9050610fe6610fd860608601604087016131ea565b826109b26060880188613392565b610ff6610a1a60208601866131ea565b915083602001358210156110255781846020013560405163c5b5576d60e01b815260040161078992919061306d565b61103c61103560208601866131ea565b8884611744565b505b95945050505050565b606060008484846040516020016110619493929190613465565b60405160208183030381529060405290505b9392505050565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af11580156110bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c669190613228565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816111148a8a89611808565b9050600061113587600061113085876000015160000151611902565b61199f565b905060005b816060015181101561120f5760006111528383611a71565b905060008061116b876000015187896020015186611add565b915091506000611188838960200151611b1f90919063ffffffff16565b905060006111a461119983876132f2565b60208b015190611b34565b9050886040015181106111eb5760208701859052604089015160808801516111cd918391611b40565b156111e657939a50929850965061122995505050505050565b6111f9565b6111f685600161349a565b87525b505050505080611208906134ad565b905061113a565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b60606002838360405160200161124c939291906134c6565b604051602081830303815290604052905092915050565b6001600160a01b0383166112b4578034146112af5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610789565b505050565b80156112af576112af6001600160a01b038416833084610c6c565b6112f9837f00000000000000000000000000000000000000000000000000000000000000006113d0565b60405163726d379760e11b815260009073__$802f57dc5d2627d21bbb7805eff3c348c4$__9063e4da6f2e9061133590859087906004016134ee565b600060405180830381865af4158015611352573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261137a9190810190613510565b90506113c9816001600160a01b03861615611396576000611398565b845b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611b73565b5050505050565b6001600160a01b0382166113e2575050565b6113f460026001600160601b036135c7565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa15801561144d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114719190613228565b1015611484576114848282600019611b99565b5050565b60006001600160a01b0382161561150b576040516370a0823160e01b81526001600160a01b038316906370a08231906114c590309060040161307b565b602060405180830381865afa1580156114e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115069190613228565b610c66565b4792915050565b604080516080810182528681526020810186905290810184905260608101839052600090819081611544898988611808565b905060006115798661156785604001518660200151611ca690919063ffffffff16565b6115748560200151611cb2565b611cc9565b905060005b816060015181101561120f576000806115a1848688600001516000015186611d02565b91509150816115b557602084015250611640565b6000806115cc8860000151888a6020015186611d6d565b9150915060006115f08960400151846115e5919061349a565b60208b015190611ca6565b90508084116116325783875260808701516000906116119086908490611d8e565b9050801561162c575092995097506116509650505050505050565b5061163a565b602087018490525b50505050505b611649816134ad565b905061157e565b9550959350505050565b60606001838360405160200161124c939291906134c6565b60006116c7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611dbc9092919063ffffffff16565b8051909150156112af57808060200190518101906116e591906135ed565b6112af5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610789565b8060000361175157505050565b6001600160a01b0383166117f4576000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146117ac576040519150601f19603f3d011682016040523d82523d6000602084013e6117b1565b606091505b5050905080610cd75760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610789565b6112af6001600160a01b0384168383611dcb565b6118336040518060800160405280600081526020016000815260200160008152602001600081525090565b60c084015182106118575760405163b2094b5960e01b815260040160405180910390fd5b6000828560c0015161186991906132f2565b90506118758582611dea565b82526020850151611887908590611e4b565b60208301528451158061189c57506020820151155b156118c3578451602083015160405163b1c4aefb60e01b815261078992919060040161306d565b6118e185600001518661010001518460200151856000015185611e82565b604083015260a08501516118f59082611f03565b6060830152509392505050565b60008061192f61192a856000015186604001518760600151611924919061360f565b90611f37565b611f5a565b9050600061194f611948670de0b6b3a764000084613636565b839061236f565b9050600061196d8660200151866119669190613636565b8390611f37565b9050600061197b828761360f565b90506103e861198982612395565b611995906103e761365e565b610aed9190613675565b6119d16040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83516119dd90846123a4565b815260208401516119ee90836123ba565b6020820181905281511180611a0e5750670de0b6b3a76400008460800151115b15611a4957835160208501516080860151604051632cc06bc160e21b8152600481019390935260248301919091526044820152606401610789565b6040808501519082015260608085015190820152608093840151938101939093525090919050565b600081158015611a845750604083015115155b15611a9457506040820151610c66565b6020830151835111611ac45760208301518351600291611ab39161349a565b611abd9190613675565b9050610c66565b604051637d388ed960e11b815260040160405180910390fd5b600080600080611afa8787611af188610c35565b8b9291906123c9565b91509150611b078261250f565b9350611b1281612395565b9250505094509492505050565b600082611b2c8184612521565b949350505050565b60006110738383612557565b6000828410158015611b2c5750611b6883611b6384670de0b6b3a764000061349a565b61256c565b841115949350505050565b6060611b2c84848460405180606001604052806029815260200161371c6029913961258c565b600080846001600160a01b031663095ea7b360e01b8585604051602401611bc1929190613689565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611bff91906136a2565b6000604051808303816000865af19150503d8060008114611c3c576040519150601f19603f3d011682016040523d82523d6000602084013e611c41565b606091505b5091509150818015611c6b575080511580611c6b575080806020019051810190611c6b91906135ed565b6113c95760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610789565b600061107383836126b2565b60006001611cbf83612395565b610c6691906132f2565b6119d16040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000806000611d118785611a71565b90508660a001518111611d2957600192509050611d64565b6000611d3e8787611d3985610c35565b6126c7565b90506000811215611d555750600092509050611d64565b5060a087018190526001925090505b94509492505050565b600080600080611d818787611af188610c4f565b91509150611b0782612395565b6000828411158015611b2c5750611db183611b6384670de0b6b3a76400006132f2565b909310159392505050565b6060611b2c848460008561258c565b6112af8363a9059cbb60e01b8484604051602401610ca0929190613689565b6000611df582610c35565b611e0c611e076201518061016d61365e565b610c35565b8460800151611e1b91906133df565b611e2591906136be565b905060008113610c6657604051630e520c3b60e11b815260048101829052602401610789565b60008060008312611e5d576001611e61565b6000195b9050611e78611e0785611e738661250f565b6126b2565b611b2c90826133df565b600080611e8f8684611f03565b9050670de0b6b3a7640000811215611ebd5760405163329e322960e21b815260048101829052602401610789565b6000611ed3611ecc878a613636565b899061236f565b90506000611ee0826127b9565b9050611eec818761236f565b611ef6908461360f565b9998505050505050505050565b600080611f156201518061016d61365e565b611f1f848661365e565b611f299190613675565b9050611b2c61192a82610c35565b600080611f4483856133df565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff198212158015611f7f575068070c1cc73b00c800008213155b611fbe5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610789565b6000821215611ff657611fd382600003611f5a565b6a0c097ce7bc90715b34b9f160241b81611fef57611fef6135b1565b0592915050565b60006806f05b59d3b2000000831261203457506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61206a565b6803782dace9d9000000831261206657506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061206a565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126120ba5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126120f6576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261213057682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c400000841261216a576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126121a357680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126121dc5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412612215576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c40000841261224e5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080612384670de0b6b3a7640000856133df565b9050828181611f5157611f516135b1565b600080821215610c4b57600080fd5b60008183116123b35781611073565b5090919050565b60008183106123b35781611073565b60008060006123eb87600001518760200151886000015189604001518861280c565b905060006124016123fc868461236f565b6128bd565b6060880151909150600086131561247057600061241e848361236f565b9050670de0b6b3a764000081121561244c5760405163329e322960e21b815260048101829052602401610789565b61246861246183670de0b6b3a764000061360f565b8490611f37565b91505061249d565b61249a8161248681670de0b6b3a764000061360f565b61249090856133df565b6123fc91906136be565b90505b600060646124ae8b60e00151610c35565b6124b890846133df565b6124c291906136be565b905060006124d0838561360f565b9050600081126124e9576124e489826128cb565b6124f3565b6124f389826128f8565b96506124ff89836128cb565b9550505050505094509492505050565b6000808213610c4b57611506826136ec565b6000670de0b6b3a7640000600181612539868661365e565b612543919061349a565b61254d91906132f2565b6110739190613675565b60008261254d670de0b6b3a76400008461365e565b600080612579838561365e565b670de0b6b3a76400009004949350505050565b6060824710156125ed5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610789565b6001600160a01b0385163b6126445760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610789565b600080866001600160a01b0316858760405161266091906136a2565b60006040518083038185875af1925050503d806000811461269d576040519150601f19603f3d011682016040523d82523d6000602084013e6126a2565b606091505b5091509150610aed828286612925565b6000670de0b6b3a764000061254d848461365e565b6000808285602001516126da919061360f565b905060006126e88585613636565b90506000821380156126fa5750600081135b61273b5760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610789565b600061276961274a84846133df565b60208901516127599089613636565b61276390886133df565b9061236f565b9050600061277f61277a848661236f565b61295e565b885190915060009061279a90670de0b6b3a76400009061236f565b90506127aa81611924848661360f565b8960400151611ef6919061360f565b6000670de0b6b3a764000082036127e35760405163a9c8b14d60e01b815260040160405180910390fd5b60006128016127fa84670de0b6b3a764000061360f565b849061236f565b90506110738161295e565b60008061281987846129ef565b9050600061282a611948888a613636565b9050670d529ae9e86000008113156128615780670d529ae9e8600000604051637e34684f60e11b815260040161078992919061306d565b600061286c826127b9565b905085612879828961236f565b6128839190613636565b9350670de0b6b3a76400008412156128b15760405163329e322960e21b815260048101859052602401610789565b50505095945050505050565b6000610c66826000196133df565b600080600083126128dd5760016128e1565b6000195b9050611e78611e07856128f38661250f565b612557565b6000806000831261290a57600161290e565b6000195b9050611e78611e07856129208661250f565b612a36565b60608315612934575081611073565b8251156129445782518084602001fd5b8160405162461bcd60e51b81526004016107899190613708565b600080821361299f5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610789565b670c7d713b49da0000821380156129bd5750670f43fc2c04ee000082125b156129e157670de0b6b3a76400006129d483612a4e565b81611fef57611fef6135b1565b610c6682612b6d565b919050565b600081831215612a2c5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610789565b611073828461360f565b600082600181612539670de0b6b3a76400008661365e565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281612a8f57612a8f6135b1565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215612bae57612ba5826a0c097ce7bc90715b34b9f160241b81612b9f57612b9f6135b1565b05612b6d565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312612bf95772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312612c30576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612c78576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612cb3576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312612cea57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312612d2157690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312612d565768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312612d8157680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612db6576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612deb576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312612e1f576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312612e53576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281612e7c57612e7c6135b1565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b0381168114612f2557600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715612f6157612f61612f28565b60405290565b600060a08284031215612f7957600080fd5b60405160a081016001600160401b0381118282101715612f9b57612f9b612f28565b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b600060808284031215612fe857600080fd5b50919050565b6000806000806000610120868803121561300757600080fd5b853561301281612f10565b9450602086013561302281612f10565b9350604086013592506130388760608801612f67565b91506101008601356001600160401b0381111561305457600080fd5b61306088828901612fd6565b9150509295509295909350565b918252602082015260400190565b6001600160a01b0391909116815260200190565b600080600080608085870312156130a557600080fd5b84356130b081612f10565b935060208501356130c081612f10565b93969395505050506040820135916060013590565b600080600080608085870312156130eb57600080fd5b84356130f681612f10565b9350602085013561310681612f10565b92506040850135915060608501356001600160401b0381111561312857600080fd5b61313487828801612fd6565b91505092959194509250565b6000806000806000610120868803121561315957600080fd5b853561316481612f10565b9450602086013561317481612f10565b935060408601359250606086013591506131918760808801612f67565b90509295509295909350565b6000806000606084860312156131b257600080fd5b83516131bd81612f10565b60208501519093506131ce81612f10565b60408501519092506131df81612f10565b809150509250925092565b6000602082840312156131fc57600080fd5b813561107381612f10565b6001600160a01b039390931683526020830191909152604082015260600190565b60006020828403121561323a57600080fd5b5051919050565b60005b8381101561325c578181015183820152602001613244565b50506000910152565b6000815180845261327d816020860160208601613241565b601f01601f19169290920160200192915050565b60018060a01b038416815282602082015260606040820152600061103e6060830184613265565b600080604083850312156132cb57600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b81810381811115610c6657610c666132dc565b80516129ea81612f10565b6000610120828403121561332357600080fd5b61332b612f3e565b82518152602083015160208201526040830151604082015261334f60608401613305565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6000808335601e198436030181126133a957600080fd5b8301803591506001600160401b038211156133c357600080fd5b6020019150368190038213156133d857600080fd5b9250929050565b80820260008212600160ff1b841416156133fb576133fb6132dc565b8181058314821517610c6657610c666132dc565b6001600160a01b03958616815260208101949094529190931660408301526060820192909252901515608082015260a00190565b6005811061346157634e487b7160e01b600052602160045260246000fd5b9052565b608081016134738287613443565b6001600160a01b039485166020830152929093166040840152606090920191909152919050565b80820180821115610c6657610c666132dc565b6000600182016134bf576134bf6132dc565b5060010190565b606081016134d48286613443565b6001600160a01b0393909316602082015260400152919050565b6040815260006135016040830185613265565b90508260208301529392505050565b60006020828403121561352257600080fd5b81516001600160401b038082111561353957600080fd5b818401915084601f83011261354d57600080fd5b81518181111561355f5761355f612f28565b604051601f8201601f19908116603f0116810190838211818310171561358757613587612f28565b816040528281528760208487010111156135a057600080fd5b610aed836020830160208801613241565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b03838116806135e1576135e16135b1565b92169190910492915050565b6000602082840312156135ff57600080fd5b8151801515811461107357600080fd5b818103600083128015838313168383128216171561362f5761362f6132dc565b5092915050565b8082018281126000831280158216821582161715613656576136566132dc565b505092915050565b8082028115828204841417610c6657610c666132dc565b600082613684576136846135b1565b500490565b6001600160a01b03929092168252602082015260400190565b600082516136b4818460208701613241565b9190910192915050565b6000826136cd576136cd6135b1565b600160ff1b8214600019841416156136e7576136e76132dc565b500590565b6000600160ff1b8201613701576137016132dc565b5060000390565b602081526000611073602083018461326556fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c656405499aba408f669fb848399c146fad5bd604d50b15566bdc19e81c40922fab8dc372308269f6e4dd0b4f322160cf0edef154584a3ad62248d654ae846e3eb6e8a2646970667358221220fff0fc2fb2b236c6ebd16932fd688fcb5cf1f88bbc8e4e70614233e52be7716d64736f6c63430008110033";
|
|
671
|
+
"0x60c06040523480156200001157600080fd5b5060405162003d0c38038062003d0c833981016040819052620000349162000069565b6001600160a01b039182166080521660a052620000a1565b80516001600160a01b03811681146200006457600080fd5b919050565b600080604083850312156200007d57600080fd5b62000088836200004c565b915062000098602084016200004c565b90509250929050565b60805160a051613c2a620000e260003960008181608201528181610be601528181610cde0152610fe001526000818161016d01526116840152613c2a6000f3fe60806040526004361061006b5760003560e01c80631bd76e4014610070578063357d6540146100ba578063a9f78ff7146100e8578063be4ba8ba14610108578063bf1bd4341461011b578063e15cc0981461013b578063f95308001461015b578063fdd71f431461018f575b600080fd5b34801561007c57600080fd5b506100a47f000000000000000000000000000000000000000000000000000000000000000081565b6040516100b1919061320d565b60405180910390f35b3480156100c657600080fd5b506100da6100d5366004613239565b6101af565b6040516100b192919061327f565b3480156100f457600080fd5b506100da6101033660046132a5565b610298565b6100da6101163660046133ee565b6103bb565b34801561012757600080fd5b506100da610136366004613239565b6104b1565b34801561014757600080fd5b506100da61015636600461346d565b6106c6565b34801561016757600080fd5b506100a47f000000000000000000000000000000000000000000000000000000000000000081565b34801561019b57600080fd5b506100da6101aa36600461346d565b6108cf565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156101f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021791906134ca565b91935090915061023490506001600160a01b038216338389610997565b610242888884848a8a610a08565b90945092506001600160a01b0380891690881633600080516020613bb583398151915261026e8a610b82565b61027789610b9f565b60405161028592919061327f565b60405180910390a4505094509492505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030091906134ca565b91935090915061031d90506001600160a01b038216338389610997565b600061033f6103348461032f896135ad565b610bb9565b8985858b6001610a08565b945090506103598984836103528a6135ad565b6000610c64565b94506001600160a01b03808a1690891633600080516020613bd583398151915261038660208b018b61366a565b61038f8c610b82565b6103988b610b9f565b6040516103a793929190613687565b60405180910390a450505094509492505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156103ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042391906134ca565b925050915060006104378284600189610ee0565b90506104478a8a84848c8c6111fe565b90955093506001600160a01b03808b16908a1633600080516020613bd583398151915261047760208b018b61366a565b6104808a610b9f565b61048d8c60200135610b82565b60405161049c93929190613687565b60405180910390a45050509550959350505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051991906134ca565b92505091506000826001600160a01b03166370a08231336040518263ffffffff1660e01b815260040161054c919061320d565b602060405180830381865afa158015610569573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058d91906136a8565b9050876001600160a01b03166329910b1183896105ab338e8c61133b565b6040518463ffffffff1660e01b81526004016105c993929190613711565b60408051808303816000875af11580156105e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060b9190613741565b6040516370a0823160e01b81529095506001600160a01b03851691506370a082319061063b90339060040161320d565b602060405180830381865afa158015610658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067c91906136a8565b610686908261377b565b94506001600160a01b03808a1690891633600080516020613bb58339815191526106af8b610b9f565b6106b88a610b82565b6040516103a792919061327f565b6000806000866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e9190613799565b90506000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610770573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079491906134ca565b925050506107b76107ad826001600160a01b031661136d565b83908942896113d3565b5090945050858411156107ea57838660405163570cfb8160e01b81526004016107e192919061327f565b60405180910390fd5b6107ff6001600160a01b038216338387610997565b876001600160a01b0316635b709f17828661081a8d8c611527565b6040518463ffffffff1660e01b815260040161083893929190613711565b60408051808303816000875af1158015610856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087a9190613741565b9350506001600160a01b03808a1690891633600080516020613bb58339815191526108a488610b82565b6108ad8c610b9f565b6040516108bb92919061327f565b60405180910390a450509550959350505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610913573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093791906134ca565b91935090915061095490506001600160a01b03831633838a610997565b6109628989838a8a8a6111fe565b90945092506001600160a01b03808a1690891633600080516020613bb583398151915261098e88610b9f565b6108ad8c610b82565b6040516001600160a01b0380851660248301528316604482015260648101829052610a029085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611556565b50505050565b6000806000866001600160a01b03166370a082318a6040518263ffffffff1660e01b8152600401610a39919061320d565b602060405180830381865afa158015610a56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7a91906136a8565b9050876001600160a01b0316635b709f178787610a978d89611527565b6040518463ffffffff1660e01b8152600401610ab593929190613711565b60408051808303816000875af1158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af79190613741565b6040516370a0823160e01b81529093508291506001600160a01b038916906370a0823190610b29908d9060040161320d565b602060405180830381865afa158015610b46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6a91906136a8565b610b74919061377b565b925050965096945050505050565b6000610b8d82610b9f565b610b999060001961381b565b92915050565b60006001600160ff1b03821115610bb557600080fd5b5090565b60008160a00151610bca5782610c5d565b604080830151905163d81e842360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163d81e842391610c1c9190879060040161384b565b602060405180830381865afa158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190613865565b9392505050565b60008115610c8c57610c8c33610c7a8786610bb9565b6001600160a01b038816919087610997565b825160408401516001600160a01b0390811691161415600081610caf5787610cb1565b305b905060008560a0015115610dd357604080870151905163d81e842360e01b81526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163d81e842391610d13918d9060040161384b565b602060405180830381865afa158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d549190613865565b60405163bd5688d560e01b81529091506001600160a01b0382169063bd5688d590610d889086908c90600090600401613687565b6020604051808303816000875af1158015610da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcb91906136a8565b915050610e65565b604086810151905163769f8e5d60e01b81526001600160a01b038481166004830152602482018a9052918216604482015260006064820152600160848201529089169063769f8e5d9060a4016020604051808303816000875af1158015610e3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6291906136a8565b90505b8215610ea457610e838660400151828860600151896080015161162d565b8551610e8e90611737565b9350610e9f86600001518a866117c1565b610ea8565b8093505b8560200151841015610ed457602086015160405163c5b5576d60e01b81526107e191869160040161327f565b50505095945050505050565b6000610efd610ef2602084018461366a565b338460200135611885565b6000610f0f606084016040850161366a565b6001600160a01b0316610f25602085018561366a565b6001600160a01b03161480159150610fa357610fa3610f47602085018561366a565b6020850135610f5c608087016060880161366a565b610f696080880188613882565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061162d92505050565b6000610fbd610fb8606086016040870161366a565b611737565b9050610fcf60c0850160a086016138cf565b1561110b5760006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663d81e8423611015606088016040890161366a565b896040518363ffffffff1660e01b815260040161103392919061384b565b602060405180830381865afa158015611050573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110749190613865565b9050611090611089606087016040880161366a565b82846117c1565b604051630b27670760e41b81526001600160a01b0382169063b2767070906110c0908b9086908b90600401613687565b6020604051808303816000875af11580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906136a8565b9350506111f4565b60008061111e606087016040880161366a565b6001600160a01b031614611133576000611135565b815b905061115061114a606087016040880161366a565b886118ec565b6001600160a01b0387166320e8c565828a61117160608a0160408b0161366a565b6040516001600160e01b031960e086901b1681526001600160a01b0392831660048201529116602482015260448101869052606481018a905260840160206040518083038185885af11580156111cb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111f091906136a8565b9350505b5050949350505050565b6000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611242573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112669190613799565b905061128761127d886001600160a01b031661136d565b829088428861199f565b509250848310156112af57828560405163a59b8c3160e01b81526004016107e192919061327f565b876001600160a01b03166329910b1188856112ca8d8a611ae7565b6040518463ffffffff1660e01b81526004016112e893929190613711565b60408051808303816000875af1158015611306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132a9190613741565b939a93995092975050505050505050565b60606000848484604051602001611355949392919061390e565b60405160208183030381529060405290509392505050565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af11580156113af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9991906136a8565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816114078a8a89611aff565b9050600061142887600061142385876000015160000151611bf9565b611ca1565b905060005b81606001518110156115025760006114458383611d73565b905060008061145e876000015187896020015186611ddf565b91509150600061147b838960200151611e2190919063ffffffff16565b9050600061149761148c838761377b565b60208b015190611e36565b9050886040015181106114de5760208701859052604089015160808801516114c0918391611e42565b156114d957939a50929850965061151c95505050505050565b6114ec565b6114e9856001613943565b87525b5050505050806114fb90613956565b905061142d565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b60606002838360405160200161153f9392919061396f565b604051602081830303815290604052905092915050565b60006115ab826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611e759092919063ffffffff16565b80519091501561162857808060200190518101906115c99190613997565b6116285760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107e1565b505050565b6001600160a01b038216158061164257508051155b1561166057604051631e59c84360e01b815260040160405180910390fd5b61166a84836118ec565b60405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906116bb90859088906004016139b4565b600060405180830381865afa1580156116d8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261170091908101906139d6565b905061172f816001600160a01b0387161561171c57600061171e565b855b6001600160a01b0386169190611e84565b505050505050565b60006001600160a01b038216156117ba576040516370a0823160e01b81526001600160a01b038316906370a082319061177490309060040161320d565b602060405180830381865afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b591906136a8565b610b99565b4792915050565b806000036117ce57505050565b6001600160a01b038316611871576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611829576040519150601f19603f3d011682016040523d82523d6000602084013e61182e565b606091505b5050905080610a025760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b60448201526064016107e1565b6116286001600160a01b0384168383611eaa565b6001600160a01b0383166118d1578034146116285760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016107e1565b8015611628576116286001600160a01b038416833084610997565b6001600160a01b0382166118fe575050565b61191060026001600160601b03613a59565b6001600160601b0316826001600160a01b031663dd62ed3e30846040518363ffffffff1660e01b815260040161194792919061384b565b602060405180830381865afa158015611964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198891906136a8565b101561199b5761199b8282600019611ec9565b5050565b6040805160808101825286815260208101869052908101849052606081018390526000908190816119d1898988611aff565b90506000611a06866119f485604001518660200151611fdd90919063ffffffff16565b611a018560200151611fe9565b612000565b905060005b816060015181101561150257600080611a2e848688600001516000015186612039565b9150915081611a4257602084015250611acd565b600080611a598860000151888a60200151866120a4565b915091506000611a7d896040015184611a729190613943565b60208b015190611fdd565b9050808411611abf578387526080870151600090611a9e90869084906120c5565b90508015611ab957509299509750611add9650505050505050565b50611ac7565b602087018490525b50505050505b611ad681613956565b9050611a0b565b9550959350505050565b60606001838360405160200161153f9392919061396f565b611b2a6040518060800160405280600081526020016000815260200160008152602001600081525090565b60c08401518210611b4e5760405163b2094b5960e01b815260040160405180910390fd5b6000828560c00151611b60919061377b565b9050611b6c85826120f3565b82526020850151611b7e908590612154565b602083015284511580611b9357506020820151155b15611bba578451602083015160405163b1c4aefb60e01b81526107e192919060040161327f565b611bd88560000151866101000151846020015185600001518561218b565b604083015260a0850151611bec908261220c565b6060830152509392505050565b600080611c26611c21856000015186604001518760600151611c1b9190613a7f565b90612240565b612263565b90506000611c46611c3f670de0b6b3a764000084613aa6565b8390612678565b90506000611c64866020015186611c5d9190613aa6565b8390612240565b90506000611c728287613a7f565b90506103e8611c808261269e565b611c8c906103e7613ace565b611c969190613ae5565b979650505050505050565b611cd36040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b8351611cdf90846126ad565b81526020840151611cf090836126c3565b6020820181905281511180611d105750670de0b6b3a76400008460800151115b15611d4b57835160208501516080860151604051632cc06bc160e21b81526004810193909352602483019190915260448201526064016107e1565b6040808501519082015260608085015190820152608093840151938101939093525090919050565b600081158015611d865750604083015115155b15611d9657506040820151610b99565b6020830151835111611dc65760208301518351600291611db591613943565b611dbf9190613ae5565b9050610b99565b604051637d388ed960e11b815260040160405180910390fd5b600080600080611dfc8787611df388610b9f565b8b9291906126d2565b91509150611e0982612818565b9350611e148161269e565b9250505094509492505050565b600082611e2e818461282a565b949350505050565b6000610c5d8383612860565b6000828410158015611e2e5750611e6a83611e6584670de0b6b3a7640000613943565b612875565b841115949350505050565b6060611e2e8484600085612895565b6060611e2e848484604051806060016040528060298152602001613b8c60299139612895565b6116288363a9059cbb60e01b84846040516024016109cb929190613af9565b600080846001600160a01b031663095ea7b360e01b8585604051602401611ef1929190613af9565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611f2f9190613b12565b6000604051808303816000865af19150503d8060008114611f6c576040519150601f19603f3d011682016040523d82523d6000602084013e611f71565b606091505b5091509150818015611f9b575080511580611f9b575080806020019051810190611f9b9190613997565b611fd65760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016107e1565b5050505050565b6000610c5d83836129bb565b60006001611ff68361269e565b610b99919061377b565b611cd36040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008060006120488785611d73565b90508660a0015181116120605760019250905061209b565b6000612075878761207085610b9f565b6129d0565b9050600081121561208c575060009250905061209b565b5060a087018190526001925090505b94509492505050565b6000806000806120b88787611df388610b82565b91509150611e098261269e565b6000828411158015611e2e57506120e883611e6584670de0b6b3a764000061377b565b909310159392505050565b60006120fe82610b9f565b6121156121106201518061016d613ace565b610b9f565b8460800151612124919061381b565b61212e9190613b2e565b905060008113610b9957604051630e520c3b60e11b8152600481018290526024016107e1565b6000806000831261216657600161216a565b6000195b90506121816121108561217c86612818565b6129bb565b611e2e908261381b565b600080612198868461220c565b9050670de0b6b3a76400008112156121c65760405163329e322960e21b8152600481018290526024016107e1565b60006121dc6121d5878a613aa6565b8990612678565b905060006121e982612ac2565b90506121f58187612678565b6121ff9084613a7f565b9998505050505050505050565b60008061221e6201518061016d613ace565b6122288486613ace565b6122329190613ae5565b9050611e2e611c2182610b9f565b60008061224d838561381b565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff198212158015612288575068070c1cc73b00c800008213155b6122c75760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016107e1565b60008212156122ff576122dc82600003612263565b6a0c097ce7bc90715b34b9f160241b816122f8576122f8613a43565b0592915050565b60006806f05b59d3b2000000831261233d57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b612373565b6803782dace9d9000000831261236f57506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380612373565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126123c35768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126123ff576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261243957682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412612473576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126124ac57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126124e55768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b1880000841261251e576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126125575768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60008061268d670de0b6b3a76400008561381b565b905082818161225a5761225a613a43565b600080821215610bb557600080fd5b60008183116126bc5781610c5d565b5090919050565b60008183106126bc5781610c5d565b60008060006126f4876000015187602001518860000151896040015188612b15565b9050600061270a6127058684612678565b612bba565b606088015190915060008613156127795760006127278483612678565b9050670de0b6b3a76400008112156127555760405163329e322960e21b8152600481018290526024016107e1565b61277161276a83670de0b6b3a7640000613a7f565b8490612240565b9150506127a6565b6127a38161278f81670de0b6b3a7640000613a7f565b612799908561381b565b6127059190613b2e565b90505b600060646127b78b60e00151610b9f565b6127c1908461381b565b6127cb9190613b2e565b905060006127d98385613a7f565b9050600081126127f2576127ed8982612bc8565b6127fc565b6127fc8982612bf5565b96506128088983612bc8565b9550505050505094509492505050565b6000808213610bb5576117b582613b5c565b6000670de0b6b3a76400006001816128428686613ace565b61284c9190613943565b612856919061377b565b610c5d9190613ae5565b600082612856670de0b6b3a764000084613ace565b6000806128828385613ace565b670de0b6b3a76400009004949350505050565b6060824710156128f65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016107e1565b6001600160a01b0385163b61294d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107e1565b600080866001600160a01b031685876040516129699190613b12565b60006040518083038185875af1925050503d80600081146129a6576040519150601f19603f3d011682016040523d82523d6000602084013e6129ab565b606091505b5091509150611c96828286612c22565b6000670de0b6b3a76400006128568484613ace565b6000808285602001516129e39190613a7f565b905060006129f18585613aa6565b9050600082138015612a035750600081135b612a445760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b60448201526064016107e1565b6000612a72612a53848461381b565b6020890151612a629089613aa6565b612a6c908861381b565b90612678565b90506000612a88612a838486612678565b612c5b565b8851909150600090612aa390670de0b6b3a764000090612678565b9050612ab381611c1b8486613a7f565b89604001516121ff9190613a7f565b6000670de0b6b3a76400008203612aec5760405163a9c8b14d60e01b815260040160405180910390fd5b6000612b0a612b0384670de0b6b3a7640000613a7f565b8490612678565b9050610c5d81612c5b565b600080612b228784612cec565b90506000612b33611c3f888a613aa6565b9050670d529ae9e8600000811315612b6a5780670d529ae9e8600000604051637e34684f60e11b81526004016107e192919061327f565b6000612b7582612ac2565b905085612b828289612678565b612b8c9190613aa6565b9350670de0b6b3a7640000841215610ed45760405163329e322960e21b8152600481018590526024016107e1565b6000610b998260001961381b565b60008060008312612bda576001612bde565b6000195b905061218161211085612bf086612818565b612860565b60008060008312612c07576001612c0b565b6000195b905061218161211085612c1d86612818565b612d33565b60608315612c31575081610c5d565b825115612c415782518084602001fd5b8160405162461bcd60e51b81526004016107e19190613b78565b6000808213612c9c5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016107e1565b670c7d713b49da000082138015612cba5750670f43fc2c04ee000082125b15612cde57670de0b6b3a7640000612cd183612d4b565b816122f8576122f8613a43565b610b9982612e6a565b919050565b600081831215612d295760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016107e1565b610c5d8284613a7f565b600082600181612842670de0b6b3a764000086613ace565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281612d8c57612d8c613a43565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215612eab57612ea2826a0c097ce7bc90715b34b9f160241b81612e9c57612e9c613a43565b05612e6a565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312612ef65772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312612f2d576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612f75576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612fb0576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312612fe757693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e2831261301e57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126130535768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261307e57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d83126130b3576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f177578893793783126130e8576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b286603831261311c576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312613150576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d63100000808603028161317957613179613a43565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461323657600080fd5b50565b6000806000806080858703121561324f57600080fd5b843561325a81613221565b9350602085013561326a81613221565b93969395505050506040820135916060013590565b918252602082015260400190565b600060c0828403121561329f57600080fd5b50919050565b600080600080608085870312156132bb57600080fd5b84356132c681613221565b935060208501356132d681613221565b92506040850135915060608501356001600160401b038111156132f857600080fd5b6133048782880161328d565b91505092959194509250565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171561334957613349613310565b60405290565b604051601f8201601f191681016001600160401b038111828210171561337757613377613310565b604052919050565b600060a0828403121561339157600080fd5b60405160a081016001600160401b03811182821017156133b3576133b3613310565b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b6000806000806000610120868803121561340757600080fd5b853561341281613221565b9450602086013561342281613221565b935060408601359250613438876060880161337f565b91506101008601356001600160401b0381111561345457600080fd5b6134608882890161328d565b9150509295509295909350565b6000806000806000610120868803121561348657600080fd5b853561349181613221565b945060208601356134a181613221565b935060408601359250606086013591506134be876080880161337f565b90509295509295909350565b6000806000606084860312156134df57600080fd5b83516134ea81613221565b60208501519093506134fb81613221565b604085015190925061350c81613221565b809150509250925092565b60006001600160401b0382111561353057613530613310565b50601f01601f191660200190565b600082601f83011261354f57600080fd5b813561356261355d82613517565b61334f565b81815284602083860101111561357757600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461323657600080fd5b8035612ce781613594565b600060c082360312156135bf57600080fd5b60405160c081016001600160401b0380821183831017156135e2576135e2613310565b81604052843591506135f382613221565b818352602085013560208401526040850135915061361082613221565b8160408401526060850135915061362682613221565b816060840152608085013591508082111561364057600080fd5b5061364d3682860161353e565b60808301525061365f60a084016135a2565b60a082015292915050565b60006020828403121561367c57600080fd5b8135610c5d81613221565b6001600160a01b039390931683526020830191909152604082015260600190565b6000602082840312156136ba57600080fd5b5051919050565b60005b838110156136dc5781810151838201526020016136c4565b50506000910152565b600081518084526136fd8160208601602086016136c1565b601f01601f19169290920160200192915050565b60018060a01b038416815282602082015260606040820152600061373860608301846136e5565b95945050505050565b6000806040838503121561375457600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b9957610b99613765565b8051612ce781613221565b600061012082840312156137ac57600080fd5b6137b4613326565b8251815260208301516020820152604083015160408201526137d86060840161378e565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b80820260008212600160ff1b8414161561383757613837613765565b8181058314821517610b9957610b99613765565b6001600160a01b0392831681529116602082015260400190565b60006020828403121561387757600080fd5b8151610c5d81613221565b6000808335601e1984360301811261389957600080fd5b8301803591506001600160401b038211156138b357600080fd5b6020019150368190038213156138c857600080fd5b9250929050565b6000602082840312156138e157600080fd5b8135610c5d81613594565b6005811061390a57634e487b7160e01b600052602160045260246000fd5b9052565b6080810161391c82876138ec565b6001600160a01b039485166020830152929093166040840152606090920191909152919050565b80820180821115610b9957610b99613765565b60006001820161396857613968613765565b5060010190565b6060810161397d82866138ec565b6001600160a01b0393909316602082015260400152919050565b6000602082840312156139a957600080fd5b8151610c5d81613594565b6040815260006139c760408301856136e5565b90508260208301529392505050565b6000602082840312156139e857600080fd5b81516001600160401b038111156139fe57600080fd5b8201601f81018413613a0f57600080fd5b8051613a1d61355d82613517565b818152856020838501011115613a3257600080fd5b6137388260208301602086016136c1565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680613a7357613a73613a43565b92169190910492915050565b8181036000831280158383131683831282161715613a9f57613a9f613765565b5092915050565b8082018281126000831280158216821582161715613ac657613ac6613765565b505092915050565b8082028115828204841417610b9957610b99613765565b600082613af457613af4613a43565b500490565b6001600160a01b03929092168252602082015260400190565b60008251613b248184602087016136c1565b9190910192915050565b600082613b3d57613b3d613a43565b600160ff1b821460001984141615613b5757613b57613765565b500590565b6000600160ff1b8201613b7157613b71613765565b5060000390565b602081526000610c5d60208301846136e556fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c656405499aba408f669fb848399c146fad5bd604d50b15566bdc19e81c40922fab8dc372308269f6e4dd0b4f322160cf0edef154584a3ad62248d654ae846e3eb6e8a2646970667358221220a79040c2b39b1b2d137931f96e5f8d05365f2c272f5c4ef05a9554dca28fedf064736f6c63430008110033";
|
|
629
672
|
|
|
630
673
|
type ActionSwapYTConstructorParams =
|
|
631
|
-
| [
|
|
674
|
+
| [signer?: Signer]
|
|
632
675
|
| ConstructorParameters<typeof ContractFactory>;
|
|
633
676
|
|
|
634
677
|
const isSuperArgs = (
|
|
635
678
|
xs: ActionSwapYTConstructorParams
|
|
636
|
-
): xs is ConstructorParameters<typeof ContractFactory> =>
|
|
637
|
-
return (
|
|
638
|
-
typeof xs[0] === "string" ||
|
|
639
|
-
(Array.isArray as (arg: any) => arg is readonly any[])(xs[0]) ||
|
|
640
|
-
"_isInterface" in xs[0]
|
|
641
|
-
);
|
|
642
|
-
};
|
|
679
|
+
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
643
680
|
|
|
644
681
|
export class ActionSwapYT__factory extends ContractFactory {
|
|
645
682
|
constructor(...args: ActionSwapYTConstructorParams) {
|
|
646
683
|
if (isSuperArgs(args)) {
|
|
647
684
|
super(...args);
|
|
648
685
|
} else {
|
|
649
|
-
|
|
650
|
-
super(
|
|
651
|
-
_abi,
|
|
652
|
-
ActionSwapYT__factory.linkBytecode(linkLibraryAddresses),
|
|
653
|
-
signer
|
|
654
|
-
);
|
|
686
|
+
super(_abi, _bytecode, args[0]);
|
|
655
687
|
}
|
|
656
688
|
this.contractName = "ActionSwapYT";
|
|
657
689
|
}
|
|
658
690
|
|
|
659
|
-
static linkBytecode(
|
|
660
|
-
linkLibraryAddresses: ActionSwapYTLibraryAddresses
|
|
661
|
-
): string {
|
|
662
|
-
let linkedBytecode = _bytecode;
|
|
663
|
-
|
|
664
|
-
linkedBytecode = linkedBytecode.replace(
|
|
665
|
-
new RegExp("__\\$802f57dc5d2627d21bbb7805eff3c348c4\\$__", "g"),
|
|
666
|
-
linkLibraryAddresses[
|
|
667
|
-
"contracts/router/kyberswap/AggregationRouterHelper.sol:AggregationRouterHelper"
|
|
668
|
-
]
|
|
669
|
-
.replace(/^0x/, "")
|
|
670
|
-
.toLowerCase()
|
|
671
|
-
);
|
|
672
|
-
|
|
673
|
-
return linkedBytecode;
|
|
674
|
-
}
|
|
675
|
-
|
|
676
691
|
deploy(
|
|
677
|
-
|
|
692
|
+
_kyberScalingLib: string,
|
|
693
|
+
_bulkSellerDirectory: string,
|
|
678
694
|
overrides?: Overrides & { from?: string | Promise<string> }
|
|
679
695
|
): Promise<ActionSwapYT> {
|
|
680
696
|
return super.deploy(
|
|
681
|
-
|
|
697
|
+
_kyberScalingLib,
|
|
698
|
+
_bulkSellerDirectory,
|
|
682
699
|
overrides || {}
|
|
683
700
|
) as Promise<ActionSwapYT>;
|
|
684
701
|
}
|
|
685
702
|
getDeployTransaction(
|
|
686
|
-
|
|
703
|
+
_kyberScalingLib: string,
|
|
704
|
+
_bulkSellerDirectory: string,
|
|
687
705
|
overrides?: Overrides & { from?: string | Promise<string> }
|
|
688
706
|
): TransactionRequest {
|
|
689
|
-
return super.getDeployTransaction(
|
|
707
|
+
return super.getDeployTransaction(
|
|
708
|
+
_kyberScalingLib,
|
|
709
|
+
_bulkSellerDirectory,
|
|
710
|
+
overrides || {}
|
|
711
|
+
);
|
|
690
712
|
}
|
|
691
713
|
attach(address: string): ActionSwapYT {
|
|
692
714
|
return super.attach(address) as ActionSwapYT;
|
|
@@ -708,7 +730,3 @@ export class ActionSwapYT__factory extends ContractFactory {
|
|
|
708
730
|
return new Contract(address, _abi, signerOrProvider) as ActionSwapYT;
|
|
709
731
|
}
|
|
710
732
|
}
|
|
711
|
-
|
|
712
|
-
export interface ActionSwapYTLibraryAddresses {
|
|
713
|
-
["contracts/router/kyberswap/AggregationRouterHelper.sol:AggregationRouterHelper"]: string;
|
|
714
|
-
}
|