@pendle/core-v2 0.9.3-beta → 0.10.1-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.json +7 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultSCY.sol/PendleYearnVaultSCY.dbg.json +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/{PendleYearnVaultScy.sol → PendleYearnVaultSCY.sol}/PendleYearnVaultSCY.json +3 -3
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.json +67 -5
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.json +63 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +65 -3
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +74 -10
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +79 -15
- package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +204 -123
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +127 -73
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +93 -34
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +90 -14
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +14 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +139 -37
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +84 -56
- package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
- package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +122 -11
- 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 +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +96 -40
- 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/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +4 -0
- package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +1025 -0
- package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
- package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +4 -0
- package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.json +622 -0
- package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.dbg.json +4 -0
- package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.json +35 -0
- package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.dbg.json +4 -0
- package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.json +459 -0
- package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.dbg.json +4 -0
- package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.json +459 -0
- package/build/artifacts/contracts/core/actions/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +4 -0
- package/build/artifacts/contracts/core/actions/base/{ActionSCYAndPTBase.sol/ActionSCYAndPTBase.json → ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json} +2 -2
- package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.json +24 -0
- package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IPActionCore.sol/IPActionCore.json → IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json} +154 -909
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +598 -0
- package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +35 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +435 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IPActionYT.sol/IPActionYT.json → IPActionSwapYT.sol/IPActionSwapYT.json} +23 -11
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +349 -57
- package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +4 -0
- package/build/artifacts/contracts/{core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.json → interfaces/IPGauge.sol/IPGauge.json} +5 -5
- package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +72 -29
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +0 -11
- package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +0 -37
- package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.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/IPYieldToken.sol/IPYieldToken.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/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.json +1 -1
- package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.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/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.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/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.json +74 -0
- package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.json +2 -2
- package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
- package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
- package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +93 -0
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +447 -49
- package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +4 -0
- package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +86 -0
- package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +4 -0
- package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +37 -0
- package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.dbg.json +1 -1
- package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +8 -0
- package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol +11 -5
- package/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol +0 -1
- package/contracts/SuperComposableYield/SCY-implementations/{PendleYearnVaultScy.sol → PendleYearnVaultSCY.sol} +0 -0
- package/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol +1 -0
- package/contracts/SuperComposableYield/base-implementations/SCYBase.sol +1 -1
- package/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol +1 -1
- package/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol +7 -7
- package/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol +7 -6
- package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +4 -5
- package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol +6 -3
- package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol +6 -3
- package/contracts/core/LiquidityMining/PendleGauge.sol +3 -2
- package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +22 -28
- package/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +71 -13
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +7 -4
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +6 -2
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +4 -3
- package/contracts/core/Market/PendleMarket.sol +91 -55
- package/contracts/core/Market/PendleMarketFactory.sol +18 -33
- package/contracts/core/PendleRouter.sol +60 -52
- package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +12 -12
- package/contracts/core/YieldContracts/PendleYieldToken.sol +1 -1
- package/contracts/core/actions/ActionAddRemoveLiq.sol +366 -0
- package/contracts/core/actions/ActionCallback.sol +6 -6
- package/contracts/core/actions/ActionMintRedeem.sol +124 -0
- package/contracts/core/actions/ActionMisc.sol +24 -0
- package/contracts/core/actions/ActionSwapPT.sol +199 -0
- package/contracts/core/actions/{base/ActionSCYAndYTBase.sol → ActionSwapYT.sol} +109 -74
- package/contracts/core/actions/base/{ActionSCYAndPYBase.sol → ActionBaseMintRedeem.sol} +9 -8
- package/contracts/interfaces/IBenQiComptroller.sol +2 -0
- package/contracts/interfaces/IPActionAddRemoveLiq.sol +188 -0
- package/contracts/interfaces/IPActionMintRedeem.sol +115 -0
- package/contracts/interfaces/IPActionMisc.sol +9 -0
- package/contracts/interfaces/IPActionSwapPT.sol +69 -0
- package/contracts/interfaces/{IPActionYT.sol → IPActionSwapYT.sol} +12 -10
- package/contracts/interfaces/IPAllAction.sol +12 -3
- package/contracts/interfaces/IPGauge.sol +6 -0
- package/contracts/interfaces/IPGaugeController.sol +0 -2
- package/contracts/interfaces/IPMarket.sol +28 -10
- package/contracts/interfaces/IPMarketFactory.sol +1 -7
- package/contracts/interfaces/IPVeToken.sol +1 -1
- package/contracts/interfaces/IPVotingController.sol +0 -2
- package/contracts/interfaces/IRewardManager.sol +1 -1
- package/contracts/libraries/OracleLib.sol +214 -0
- package/contracts/libraries/RewardManagerAbstract.sol +1 -1
- package/contracts/libraries/math/MarketApproxLib.sol +227 -14
- package/contracts/libraries/math/MarketMathCore.sol +0 -33
- package/contracts/offchain-helpers/MarketMathStatic.sol +565 -0
- package/contracts/offchain-helpers/RouterStatic.sol +196 -262
- package/contracts/periphery/BoringOwnableUpgradeable.sol +62 -0
- package/deployments/43113-benqi.json +2 -2
- package/deployments/43113-core.json +7 -8
- package/deployments/43113-markets/benqi-market-6440d6.json +8 -0
- package/deployments/43113-markets/benqi-market-Dc7592.json +8 -0
- package/deployments/80001-core.json +6 -7
- package/deployments/80001-markets/benqi-market-1542e0.json +8 -0
- package/deployments/80001-markets/benqi-market-2b6D02.json +8 -0
- package/package.json +11 -11
- package/typechain-types/ActionAddRemoveLiq.ts +1037 -0
- package/typechain-types/ActionBaseMintRedeem.ts +87 -0
- package/typechain-types/ActionCore.ts +116 -104
- package/typechain-types/ActionMintRedeem.ts +665 -0
- package/typechain-types/ActionMisc.ts +105 -0
- package/typechain-types/ActionSwapPT.ts +515 -0
- package/typechain-types/ActionSwapYT.ts +515 -0
- package/typechain-types/ActionYT.ts +5 -4
- package/typechain-types/BoringOwnable.ts +194 -0
- package/typechain-types/BoringOwnableData.ts +100 -0
- package/typechain-types/BoringOwnableUpgradeable.ts +194 -0
- package/typechain-types/BoringOwnableUpgradeableData.ts +100 -0
- package/typechain-types/CelerReceiverUpg.ts +124 -19
- package/typechain-types/CelerSenderUpg.ts +116 -11
- package/typechain-types/IBenQiComptroller.ts +39 -0
- package/typechain-types/IPActionAddRemoveLiq.ts +1018 -0
- package/typechain-types/IPActionCore.ts +116 -104
- package/typechain-types/IPActionMintRedeem.ts +646 -0
- package/typechain-types/IPActionMisc.ts +105 -0
- package/typechain-types/IPActionSwapPT.ts +496 -0
- package/typechain-types/IPActionSwapYT.ts +496 -0
- package/typechain-types/IPActionYT.ts +5 -4
- package/typechain-types/IPAllAction.ts +499 -250
- package/typechain-types/IPGauge.ts +87 -0
- package/typechain-types/IPMarket.ts +133 -50
- package/typechain-types/IPMarketFactory.ts +7 -17
- package/typechain-types/IPVeToken.ts +8 -8
- package/typechain-types/IPVotingController.ts +0 -20
- package/typechain-types/IPYieldToken.ts +3 -3
- package/typechain-types/IRewardManager.ts +3 -3
- package/typechain-types/MarketMathStatic.ts +198 -0
- package/typechain-types/OracleLib.ts +124 -0
- package/typechain-types/PendleGaugeControllerBaseUpg.ts +118 -15
- package/typechain-types/PendleGaugeControllerMainchainUpg.ts +136 -9
- package/typechain-types/PendleGaugeControllerSidechainUpg.ts +138 -11
- package/typechain-types/PendleMarket.ts +178 -59
- package/typechain-types/PendleMarketFactory.ts +135 -61
- package/typechain-types/PendleRouter.ts +201 -31
- package/typechain-types/PendleVotingControllerUpg.ts +325 -149
- package/typechain-types/PendleYieldContractFactory.ts +144 -21
- package/typechain-types/RouterStatic.ts +404 -114
- package/typechain-types/VotingControllerStorageUpg.ts +182 -113
- package/typechain-types/VotingEscrowPendleMainchain.ts +170 -63
- package/typechain-types/VotingEscrowPendleSidechain.ts +163 -17
- package/typechain-types/VotingEscrowTokenBase.ts +27 -8
- package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1083 -0
- package/typechain-types/factories/ActionBaseMintRedeem__factory.ts +43 -0
- package/typechain-types/factories/ActionCallback__factory.ts +1 -1
- package/typechain-types/factories/ActionCore__factory.ts +39 -23
- package/typechain-types/factories/ActionMintRedeem__factory.ts +680 -0
- package/typechain-types/factories/ActionMisc__factory.ts +85 -0
- package/typechain-types/factories/ActionSwapPT__factory.ts +514 -0
- package/typechain-types/factories/ActionSwapYT__factory.ts +514 -0
- package/typechain-types/factories/ActionYT__factory.ts +2 -2
- package/typechain-types/factories/BoringOwnableData__factory.ts +90 -0
- package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +96 -0
- package/typechain-types/factories/BoringOwnableUpgradeable__factory.ts +143 -0
- package/typechain-types/factories/BoringOwnable__factory.ts +141 -0
- package/typechain-types/factories/CelerReceiverUpg__factory.ts +67 -5
- package/typechain-types/factories/CelerSenderUpg__factory.ts +63 -1
- package/typechain-types/factories/IBenQiComptroller__factory.ts +24 -0
- package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +1020 -0
- package/typechain-types/factories/IPActionCore__factory.ts +38 -22
- package/typechain-types/factories/IPActionMintRedeem__factory.ts +613 -0
- package/typechain-types/factories/IPActionMisc__factory.ts +47 -0
- package/typechain-types/factories/IPActionSwapPT__factory.ts +450 -0
- package/typechain-types/factories/IPActionSwapYT__factory.ts +450 -0
- package/typechain-types/factories/IPActionYT__factory.ts +1 -1
- package/typechain-types/factories/IPAllAction__factory.ts +349 -57
- package/typechain-types/factories/IPGauge__factory.ts +36 -0
- package/typechain-types/factories/IPMarketFactory__factory.ts +0 -11
- package/typechain-types/factories/IPMarket__factory.ts +72 -29
- package/typechain-types/factories/IPVeToken__factory.ts +1 -1
- package/typechain-types/factories/IPVotingController__factory.ts +0 -37
- package/typechain-types/factories/IPYieldToken__factory.ts +1 -1
- package/typechain-types/factories/IRewardManager__factory.ts +1 -1
- package/typechain-types/factories/MarketMathStatic__factory.ts +146 -0
- package/typechain-types/factories/OracleLib__factory.ts +124 -0
- package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -1
- package/typechain-types/factories/PendleERC4626SCY__factory.ts +1 -1
- package/typechain-types/factories/PendleEulerSCY__factory.ts +10 -1
- package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +65 -3
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +73 -13
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +79 -23
- package/typechain-types/factories/PendleMarketFactory__factory.ts +84 -86
- package/typechain-types/factories/PendleMarket__factory.ts +131 -37
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
- package/typechain-types/factories/PendleQiSAvaxSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleRouter__factory.ts +141 -22
- package/typechain-types/factories/PendleSAvaxSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleSJoeSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleStargateSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +203 -129
- package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleYearnVaultSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +97 -72
- package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
- package/typechain-types/factories/RouterStatic__factory.ts +253 -49
- package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +126 -72
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +93 -41
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +90 -17
- package/typechain-types/factories/VotingEscrowTokenBase__factory.ts +14 -1
- package/typechain-types/hardhat.d.ts +162 -0
- package/typechain-types/index.ts +36 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +0 -4
- package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +0 -4
- package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +0 -1785
- package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +0 -4
- package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +0 -447
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +0 -4
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +0 -4
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +0 -4
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.json +0 -24
- package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +0 -874
- package/contracts/core/actions/ActionCore.sol +0 -377
- package/contracts/core/actions/ActionYT.sol +0 -93
- package/contracts/core/actions/base/ActionSCYAndPTBase.sol +0 -303
- package/contracts/interfaces/IPActionCore.sol +0 -305
- package/contracts/interfaces/IPRouterStatic.sol +0 -152
- package/deployments/43113-markets/benqi-market-599408.json +0 -7
- package/deployments/43113-markets/benqi-market-93bbf0.json +0 -7
- package/deployments/80001-markets/benqi-market-007811.json +0 -7
- package/deployments/80001-markets/benqi-market-3fe528.json +0 -7
- package/typechain-types/FeeDistributorAbstract.ts +0 -164
- package/typechain-types/IPVotingControllerStorage.ts +0 -169
- package/typechain-types/factories/FeeDistributorAbstract__factory.ts +0 -90
- package/typechain-types/factories/IPVotingControllerStorage__factory.ts +0 -107
|
@@ -19,6 +19,70 @@
|
|
|
19
19
|
"stateMutability": "nonpayable",
|
|
20
20
|
"type": "constructor"
|
|
21
21
|
},
|
|
22
|
+
{
|
|
23
|
+
"anonymous": false,
|
|
24
|
+
"inputs": [
|
|
25
|
+
{
|
|
26
|
+
"indexed": false,
|
|
27
|
+
"internalType": "address",
|
|
28
|
+
"name": "previousAdmin",
|
|
29
|
+
"type": "address"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"indexed": false,
|
|
33
|
+
"internalType": "address",
|
|
34
|
+
"name": "newAdmin",
|
|
35
|
+
"type": "address"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"name": "AdminChanged",
|
|
39
|
+
"type": "event"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"anonymous": false,
|
|
43
|
+
"inputs": [
|
|
44
|
+
{
|
|
45
|
+
"indexed": true,
|
|
46
|
+
"internalType": "address",
|
|
47
|
+
"name": "beacon",
|
|
48
|
+
"type": "address"
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"name": "BeaconUpgraded",
|
|
52
|
+
"type": "event"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"anonymous": false,
|
|
56
|
+
"inputs": [
|
|
57
|
+
{
|
|
58
|
+
"indexed": true,
|
|
59
|
+
"internalType": "address",
|
|
60
|
+
"name": "previousOwner",
|
|
61
|
+
"type": "address"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"indexed": true,
|
|
65
|
+
"internalType": "address",
|
|
66
|
+
"name": "newOwner",
|
|
67
|
+
"type": "address"
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"name": "OwnershipTransferred",
|
|
71
|
+
"type": "event"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"anonymous": false,
|
|
75
|
+
"inputs": [
|
|
76
|
+
{
|
|
77
|
+
"indexed": true,
|
|
78
|
+
"internalType": "address",
|
|
79
|
+
"name": "implementation",
|
|
80
|
+
"type": "address"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"name": "Upgraded",
|
|
84
|
+
"type": "event"
|
|
85
|
+
},
|
|
22
86
|
{
|
|
23
87
|
"inputs": [
|
|
24
88
|
{
|
|
@@ -28,7 +92,7 @@
|
|
|
28
92
|
},
|
|
29
93
|
{
|
|
30
94
|
"internalType": "uint256",
|
|
31
|
-
"name": "
|
|
95
|
+
"name": "scyDesired",
|
|
32
96
|
"type": "uint256"
|
|
33
97
|
},
|
|
34
98
|
{
|
|
@@ -37,7 +101,7 @@
|
|
|
37
101
|
"type": "uint256"
|
|
38
102
|
}
|
|
39
103
|
],
|
|
40
|
-
"name": "
|
|
104
|
+
"name": "addLiquidityDualScyAndPtStatic",
|
|
41
105
|
"outputs": [
|
|
42
106
|
{
|
|
43
107
|
"internalType": "uint256",
|
|
@@ -46,7 +110,7 @@
|
|
|
46
110
|
},
|
|
47
111
|
{
|
|
48
112
|
"internalType": "uint256",
|
|
49
|
-
"name": "
|
|
113
|
+
"name": "scyUsed",
|
|
50
114
|
"type": "uint256"
|
|
51
115
|
},
|
|
52
116
|
{
|
|
@@ -65,9 +129,14 @@
|
|
|
65
129
|
"name": "market",
|
|
66
130
|
"type": "address"
|
|
67
131
|
},
|
|
132
|
+
{
|
|
133
|
+
"internalType": "address",
|
|
134
|
+
"name": "tokenIn",
|
|
135
|
+
"type": "address"
|
|
136
|
+
},
|
|
68
137
|
{
|
|
69
138
|
"internalType": "uint256",
|
|
70
|
-
"name": "
|
|
139
|
+
"name": "tokenDesired",
|
|
71
140
|
"type": "uint256"
|
|
72
141
|
},
|
|
73
142
|
{
|
|
@@ -76,7 +145,7 @@
|
|
|
76
145
|
"type": "uint256"
|
|
77
146
|
}
|
|
78
147
|
],
|
|
79
|
-
"name": "
|
|
148
|
+
"name": "addLiquidityDualTokenAndPtStatic",
|
|
80
149
|
"outputs": [
|
|
81
150
|
{
|
|
82
151
|
"internalType": "uint256",
|
|
@@ -85,7 +154,7 @@
|
|
|
85
154
|
},
|
|
86
155
|
{
|
|
87
156
|
"internalType": "uint256",
|
|
88
|
-
"name": "
|
|
157
|
+
"name": "tokenUsed",
|
|
89
158
|
"type": "uint256"
|
|
90
159
|
},
|
|
91
160
|
{
|
|
@@ -284,11 +353,6 @@
|
|
|
284
353
|
"name": "totalLp",
|
|
285
354
|
"type": "int256"
|
|
286
355
|
},
|
|
287
|
-
{
|
|
288
|
-
"internalType": "uint256",
|
|
289
|
-
"name": "oracleRate",
|
|
290
|
-
"type": "uint256"
|
|
291
|
-
},
|
|
292
356
|
{
|
|
293
357
|
"internalType": "address",
|
|
294
358
|
"name": "treasury",
|
|
@@ -304,11 +368,6 @@
|
|
|
304
368
|
"name": "lnFeeRateRoot",
|
|
305
369
|
"type": "uint256"
|
|
306
370
|
},
|
|
307
|
-
{
|
|
308
|
-
"internalType": "uint256",
|
|
309
|
-
"name": "rateOracleTimeWindow",
|
|
310
|
-
"type": "uint256"
|
|
311
|
-
},
|
|
312
371
|
{
|
|
313
372
|
"internalType": "uint256",
|
|
314
373
|
"name": "expiry",
|
|
@@ -323,11 +382,6 @@
|
|
|
323
382
|
"internalType": "uint256",
|
|
324
383
|
"name": "lastLnImpliedRate",
|
|
325
384
|
"type": "uint256"
|
|
326
|
-
},
|
|
327
|
-
{
|
|
328
|
-
"internalType": "uint256",
|
|
329
|
-
"name": "lastTradeTime",
|
|
330
|
-
"type": "uint256"
|
|
331
385
|
}
|
|
332
386
|
],
|
|
333
387
|
"internalType": "struct MarketState",
|
|
@@ -405,7 +459,7 @@
|
|
|
405
459
|
"type": "uint256"
|
|
406
460
|
}
|
|
407
461
|
],
|
|
408
|
-
"internalType": "struct
|
|
462
|
+
"internalType": "struct RouterStatic.RewardIndex[]",
|
|
409
463
|
"name": "rewardIndexes",
|
|
410
464
|
"type": "tuple[]"
|
|
411
465
|
}
|
|
@@ -458,7 +512,36 @@
|
|
|
458
512
|
"type": "int256"
|
|
459
513
|
}
|
|
460
514
|
],
|
|
461
|
-
"stateMutability": "
|
|
515
|
+
"stateMutability": "view",
|
|
516
|
+
"type": "function"
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
"inputs": [
|
|
520
|
+
{
|
|
521
|
+
"internalType": "address",
|
|
522
|
+
"name": "pyToken",
|
|
523
|
+
"type": "address"
|
|
524
|
+
},
|
|
525
|
+
{
|
|
526
|
+
"internalType": "address",
|
|
527
|
+
"name": "market",
|
|
528
|
+
"type": "address"
|
|
529
|
+
}
|
|
530
|
+
],
|
|
531
|
+
"name": "getTokensInOut",
|
|
532
|
+
"outputs": [
|
|
533
|
+
{
|
|
534
|
+
"internalType": "address[]",
|
|
535
|
+
"name": "tokensIn",
|
|
536
|
+
"type": "address[]"
|
|
537
|
+
},
|
|
538
|
+
{
|
|
539
|
+
"internalType": "address[]",
|
|
540
|
+
"name": "tokensOut",
|
|
541
|
+
"type": "address[]"
|
|
542
|
+
}
|
|
543
|
+
],
|
|
544
|
+
"stateMutability": "view",
|
|
462
545
|
"type": "function"
|
|
463
546
|
},
|
|
464
547
|
{
|
|
@@ -525,7 +608,7 @@
|
|
|
525
608
|
"type": "uint256"
|
|
526
609
|
}
|
|
527
610
|
],
|
|
528
|
-
"internalType": "struct
|
|
611
|
+
"internalType": "struct RouterStatic.TokenAmount",
|
|
529
612
|
"name": "ptBalance",
|
|
530
613
|
"type": "tuple"
|
|
531
614
|
},
|
|
@@ -542,7 +625,7 @@
|
|
|
542
625
|
"type": "uint256"
|
|
543
626
|
}
|
|
544
627
|
],
|
|
545
|
-
"internalType": "struct
|
|
628
|
+
"internalType": "struct RouterStatic.TokenAmount",
|
|
546
629
|
"name": "scyBalance",
|
|
547
630
|
"type": "tuple"
|
|
548
631
|
},
|
|
@@ -564,12 +647,12 @@
|
|
|
564
647
|
"type": "uint256"
|
|
565
648
|
}
|
|
566
649
|
],
|
|
567
|
-
"internalType": "struct
|
|
650
|
+
"internalType": "struct RouterStatic.AssetAmount",
|
|
568
651
|
"name": "assetBalance",
|
|
569
652
|
"type": "tuple"
|
|
570
653
|
}
|
|
571
654
|
],
|
|
572
|
-
"internalType": "struct
|
|
655
|
+
"internalType": "struct RouterStatic.UserMarketInfo",
|
|
573
656
|
"name": "userMarketInfo",
|
|
574
657
|
"type": "tuple"
|
|
575
658
|
}
|
|
@@ -617,7 +700,7 @@
|
|
|
617
700
|
"type": "uint256"
|
|
618
701
|
}
|
|
619
702
|
],
|
|
620
|
-
"internalType": "struct
|
|
703
|
+
"internalType": "struct RouterStatic.TokenAmount",
|
|
621
704
|
"name": "ptBalance",
|
|
622
705
|
"type": "tuple"
|
|
623
706
|
},
|
|
@@ -634,7 +717,7 @@
|
|
|
634
717
|
"type": "uint256"
|
|
635
718
|
}
|
|
636
719
|
],
|
|
637
|
-
"internalType": "struct
|
|
720
|
+
"internalType": "struct RouterStatic.TokenAmount",
|
|
638
721
|
"name": "scyBalance",
|
|
639
722
|
"type": "tuple"
|
|
640
723
|
},
|
|
@@ -656,12 +739,12 @@
|
|
|
656
739
|
"type": "uint256"
|
|
657
740
|
}
|
|
658
741
|
],
|
|
659
|
-
"internalType": "struct
|
|
742
|
+
"internalType": "struct RouterStatic.AssetAmount",
|
|
660
743
|
"name": "assetBalance",
|
|
661
744
|
"type": "tuple"
|
|
662
745
|
}
|
|
663
746
|
],
|
|
664
|
-
"internalType": "struct
|
|
747
|
+
"internalType": "struct RouterStatic.UserMarketInfo[]",
|
|
665
748
|
"name": "userMarketPositions",
|
|
666
749
|
"type": "tuple[]"
|
|
667
750
|
}
|
|
@@ -719,7 +802,7 @@
|
|
|
719
802
|
"type": "uint256"
|
|
720
803
|
}
|
|
721
804
|
],
|
|
722
|
-
"internalType": "struct
|
|
805
|
+
"internalType": "struct RouterStatic.TokenAmount",
|
|
723
806
|
"name": "unclaimedInterest",
|
|
724
807
|
"type": "tuple"
|
|
725
808
|
},
|
|
@@ -736,12 +819,12 @@
|
|
|
736
819
|
"type": "uint256"
|
|
737
820
|
}
|
|
738
821
|
],
|
|
739
|
-
"internalType": "struct
|
|
822
|
+
"internalType": "struct RouterStatic.TokenAmount[]",
|
|
740
823
|
"name": "unclaimedRewards",
|
|
741
824
|
"type": "tuple[]"
|
|
742
825
|
}
|
|
743
826
|
],
|
|
744
|
-
"internalType": "struct
|
|
827
|
+
"internalType": "struct RouterStatic.UserPYInfo",
|
|
745
828
|
"name": "userPYInfo",
|
|
746
829
|
"type": "tuple"
|
|
747
830
|
}
|
|
@@ -799,7 +882,7 @@
|
|
|
799
882
|
"type": "uint256"
|
|
800
883
|
}
|
|
801
884
|
],
|
|
802
|
-
"internalType": "struct
|
|
885
|
+
"internalType": "struct RouterStatic.TokenAmount",
|
|
803
886
|
"name": "unclaimedInterest",
|
|
804
887
|
"type": "tuple"
|
|
805
888
|
},
|
|
@@ -816,12 +899,12 @@
|
|
|
816
899
|
"type": "uint256"
|
|
817
900
|
}
|
|
818
901
|
],
|
|
819
|
-
"internalType": "struct
|
|
902
|
+
"internalType": "struct RouterStatic.TokenAmount[]",
|
|
820
903
|
"name": "unclaimedRewards",
|
|
821
904
|
"type": "tuple[]"
|
|
822
905
|
}
|
|
823
906
|
],
|
|
824
|
-
"internalType": "struct
|
|
907
|
+
"internalType": "struct RouterStatic.UserPYInfo[]",
|
|
825
908
|
"name": "userPYPositions",
|
|
826
909
|
"type": "tuple[]"
|
|
827
910
|
}
|
|
@@ -862,7 +945,7 @@
|
|
|
862
945
|
"type": "uint256"
|
|
863
946
|
}
|
|
864
947
|
],
|
|
865
|
-
"internalType": "struct
|
|
948
|
+
"internalType": "struct RouterStatic.TokenAmount[]",
|
|
866
949
|
"name": "rewards",
|
|
867
950
|
"type": "tuple[]"
|
|
868
951
|
}
|
|
@@ -907,7 +990,7 @@
|
|
|
907
990
|
"type": "uint256"
|
|
908
991
|
}
|
|
909
992
|
],
|
|
910
|
-
"internalType": "struct
|
|
993
|
+
"internalType": "struct RouterStatic.TokenAmount",
|
|
911
994
|
"name": "unclaimedInterest",
|
|
912
995
|
"type": "tuple"
|
|
913
996
|
},
|
|
@@ -924,12 +1007,12 @@
|
|
|
924
1007
|
"type": "uint256"
|
|
925
1008
|
}
|
|
926
1009
|
],
|
|
927
|
-
"internalType": "struct
|
|
1010
|
+
"internalType": "struct RouterStatic.TokenAmount[]",
|
|
928
1011
|
"name": "unclaimedRewards",
|
|
929
1012
|
"type": "tuple[]"
|
|
930
1013
|
}
|
|
931
1014
|
],
|
|
932
|
-
"internalType": "struct
|
|
1015
|
+
"internalType": "struct RouterStatic.UserPYInfo",
|
|
933
1016
|
"name": "userPYInfo",
|
|
934
1017
|
"type": "tuple"
|
|
935
1018
|
}
|
|
@@ -945,6 +1028,13 @@
|
|
|
945
1028
|
"stateMutability": "pure",
|
|
946
1029
|
"type": "function"
|
|
947
1030
|
},
|
|
1031
|
+
{
|
|
1032
|
+
"inputs": [],
|
|
1033
|
+
"name": "initialize",
|
|
1034
|
+
"outputs": [],
|
|
1035
|
+
"stateMutability": "nonpayable",
|
|
1036
|
+
"type": "function"
|
|
1037
|
+
},
|
|
948
1038
|
{
|
|
949
1039
|
"inputs": [
|
|
950
1040
|
{
|
|
@@ -998,6 +1088,32 @@
|
|
|
998
1088
|
"stateMutability": "nonpayable",
|
|
999
1089
|
"type": "function"
|
|
1000
1090
|
},
|
|
1091
|
+
{
|
|
1092
|
+
"inputs": [],
|
|
1093
|
+
"name": "owner",
|
|
1094
|
+
"outputs": [
|
|
1095
|
+
{
|
|
1096
|
+
"internalType": "address",
|
|
1097
|
+
"name": "",
|
|
1098
|
+
"type": "address"
|
|
1099
|
+
}
|
|
1100
|
+
],
|
|
1101
|
+
"stateMutability": "view",
|
|
1102
|
+
"type": "function"
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
"inputs": [],
|
|
1106
|
+
"name": "proxiableUUID",
|
|
1107
|
+
"outputs": [
|
|
1108
|
+
{
|
|
1109
|
+
"internalType": "bytes32",
|
|
1110
|
+
"name": "",
|
|
1111
|
+
"type": "bytes32"
|
|
1112
|
+
}
|
|
1113
|
+
],
|
|
1114
|
+
"stateMutability": "view",
|
|
1115
|
+
"type": "function"
|
|
1116
|
+
},
|
|
1001
1117
|
{
|
|
1002
1118
|
"inputs": [
|
|
1003
1119
|
{
|
|
@@ -1083,11 +1199,11 @@
|
|
|
1083
1199
|
"type": "uint256"
|
|
1084
1200
|
}
|
|
1085
1201
|
],
|
|
1086
|
-
"name": "
|
|
1202
|
+
"name": "removeLiquidityDualScyAndPtStatic",
|
|
1087
1203
|
"outputs": [
|
|
1088
1204
|
{
|
|
1089
1205
|
"internalType": "uint256",
|
|
1090
|
-
"name": "
|
|
1206
|
+
"name": "netScyOut",
|
|
1091
1207
|
"type": "uint256"
|
|
1092
1208
|
},
|
|
1093
1209
|
{
|
|
@@ -1110,13 +1226,18 @@
|
|
|
1110
1226
|
"internalType": "uint256",
|
|
1111
1227
|
"name": "lpToRemove",
|
|
1112
1228
|
"type": "uint256"
|
|
1229
|
+
},
|
|
1230
|
+
{
|
|
1231
|
+
"internalType": "address",
|
|
1232
|
+
"name": "tokenOut",
|
|
1233
|
+
"type": "address"
|
|
1113
1234
|
}
|
|
1114
1235
|
],
|
|
1115
|
-
"name": "
|
|
1236
|
+
"name": "removeLiquidityDualTokenAndPtStatic",
|
|
1116
1237
|
"outputs": [
|
|
1117
1238
|
{
|
|
1118
1239
|
"internalType": "uint256",
|
|
1119
|
-
"name": "
|
|
1240
|
+
"name": "netTokenOut",
|
|
1120
1241
|
"type": "uint256"
|
|
1121
1242
|
},
|
|
1122
1243
|
{
|
|
@@ -1235,6 +1356,13 @@
|
|
|
1235
1356
|
"stateMutability": "nonpayable",
|
|
1236
1357
|
"type": "function"
|
|
1237
1358
|
},
|
|
1359
|
+
{
|
|
1360
|
+
"inputs": [],
|
|
1361
|
+
"name": "renounceOwnership",
|
|
1362
|
+
"outputs": [],
|
|
1363
|
+
"stateMutability": "nonpayable",
|
|
1364
|
+
"type": "function"
|
|
1365
|
+
},
|
|
1238
1366
|
{
|
|
1239
1367
|
"inputs": [
|
|
1240
1368
|
{
|
|
@@ -1662,10 +1790,280 @@
|
|
|
1662
1790
|
],
|
|
1663
1791
|
"stateMutability": "nonpayable",
|
|
1664
1792
|
"type": "function"
|
|
1793
|
+
},
|
|
1794
|
+
{
|
|
1795
|
+
"inputs": [
|
|
1796
|
+
{
|
|
1797
|
+
"internalType": "address",
|
|
1798
|
+
"name": "newOwner",
|
|
1799
|
+
"type": "address"
|
|
1800
|
+
}
|
|
1801
|
+
],
|
|
1802
|
+
"name": "transferOwnership",
|
|
1803
|
+
"outputs": [],
|
|
1804
|
+
"stateMutability": "nonpayable",
|
|
1805
|
+
"type": "function"
|
|
1806
|
+
},
|
|
1807
|
+
{
|
|
1808
|
+
"inputs": [
|
|
1809
|
+
{
|
|
1810
|
+
"internalType": "address",
|
|
1811
|
+
"name": "newImplementation",
|
|
1812
|
+
"type": "address"
|
|
1813
|
+
}
|
|
1814
|
+
],
|
|
1815
|
+
"name": "upgradeTo",
|
|
1816
|
+
"outputs": [],
|
|
1817
|
+
"stateMutability": "nonpayable",
|
|
1818
|
+
"type": "function"
|
|
1819
|
+
},
|
|
1820
|
+
{
|
|
1821
|
+
"inputs": [
|
|
1822
|
+
{
|
|
1823
|
+
"internalType": "address",
|
|
1824
|
+
"name": "newImplementation",
|
|
1825
|
+
"type": "address"
|
|
1826
|
+
},
|
|
1827
|
+
{
|
|
1828
|
+
"internalType": "bytes",
|
|
1829
|
+
"name": "data",
|
|
1830
|
+
"type": "bytes"
|
|
1831
|
+
}
|
|
1832
|
+
],
|
|
1833
|
+
"name": "upgradeToAndCall",
|
|
1834
|
+
"outputs": [],
|
|
1835
|
+
"stateMutability": "payable",
|
|
1836
|
+
"type": "function"
|
|
1665
1837
|
}
|
|
1666
1838
|
],
|
|
1667
|
-
"bytecode": "0x610160604052600060c081905260001960e081905261010082815261012081905266038d7ea4c680006101408190528380556001929092556002929092556003919091556004553480156200005357600080fd5b5060405162005c8c38038062005c8c8339810160408190526200007691620000a7565b6001600160a01b039182166080521660a052620000e6565b6001600160a01b0381168114620000a457600080fd5b50565b60008060408385031215620000bb57600080fd5b8251620000c8816200008e565b6020840151909250620000db816200008e565b809150509250929050565b60805160a051615b726200011a60003960006128b0015260008181610f1f0152818161276501526128150152615b726000f3fe608060405234801561001057600080fd5b50600436106101e25760003560e01c80626024ef146101e757806303670dba1461021a578063067cbde11461022d5780630cf85bcc146102405780630f8cb321146102645780631272d863146102855780631b9d358d146102985780631be1dc8e146102ab5780631e965851146102d357806320979416146102e157806321b7679d146102f4578063227501f5146103075780632ec8d844146103285780632f7707091461033b57806331c6d55c1461034e57806336233bd9146102d3578063372cfb93146103615780633857a07b146103815780633badd710146103a357806345324d9c146103b657806355b4fff5146103c957806355bbcd73146103e957806362eaf69d1461040957806368d384c01461041c57806372568bac1461042f578063739baebe146102d35780638a719769146104425780639225afd614610455578063a749840a14610475578063a9d09ae3146102d3578063b24898f414610495578063b68d898d146104a8578063bae0df13146104bb578063c74141f1146104ce578063d0f2034e146104e1578063d34344cc146104ef578063d52eacb214610502578063db39d88614610534578063dc7b316314610547578063e83316041461055a578063efb7601d1461057b575b600080fd5b6101fa6101f5366004614f0f565b61058e565b604080519384526020840192909252908201526060015b60405180910390f35b6101fa610228366004614f0f565b610675565b6101fa61023b366004614f0f565b610748565b61025361024e366004614f3b565b6107f0565b604051610211959493929190614f58565b610277610272366004614f0f565b61096b565b604051908152602001610211565b6101fa610293366004615027565b610ab1565b6102776102a6366004614f3b565b610af1565b6102be6102b9366004614f0f565b610b73565b60408051928352602083019190915201610211565b6101fa610293366004614f0f565b6101fa6102ef366004614f0f565b610d44565b6101fa610302366004615027565b610e19565b61031a610315366004614f3b565b610f1a565b604051610211929190615069565b610277610336366004615027565b611083565b6101fa610349366004615083565b61116b565b6101fa61035c366004615027565b611209565b61037461036f3660046150b8565b611219565b60405161021191906151a4565b61039461038f366004614f3b565b61155e565b604051610211939291906151b3565b6101fa6103b1366004615211565b611825565b6101fa6103c4366004614f0f565b611914565b6103dc6103d7366004615252565b6119ed565b60405161021191906152d9565b6103fc6103f7366004615328565b611ab4565b6040516102119190615362565b6102be610417366004614f0f565b611af8565b61027761042a366004614f0f565b611b84565b61027761043d366004614f0f565b611bce565b6101fa610450366004614f0f565b611c4a565b6104686104633660046150b8565b611d26565b604051610211919061540e565b610488610483366004615252565b6121c6565b6040516102119190615421565b6101fa6104a3366004614f0f565b612285565b6101fa6104b6366004614f0f565b612323565b6101fa6104c9366004615083565b6123f8565b6102776104dc366004614f3b565b6125f5565b6101fa610293366004615211565b6102776104fd366004615211565b612684565b610515610510366004614f3b565b61275e565b6040805193151584529115156020840152151590820152606001610211565b610277610542366004614f0f565b612936565b6101fa610555366004615211565b612a49565b61056d6105683660046150b8565b612b28565b604051610211929190615483565b610277610589366004614f3b565b612d63565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b81526004016105c19190615362565b61018060405180830381865afa1580156105df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106039190615516565b9050600061061087610af1565b6040805160a081018252600054815260015460208201526002549181019190915260035460608201526004546080820152909150610655908390839089904290612d70565b91965090945061066a90508761042a87612f91565b925050509250925092565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b81526004016106a89190615362565b61018060405180830381865afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea9190615516565b905060006106f787610af1565b9050600061071061070789610af1565b84908942612fa8565b9550905060006107208389612fe7565b905061072c8183612ff3565b965061073b8961042a8a612f91565b9450505050509250925092565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b815260040161077b9190615362565b61018060405180830381865afa158015610799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bd9190615516565b90506107d46107cb87610af1565b82908742612fa8565b90945092506107e68661042a87612f91565b9150509250925092565b6000806108606040518061018001604052806000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000806000869050600080886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156108a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cd91906155b7565b5091509150809750819650826001600160a01b03166339e718f660016040518263ffffffff1660e01b81526004016109059190615362565b61018060405180830381865afa158015610923573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109479190615516565b9550610952896125f5565b945061095d89612d63565b935050505091939590929450565b604051631cf38c7b60e11b8152600090829082906001600160a01b038616906339e718f69061099e908490600401615362565b61018060405180830381865afa1580156109bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e09190615516565b905060006109f86109f087610af1565b83904261300a565b90506000610a19836000015183602001518460000151856040015188613124565b90506000841315610a85576000610a3d8360600151836131f590919063ffffffff16565b9050670de0b6b3a7640000811215610a705760405162461bcd60e51b8152600401610a67906155f9565b60405180910390fd5b610a7981613224565b95505050505050610aab565b610aa4610a9f83606001518361323790919063ffffffff16565b613224565b9450505050505b92915050565b6000808060405162461bcd60e51b8152600401610a67906020808252600f908201526e1393d5081253541311535153951151608a1b604082015260600190565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5691906155b7565b92505050610b6c816001600160a01b0316613255565b9392505050565b6000806000846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda91906155b7565b505090506000816001600160a01b03166376d5de856040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c429190615628565b9050600080876001600160a01b03166339e718f660006040518263ffffffff1660e01b8152600401610c749190615362565b61018060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190615516565b9050610cc281886132bb565b60405163cbe52ae360e01b81529096509092506001600160a01b0385169063cbe52ae390610cf69086908690600401615645565b602060405180830381865afa158015610d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d37919061565e565b9550505050509250929050565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b8152600401610d779190615362565b61018060405180830381865afa158015610d95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db99190615516565b9050610e04610dc787610af1565b6040805160a081018252600054815260015460208201526002549181019190915260035460608201526004546080820152839190889042906132f6565b9195509093506107e690508661042a86612f91565b600080600080610e298787611914565b8094508195508293505050506000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9991906155b7565b505060405163cbe52ae360e01b81529091506001600160a01b0382169063cbe52ae390610ecc9089908690600401615645565b602060405180830381865afa158015610ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0d919061565e565b9450505093509350939050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371846aa8846040518263ffffffff1660e01b8152600401610f699190615677565b602060405180830381865afa158015610f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faa919061568b565b1561101757826001600160a01b031663d94073d46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110119190615628565b93915050565b829150826001600160a01b031663781c18db6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107c9190615628565b9050915091565b600080846001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e89190615628565b9050806001600160a01b031663cbe52ae3846111048888611bce565b6040518363ffffffff1660e01b8152600401611121929190615645565b602060405180830381865afa15801561113e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611162919061565e565b95945050505050565b600080600080866001600160a01b03166339e718f660006040518263ffffffff1660e01b815260040161119e9190615362565b61018060405180830381865afa1580156111bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e09190615516565b90506111f86111ee88610af1565b8290888842613475565b919a90995090975095505050505050565b600080600080610e298787610748565b611221614e43565b6040516370a0823160e01b815283906000906001600160a01b038316906370a0823190611252908790600401615677565b602060405180830381865afa15801561126f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611293919061565e565b6001600160a01b0380871685526020850182905260408051630b2339af60e21b815290519293506000928392861691632c8ce6bc9160048083019260609291908290030181865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131091906155b7565b5091509150816001600160a01b031663a40bee506040518163ffffffff1660e01b8152600401606060405180830381865afa158015611353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137791906156ad565b5060808701516001600160a01b038216602082015282600181111561139e5761139e615109565b60018111156113af576113af615109565b90525050604051631cf38c7b60e11b81526000906001600160a01b038616906339e718f6906113e2908490600401615362565b61018060405180830381865afa158015611400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114249190615516565b6040810151909150600081900361144057505050505050610aab565b81516000908290611451908861570f565b61145b9190615744565b9050600082846020015188611470919061570f565b61147a9190615744565b90506040518060400160405280866001600160a01b031681526020018381525089604001819052506040518060400160405280876001600160a01b03168152602001828152508960600181905250670de0b6b3a7640000866001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561150f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611533919061565e565b61153d908361570f565b6115479190615744565b60808a015160400152505050505050505092915050565b6000806060600061156e85610f1a565b9150506000819050806001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af11580156115b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115da919061565e565b9450806001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561161a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163e919061565e565b93506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611680573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116a8919081019061577b565b905080516001600160401b038111156116c3576116c361549c565b60405190808252806020026020018201604052801561170857816020015b60408051808201909152600080825260208201528152602001906001900390816116e15790505b5093506000826001600160a01b031663f8b2f9916040518163ffffffff1660e01b81526004016000604051808303816000875af115801561174d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117759190810190615819565b905060005b82518110156118195760008382815181106117975761179761589e565b60200260200101519050808783815181106117b4576117b461589e565b60209081029190910101516001600160a01b03909116905282518390839081106117e0576117e061589e565b60200260200101518783815181106117fa576117fa61589e565b602090810291909101810151015250611812816158b4565b905061177a565b50505050509193909250565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188d91906155b7565b5050905061190487826001600160a01b031663b8f82b2689896040518363ffffffff1660e01b81526004016118c3929190615645565b602060405180830381865afa1580156118e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b6919061565e565b9350935093505093509350939050565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b81526004016119479190615362565b61018060405180830381865afa158015611965573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119899190615516565b9050600061199687610af1565b905060006119a6838389426134e2565b9550905060006119b68383613506565b905060006119c4828a6158cd565b90506119d08482613513565b97506119df8a61042a8b61351f565b955050505050509250925092565b6060816001600160401b03811115611a0757611a0761549c565b604051908082528060200260200182016040528015611a4057816020015b611a2d614e43565b815260200190600190039081611a255790505b50905060005b82811015611aac57611a7e848483818110611a6357611a6361589e565b9050602002016020810190611a789190614f3b565b86611219565b828281518110611a9057611a9061589e565b602002602001018190525080611aa5906158b4565b9050611a46565b509392505050565b60008082604001351180611acc575060008260600135115b80611ada575060a082013515155b80610aab57506000611aef60c08401846158e4565b90501192915050565b6000806000846001600160a01b03166339e718f660006040518263ffffffff1660e01b8152600401611b2a9190615362565b61018060405180830381865afa158015611b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6c9190615516565b9050611b7881856132bb565b90969095509350505050565b600080611b9084612d63565b90506000611b9e858561096b565b905061116282611bc8611bb08561351f565b611bb98561351f565b611bc39190615934565b613535565b9061354c565b600080839050611c42816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3b919061565e565b849061354c565b949350505050565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b8152600401611c7d9190615362565b61018060405180830381865afa158015611c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbf9190615516565b90506000611ccc87610af1565b6040805160a081018252600054815260015460208201526002549181019190915260035460608201526004546080820152909150611d1190839083908990429061357b565b91965090945061066a90508761042a8761351f565b611d2e614e92565b611d3783610f1a565b6001600160a01b03908116808452911660208301526040516370a0823160e01b815281906370a0823190611d6f908690600401615677565b602060405180830381865afa158015611d8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db0919061565e565b82604001818152505081602001516001600160a01b03166370a08231846040518263ffffffff1660e01b8152600401611de99190615677565b602060405180830381865afa158015611e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2a919061565e565b826060018181525050806001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e959190615628565b60808301516001600160a01b03918216905260405163d68076c360e01b81529082169063d68076c390611ecc908690600401615677565b6040805180830381865afa158015611ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0c919061598a565b9050806001600160801b03169050826080015160200181815250506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611f67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f8f919081019061577b565b9050600081516001600160401b03811115611fac57611fac61549c565b604051908082528060200260200182016040528015611fe557816020015b611fd2614ee0565b815260200190600190039081611fca5790505b5090506000805b835181101561210c5760008482815181106120095761200961589e565b602002602001015190506000866001600160a01b0316635cbadbe4838b6040518363ffffffff1660e01b8152600401612043929190615069565b6040805180830381865afa15801561205f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612083919061598a565b6001600160801b031691505080156120f957818585815181106120a8576120a861589e565b6020026020010151600001906001600160a01b031690816001600160a01b031681525050808585815181106120df576120df61589e565b60209081029190910181015101526120f6846158b4565b93505b505080612105906158b4565b9050611fec565b50806001600160401b038111156121255761212561549c565b60405190808252806020026020018201604052801561215e57816020015b61214b614ee0565b8152602001906001900390816121435790505b5060a086015260005b818110156121bb578281815181106121815761218161589e565b60200260200101518660a00151828151811061219f5761219f61589e565b6020026020010181905250806121b4906158b4565b9050612167565b505050505092915050565b6060816001600160401b038111156121e0576121e061549c565b60405190808252806020026020018201604052801561221957816020015b612206614e92565b8152602001906001900390816121fe5790505b50905060005b82811015611aac5761225784848381811061223c5761223c61589e565b90506020020160208101906122519190614f3b565b86611d26565b8282815181106122695761226961589e565b60200260200101819052508061227e906158b4565b905061221f565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b81526004016122b89190615362565b61018060405180830381865afa1580156122d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fa9190615516565b905061231161230887610af1565b829087426134e2565b90945092506107e68661042a8761351f565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b81526004016123569190615362565b61018060405180830381865afa158015612374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123989190615516565b90506123e36123a687610af1565b6040805160a08101825260005481526001546020820152600254918101919091526003546060820152600454608082015283919088904290613700565b9195509093506107e690508661042a8661351f565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561243c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246091906155b7565b505090506000816001600160a01b03166376d5de856040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c89190615628565b90506000826001600160a01b031663b8f82b26838a6040518363ffffffff1660e01b81526004016124fa929190615645565b602060405180830381865afa158015612517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253b919061565e565b90506000808a6001600160a01b03166339e718f660006040518263ffffffff1660e01b815260040161256d9190615362565b61018060405180830381865afa15801561258b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125af9190615516565b90506125c76125bd8c610af1565b8290858c42613475565b919a5090975092506125e59050836125df848d61570f565b9061384e565b9650505050505093509350939050565b600080826001600160a01b03166339e718f660006040518263ffffffff1660e01b81526004016126259190615362565b61018060405180830381865afa158015612643573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126679190615516565b9050600061267982610140015161351f565b9050611c4281613871565b600080846001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e99190615628565b905061116285826001600160a01b031663b8f82b2687876040518363ffffffff1660e01b815260040161271d929190615645565b602060405180830381865afa15801561273a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610542919061565e565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318b7373d856040518263ffffffff1660e01b81526004016127af9190615677565b602060405180830381865afa1580156127cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f0919061568b565b156127fe576001925061292f565b604051630e308d5560e31b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906371846aa89061284a908790600401615677565b602060405180830381865afa158015612867573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061288b919061568b565b15612899576001915061292f565b6040516358e6309f60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906358e6309f906128e5908790600401615677565b602060405180830381865afa158015612902573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612926919061568b565b1561292f575060015b9193909250565b600080839050806001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561297a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299e919061568b565b156129db5760405162461bcd60e51b815260206004820152600d60248201526c1655081a5cc8195e1c1a5c9959609a1b6044820152606401610a67565b611c42816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a42919061565e565b8490613c86565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab191906155b7565b5050905061190487826001600160a01b031663b8f82b2689896040518363ffffffff1660e01b8152600401612ae7929190615645565b602060405180830381865afa158015612b04573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f5919061565e565b6040516370a0823160e01b815260009060609084906001600160a01b038216906370a0823190612b5c908490600401615677565b602060405180830381865afa158015612b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9d919061565e565b92506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612bdf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c07919081019061577b565b905080516001600160401b03811115612c2257612c2261549c565b604051908082528060200260200182016040528015612c5b57816020015b612c48614ee0565b815260200190600190039081612c405790505b50925060005b8151811015612d59576000828281518110612c7e57612c7e61589e565b6020026020010151905080858381518110612c9b57612c9b61589e565b60209081029190910101516001600160a01b03918216905260405163172eb6f960e21b815290891690635cbadbe490612cda9084908b90600401615069565b6040805180830381865afa158015612cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1a919061598a565b9050806001600160801b03169050858381518110612d3a57612d3a61589e565b602090810291909101810151015250612d52816158b4565b9050612c61565b5050509250929050565b6000610aab82600061096b565b6000806000612d7e84613ca4565b612d9a5760405162461bcd60e51b8152600401610a67906159bd565b612de4604051806101000160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081525090565b6000612df18a8a8961300a565b9050600019866020015103612e1357612e0d8160200151613ccc565b60208701525b612e1d8989613ce3565b60e083015260005b8660600151811015612f4f57612e3b8188613cef565b8084528b5160a0850151612e5192859291613d4e565b60a0850152151560c08401819052612e7b578251612e71906001906158cd565b6020880152612e25565b612e9482612e8c8560000151612f91565b8d9190613da1565b604085015260208401819052612ea990613224565b606084018190528351612ebc91906158cd565b6080840181905260e084015110612f33578251875260808084015160e085015191890151600092612eed9291613eae565b90508015612f2d5783516080850151612f07908d90613513565b612f1e612f178760400151613224565b8e90613513565b96509650965050505050612f86565b50612f47565b8251612f41906001906158cd565b60208801525b600101612e25565b5060405162461bcd60e51b815260206004820152600b60248201526a185c1c1c9bde0819985a5b60aa1b6044820152606401610a67565b955095509592505050565b6000612f9c8261351f565b610aab906000196159ec565b600080600080612fc28888612fbc89612f91565b88613ee1565b91509150612fcf82613224565b9350612fda81613224565b9250505094509492505050565b6000610b6c8383613fae565b600081831015613004576000610b6c565b50900390565b6130356040518060800160405280600081526020016000815260200160008152602001600081525090565b61010084015182106130595760405162461bcd60e51b8152600401610a6790615a71565b60008285610100015161306c91906158cd565b90506130788582613fd0565b8252602085015161308a908590614054565b60208301528451158015906130a25750602082015115155b6130e55760405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206d61726b657420737461746560601b6044820152606401610a67565b6131038560000151866101400151846020015185600001518561408b565b604083015260c08501516131179082614108565b6060830152509392505050565b6000806131318784614141565b90506000613149613142888a615a99565b83906131f5565b9050670d529ae9e860000081131561319d5760405162461bcd60e51b81526020600482015260176024820152761b585e081c1c9bdc1bdc9d1a5bdb88195e18d959591959604a1b6044820152606401610a67565b60006131a882614188565b9050856131b582896131f5565b6131bf9190615a99565b9350670de0b6b3a76400008412156131e95760405162461bcd60e51b8152600401610a67906155f9565b50505095945050505050565b60008061320a670de0b6b3a7640000856159ec565b905082818161321b5761321b61572e565b05949350505050565b60008082121561323357600080fd5b5090565b60008061324483856159ec565b9050670de0b6b3a76400008161321b565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015613297573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aab919061565e565b6000806000806132d3866132ce8761351f565b614207565b915091506132e082613224565b93506132eb81613224565b925050509250929050565b600080600061330484613ca4565b6133205760405162461bcd60e51b8152600401610a67906159bd565b6133626040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b600061336f8a8a8961300a565b90506000198660200151036133915761338b8160200151613ccc565b60208701525b61339b8989613506565b608083015260005b8660600151811015612f4f576133b98188613cef565b8084528b5160a08501516133cf92859291613d4e565b60a0850152151560c084018190526133ed57825160208801526133a3565b6133fe82612e8c8560000151612f91565b60408501526020840181905261341390613224565b60608401819052608084015111613468578251602088015260608301516080808501519089015160009261344892909161431a565b905080156134625783516060850151612f07908d90613513565b5061346d565b825187525b6001016133a3565b60008060008060008060008061349e8d8d61348f8e61351f565b6134988e61351f565b8d614348565b93509350935093506134af84613224565b97506134ba83613224565b96506134c582613224565b95506134d081613224565b94505050505095509550955095915050565b6000806000806134f68888612fbc8961351f565b91509150612fcf610a9f83614554565b600082611c428184614562565b6000610b6c838361457a565b60006001600160ff1b0382111561323357600080fd5b60008082136132335761354782615ada565b610aab565b600080613561670de0b6b3a76400008561570f565b90508281816135725761357261572e565b04949350505050565b600080600061358984613ca4565b6135a55760405162461bcd60e51b8152600401610a67906159bd565b6135de6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006135eb8a8a8961300a565b905060001986602001510361360c578951613606908261458f565b60208701525b6136168989613ce3565b825260005b8660600151811015612f4f576136318188613cef565b60208401819052613647908390612e8c9061351f565b60608501526040840181905261365c90613535565b60808401819052602084015161367291906158cd565b60a084018190528351116136e5576020808401519088015260a0830151835160808901516136a192919061431a565b156136e057602083015160a08401516136bb908c90613513565b6136d26136cb8660600151613224565b8d90613513565b955095509550505050612f86565b6136f8565b60208301516136f5906001615af6565b87525b60010161361b565b600080600061370e84613ca4565b61372a5760405162461bcd60e51b8152600401610a67906159bd565b61375c6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b60006137698a8a8961300a565b905060001986602001510361378a578951613784908261458f565b60208701525b6137948989613ce3565b825260005b8660600151811015612f4f576137af8188613cef565b602084018190526137c5908390612e8c9061351f565b6060850152604084018190526137da90613535565b6080840181905283511061383b57602083015187526080808401518451918901516000926138089291613eae565b905080156138355760208401516080850151613825908d90613513565b612f1e612f178760600151613224565b50613846565b602080840151908801525b600101613799565b600081600161385d8286615af6565b61386791906158cd565b610b6c9190615744565b6000680238fd42c5cf03ffff198212158015613896575068070c1cc73b00c800008213155b6138d55760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610a67565b600082121561390d576138ea82600003613871565b6a0c097ce7bc90715b34b9f160241b816139065761390661572e565b0592915050565b60006806f05b59d3b2000000831261394b57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b613981565b6803782dace9d9000000831261397d57506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380613981565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126139d15768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412613a0d576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412613a4757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412613a81576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412613aba57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412613af35768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412613b2c576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412613b655768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080613c93838561570f565b9050670de0b6b3a764000081613572565b60008160200151826000015111158015610aab57505060800151670de0b6b3a7640000101590565b60006001613cd983613224565b610aab91906158cd565b6000610b6c8383614620565b600082158015613d025750604082015115155b15613d1257506040810151610aab565b602082015182511115613d2a57506020810151610aab565b60208201518251600291613d3d91615af6565b613d479190615744565b9050610aab565b600080828411613d6357506001905081613d98565b6000613d7886613d7287612f91565b89614635565b905060008112613d8f576001859250925050613d98565b60008492509250505b94509492505050565b6000806000613dc3866000015186602001518760000151886040015188613124565b90506000613dd9613dd486846131f5565b614554565b60608701519091506000861315613e44576000613df684836131f5565b9050670de0b6b3a7640000811215613e205760405162461bcd60e51b8152600401610a67906155f9565b613e3c613e3583670de0b6b3a7640000615934565b8490613237565b915050613e71565b613e6e81613e5a81670de0b6b3a7640000615934565b613e6490856159ec565b613dd49190615b0e565b90505b6064613e8189610120015161351f565b613e8b90836159ec565b613e959190615b0e565b9350613ea18183615934565b9450505050935093915050565b6000828411158015611c425750613ed683613ed184670de0b6b3a76400006158cd565b613c86565b841015949350505050565b600080613ef386610100015184101590565b15613f105760405162461bcd60e51b8152600401610a6790615a71565b85518412613f595760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e74206c697175696469747960501b6044820152606401610a67565b6000613f6687878661300a565b9050600080613f76898489613da1565b9092509050613f858883614742565b9450613f918882614742565b9350613fa289848a8a89898c61476f565b50505094509492505050565b600082600181613fc6670de0b6b3a76400008661570f565b61385d9190615af6565b6000613fdb8261351f565b613ff2613fed6201518061016d61570f565b61351f565b8460a0015161400191906159ec565b61400b9190615b0e565b905060008113610aab5760405162461bcd60e51b8152602060048201526014602482015273726174655363616c617220756e646572666c6f7760601b6044820152606401610a67565b6000806000831261406657600161406a565b6000195b9050614081613fed8561407c86613535565b614620565b611c4290826159ec565b6000806140988684614108565b9050670de0b6b3a76400008112156140c25760405162461bcd60e51b8152600401610a67906155f9565b60006140d86140d1878a615a99565b89906131f5565b905060006140e582614188565b90506140f181876131f5565b6140fb9084615934565b9998505050505050505050565b60008061411a6201518061016d61570f565b614124848661570f565b61412e9190615744565b9050611c4261413c8261351f565b613871565b60008183121561417e5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610a67565b610b6c8284615934565b6000670de0b6b3a764000082036141de5760405162461bcd60e51b815260206004820152601a60248201527970726f706f7274696f6e206d757374206e6f74206265206f6e6560301b6044820152606401610a67565b60006141fc6141f584670de0b6b3a7640000615934565b84906131f5565b9050610b6c8161482e565b6000806000831361424e5760405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081b1c08185b5bdd5b9d607a1b6044820152606401610a67565b6040840151602085015161426290856159ec565b61426c9190615b0e565b604085015185519193509061428190856159ec565b61428b9190615b0e565b9050600082138061429c5750600081135b6142db5760405162461bcd60e51b815260206004820152601060248201526f1e995c9bc8185b5bdd5b9d1cc81bdd5d60821b6044820152606401610a67565b60408401516142ea9084614141565b604085015283516142fb9082614141565b8452602084015161430c9083614141565b602090940193909352929050565b6000828410158015611c42575061433d83613ed184670de0b6b3a7640000615af6565b909311159392505050565b60008060008060008713801561435e5750600086135b6143995760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f414d4f554e545360a01b6044820152606401610a67565b61010089015185106143bd5760405162461bcd60e51b8152600401610a6790615a71565b886040015160000361440b576103e86143ef613fed6143ea896143e08d8d614054565b610a9f91906159ec565b6148bf565b6143f99190615934565b92506103e893508691508590506144ae565b885160408a01516000919061442090896159ec565b61442a9190615b0e565b905060008a602001518b604001518a61444391906159ec565b61444d9190615b0e565b905080821215614483578194508792508a60400151858c6020015161447291906159ec565b61447c9190615b0e565b93506144ab565b8094508893508a60400151858c6000015161449e91906159ec565b6144a89190615b0e565b92505b50505b600083136144fe5760405162461bcd60e51b815260206004820152601d60248201527f494e53554646494349454e545f4c49515549444954595f4d494e5445440000006044820152606401610a67565b81896020018181516145109190615a99565b905250885181908a90614524908390615a99565b9052506145318484615a99565b896040018181516145429190615a99565b90525092989197509550909350915050565b6000610aab826000196159ec565b6000670de0b6b3a7640000600181613fc6868661570f565b600082613867670de0b6b3a76400008461570f565b6000806145b761413c8460000151856040015186606001516145b19190615934565b90613237565b905060006145d0613142670de0b6b3a764000084615a99565b905060006145ee8560200151876145e79190615a99565b8390613237565b905060006145fc8288615934565b90506103e861460a82613224565b614616906103e761570f565b610aa49190615744565b6000670de0b6b3a7640000613867848461570f565b60008061464184615ada565b905060008184602001516146559190615934565b905060006146638784615a99565b90506000821380156146755750600081135b6146b65760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610a67565b60006146e46146c584846159ec565b60208801516146d4908b615a99565b6146de90876159ec565b906131f5565b905060006146fa6146f584866131f5565b61482e565b875190915060009061471590670de0b6b3a7640000906131f5565b9050614725816145b18486615934565b88604001516147349190615934565b9a9950505050505050505050565b60008060008312614754576001614758565b6000195b9050614081613fed8561476a86613535565b61457a565b60008188610100015161478291906158cd565b610160890183905288519091506147999086614141565b88526147b36147a88486615a99565b60208a015190614141565b6020890181905288516147d8916147cb908990614054565b895160408b01518561492e565b61014089018190526000036148245760405162461bcd60e51b81526020600482015260126024820152717a65726f206c6e496d706c6965645261746560701b6044820152606401610a67565b5050505050505050565b600080821361486f5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610a67565b670c7d713b49da00008213801561488d5750670f43fc2c04ee000082125b156148b157670de0b6b3a76400006148a483614981565b816139065761390661572e565b610aab82614aa0565b919050565b6000600382111561492057508060006148d9600283615744565b6148e4906001615af6565b90505b8181101561491a579050806002816148ff8186615744565b6149099190615af6565b6149139190615744565b90506148e7565b50919050565b81156148ba57506001919050565b60008061493f878787876000613124565b9050600061494f610a9f8361482e565b9050836149616201518061016d61570f565b61496b908361570f565b6149759190615744565b98975050505050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff19850102816149c2576149c261572e565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215614ae157614ad8826a0c097ce7bc90715b34b9f160241b81614ad257614ad261572e565b05614aa0565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312614b2c5772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312614b63576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312614bab576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312614be6576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312614c1d57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312614c5457690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312614c895768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312614cb457680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312614ce9576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312614d1e576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312614d52576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312614d86576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281614daf57614daf61572e565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6040805160a08101825260008082526020820152908101614e62614ee0565b8152602001614e6f614ee0565b815260408051606081018252600080825260208281018290529282015291015290565b6040518060c0016040528060006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001614ed3614ee0565b8152602001606081525090565b604080518082019091526000808252602082015290565b6001600160a01b0381168114614f0c57600080fd5b50565b60008060408385031215614f2257600080fd5b8235614f2d81614ef7565b946020939093013593505050565b600060208284031215614f4d57600080fd5b8135610b6c81614ef7565b60006102008201905060018060a01b038088168352808716602084015250845160408301526020850151606083015260408501516080830152606085015160a08301526080850151614fb560c08401826001600160a01b03169052565b5060a085015160e08381019190915260c08601516101008085019190915290860151610120808501919091529086015161014080850191909152908601516101608085019190915290860151610180840152909401516101a08201526101c08101929092526101e09091015292915050565b60008060006060848603121561503c57600080fd5b833561504781614ef7565b925060208401359150604084013561505e81614ef7565b809150509250925092565b6001600160a01b0392831681529116602082015260400190565b60008060006060848603121561509857600080fd5b83356150a381614ef7565b95602085013595506040909401359392505050565b600080604083850312156150cb57600080fd5b82356150d681614ef7565b915060208301356150e681614ef7565b809150509250929050565b80516001600160a01b03168252602090810151910152565b634e487b7160e01b600052602160045260246000fd5b60018060a01b0380825116835260208201516020840152604082015161514860408501826150f1565b50606082015161515b60808501826150f1565b50608082015180516002811061518157634e487b7160e01b600052602160045260246000fd5b60c0850152602081015190911660e0840152604001516101009092019190915250565b6101208101610aab828461511f565b600060608201858352602085818501526040606081860152828651808552608087019150838801945060005b81811015615202576151f28387516150f1565b94840194918301916001016151df565b50909998505050505050505050565b60008060006060848603121561522657600080fd5b833561523181614ef7565b9250602084013561524181614ef7565b929592945050506040919091013590565b60008060006040848603121561526757600080fd5b833561527281614ef7565b925060208401356001600160401b038082111561528e57600080fd5b818601915086601f8301126152a257600080fd5b8135818111156152b157600080fd5b8760208260051b85010111156152c657600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561531c5761530883855161511f565b9284019261012092909201916001016152f5565b50909695505050505050565b60006020828403121561533a57600080fd5b81356001600160401b0381111561535057600080fd5b820160e08185031215610b6c57600080fd5b901515815260200190565b600081518084526020808501945080840160005b838110156153a7576153948783516150f1565b6040969096019590820190600101615381565b509495945050505050565b600060018060a01b0380835116845280602084015116602085015250604082015160408401526060820151606084015260808201516153f460808501826150f1565b5060a082015160e060c0850152611c4260e085018261536d565b602081526000610b6c60208301846153b2565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561547657603f198886030184526154648583516153b2565b94509285019290850190600101615448565b5092979650505050505050565b828152604060208201526000611c42604083018461536d565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156154d5576154d561549c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156155035761550361549c565b604052919050565b80516148ba81614ef7565b6000610180828403121561552957600080fd5b6155316154b2565b8251815260208301516020820152604083015160408201526060830151606082015261555f6080840161550b565b608082015260a0838101519082015260c0808401519082015260e08084015190820152610100808401519082015261012080840151908201526101408084015190820152610160928301519281019290925250919050565b6000806000606084860312156155cc57600080fd5b83516155d781614ef7565b60208501519093506155e881614ef7565b604085015190925061505e81614ef7565b60208082526015908201527465786368616e676520726174652062656c6f77203160581b604082015260600190565b60006020828403121561563a57600080fd5b8151610b6c81614ef7565b6001600160a01b03929092168252602082015260400190565b60006020828403121561567057600080fd5b5051919050565b6001600160a01b0391909116815260200190565b60006020828403121561569d57600080fd5b81518015158114610b6c57600080fd5b6000806000606084860312156156c257600080fd5b8351600281106156d157600080fd5b60208501519093506156e281614ef7565b604085015190925060ff8116811461505e57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615615729576157296156f9565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826157535761575361572e565b500490565b60006001600160401b038211156157715761577161549c565b5060051b60200190565b6000602080838503121561578e57600080fd5b82516001600160401b038111156157a457600080fd5b8301601f810185136157b557600080fd5b80516157c86157c382615758565b6154db565b81815260059190911b820183019083810190878311156157e757600080fd5b928401925b8284101561580e5783516157ff81614ef7565b825292840192908401906157ec565b979650505050505050565b6000602080838503121561582c57600080fd5b82516001600160401b0381111561584257600080fd5b8301601f8101851361585357600080fd5b80516158616157c382615758565b81815260059190911b8201830190838101908783111561588057600080fd5b928401925b8284101561580e57835182529284019290840190615885565b634e487b7160e01b600052603260045260246000fd5b6000600182016158c6576158c66156f9565b5060010190565b6000828210156158df576158df6156f9565b500390565b6000808335601e198436030181126158fb57600080fd5b8301803591506001600160401b0382111561591557600080fd5b6020019150600681901b360382131561592d57600080fd5b9250929050565b60008083128015600160ff1b850184121615615952576159526156f9565b6001600160ff1b038401831381161561596d5761596d6156f9565b50500390565b80516001600160801b03811681146148ba57600080fd5b6000806040838503121561599d57600080fd5b6159a683615973565b91506159b460208401615973565b90509250929050565b6020808252601590820152740d2dcecc2d8d2c840c2e0e0e4def040c2e0e0e4def605b1b604082015260600190565b60006001600160ff1b0381841382841380821686840486111615615a1257615a126156f9565b600160ff1b6000871282811687830589121615615a3157615a316156f9565b60008712925087820587128484161615615a4d57615a4d6156f9565b87850587128184161615615a6357615a636156f9565b505050929093029392505050565b6020808252600e908201526d1b585c9ad95d08195e1c1a5c995960921b604082015260600190565b600080821280156001600160ff1b0384900385131615615abb57615abb6156f9565b600160ff1b8390038412811615615ad457615ad46156f9565b50500190565b6000600160ff1b8201615aef57615aef6156f9565b5060000390565b60008219821115615b0957615b096156f9565b500190565b600082615b1d57615b1d61572e565b600160ff1b821460001984141615615b3757615b376156f9565b50059056fea2646970667358221220b6ec284cc6ab4c9f34d9aaff1cc205fe244abc497eaf5d74159ef18b04083d9464736f6c634300080f0033",
|
|
1668
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e25760003560e01c80626024ef146101e757806303670dba1461021a578063067cbde11461022d5780630cf85bcc146102405780630f8cb321146102645780631272d863146102855780631b9d358d146102985780631be1dc8e146102ab5780631e965851146102d357806320979416146102e157806321b7679d146102f4578063227501f5146103075780632ec8d844146103285780632f7707091461033b57806331c6d55c1461034e57806336233bd9146102d3578063372cfb93146103615780633857a07b146103815780633badd710146103a357806345324d9c146103b657806355b4fff5146103c957806355bbcd73146103e957806362eaf69d1461040957806368d384c01461041c57806372568bac1461042f578063739baebe146102d35780638a719769146104425780639225afd614610455578063a749840a14610475578063a9d09ae3146102d3578063b24898f414610495578063b68d898d146104a8578063bae0df13146104bb578063c74141f1146104ce578063d0f2034e146104e1578063d34344cc146104ef578063d52eacb214610502578063db39d88614610534578063dc7b316314610547578063e83316041461055a578063efb7601d1461057b575b600080fd5b6101fa6101f5366004614f0f565b61058e565b604080519384526020840192909252908201526060015b60405180910390f35b6101fa610228366004614f0f565b610675565b6101fa61023b366004614f0f565b610748565b61025361024e366004614f3b565b6107f0565b604051610211959493929190614f58565b610277610272366004614f0f565b61096b565b604051908152602001610211565b6101fa610293366004615027565b610ab1565b6102776102a6366004614f3b565b610af1565b6102be6102b9366004614f0f565b610b73565b60408051928352602083019190915201610211565b6101fa610293366004614f0f565b6101fa6102ef366004614f0f565b610d44565b6101fa610302366004615027565b610e19565b61031a610315366004614f3b565b610f1a565b604051610211929190615069565b610277610336366004615027565b611083565b6101fa610349366004615083565b61116b565b6101fa61035c366004615027565b611209565b61037461036f3660046150b8565b611219565b60405161021191906151a4565b61039461038f366004614f3b565b61155e565b604051610211939291906151b3565b6101fa6103b1366004615211565b611825565b6101fa6103c4366004614f0f565b611914565b6103dc6103d7366004615252565b6119ed565b60405161021191906152d9565b6103fc6103f7366004615328565b611ab4565b6040516102119190615362565b6102be610417366004614f0f565b611af8565b61027761042a366004614f0f565b611b84565b61027761043d366004614f0f565b611bce565b6101fa610450366004614f0f565b611c4a565b6104686104633660046150b8565b611d26565b604051610211919061540e565b610488610483366004615252565b6121c6565b6040516102119190615421565b6101fa6104a3366004614f0f565b612285565b6101fa6104b6366004614f0f565b612323565b6101fa6104c9366004615083565b6123f8565b6102776104dc366004614f3b565b6125f5565b6101fa610293366004615211565b6102776104fd366004615211565b612684565b610515610510366004614f3b565b61275e565b6040805193151584529115156020840152151590820152606001610211565b610277610542366004614f0f565b612936565b6101fa610555366004615211565b612a49565b61056d6105683660046150b8565b612b28565b604051610211929190615483565b610277610589366004614f3b565b612d63565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b81526004016105c19190615362565b61018060405180830381865afa1580156105df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106039190615516565b9050600061061087610af1565b6040805160a081018252600054815260015460208201526002549181019190915260035460608201526004546080820152909150610655908390839089904290612d70565b91965090945061066a90508761042a87612f91565b925050509250925092565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b81526004016106a89190615362565b61018060405180830381865afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea9190615516565b905060006106f787610af1565b9050600061071061070789610af1565b84908942612fa8565b9550905060006107208389612fe7565b905061072c8183612ff3565b965061073b8961042a8a612f91565b9450505050509250925092565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b815260040161077b9190615362565b61018060405180830381865afa158015610799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bd9190615516565b90506107d46107cb87610af1565b82908742612fa8565b90945092506107e68661042a87612f91565b9150509250925092565b6000806108606040518061018001604052806000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000806000869050600080886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156108a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cd91906155b7565b5091509150809750819650826001600160a01b03166339e718f660016040518263ffffffff1660e01b81526004016109059190615362565b61018060405180830381865afa158015610923573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109479190615516565b9550610952896125f5565b945061095d89612d63565b935050505091939590929450565b604051631cf38c7b60e11b8152600090829082906001600160a01b038616906339e718f69061099e908490600401615362565b61018060405180830381865afa1580156109bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e09190615516565b905060006109f86109f087610af1565b83904261300a565b90506000610a19836000015183602001518460000151856040015188613124565b90506000841315610a85576000610a3d8360600151836131f590919063ffffffff16565b9050670de0b6b3a7640000811215610a705760405162461bcd60e51b8152600401610a67906155f9565b60405180910390fd5b610a7981613224565b95505050505050610aab565b610aa4610a9f83606001518361323790919063ffffffff16565b613224565b9450505050505b92915050565b6000808060405162461bcd60e51b8152600401610a67906020808252600f908201526e1393d5081253541311535153951151608a1b604082015260600190565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5691906155b7565b92505050610b6c816001600160a01b0316613255565b9392505050565b6000806000846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda91906155b7565b505090506000816001600160a01b03166376d5de856040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c429190615628565b9050600080876001600160a01b03166339e718f660006040518263ffffffff1660e01b8152600401610c749190615362565b61018060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190615516565b9050610cc281886132bb565b60405163cbe52ae360e01b81529096509092506001600160a01b0385169063cbe52ae390610cf69086908690600401615645565b602060405180830381865afa158015610d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d37919061565e565b9550505050509250929050565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b8152600401610d779190615362565b61018060405180830381865afa158015610d95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db99190615516565b9050610e04610dc787610af1565b6040805160a081018252600054815260015460208201526002549181019190915260035460608201526004546080820152839190889042906132f6565b9195509093506107e690508661042a86612f91565b600080600080610e298787611914565b8094508195508293505050506000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9991906155b7565b505060405163cbe52ae360e01b81529091506001600160a01b0382169063cbe52ae390610ecc9089908690600401615645565b602060405180830381865afa158015610ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0d919061565e565b9450505093509350939050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371846aa8846040518263ffffffff1660e01b8152600401610f699190615677565b602060405180830381865afa158015610f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faa919061568b565b1561101757826001600160a01b031663d94073d46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110119190615628565b93915050565b829150826001600160a01b031663781c18db6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107c9190615628565b9050915091565b600080846001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e89190615628565b9050806001600160a01b031663cbe52ae3846111048888611bce565b6040518363ffffffff1660e01b8152600401611121929190615645565b602060405180830381865afa15801561113e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611162919061565e565b95945050505050565b600080600080866001600160a01b03166339e718f660006040518263ffffffff1660e01b815260040161119e9190615362565b61018060405180830381865afa1580156111bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e09190615516565b90506111f86111ee88610af1565b8290888842613475565b919a90995090975095505050505050565b600080600080610e298787610748565b611221614e43565b6040516370a0823160e01b815283906000906001600160a01b038316906370a0823190611252908790600401615677565b602060405180830381865afa15801561126f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611293919061565e565b6001600160a01b0380871685526020850182905260408051630b2339af60e21b815290519293506000928392861691632c8ce6bc9160048083019260609291908290030181865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131091906155b7565b5091509150816001600160a01b031663a40bee506040518163ffffffff1660e01b8152600401606060405180830381865afa158015611353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137791906156ad565b5060808701516001600160a01b038216602082015282600181111561139e5761139e615109565b60018111156113af576113af615109565b90525050604051631cf38c7b60e11b81526000906001600160a01b038616906339e718f6906113e2908490600401615362565b61018060405180830381865afa158015611400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114249190615516565b6040810151909150600081900361144057505050505050610aab565b81516000908290611451908861570f565b61145b9190615744565b9050600082846020015188611470919061570f565b61147a9190615744565b90506040518060400160405280866001600160a01b031681526020018381525089604001819052506040518060400160405280876001600160a01b03168152602001828152508960600181905250670de0b6b3a7640000866001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561150f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611533919061565e565b61153d908361570f565b6115479190615744565b60808a015160400152505050505050505092915050565b6000806060600061156e85610f1a565b9150506000819050806001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af11580156115b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115da919061565e565b9450806001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561161a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163e919061565e565b93506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611680573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116a8919081019061577b565b905080516001600160401b038111156116c3576116c361549c565b60405190808252806020026020018201604052801561170857816020015b60408051808201909152600080825260208201528152602001906001900390816116e15790505b5093506000826001600160a01b031663f8b2f9916040518163ffffffff1660e01b81526004016000604051808303816000875af115801561174d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117759190810190615819565b905060005b82518110156118195760008382815181106117975761179761589e565b60200260200101519050808783815181106117b4576117b461589e565b60209081029190910101516001600160a01b03909116905282518390839081106117e0576117e061589e565b60200260200101518783815181106117fa576117fa61589e565b602090810291909101810151015250611812816158b4565b905061177a565b50505050509193909250565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188d91906155b7565b5050905061190487826001600160a01b031663b8f82b2689896040518363ffffffff1660e01b81526004016118c3929190615645565b602060405180830381865afa1580156118e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b6919061565e565b9350935093505093509350939050565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b81526004016119479190615362565b61018060405180830381865afa158015611965573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119899190615516565b9050600061199687610af1565b905060006119a6838389426134e2565b9550905060006119b68383613506565b905060006119c4828a6158cd565b90506119d08482613513565b97506119df8a61042a8b61351f565b955050505050509250925092565b6060816001600160401b03811115611a0757611a0761549c565b604051908082528060200260200182016040528015611a4057816020015b611a2d614e43565b815260200190600190039081611a255790505b50905060005b82811015611aac57611a7e848483818110611a6357611a6361589e565b9050602002016020810190611a789190614f3b565b86611219565b828281518110611a9057611a9061589e565b602002602001018190525080611aa5906158b4565b9050611a46565b509392505050565b60008082604001351180611acc575060008260600135115b80611ada575060a082013515155b80610aab57506000611aef60c08401846158e4565b90501192915050565b6000806000846001600160a01b03166339e718f660006040518263ffffffff1660e01b8152600401611b2a9190615362565b61018060405180830381865afa158015611b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6c9190615516565b9050611b7881856132bb565b90969095509350505050565b600080611b9084612d63565b90506000611b9e858561096b565b905061116282611bc8611bb08561351f565b611bb98561351f565b611bc39190615934565b613535565b9061354c565b600080839050611c42816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3b919061565e565b849061354c565b949350505050565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b8152600401611c7d9190615362565b61018060405180830381865afa158015611c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbf9190615516565b90506000611ccc87610af1565b6040805160a081018252600054815260015460208201526002549181019190915260035460608201526004546080820152909150611d1190839083908990429061357b565b91965090945061066a90508761042a8761351f565b611d2e614e92565b611d3783610f1a565b6001600160a01b03908116808452911660208301526040516370a0823160e01b815281906370a0823190611d6f908690600401615677565b602060405180830381865afa158015611d8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db0919061565e565b82604001818152505081602001516001600160a01b03166370a08231846040518263ffffffff1660e01b8152600401611de99190615677565b602060405180830381865afa158015611e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2a919061565e565b826060018181525050806001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e959190615628565b60808301516001600160a01b03918216905260405163d68076c360e01b81529082169063d68076c390611ecc908690600401615677565b6040805180830381865afa158015611ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0c919061598a565b9050806001600160801b03169050826080015160200181815250506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611f67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f8f919081019061577b565b9050600081516001600160401b03811115611fac57611fac61549c565b604051908082528060200260200182016040528015611fe557816020015b611fd2614ee0565b815260200190600190039081611fca5790505b5090506000805b835181101561210c5760008482815181106120095761200961589e565b602002602001015190506000866001600160a01b0316635cbadbe4838b6040518363ffffffff1660e01b8152600401612043929190615069565b6040805180830381865afa15801561205f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612083919061598a565b6001600160801b031691505080156120f957818585815181106120a8576120a861589e565b6020026020010151600001906001600160a01b031690816001600160a01b031681525050808585815181106120df576120df61589e565b60209081029190910181015101526120f6846158b4565b93505b505080612105906158b4565b9050611fec565b50806001600160401b038111156121255761212561549c565b60405190808252806020026020018201604052801561215e57816020015b61214b614ee0565b8152602001906001900390816121435790505b5060a086015260005b818110156121bb578281815181106121815761218161589e565b60200260200101518660a00151828151811061219f5761219f61589e565b6020026020010181905250806121b4906158b4565b9050612167565b505050505092915050565b6060816001600160401b038111156121e0576121e061549c565b60405190808252806020026020018201604052801561221957816020015b612206614e92565b8152602001906001900390816121fe5790505b50905060005b82811015611aac5761225784848381811061223c5761223c61589e565b90506020020160208101906122519190614f3b565b86611d26565b8282815181106122695761226961589e565b60200260200101819052508061227e906158b4565b905061221f565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b81526004016122b89190615362565b61018060405180830381865afa1580156122d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fa9190615516565b905061231161230887610af1565b829087426134e2565b90945092506107e68661042a8761351f565b600080600080856001600160a01b03166339e718f660006040518263ffffffff1660e01b81526004016123569190615362565b61018060405180830381865afa158015612374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123989190615516565b90506123e36123a687610af1565b6040805160a08101825260005481526001546020820152600254918101919091526003546060820152600454608082015283919088904290613700565b9195509093506107e690508661042a8661351f565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561243c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246091906155b7565b505090506000816001600160a01b03166376d5de856040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c89190615628565b90506000826001600160a01b031663b8f82b26838a6040518363ffffffff1660e01b81526004016124fa929190615645565b602060405180830381865afa158015612517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253b919061565e565b90506000808a6001600160a01b03166339e718f660006040518263ffffffff1660e01b815260040161256d9190615362565b61018060405180830381865afa15801561258b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125af9190615516565b90506125c76125bd8c610af1565b8290858c42613475565b919a5090975092506125e59050836125df848d61570f565b9061384e565b9650505050505093509350939050565b600080826001600160a01b03166339e718f660006040518263ffffffff1660e01b81526004016126259190615362565b61018060405180830381865afa158015612643573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126679190615516565b9050600061267982610140015161351f565b9050611c4281613871565b600080846001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e99190615628565b905061116285826001600160a01b031663b8f82b2687876040518363ffffffff1660e01b815260040161271d929190615645565b602060405180830381865afa15801561273a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610542919061565e565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318b7373d856040518263ffffffff1660e01b81526004016127af9190615677565b602060405180830381865afa1580156127cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f0919061568b565b156127fe576001925061292f565b604051630e308d5560e31b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906371846aa89061284a908790600401615677565b602060405180830381865afa158015612867573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061288b919061568b565b15612899576001915061292f565b6040516358e6309f60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906358e6309f906128e5908790600401615677565b602060405180830381865afa158015612902573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612926919061568b565b1561292f575060015b9193909250565b600080839050806001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561297a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299e919061568b565b156129db5760405162461bcd60e51b815260206004820152600d60248201526c1655081a5cc8195e1c1a5c9959609a1b6044820152606401610a67565b611c42816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a42919061565e565b8490613c86565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab191906155b7565b5050905061190487826001600160a01b031663b8f82b2689896040518363ffffffff1660e01b8152600401612ae7929190615645565b602060405180830381865afa158015612b04573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f5919061565e565b6040516370a0823160e01b815260009060609084906001600160a01b038216906370a0823190612b5c908490600401615677565b602060405180830381865afa158015612b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9d919061565e565b92506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612bdf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c07919081019061577b565b905080516001600160401b03811115612c2257612c2261549c565b604051908082528060200260200182016040528015612c5b57816020015b612c48614ee0565b815260200190600190039081612c405790505b50925060005b8151811015612d59576000828281518110612c7e57612c7e61589e565b6020026020010151905080858381518110612c9b57612c9b61589e565b60209081029190910101516001600160a01b03918216905260405163172eb6f960e21b815290891690635cbadbe490612cda9084908b90600401615069565b6040805180830381865afa158015612cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1a919061598a565b9050806001600160801b03169050858381518110612d3a57612d3a61589e565b602090810291909101810151015250612d52816158b4565b9050612c61565b5050509250929050565b6000610aab82600061096b565b6000806000612d7e84613ca4565b612d9a5760405162461bcd60e51b8152600401610a67906159bd565b612de4604051806101000160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081525090565b6000612df18a8a8961300a565b9050600019866020015103612e1357612e0d8160200151613ccc565b60208701525b612e1d8989613ce3565b60e083015260005b8660600151811015612f4f57612e3b8188613cef565b8084528b5160a0850151612e5192859291613d4e565b60a0850152151560c08401819052612e7b578251612e71906001906158cd565b6020880152612e25565b612e9482612e8c8560000151612f91565b8d9190613da1565b604085015260208401819052612ea990613224565b606084018190528351612ebc91906158cd565b6080840181905260e084015110612f33578251875260808084015160e085015191890151600092612eed9291613eae565b90508015612f2d5783516080850151612f07908d90613513565b612f1e612f178760400151613224565b8e90613513565b96509650965050505050612f86565b50612f47565b8251612f41906001906158cd565b60208801525b600101612e25565b5060405162461bcd60e51b815260206004820152600b60248201526a185c1c1c9bde0819985a5b60aa1b6044820152606401610a67565b955095509592505050565b6000612f9c8261351f565b610aab906000196159ec565b600080600080612fc28888612fbc89612f91565b88613ee1565b91509150612fcf82613224565b9350612fda81613224565b9250505094509492505050565b6000610b6c8383613fae565b600081831015613004576000610b6c565b50900390565b6130356040518060800160405280600081526020016000815260200160008152602001600081525090565b61010084015182106130595760405162461bcd60e51b8152600401610a6790615a71565b60008285610100015161306c91906158cd565b90506130788582613fd0565b8252602085015161308a908590614054565b60208301528451158015906130a25750602082015115155b6130e55760405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206d61726b657420737461746560601b6044820152606401610a67565b6131038560000151866101400151846020015185600001518561408b565b604083015260c08501516131179082614108565b6060830152509392505050565b6000806131318784614141565b90506000613149613142888a615a99565b83906131f5565b9050670d529ae9e860000081131561319d5760405162461bcd60e51b81526020600482015260176024820152761b585e081c1c9bdc1bdc9d1a5bdb88195e18d959591959604a1b6044820152606401610a67565b60006131a882614188565b9050856131b582896131f5565b6131bf9190615a99565b9350670de0b6b3a76400008412156131e95760405162461bcd60e51b8152600401610a67906155f9565b50505095945050505050565b60008061320a670de0b6b3a7640000856159ec565b905082818161321b5761321b61572e565b05949350505050565b60008082121561323357600080fd5b5090565b60008061324483856159ec565b9050670de0b6b3a76400008161321b565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015613297573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aab919061565e565b6000806000806132d3866132ce8761351f565b614207565b915091506132e082613224565b93506132eb81613224565b925050509250929050565b600080600061330484613ca4565b6133205760405162461bcd60e51b8152600401610a67906159bd565b6133626040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b600061336f8a8a8961300a565b90506000198660200151036133915761338b8160200151613ccc565b60208701525b61339b8989613506565b608083015260005b8660600151811015612f4f576133b98188613cef565b8084528b5160a08501516133cf92859291613d4e565b60a0850152151560c084018190526133ed57825160208801526133a3565b6133fe82612e8c8560000151612f91565b60408501526020840181905261341390613224565b60608401819052608084015111613468578251602088015260608301516080808501519089015160009261344892909161431a565b905080156134625783516060850151612f07908d90613513565b5061346d565b825187525b6001016133a3565b60008060008060008060008061349e8d8d61348f8e61351f565b6134988e61351f565b8d614348565b93509350935093506134af84613224565b97506134ba83613224565b96506134c582613224565b95506134d081613224565b94505050505095509550955095915050565b6000806000806134f68888612fbc8961351f565b91509150612fcf610a9f83614554565b600082611c428184614562565b6000610b6c838361457a565b60006001600160ff1b0382111561323357600080fd5b60008082136132335761354782615ada565b610aab565b600080613561670de0b6b3a76400008561570f565b90508281816135725761357261572e565b04949350505050565b600080600061358984613ca4565b6135a55760405162461bcd60e51b8152600401610a67906159bd565b6135de6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006135eb8a8a8961300a565b905060001986602001510361360c578951613606908261458f565b60208701525b6136168989613ce3565b825260005b8660600151811015612f4f576136318188613cef565b60208401819052613647908390612e8c9061351f565b60608501526040840181905261365c90613535565b60808401819052602084015161367291906158cd565b60a084018190528351116136e5576020808401519088015260a0830151835160808901516136a192919061431a565b156136e057602083015160a08401516136bb908c90613513565b6136d26136cb8660600151613224565b8d90613513565b955095509550505050612f86565b6136f8565b60208301516136f5906001615af6565b87525b60010161361b565b600080600061370e84613ca4565b61372a5760405162461bcd60e51b8152600401610a67906159bd565b61375c6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b60006137698a8a8961300a565b905060001986602001510361378a578951613784908261458f565b60208701525b6137948989613ce3565b825260005b8660600151811015612f4f576137af8188613cef565b602084018190526137c5908390612e8c9061351f565b6060850152604084018190526137da90613535565b6080840181905283511061383b57602083015187526080808401518451918901516000926138089291613eae565b905080156138355760208401516080850151613825908d90613513565b612f1e612f178760600151613224565b50613846565b602080840151908801525b600101613799565b600081600161385d8286615af6565b61386791906158cd565b610b6c9190615744565b6000680238fd42c5cf03ffff198212158015613896575068070c1cc73b00c800008213155b6138d55760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610a67565b600082121561390d576138ea82600003613871565b6a0c097ce7bc90715b34b9f160241b816139065761390661572e565b0592915050565b60006806f05b59d3b2000000831261394b57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b613981565b6803782dace9d9000000831261397d57506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380613981565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126139d15768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412613a0d576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412613a4757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412613a81576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412613aba57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412613af35768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412613b2c576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412613b655768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080613c93838561570f565b9050670de0b6b3a764000081613572565b60008160200151826000015111158015610aab57505060800151670de0b6b3a7640000101590565b60006001613cd983613224565b610aab91906158cd565b6000610b6c8383614620565b600082158015613d025750604082015115155b15613d1257506040810151610aab565b602082015182511115613d2a57506020810151610aab565b60208201518251600291613d3d91615af6565b613d479190615744565b9050610aab565b600080828411613d6357506001905081613d98565b6000613d7886613d7287612f91565b89614635565b905060008112613d8f576001859250925050613d98565b60008492509250505b94509492505050565b6000806000613dc3866000015186602001518760000151886040015188613124565b90506000613dd9613dd486846131f5565b614554565b60608701519091506000861315613e44576000613df684836131f5565b9050670de0b6b3a7640000811215613e205760405162461bcd60e51b8152600401610a67906155f9565b613e3c613e3583670de0b6b3a7640000615934565b8490613237565b915050613e71565b613e6e81613e5a81670de0b6b3a7640000615934565b613e6490856159ec565b613dd49190615b0e565b90505b6064613e8189610120015161351f565b613e8b90836159ec565b613e959190615b0e565b9350613ea18183615934565b9450505050935093915050565b6000828411158015611c425750613ed683613ed184670de0b6b3a76400006158cd565b613c86565b841015949350505050565b600080613ef386610100015184101590565b15613f105760405162461bcd60e51b8152600401610a6790615a71565b85518412613f595760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e74206c697175696469747960501b6044820152606401610a67565b6000613f6687878661300a565b9050600080613f76898489613da1565b9092509050613f858883614742565b9450613f918882614742565b9350613fa289848a8a89898c61476f565b50505094509492505050565b600082600181613fc6670de0b6b3a76400008661570f565b61385d9190615af6565b6000613fdb8261351f565b613ff2613fed6201518061016d61570f565b61351f565b8460a0015161400191906159ec565b61400b9190615b0e565b905060008113610aab5760405162461bcd60e51b8152602060048201526014602482015273726174655363616c617220756e646572666c6f7760601b6044820152606401610a67565b6000806000831261406657600161406a565b6000195b9050614081613fed8561407c86613535565b614620565b611c4290826159ec565b6000806140988684614108565b9050670de0b6b3a76400008112156140c25760405162461bcd60e51b8152600401610a67906155f9565b60006140d86140d1878a615a99565b89906131f5565b905060006140e582614188565b90506140f181876131f5565b6140fb9084615934565b9998505050505050505050565b60008061411a6201518061016d61570f565b614124848661570f565b61412e9190615744565b9050611c4261413c8261351f565b613871565b60008183121561417e5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610a67565b610b6c8284615934565b6000670de0b6b3a764000082036141de5760405162461bcd60e51b815260206004820152601a60248201527970726f706f7274696f6e206d757374206e6f74206265206f6e6560301b6044820152606401610a67565b60006141fc6141f584670de0b6b3a7640000615934565b84906131f5565b9050610b6c8161482e565b6000806000831361424e5760405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081b1c08185b5bdd5b9d607a1b6044820152606401610a67565b6040840151602085015161426290856159ec565b61426c9190615b0e565b604085015185519193509061428190856159ec565b61428b9190615b0e565b9050600082138061429c5750600081135b6142db5760405162461bcd60e51b815260206004820152601060248201526f1e995c9bc8185b5bdd5b9d1cc81bdd5d60821b6044820152606401610a67565b60408401516142ea9084614141565b604085015283516142fb9082614141565b8452602084015161430c9083614141565b602090940193909352929050565b6000828410158015611c42575061433d83613ed184670de0b6b3a7640000615af6565b909311159392505050565b60008060008060008713801561435e5750600086135b6143995760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f414d4f554e545360a01b6044820152606401610a67565b61010089015185106143bd5760405162461bcd60e51b8152600401610a6790615a71565b886040015160000361440b576103e86143ef613fed6143ea896143e08d8d614054565b610a9f91906159ec565b6148bf565b6143f99190615934565b92506103e893508691508590506144ae565b885160408a01516000919061442090896159ec565b61442a9190615b0e565b905060008a602001518b604001518a61444391906159ec565b61444d9190615b0e565b905080821215614483578194508792508a60400151858c6020015161447291906159ec565b61447c9190615b0e565b93506144ab565b8094508893508a60400151858c6000015161449e91906159ec565b6144a89190615b0e565b92505b50505b600083136144fe5760405162461bcd60e51b815260206004820152601d60248201527f494e53554646494349454e545f4c49515549444954595f4d494e5445440000006044820152606401610a67565b81896020018181516145109190615a99565b905250885181908a90614524908390615a99565b9052506145318484615a99565b896040018181516145429190615a99565b90525092989197509550909350915050565b6000610aab826000196159ec565b6000670de0b6b3a7640000600181613fc6868661570f565b600082613867670de0b6b3a76400008461570f565b6000806145b761413c8460000151856040015186606001516145b19190615934565b90613237565b905060006145d0613142670de0b6b3a764000084615a99565b905060006145ee8560200151876145e79190615a99565b8390613237565b905060006145fc8288615934565b90506103e861460a82613224565b614616906103e761570f565b610aa49190615744565b6000670de0b6b3a7640000613867848461570f565b60008061464184615ada565b905060008184602001516146559190615934565b905060006146638784615a99565b90506000821380156146755750600081135b6146b65760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610a67565b60006146e46146c584846159ec565b60208801516146d4908b615a99565b6146de90876159ec565b906131f5565b905060006146fa6146f584866131f5565b61482e565b875190915060009061471590670de0b6b3a7640000906131f5565b9050614725816145b18486615934565b88604001516147349190615934565b9a9950505050505050505050565b60008060008312614754576001614758565b6000195b9050614081613fed8561476a86613535565b61457a565b60008188610100015161478291906158cd565b610160890183905288519091506147999086614141565b88526147b36147a88486615a99565b60208a015190614141565b6020890181905288516147d8916147cb908990614054565b895160408b01518561492e565b61014089018190526000036148245760405162461bcd60e51b81526020600482015260126024820152717a65726f206c6e496d706c6965645261746560701b6044820152606401610a67565b5050505050505050565b600080821361486f5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610a67565b670c7d713b49da00008213801561488d5750670f43fc2c04ee000082125b156148b157670de0b6b3a76400006148a483614981565b816139065761390661572e565b610aab82614aa0565b919050565b6000600382111561492057508060006148d9600283615744565b6148e4906001615af6565b90505b8181101561491a579050806002816148ff8186615744565b6149099190615af6565b6149139190615744565b90506148e7565b50919050565b81156148ba57506001919050565b60008061493f878787876000613124565b9050600061494f610a9f8361482e565b9050836149616201518061016d61570f565b61496b908361570f565b6149759190615744565b98975050505050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff19850102816149c2576149c261572e565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215614ae157614ad8826a0c097ce7bc90715b34b9f160241b81614ad257614ad261572e565b05614aa0565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312614b2c5772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312614b63576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312614bab576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312614be6576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312614c1d57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312614c5457690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312614c895768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312614cb457680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312614ce9576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312614d1e576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312614d52576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312614d86576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281614daf57614daf61572e565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6040805160a08101825260008082526020820152908101614e62614ee0565b8152602001614e6f614ee0565b815260408051606081018252600080825260208281018290529282015291015290565b6040518060c0016040528060006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001614ed3614ee0565b8152602001606081525090565b604080518082019091526000808252602082015290565b6001600160a01b0381168114614f0c57600080fd5b50565b60008060408385031215614f2257600080fd5b8235614f2d81614ef7565b946020939093013593505050565b600060208284031215614f4d57600080fd5b8135610b6c81614ef7565b60006102008201905060018060a01b038088168352808716602084015250845160408301526020850151606083015260408501516080830152606085015160a08301526080850151614fb560c08401826001600160a01b03169052565b5060a085015160e08381019190915260c08601516101008085019190915290860151610120808501919091529086015161014080850191909152908601516101608085019190915290860151610180840152909401516101a08201526101c08101929092526101e09091015292915050565b60008060006060848603121561503c57600080fd5b833561504781614ef7565b925060208401359150604084013561505e81614ef7565b809150509250925092565b6001600160a01b0392831681529116602082015260400190565b60008060006060848603121561509857600080fd5b83356150a381614ef7565b95602085013595506040909401359392505050565b600080604083850312156150cb57600080fd5b82356150d681614ef7565b915060208301356150e681614ef7565b809150509250929050565b80516001600160a01b03168252602090810151910152565b634e487b7160e01b600052602160045260246000fd5b60018060a01b0380825116835260208201516020840152604082015161514860408501826150f1565b50606082015161515b60808501826150f1565b50608082015180516002811061518157634e487b7160e01b600052602160045260246000fd5b60c0850152602081015190911660e0840152604001516101009092019190915250565b6101208101610aab828461511f565b600060608201858352602085818501526040606081860152828651808552608087019150838801945060005b81811015615202576151f28387516150f1565b94840194918301916001016151df565b50909998505050505050505050565b60008060006060848603121561522657600080fd5b833561523181614ef7565b9250602084013561524181614ef7565b929592945050506040919091013590565b60008060006040848603121561526757600080fd5b833561527281614ef7565b925060208401356001600160401b038082111561528e57600080fd5b818601915086601f8301126152a257600080fd5b8135818111156152b157600080fd5b8760208260051b85010111156152c657600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561531c5761530883855161511f565b9284019261012092909201916001016152f5565b50909695505050505050565b60006020828403121561533a57600080fd5b81356001600160401b0381111561535057600080fd5b820160e08185031215610b6c57600080fd5b901515815260200190565b600081518084526020808501945080840160005b838110156153a7576153948783516150f1565b6040969096019590820190600101615381565b509495945050505050565b600060018060a01b0380835116845280602084015116602085015250604082015160408401526060820151606084015260808201516153f460808501826150f1565b5060a082015160e060c0850152611c4260e085018261536d565b602081526000610b6c60208301846153b2565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561547657603f198886030184526154648583516153b2565b94509285019290850190600101615448565b5092979650505050505050565b828152604060208201526000611c42604083018461536d565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156154d5576154d561549c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156155035761550361549c565b604052919050565b80516148ba81614ef7565b6000610180828403121561552957600080fd5b6155316154b2565b8251815260208301516020820152604083015160408201526060830151606082015261555f6080840161550b565b608082015260a0838101519082015260c0808401519082015260e08084015190820152610100808401519082015261012080840151908201526101408084015190820152610160928301519281019290925250919050565b6000806000606084860312156155cc57600080fd5b83516155d781614ef7565b60208501519093506155e881614ef7565b604085015190925061505e81614ef7565b60208082526015908201527465786368616e676520726174652062656c6f77203160581b604082015260600190565b60006020828403121561563a57600080fd5b8151610b6c81614ef7565b6001600160a01b03929092168252602082015260400190565b60006020828403121561567057600080fd5b5051919050565b6001600160a01b0391909116815260200190565b60006020828403121561569d57600080fd5b81518015158114610b6c57600080fd5b6000806000606084860312156156c257600080fd5b8351600281106156d157600080fd5b60208501519093506156e281614ef7565b604085015190925060ff8116811461505e57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615615729576157296156f9565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826157535761575361572e565b500490565b60006001600160401b038211156157715761577161549c565b5060051b60200190565b6000602080838503121561578e57600080fd5b82516001600160401b038111156157a457600080fd5b8301601f810185136157b557600080fd5b80516157c86157c382615758565b6154db565b81815260059190911b820183019083810190878311156157e757600080fd5b928401925b8284101561580e5783516157ff81614ef7565b825292840192908401906157ec565b979650505050505050565b6000602080838503121561582c57600080fd5b82516001600160401b0381111561584257600080fd5b8301601f8101851361585357600080fd5b80516158616157c382615758565b81815260059190911b8201830190838101908783111561588057600080fd5b928401925b8284101561580e57835182529284019290840190615885565b634e487b7160e01b600052603260045260246000fd5b6000600182016158c6576158c66156f9565b5060010190565b6000828210156158df576158df6156f9565b500390565b6000808335601e198436030181126158fb57600080fd5b8301803591506001600160401b0382111561591557600080fd5b6020019150600681901b360382131561592d57600080fd5b9250929050565b60008083128015600160ff1b850184121615615952576159526156f9565b6001600160ff1b038401831381161561596d5761596d6156f9565b50500390565b80516001600160801b03811681146148ba57600080fd5b6000806040838503121561599d57600080fd5b6159a683615973565b91506159b460208401615973565b90509250929050565b6020808252601590820152740d2dcecc2d8d2c840c2e0e0e4def040c2e0e0e4def605b1b604082015260600190565b60006001600160ff1b0381841382841380821686840486111615615a1257615a126156f9565b600160ff1b6000871282811687830589121615615a3157615a316156f9565b60008712925087820587128484161615615a4d57615a4d6156f9565b87850587128184161615615a6357615a636156f9565b505050929093029392505050565b6020808252600e908201526d1b585c9ad95d08195e1c1a5c995960921b604082015260600190565b600080821280156001600160ff1b0384900385131615615abb57615abb6156f9565b600160ff1b8390038412811615615ad457615ad46156f9565b50500190565b6000600160ff1b8201615aef57615aef6156f9565b5060000390565b60008219821115615b0957615b096156f9565b500190565b600082615b1d57615b1d61572e565b600160ff1b821460001984141615615b3757615b376156f9565b50059056fea2646970667358221220b6ec284cc6ab4c9f34d9aaff1cc205fe244abc497eaf5d74159ef18b04083d9464736f6c634300080f0033",
|
|
1669
|
-
"linkReferences": {
|
|
1670
|
-
|
|
1839
|
+
"bytecode": "0x30608052610180604052600060e081905260001961010081815261012083905261014081905266038d7ea4c6800061016081905260c984905560ca9290925560cb9290925560cc9190915560cd553480156200005a57600080fd5b50604051620044d1380380620044d18339810160408190526200007d91620001a4565b600054610100900460ff166200009a5760005460ff1615620000a4565b620000a46200015e565b6200010c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff161580156200012f576000805461ffff19166101011790555b6001600160a01b0380841660a052821660c052801562000155576000805461ff00191690555b505050620001e3565b600062000176306200017c60201b62002f3b1760201c565b15905090565b6001600160a01b03163b151590565b6001600160a01b0381168114620001a157600080fd5b50565b60008060408385031215620001b857600080fd5b8251620001c5816200018b565b6020840151909250620001d8816200018b565b809150509250929050565b60805160a05160c0516142946200023d6000396000612a7a015260008181610ed50152818161292f01526129df01526000818161120001528181611249015281816119fc01528181611a3c0152611ab801526142946000f3fe60806040526004361061022d5760003560e01c80626024ef1461023257806303670dba14610272578063067cbde1146102925780630cf85bcc146102b25780630f8cb321146103735780631272d863146103a15780631b9d358d146103c15780631e965851146103e1578063209794161461040157806321b7679d14610421578063227501f5146104415780632ec8d8441461046f5780632f7707091461048f57806331c6d55c146104af57806336233bd9146104cf5780633659cfe6146104ef578063372cfb93146105115780633857a07b1461053e5780633badd7101461056d5780633c71db3d1461058d57806345324d9c146105ad5780634f1ef286146105cd57806352d1902d146105e057806355b4fff5146105f557806355bbcd731461062257806362eaf69d1461065257806368d384c014610687578063715018a6146106a757806372568bac146106bc578063739baebe146106dc5780638129fc1c146106fc5780638a719769146107115780638da5cb5b146107315780639225afd614610753578063a749840a14610780578063a9d09ae3146107ad578063af2c7971146107cd578063b24898f4146107ed578063b68d898d1461080d578063bfcafedc1461082d578063c74141f11461085b578063d0f2034e1461087b578063d34344cc1461089b578063d52eacb2146108bb578063db39d886146108fa578063dc7b31631461091a578063e83316041461093a578063efb7601d14610968578063f2fde38b14610988575b600080fd5b34801561023e57600080fd5b5061025261024d36600461350d565b6109a8565b604080519384526020840192909252908201526060015b60405180910390f35b34801561027e57600080fd5b5061025261028d36600461350d565b610a37565b34801561029e57600080fd5b506102526102ad36600461350d565b610a75565b3480156102be57600080fd5b506102d26102cd366004613539565b610ab3565b60405161026995949392919060006101a08201905060018060a01b03808816835280871660208401528551604084015260208601516060840152604086015160808401528060608701511660a084015250608085015160c083015260a085015160e083015260c0850151610100818185015260e087015161012085015280870151610140850152505083610160830152826101808301529695505050505050565b34801561037f57600080fd5b5061039361038e36600461350d565b610c7d565b604051908152602001610269565b3480156103ad57600080fd5b506102526103bc366004613556565b610d03565b3480156103cd57600080fd5b506103936103dc366004613539565b610d93565b3480156103ed57600080fd5b506102526103fc36600461350d565b610e0e565b34801561040d57600080fd5b5061025261041c36600461350d565b610e4f565b34801561042d57600080fd5b5061025261043c366004613556565b610e90565b34801561044d57600080fd5b5061046161045c366004613539565b610ed0565b604051610269929190613598565b34801561047b57600080fd5b5061039361048a366004613556565b611039565b34801561049b57600080fd5b506102526104aa3660046135b2565b611123565b3480156104bb57600080fd5b506102526104ca366004613556565b611178565b3480156104db57600080fd5b506102526104ea36600461350d565b6111b8565b3480156104fb57600080fd5b5061050f61050a366004613539565b6111f6565b005b34801561051d57600080fd5b5061053161052c3660046135e7565b6112c7565b60405161026991906136d3565b34801561054a57600080fd5b5061055e610559366004613539565b611601565b604051610269939291906136e2565b34801561057957600080fd5b50610252610588366004613740565b6118c8565b34801561059957600080fd5b506102526105a8366004613781565b61190b565b3480156105b957600080fd5b506102526105c836600461350d565b6119b4565b61050f6105db366004613836565b6119f2565b3480156105ec57600080fd5b50610393611aab565b34801561060157600080fd5b506106156106103660046138dd565b611b59565b6040516102699190613964565b34801561062e57600080fd5b5061064261063d3660046139b3565b611c20565b6040519015158152602001610269565b34801561065e57600080fd5b5061067261066d36600461350d565b611c64565b60408051928352602083019190915201610269565b34801561069357600080fd5b506103936106a236600461350d565b611cec565b3480156106b357600080fd5b5061050f611d28565b3480156106c857600080fd5b506103936106d736600461350d565b611d63565b3480156106e857600080fd5b506102526106f736600461350d565b611ddf565b34801561070857600080fd5b5061050f611e20565b34801561071d57600080fd5b5061025261072c36600461350d565b611ee4565b34801561073d57600080fd5b50610746611f25565b60405161026991906139ed565b34801561075f57600080fd5b5061077361076e3660046135e7565b611f34565b6040516102699190613aa2565b34801561078c57600080fd5b506107a061079b3660046138dd565b6123d4565b6040516102699190613ab5565b3480156107b957600080fd5b506102526107c836600461350d565b612493565b3480156107d957600080fd5b506106726107e8366004613556565b6124d4565b3480156107f957600080fd5b5061025261080836600461350d565b61255e565b34801561081957600080fd5b5061025261082836600461350d565b61259c565b34801561083957600080fd5b5061084d6108483660046135e7565b6125dd565b604051610269929190613b50565b34801561086757600080fd5b50610393610876366004613539565b6127d1565b34801561088757600080fd5b50610252610896366004613740565b61280b565b3480156108a757600080fd5b506103936108b6366004613740565b61284e565b3480156108c757600080fd5b506108db6108d6366004613539565b612928565b6040805193151584529115156020840152151590820152606001610269565b34801561090657600080fd5b5061039361091536600461350d565b612b00565b34801561092657600080fd5b50610252610935366004613740565b612c13565b34801561094657600080fd5b5061095a6109553660046135e7565b612c56565b604051610269929190613b75565b34801561097457600080fd5b50610393610983366004613539565b612e91565b34801561099457600080fd5b5061050f6109a3366004613539565b612e9e565b600080600073__$b833238e904528751783273f1c78695846$__63fe852a20868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b606060405180830381865af4158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a9190613be0565b9250925092509250925092565b600080600073__$b833238e904528751783273f1c78695846$__6303670dba86866040518363ffffffff1660e01b81526004016109e9929190613c0e565b600080600073__$b833238e904528751783273f1c78695846$__63067cbde186866040518363ffffffff1660e01b81526004016109e9929190613c0e565b600080610b0e60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000806000869050600080886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7b9190613c27565b5091509150809750819650826001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be99190613c79565b9550610bf4896127d1565b60405163efb7601d60e01b815290955073__$b833238e904528751783273f1c78695846$__9063efb7601d90610c2e908c906004016139ed565b602060405180830381865af4158015610c4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6f9190613cfb565b935050505091939590929450565b604051630f8cb32160e01b815260009073__$b833238e904528751783273f1c78695846$__90630f8cb32190610cb99086908690600401613c0e565b602060405180830381865af4158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190613cfb565b90505b92915050565b600080600073__$b833238e904528751783273f1c78695846$__631272d8638787876040518463ffffffff1660e01b8152600401610d4393929190613d14565b606060405180830381865af4158015610d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d849190613be0565b92509250925093509350939050565b604051631b9d358d60e01b815260009073__$b833238e904528751783273f1c78695846$__90631b9d358d90610dcd9085906004016139ed565b602060405180830381865af4158015610dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfd9190613cfb565b600080600073__$b833238e904528751783273f1c78695846$__63c06225e8868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b600080600073__$b833238e904528751783273f1c78695846$__63586772c5868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b600080600073__$b833238e904528751783273f1c78695846$__6321b7679d8787876040518463ffffffff1660e01b8152600401610d4393929190613d14565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371846aa8846040518263ffffffff1660e01b8152600401610f1f91906139ed565b602060405180830381865afa158015610f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f609190613d37565b15610fcd57826001600160a01b031663d94073d46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc79190613d59565b93915050565b829150826001600160a01b031663781c18db6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110329190613d59565b9050915091565b600080846001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa15801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e9190613d59565b9050806001600160a01b031663cbe52ae3846110ba8888611d63565b6040518363ffffffff1660e01b81526004016110d7929190613c0e565b602060405180830381865afa1580156110f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111189190613cfb565b9150505b9392505050565b604051632f77070960e01b81526001600160a01b038416600482015260248101839052604481018290526000908190819073__$b833238e904528751783273f1c78695846$__90632f77070990606401610d43565b600080600073__$b833238e904528751783273f1c78695846$__6331c6d55c8787876040518463ffffffff1660e01b8152600401610d4393929190613d14565b600080600073__$b833238e904528751783273f1c78695846$__6336233bd986866040518363ffffffff1660e01b81526004016109e9929190613c0e565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112475760405162461bcd60e51b815260040161123e90613d76565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611279612f4a565b6001600160a01b03161461129f5760405162461bcd60e51b815260040161123e90613db0565b6112a881612f66565b604080516000808252602082019092526112c491839190612f95565b50565b6112cf613444565b6040516370a0823160e01b815283906000906001600160a01b038316906370a08231906113009087906004016139ed565b602060405180830381865afa15801561131d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113419190613cfb565b6001600160a01b0380871685526020850182905260408051630b2339af60e21b815290519293506000928392861691632c8ce6bc9160048083019260609291908290030181865afa15801561139a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113be9190613c27565b5091509150816001600160a01b031663a40bee506040518163ffffffff1660e01b8152600401606060405180830381865afa158015611401573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114259190613dea565b5060808701516001600160a01b038216602082015282600181111561144c5761144c613638565b600181111561145d5761145d613638565b81525050506000846001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156114a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c79190613c79565b604081015190915060008190036114e357505050505050610cfd565b815160009082906114f49088613e4c565b6114fe9190613e81565b90506000828460200151886115139190613e4c565b61151d9190613e81565b90506040518060400160405280866001600160a01b031681526020018381525089604001819052506040518060400160405280876001600160a01b03168152602001828152508960600181905250670de0b6b3a7640000866001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190613cfb565b6115e09083613e4c565b6115ea9190613e81565b60808a015160400152505050505050505092915050565b6000806060600061161185610ed0565b9150506000819050806001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167d9190613cfb565b9450806001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e19190613cfb565b93506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611723573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261174b9190810190613ec6565b905080516001600160401b03811115611766576117666137c7565b6040519080825280602002602001820160405280156117ab57816020015b60408051808201909152600080825260208201528152602001906001900390816117845790505b5093506000826001600160a01b031663f8b2f9916040518163ffffffff1660e01b81526004016000604051808303816000875af11580156117f0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118189190810190613f64565b905060005b82518110156118bc57600083828151811061183a5761183a613fe9565b602002602001015190508087838151811061185757611857613fe9565b60209081029190910101516001600160a01b039091169052825183908390811061188357611883613fe9565b602002602001015187838151811061189d5761189d613fe9565b6020908102919091018101510152506118b581613fff565b905061181d565b50505050509193909250565b600080600073__$b833238e904528751783273f1c78695846$__633e32089f87878760c96040518563ffffffff1660e01b8152600401610d439493929190614018565b604051633c71db3d60e01b81526001600160a01b0380861660048301528416602482015260448101839052606481018290526000908190819073__$b833238e904528751783273f1c78695846$__90633c71db3d90608401606060405180830381865af4158015611980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a49190613be0565b9250925092509450945094915050565b600080600073__$b833238e904528751783273f1c78695846$__6345324d9c86866040518363ffffffff1660e01b81526004016109e9929190613c0e565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a3a5760405162461bcd60e51b815260040161123e90613d76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a6c612f4a565b6001600160a01b031614611a925760405162461bcd60e51b815260040161123e90613db0565b611a9b82612f66565b611aa782826001612f95565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b465760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840161123e565b5060008051602061421883398151915290565b6060816001600160401b03811115611b7357611b736137c7565b604051908082528060200260200182016040528015611bac57816020015b611b99613444565b815260200190600190039081611b915790505b50905060005b82811015611c1857611bea848483818110611bcf57611bcf613fe9565b9050602002016020810190611be49190613539565b866112c7565b828281518110611bfc57611bfc613fe9565b602002602001018190525080611c1190613fff565b9050611bb2565b509392505050565b60008082604001351180611c38575060008260600135115b80611c46575060a082013515155b80610cfd57506000611c5b60c0840184614045565b90501192915050565b60008073__$b833238e904528751783273f1c78695846$__6362eaf69d85856040518363ffffffff1660e01b8152600401611ca0929190613c0e565b6040805180830381865af4158015611cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce0919061408e565b915091505b9250929050565b6040516301a34e1360e61b815260009073__$b833238e904528751783273f1c78695846$__906368d384c090610cb99086908690600401613c0e565b33611d31611f25565b6001600160a01b031614611d575760405162461bcd60e51b815260040161123e906140b2565b611d616000613105565b565b600080839050611dd7816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd09190613cfb565b8490613157565b949350505050565b600080600073__$b833238e904528751783273f1c78695846$__63919f9430868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b600054610100900460ff16611e3b5760005460ff1615611e43565b611e43613186565b611ea65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161123e565b600054610100900460ff16158015611ec8576000805461ffff19166101011790555b611ed0613197565b80156112c4576000805461ff001916905550565b600080600073__$b833238e904528751783273f1c78695846$__63d92f8f09868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b6033546001600160a01b031690565b611f3c613493565b611f4583610ed0565b6001600160a01b03908116808452911660208301526040516370a0823160e01b815281906370a0823190611f7d9086906004016139ed565b602060405180830381865afa158015611f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbe9190613cfb565b82604001818152505081602001516001600160a01b03166370a08231846040518263ffffffff1660e01b8152600401611ff791906139ed565b602060405180830381865afa158015612014573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120389190613cfb565b826060018181525050806001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa15801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190613d59565b60808301516001600160a01b03918216905260405163d68076c360e01b81529082169063d68076c3906120da9086906004016139ed565b6040805180830381865afa1580156120f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211a91906140fe565b9050806001600160801b03169050826080015160200181815250506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612175573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261219d9190810190613ec6565b9050600081516001600160401b038111156121ba576121ba6137c7565b6040519080825280602002602001820160405280156121f357816020015b6121e06134e1565b8152602001906001900390816121d85790505b5090506000805b835181101561231a57600084828151811061221757612217613fe9565b602002602001015190506000866001600160a01b0316635cbadbe4838b6040518363ffffffff1660e01b8152600401612251929190613598565b6040805180830381865afa15801561226d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229191906140fe565b6001600160801b0316915050801561230757818585815181106122b6576122b6613fe9565b6020026020010151600001906001600160a01b031690816001600160a01b031681525050808585815181106122ed576122ed613fe9565b602090810291909101810151015261230484613fff565b93505b50508061231390613fff565b90506121fa565b50806001600160401b03811115612333576123336137c7565b60405190808252806020026020018201604052801561236c57816020015b6123596134e1565b8152602001906001900390816123515790505b5060a086015260005b818110156123c95782818151811061238f5761238f613fe9565b60200260200101518660a0015182815181106123ad576123ad613fe9565b6020026020010181905250806123c290613fff565b9050612375565b505050505092915050565b6060816001600160401b038111156123ee576123ee6137c7565b60405190808252806020026020018201604052801561242757816020015b612414613493565b81526020019060019003908161240c5790505b50905060005b82811015611c185761246584848381811061244a5761244a613fe9565b905060200201602081019061245f9190613539565b86611f34565b82828151811061247757612477613fe9565b60200260200101819052508061248c90613fff565b905061242d565b600080600073__$b833238e904528751783273f1c78695846$__63c50b5c8b868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b60008073__$b833238e904528751783273f1c78695846$__63af2c79718686866040518463ffffffff1660e01b815260040161251293929190613d14565b6040805180830381865af415801561252e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612552919061408e565b91509150935093915050565b600080600073__$b833238e904528751783273f1c78695846$__63b24898f486866040518363ffffffff1660e01b81526004016109e9929190613c0e565b600080600073__$b833238e904528751783273f1c78695846$__63ab52e20f868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b6060806001600160a01b0384161561272b576000846001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa15801561262f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126539190613d59565b9050806001600160a01b031663213cae636040518163ffffffff1660e01b8152600401600060405180830381865afa158015612693573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126bb9190810190613ec6565b816001600160a01b031663071bc3c96040518163ffffffff1660e01b8152600401600060405180830381865afa1580156126f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127219190810190613ec6565b9250925050611ce5565b6000836001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561276b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061278f9190613c27565b50509050806001600160a01b031663213cae636040518163ffffffff1660e01b8152600401600060405180830381865afa158015612693573d6000803e3d6000fd5b60405163c74141f160e01b815260009073__$b833238e904528751783273f1c78695846$__9063c74141f190610dcd9085906004016139ed565b600080600073__$b833238e904528751783273f1c78695846$__63690a0cbd87878760c96040518563ffffffff1660e01b8152600401610d439493929190614018565b600080846001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa15801561288f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128b39190613d59565b905061111885826001600160a01b031663b8f82b2687876040518363ffffffff1660e01b81526004016128e7929190613c0e565b602060405180830381865afa158015612904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109159190613cfb565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318b7373d856040518263ffffffff1660e01b815260040161297991906139ed565b602060405180830381865afa158015612996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ba9190613d37565b156129c85760019250612af9565b604051630e308d5560e31b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906371846aa890612a149087906004016139ed565b602060405180830381865afa158015612a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a559190613d37565b15612a635760019150612af9565b6040516358e6309f60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906358e6309f90612aaf9087906004016139ed565b602060405180830381865afa158015612acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af09190613d37565b15612af9575060015b9193909250565b600080839050806001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b689190613d37565b15612ba55760405162461bcd60e51b815260206004820152600d60248201526c1655081a5cc8195e1c1a5c9959609a1b604482015260640161123e565b611dd7816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c0c9190613cfb565b84906131c6565b600080600073__$b833238e904528751783273f1c78695846$__63672b79e487878760c96040518563ffffffff1660e01b8152600401610d439493929190614018565b6040516370a0823160e01b815260009060609084906001600160a01b038216906370a0823190612c8a9084906004016139ed565b602060405180830381865afa158015612ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ccb9190613cfb565b92506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612d0d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d359190810190613ec6565b905080516001600160401b03811115612d5057612d506137c7565b604051908082528060200260200182016040528015612d8957816020015b612d766134e1565b815260200190600190039081612d6e5790505b50925060005b8151811015612e87576000828281518110612dac57612dac613fe9565b6020026020010151905080858381518110612dc957612dc9613fe9565b60209081029190910101516001600160a01b03918216905260405163172eb6f960e21b815290891690635cbadbe490612e089084908b90600401613598565b6040805180830381865afa158015612e24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4891906140fe565b9050806001600160801b03169050858381518110612e6857612e68613fe9565b602090810291909101810151015250612e8081613fff565b9050612d8f565b5050509250929050565b6000610cfd826000610c7d565b33612ea7611f25565b6001600160a01b031614612ecd5760405162461bcd60e51b815260040161123e906140b2565b6001600160a01b038116612f325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161123e565b6112c481613105565b6001600160a01b03163b151590565b600080516020614218833981519152546001600160a01b031690565b33612f6f611f25565b6001600160a01b0316146112c45760405162461bcd60e51b815260040161123e906140b2565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612fcd57612fc8836131e4565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613027575060408051601f3d908101601f1916820190925261302491810190613cfb565b60015b61308a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161123e565b60008051602061421883398151915281146130f95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161123e565b50612fc883838361327e565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008061316c670de0b6b3a764000085613e4c565b905082818161317d5761317d613e6b565b04949350505050565b600061319130612f3b565b15905090565b600054610100900460ff166131be5760405162461bcd60e51b815260040161123e90614131565b611d616132a9565b6000806131d38385613e4c565b9050670de0b6b3a76400008161317d565b6131ed81612f3b565b61324f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161123e565b60008051602061421883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613287836132d9565b6000825111806132945750805b15612fc8576132a38383613319565b50505050565b600054610100900460ff166132d05760405162461bcd60e51b815260040161123e90614131565b611d6133613105565b6132e2816131e4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061332483612f3b565b61337f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161123e565b600080846001600160a01b03168460405161339a91906141a8565b600060405180830381855af49150503d80600081146133d5576040519150601f19603f3d011682016040523d82523d6000602084013e6133da565b606091505b509150915061340282826040518060600160405280602781526020016142386027913961340b565b95945050505050565b6060831561341a57508161111c565b82511561342a5782518084602001fd5b8160405162461bcd60e51b815260040161123e91906141c4565b6040805160a081018252600080825260208201529081016134636134e1565b81526020016134706134e1565b815260408051606081018252600080825260208281018290529282015291015290565b6040518060c0016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016134d46134e1565b8152602001606081525090565b604080518082019091526000808252602082015290565b6001600160a01b03811681146112c457600080fd5b6000806040838503121561352057600080fd5b823561352b816134f8565b946020939093013593505050565b60006020828403121561354b57600080fd5b813561111c816134f8565b60008060006060848603121561356b57600080fd5b8335613576816134f8565b925060208401359150604084013561358d816134f8565b809150509250925092565b6001600160a01b0392831681529116602082015260400190565b6000806000606084860312156135c757600080fd5b83356135d2816134f8565b95602085013595506040909401359392505050565b600080604083850312156135fa57600080fd5b8235613605816134f8565b91506020830135613615816134f8565b809150509250929050565b80516001600160a01b03168252602090810151910152565b634e487b7160e01b600052602160045260246000fd5b60018060a01b038082511683526020820151602084015260408201516136776040850182613620565b50606082015161368a6080850182613620565b5060808201518051600281106136b057634e487b7160e01b600052602160045260246000fd5b60c0850152602081015190911660e0840152604001516101009092019190915250565b6101208101610cfd828461364e565b600060608201858352602085818501526040606081860152828651808552608087019150838801945060005b8181101561373157613721838751613620565b948401949183019160010161370e565b50909998505050505050505050565b60008060006060848603121561375557600080fd5b8335613760816134f8565b92506020840135613770816134f8565b929592945050506040919091013590565b6000806000806080858703121561379757600080fd5b84356137a2816134f8565b935060208501356137b2816134f8565b93969395505050506040820135916060013590565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715613800576138006137c7565b60405290565b604051601f8201601f191681016001600160401b038111828210171561382e5761382e6137c7565b604052919050565b6000806040838503121561384957600080fd5b8235613854816134f8565b91506020838101356001600160401b038082111561387157600080fd5b818601915086601f83011261388557600080fd5b813581811115613897576138976137c7565b6138a9601f8201601f19168501613806565b915080825287848285010111156138bf57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806000604084860312156138f257600080fd5b83356138fd816134f8565b925060208401356001600160401b038082111561391957600080fd5b818601915086601f83011261392d57600080fd5b81358181111561393c57600080fd5b8760208260051b850101111561395157600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b818110156139a75761399383855161364e565b928401926101209290920191600101613980565b50909695505050505050565b6000602082840312156139c557600080fd5b81356001600160401b038111156139db57600080fd5b820160e0818503121561111c57600080fd5b6001600160a01b0391909116815260200190565b600081518084526020808501945080840160005b83811015613a3b57613a28878351613620565b6040969096019590820190600101613a15565b509495945050505050565b600060018060a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151613a886080850182613620565b5060a082015160e060c0850152611dd760e0850182613a01565b602081526000610cfa6020830184613a46565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613b0a57603f19888603018452613af8858351613a46565b94509285019290850190600101613adc565b5092979650505050505050565b600081518084526020808501945080840160005b83811015613a3b5781516001600160a01b031687529582019590820190600101613b2b565b604081526000613b636040830185613b17565b82810360208401526111188185613b17565b828152604060208201526000611dd76040830184613a01565b8054825260018101546020830152600281015460408301526003810154606083015260040154608090910152565b6001600160a01b03841681526020810183905260e08101611dd76040830184613b8e565b600080600060608486031215613bf557600080fd5b8351925060208401519150604084015190509250925092565b6001600160a01b03929092168252602082015260400190565b600080600060608486031215613c3c57600080fd5b8351613c47816134f8565b6020850151909350613c58816134f8565b604085015190925061358d816134f8565b8051613c74816134f8565b919050565b60006101208284031215613c8c57600080fd5b613c946137dd565b825181526020830151602082015260408301516040820152613cb860608401613c69565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060208284031215613d0d57600080fd5b5051919050565b6001600160a01b0393841681526020810192909252909116604082015260600190565b600060208284031215613d4957600080fd5b8151801515811461111c57600080fd5b600060208284031215613d6b57600080fd5b815161111c816134f8565b6020808252602c908201526000805160206141f883398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206141f883398151915260408201526b6163746976652070726f787960a01b606082015260800190565b600080600060608486031215613dff57600080fd5b835160028110613e0e57600080fd5b6020850151909350613e1f816134f8565b604085015190925060ff8116811461358d57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615613e6657613e66613e36565b500290565b634e487b7160e01b600052601260045260246000fd5b600082613e9e57634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160401b03821115613ebc57613ebc6137c7565b5060051b60200190565b60006020808385031215613ed957600080fd5b82516001600160401b03811115613eef57600080fd5b8301601f81018513613f0057600080fd5b8051613f13613f0e82613ea3565b613806565b81815260059190911b82018301908381019087831115613f3257600080fd5b928401925b82841015613f59578351613f4a816134f8565b82529284019290840190613f37565b979650505050505050565b60006020808385031215613f7757600080fd5b82516001600160401b03811115613f8d57600080fd5b8301601f81018513613f9e57600080fd5b8051613fac613f0e82613ea3565b81815260059190911b82018301908381019087831115613fcb57600080fd5b928401925b82841015613f5957835182529284019290840190613fd0565b634e487b7160e01b600052603260045260246000fd5b60006001820161401157614011613e36565b5060010190565b6001600160a01b038581168252841660208201526040810183905261010081016134026060830184613b8e565b6000808335601e1984360301811261405c57600080fd5b8301803591506001600160401b0382111561407657600080fd5b6020019150600681901b3603821315611ce557600080fd5b600080604083850312156140a157600080fd5b505080516020909101519092909150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80516001600160801b0381168114613c7457600080fd5b6000806040838503121561411157600080fd5b61411a836140e7565b9150614128602084016140e7565b90509250929050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b8381101561419757818101518382015260200161417f565b838111156132a35750506000910152565b600082516141ba81846020870161417c565b9190910192915050565b60208152600082518060208401526141e381604085016020870161417c565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202df7eb8e9fbd4016a43bf0b36dcd6cb11231d208b0fd58b2386d149ede46f01d64736f6c634300080f0033",
|
|
1840
|
+
"deployedBytecode": "0x60806040526004361061022d5760003560e01c80626024ef1461023257806303670dba14610272578063067cbde1146102925780630cf85bcc146102b25780630f8cb321146103735780631272d863146103a15780631b9d358d146103c15780631e965851146103e1578063209794161461040157806321b7679d14610421578063227501f5146104415780632ec8d8441461046f5780632f7707091461048f57806331c6d55c146104af57806336233bd9146104cf5780633659cfe6146104ef578063372cfb93146105115780633857a07b1461053e5780633badd7101461056d5780633c71db3d1461058d57806345324d9c146105ad5780634f1ef286146105cd57806352d1902d146105e057806355b4fff5146105f557806355bbcd731461062257806362eaf69d1461065257806368d384c014610687578063715018a6146106a757806372568bac146106bc578063739baebe146106dc5780638129fc1c146106fc5780638a719769146107115780638da5cb5b146107315780639225afd614610753578063a749840a14610780578063a9d09ae3146107ad578063af2c7971146107cd578063b24898f4146107ed578063b68d898d1461080d578063bfcafedc1461082d578063c74141f11461085b578063d0f2034e1461087b578063d34344cc1461089b578063d52eacb2146108bb578063db39d886146108fa578063dc7b31631461091a578063e83316041461093a578063efb7601d14610968578063f2fde38b14610988575b600080fd5b34801561023e57600080fd5b5061025261024d36600461350d565b6109a8565b604080519384526020840192909252908201526060015b60405180910390f35b34801561027e57600080fd5b5061025261028d36600461350d565b610a37565b34801561029e57600080fd5b506102526102ad36600461350d565b610a75565b3480156102be57600080fd5b506102d26102cd366004613539565b610ab3565b60405161026995949392919060006101a08201905060018060a01b03808816835280871660208401528551604084015260208601516060840152604086015160808401528060608701511660a084015250608085015160c083015260a085015160e083015260c0850151610100818185015260e087015161012085015280870151610140850152505083610160830152826101808301529695505050505050565b34801561037f57600080fd5b5061039361038e36600461350d565b610c7d565b604051908152602001610269565b3480156103ad57600080fd5b506102526103bc366004613556565b610d03565b3480156103cd57600080fd5b506103936103dc366004613539565b610d93565b3480156103ed57600080fd5b506102526103fc36600461350d565b610e0e565b34801561040d57600080fd5b5061025261041c36600461350d565b610e4f565b34801561042d57600080fd5b5061025261043c366004613556565b610e90565b34801561044d57600080fd5b5061046161045c366004613539565b610ed0565b604051610269929190613598565b34801561047b57600080fd5b5061039361048a366004613556565b611039565b34801561049b57600080fd5b506102526104aa3660046135b2565b611123565b3480156104bb57600080fd5b506102526104ca366004613556565b611178565b3480156104db57600080fd5b506102526104ea36600461350d565b6111b8565b3480156104fb57600080fd5b5061050f61050a366004613539565b6111f6565b005b34801561051d57600080fd5b5061053161052c3660046135e7565b6112c7565b60405161026991906136d3565b34801561054a57600080fd5b5061055e610559366004613539565b611601565b604051610269939291906136e2565b34801561057957600080fd5b50610252610588366004613740565b6118c8565b34801561059957600080fd5b506102526105a8366004613781565b61190b565b3480156105b957600080fd5b506102526105c836600461350d565b6119b4565b61050f6105db366004613836565b6119f2565b3480156105ec57600080fd5b50610393611aab565b34801561060157600080fd5b506106156106103660046138dd565b611b59565b6040516102699190613964565b34801561062e57600080fd5b5061064261063d3660046139b3565b611c20565b6040519015158152602001610269565b34801561065e57600080fd5b5061067261066d36600461350d565b611c64565b60408051928352602083019190915201610269565b34801561069357600080fd5b506103936106a236600461350d565b611cec565b3480156106b357600080fd5b5061050f611d28565b3480156106c857600080fd5b506103936106d736600461350d565b611d63565b3480156106e857600080fd5b506102526106f736600461350d565b611ddf565b34801561070857600080fd5b5061050f611e20565b34801561071d57600080fd5b5061025261072c36600461350d565b611ee4565b34801561073d57600080fd5b50610746611f25565b60405161026991906139ed565b34801561075f57600080fd5b5061077361076e3660046135e7565b611f34565b6040516102699190613aa2565b34801561078c57600080fd5b506107a061079b3660046138dd565b6123d4565b6040516102699190613ab5565b3480156107b957600080fd5b506102526107c836600461350d565b612493565b3480156107d957600080fd5b506106726107e8366004613556565b6124d4565b3480156107f957600080fd5b5061025261080836600461350d565b61255e565b34801561081957600080fd5b5061025261082836600461350d565b61259c565b34801561083957600080fd5b5061084d6108483660046135e7565b6125dd565b604051610269929190613b50565b34801561086757600080fd5b50610393610876366004613539565b6127d1565b34801561088757600080fd5b50610252610896366004613740565b61280b565b3480156108a757600080fd5b506103936108b6366004613740565b61284e565b3480156108c757600080fd5b506108db6108d6366004613539565b612928565b6040805193151584529115156020840152151590820152606001610269565b34801561090657600080fd5b5061039361091536600461350d565b612b00565b34801561092657600080fd5b50610252610935366004613740565b612c13565b34801561094657600080fd5b5061095a6109553660046135e7565b612c56565b604051610269929190613b75565b34801561097457600080fd5b50610393610983366004613539565b612e91565b34801561099457600080fd5b5061050f6109a3366004613539565b612e9e565b600080600073__$b833238e904528751783273f1c78695846$__63fe852a20868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b606060405180830381865af4158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a9190613be0565b9250925092509250925092565b600080600073__$b833238e904528751783273f1c78695846$__6303670dba86866040518363ffffffff1660e01b81526004016109e9929190613c0e565b600080600073__$b833238e904528751783273f1c78695846$__63067cbde186866040518363ffffffff1660e01b81526004016109e9929190613c0e565b600080610b0e60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000806000869050600080886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7b9190613c27565b5091509150809750819650826001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be99190613c79565b9550610bf4896127d1565b60405163efb7601d60e01b815290955073__$b833238e904528751783273f1c78695846$__9063efb7601d90610c2e908c906004016139ed565b602060405180830381865af4158015610c4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6f9190613cfb565b935050505091939590929450565b604051630f8cb32160e01b815260009073__$b833238e904528751783273f1c78695846$__90630f8cb32190610cb99086908690600401613c0e565b602060405180830381865af4158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190613cfb565b90505b92915050565b600080600073__$b833238e904528751783273f1c78695846$__631272d8638787876040518463ffffffff1660e01b8152600401610d4393929190613d14565b606060405180830381865af4158015610d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d849190613be0565b92509250925093509350939050565b604051631b9d358d60e01b815260009073__$b833238e904528751783273f1c78695846$__90631b9d358d90610dcd9085906004016139ed565b602060405180830381865af4158015610dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfd9190613cfb565b600080600073__$b833238e904528751783273f1c78695846$__63c06225e8868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b600080600073__$b833238e904528751783273f1c78695846$__63586772c5868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b600080600073__$b833238e904528751783273f1c78695846$__6321b7679d8787876040518463ffffffff1660e01b8152600401610d4393929190613d14565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371846aa8846040518263ffffffff1660e01b8152600401610f1f91906139ed565b602060405180830381865afa158015610f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f609190613d37565b15610fcd57826001600160a01b031663d94073d46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc79190613d59565b93915050565b829150826001600160a01b031663781c18db6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110329190613d59565b9050915091565b600080846001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa15801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e9190613d59565b9050806001600160a01b031663cbe52ae3846110ba8888611d63565b6040518363ffffffff1660e01b81526004016110d7929190613c0e565b602060405180830381865afa1580156110f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111189190613cfb565b9150505b9392505050565b604051632f77070960e01b81526001600160a01b038416600482015260248101839052604481018290526000908190819073__$b833238e904528751783273f1c78695846$__90632f77070990606401610d43565b600080600073__$b833238e904528751783273f1c78695846$__6331c6d55c8787876040518463ffffffff1660e01b8152600401610d4393929190613d14565b600080600073__$b833238e904528751783273f1c78695846$__6336233bd986866040518363ffffffff1660e01b81526004016109e9929190613c0e565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112475760405162461bcd60e51b815260040161123e90613d76565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611279612f4a565b6001600160a01b03161461129f5760405162461bcd60e51b815260040161123e90613db0565b6112a881612f66565b604080516000808252602082019092526112c491839190612f95565b50565b6112cf613444565b6040516370a0823160e01b815283906000906001600160a01b038316906370a08231906113009087906004016139ed565b602060405180830381865afa15801561131d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113419190613cfb565b6001600160a01b0380871685526020850182905260408051630b2339af60e21b815290519293506000928392861691632c8ce6bc9160048083019260609291908290030181865afa15801561139a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113be9190613c27565b5091509150816001600160a01b031663a40bee506040518163ffffffff1660e01b8152600401606060405180830381865afa158015611401573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114259190613dea565b5060808701516001600160a01b038216602082015282600181111561144c5761144c613638565b600181111561145d5761145d613638565b81525050506000846001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156114a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c79190613c79565b604081015190915060008190036114e357505050505050610cfd565b815160009082906114f49088613e4c565b6114fe9190613e81565b90506000828460200151886115139190613e4c565b61151d9190613e81565b90506040518060400160405280866001600160a01b031681526020018381525089604001819052506040518060400160405280876001600160a01b03168152602001828152508960600181905250670de0b6b3a7640000866001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190613cfb565b6115e09083613e4c565b6115ea9190613e81565b60808a015160400152505050505050505092915050565b6000806060600061161185610ed0565b9150506000819050806001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167d9190613cfb565b9450806001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e19190613cfb565b93506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611723573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261174b9190810190613ec6565b905080516001600160401b03811115611766576117666137c7565b6040519080825280602002602001820160405280156117ab57816020015b60408051808201909152600080825260208201528152602001906001900390816117845790505b5093506000826001600160a01b031663f8b2f9916040518163ffffffff1660e01b81526004016000604051808303816000875af11580156117f0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118189190810190613f64565b905060005b82518110156118bc57600083828151811061183a5761183a613fe9565b602002602001015190508087838151811061185757611857613fe9565b60209081029190910101516001600160a01b039091169052825183908390811061188357611883613fe9565b602002602001015187838151811061189d5761189d613fe9565b6020908102919091018101510152506118b581613fff565b905061181d565b50505050509193909250565b600080600073__$b833238e904528751783273f1c78695846$__633e32089f87878760c96040518563ffffffff1660e01b8152600401610d439493929190614018565b604051633c71db3d60e01b81526001600160a01b0380861660048301528416602482015260448101839052606481018290526000908190819073__$b833238e904528751783273f1c78695846$__90633c71db3d90608401606060405180830381865af4158015611980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a49190613be0565b9250925092509450945094915050565b600080600073__$b833238e904528751783273f1c78695846$__6345324d9c86866040518363ffffffff1660e01b81526004016109e9929190613c0e565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a3a5760405162461bcd60e51b815260040161123e90613d76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a6c612f4a565b6001600160a01b031614611a925760405162461bcd60e51b815260040161123e90613db0565b611a9b82612f66565b611aa782826001612f95565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b465760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840161123e565b5060008051602061421883398151915290565b6060816001600160401b03811115611b7357611b736137c7565b604051908082528060200260200182016040528015611bac57816020015b611b99613444565b815260200190600190039081611b915790505b50905060005b82811015611c1857611bea848483818110611bcf57611bcf613fe9565b9050602002016020810190611be49190613539565b866112c7565b828281518110611bfc57611bfc613fe9565b602002602001018190525080611c1190613fff565b9050611bb2565b509392505050565b60008082604001351180611c38575060008260600135115b80611c46575060a082013515155b80610cfd57506000611c5b60c0840184614045565b90501192915050565b60008073__$b833238e904528751783273f1c78695846$__6362eaf69d85856040518363ffffffff1660e01b8152600401611ca0929190613c0e565b6040805180830381865af4158015611cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce0919061408e565b915091505b9250929050565b6040516301a34e1360e61b815260009073__$b833238e904528751783273f1c78695846$__906368d384c090610cb99086908690600401613c0e565b33611d31611f25565b6001600160a01b031614611d575760405162461bcd60e51b815260040161123e906140b2565b611d616000613105565b565b600080839050611dd7816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd09190613cfb565b8490613157565b949350505050565b600080600073__$b833238e904528751783273f1c78695846$__63919f9430868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b600054610100900460ff16611e3b5760005460ff1615611e43565b611e43613186565b611ea65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161123e565b600054610100900460ff16158015611ec8576000805461ffff19166101011790555b611ed0613197565b80156112c4576000805461ff001916905550565b600080600073__$b833238e904528751783273f1c78695846$__63d92f8f09868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b6033546001600160a01b031690565b611f3c613493565b611f4583610ed0565b6001600160a01b03908116808452911660208301526040516370a0823160e01b815281906370a0823190611f7d9086906004016139ed565b602060405180830381865afa158015611f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbe9190613cfb565b82604001818152505081602001516001600160a01b03166370a08231846040518263ffffffff1660e01b8152600401611ff791906139ed565b602060405180830381865afa158015612014573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120389190613cfb565b826060018181525050806001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa15801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190613d59565b60808301516001600160a01b03918216905260405163d68076c360e01b81529082169063d68076c3906120da9086906004016139ed565b6040805180830381865afa1580156120f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211a91906140fe565b9050806001600160801b03169050826080015160200181815250506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612175573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261219d9190810190613ec6565b9050600081516001600160401b038111156121ba576121ba6137c7565b6040519080825280602002602001820160405280156121f357816020015b6121e06134e1565b8152602001906001900390816121d85790505b5090506000805b835181101561231a57600084828151811061221757612217613fe9565b602002602001015190506000866001600160a01b0316635cbadbe4838b6040518363ffffffff1660e01b8152600401612251929190613598565b6040805180830381865afa15801561226d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229191906140fe565b6001600160801b0316915050801561230757818585815181106122b6576122b6613fe9565b6020026020010151600001906001600160a01b031690816001600160a01b031681525050808585815181106122ed576122ed613fe9565b602090810291909101810151015261230484613fff565b93505b50508061231390613fff565b90506121fa565b50806001600160401b03811115612333576123336137c7565b60405190808252806020026020018201604052801561236c57816020015b6123596134e1565b8152602001906001900390816123515790505b5060a086015260005b818110156123c95782818151811061238f5761238f613fe9565b60200260200101518660a0015182815181106123ad576123ad613fe9565b6020026020010181905250806123c290613fff565b9050612375565b505050505092915050565b6060816001600160401b038111156123ee576123ee6137c7565b60405190808252806020026020018201604052801561242757816020015b612414613493565b81526020019060019003908161240c5790505b50905060005b82811015611c185761246584848381811061244a5761244a613fe9565b905060200201602081019061245f9190613539565b86611f34565b82828151811061247757612477613fe9565b60200260200101819052508061248c90613fff565b905061242d565b600080600073__$b833238e904528751783273f1c78695846$__63c50b5c8b868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b60008073__$b833238e904528751783273f1c78695846$__63af2c79718686866040518463ffffffff1660e01b815260040161251293929190613d14565b6040805180830381865af415801561252e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612552919061408e565b91509150935093915050565b600080600073__$b833238e904528751783273f1c78695846$__63b24898f486866040518363ffffffff1660e01b81526004016109e9929190613c0e565b600080600073__$b833238e904528751783273f1c78695846$__63ab52e20f868660c96040518463ffffffff1660e01b81526004016109e993929190613bbc565b6060806001600160a01b0384161561272b576000846001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa15801561262f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126539190613d59565b9050806001600160a01b031663213cae636040518163ffffffff1660e01b8152600401600060405180830381865afa158015612693573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126bb9190810190613ec6565b816001600160a01b031663071bc3c96040518163ffffffff1660e01b8152600401600060405180830381865afa1580156126f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127219190810190613ec6565b9250925050611ce5565b6000836001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561276b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061278f9190613c27565b50509050806001600160a01b031663213cae636040518163ffffffff1660e01b8152600401600060405180830381865afa158015612693573d6000803e3d6000fd5b60405163c74141f160e01b815260009073__$b833238e904528751783273f1c78695846$__9063c74141f190610dcd9085906004016139ed565b600080600073__$b833238e904528751783273f1c78695846$__63690a0cbd87878760c96040518563ffffffff1660e01b8152600401610d439493929190614018565b600080846001600160a01b03166347bfac626040518163ffffffff1660e01b8152600401602060405180830381865afa15801561288f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128b39190613d59565b905061111885826001600160a01b031663b8f82b2687876040518363ffffffff1660e01b81526004016128e7929190613c0e565b602060405180830381865afa158015612904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109159190613cfb565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318b7373d856040518263ffffffff1660e01b815260040161297991906139ed565b602060405180830381865afa158015612996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ba9190613d37565b156129c85760019250612af9565b604051630e308d5560e31b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906371846aa890612a149087906004016139ed565b602060405180830381865afa158015612a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a559190613d37565b15612a635760019150612af9565b6040516358e6309f60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906358e6309f90612aaf9087906004016139ed565b602060405180830381865afa158015612acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af09190613d37565b15612af9575060015b9193909250565b600080839050806001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b689190613d37565b15612ba55760405162461bcd60e51b815260206004820152600d60248201526c1655081a5cc8195e1c1a5c9959609a1b604482015260640161123e565b611dd7816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c0c9190613cfb565b84906131c6565b600080600073__$b833238e904528751783273f1c78695846$__63672b79e487878760c96040518563ffffffff1660e01b8152600401610d439493929190614018565b6040516370a0823160e01b815260009060609084906001600160a01b038216906370a0823190612c8a9084906004016139ed565b602060405180830381865afa158015612ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ccb9190613cfb565b92506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612d0d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d359190810190613ec6565b905080516001600160401b03811115612d5057612d506137c7565b604051908082528060200260200182016040528015612d8957816020015b612d766134e1565b815260200190600190039081612d6e5790505b50925060005b8151811015612e87576000828281518110612dac57612dac613fe9565b6020026020010151905080858381518110612dc957612dc9613fe9565b60209081029190910101516001600160a01b03918216905260405163172eb6f960e21b815290891690635cbadbe490612e089084908b90600401613598565b6040805180830381865afa158015612e24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4891906140fe565b9050806001600160801b03169050858381518110612e6857612e68613fe9565b602090810291909101810151015250612e8081613fff565b9050612d8f565b5050509250929050565b6000610cfd826000610c7d565b33612ea7611f25565b6001600160a01b031614612ecd5760405162461bcd60e51b815260040161123e906140b2565b6001600160a01b038116612f325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161123e565b6112c481613105565b6001600160a01b03163b151590565b600080516020614218833981519152546001600160a01b031690565b33612f6f611f25565b6001600160a01b0316146112c45760405162461bcd60e51b815260040161123e906140b2565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612fcd57612fc8836131e4565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613027575060408051601f3d908101601f1916820190925261302491810190613cfb565b60015b61308a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161123e565b60008051602061421883398151915281146130f95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161123e565b50612fc883838361327e565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008061316c670de0b6b3a764000085613e4c565b905082818161317d5761317d613e6b565b04949350505050565b600061319130612f3b565b15905090565b600054610100900460ff166131be5760405162461bcd60e51b815260040161123e90614131565b611d616132a9565b6000806131d38385613e4c565b9050670de0b6b3a76400008161317d565b6131ed81612f3b565b61324f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161123e565b60008051602061421883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613287836132d9565b6000825111806132945750805b15612fc8576132a38383613319565b50505050565b600054610100900460ff166132d05760405162461bcd60e51b815260040161123e90614131565b611d6133613105565b6132e2816131e4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061332483612f3b565b61337f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161123e565b600080846001600160a01b03168460405161339a91906141a8565b600060405180830381855af49150503d80600081146133d5576040519150601f19603f3d011682016040523d82523d6000602084013e6133da565b606091505b509150915061340282826040518060600160405280602781526020016142386027913961340b565b95945050505050565b6060831561341a57508161111c565b82511561342a5782518084602001fd5b8160405162461bcd60e51b815260040161123e91906141c4565b6040805160a081018252600080825260208201529081016134636134e1565b81526020016134706134e1565b815260408051606081018252600080825260208281018290529282015291015290565b6040518060c0016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016134d46134e1565b8152602001606081525090565b604080518082019091526000808252602082015290565b6001600160a01b03811681146112c457600080fd5b6000806040838503121561352057600080fd5b823561352b816134f8565b946020939093013593505050565b60006020828403121561354b57600080fd5b813561111c816134f8565b60008060006060848603121561356b57600080fd5b8335613576816134f8565b925060208401359150604084013561358d816134f8565b809150509250925092565b6001600160a01b0392831681529116602082015260400190565b6000806000606084860312156135c757600080fd5b83356135d2816134f8565b95602085013595506040909401359392505050565b600080604083850312156135fa57600080fd5b8235613605816134f8565b91506020830135613615816134f8565b809150509250929050565b80516001600160a01b03168252602090810151910152565b634e487b7160e01b600052602160045260246000fd5b60018060a01b038082511683526020820151602084015260408201516136776040850182613620565b50606082015161368a6080850182613620565b5060808201518051600281106136b057634e487b7160e01b600052602160045260246000fd5b60c0850152602081015190911660e0840152604001516101009092019190915250565b6101208101610cfd828461364e565b600060608201858352602085818501526040606081860152828651808552608087019150838801945060005b8181101561373157613721838751613620565b948401949183019160010161370e565b50909998505050505050505050565b60008060006060848603121561375557600080fd5b8335613760816134f8565b92506020840135613770816134f8565b929592945050506040919091013590565b6000806000806080858703121561379757600080fd5b84356137a2816134f8565b935060208501356137b2816134f8565b93969395505050506040820135916060013590565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715613800576138006137c7565b60405290565b604051601f8201601f191681016001600160401b038111828210171561382e5761382e6137c7565b604052919050565b6000806040838503121561384957600080fd5b8235613854816134f8565b91506020838101356001600160401b038082111561387157600080fd5b818601915086601f83011261388557600080fd5b813581811115613897576138976137c7565b6138a9601f8201601f19168501613806565b915080825287848285010111156138bf57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806000604084860312156138f257600080fd5b83356138fd816134f8565b925060208401356001600160401b038082111561391957600080fd5b818601915086601f83011261392d57600080fd5b81358181111561393c57600080fd5b8760208260051b850101111561395157600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b818110156139a75761399383855161364e565b928401926101209290920191600101613980565b50909695505050505050565b6000602082840312156139c557600080fd5b81356001600160401b038111156139db57600080fd5b820160e0818503121561111c57600080fd5b6001600160a01b0391909116815260200190565b600081518084526020808501945080840160005b83811015613a3b57613a28878351613620565b6040969096019590820190600101613a15565b509495945050505050565b600060018060a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151613a886080850182613620565b5060a082015160e060c0850152611dd760e0850182613a01565b602081526000610cfa6020830184613a46565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613b0a57603f19888603018452613af8858351613a46565b94509285019290850190600101613adc565b5092979650505050505050565b600081518084526020808501945080840160005b83811015613a3b5781516001600160a01b031687529582019590820190600101613b2b565b604081526000613b636040830185613b17565b82810360208401526111188185613b17565b828152604060208201526000611dd76040830184613a01565b8054825260018101546020830152600281015460408301526003810154606083015260040154608090910152565b6001600160a01b03841681526020810183905260e08101611dd76040830184613b8e565b600080600060608486031215613bf557600080fd5b8351925060208401519150604084015190509250925092565b6001600160a01b03929092168252602082015260400190565b600080600060608486031215613c3c57600080fd5b8351613c47816134f8565b6020850151909350613c58816134f8565b604085015190925061358d816134f8565b8051613c74816134f8565b919050565b60006101208284031215613c8c57600080fd5b613c946137dd565b825181526020830151602082015260408301516040820152613cb860608401613c69565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060208284031215613d0d57600080fd5b5051919050565b6001600160a01b0393841681526020810192909252909116604082015260600190565b600060208284031215613d4957600080fd5b8151801515811461111c57600080fd5b600060208284031215613d6b57600080fd5b815161111c816134f8565b6020808252602c908201526000805160206141f883398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206141f883398151915260408201526b6163746976652070726f787960a01b606082015260800190565b600080600060608486031215613dff57600080fd5b835160028110613e0e57600080fd5b6020850151909350613e1f816134f8565b604085015190925060ff8116811461358d57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615613e6657613e66613e36565b500290565b634e487b7160e01b600052601260045260246000fd5b600082613e9e57634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160401b03821115613ebc57613ebc6137c7565b5060051b60200190565b60006020808385031215613ed957600080fd5b82516001600160401b03811115613eef57600080fd5b8301601f81018513613f0057600080fd5b8051613f13613f0e82613ea3565b613806565b81815260059190911b82018301908381019087831115613f3257600080fd5b928401925b82841015613f59578351613f4a816134f8565b82529284019290840190613f37565b979650505050505050565b60006020808385031215613f7757600080fd5b82516001600160401b03811115613f8d57600080fd5b8301601f81018513613f9e57600080fd5b8051613fac613f0e82613ea3565b81815260059190911b82018301908381019087831115613fcb57600080fd5b928401925b82841015613f5957835182529284019290840190613fd0565b634e487b7160e01b600052603260045260246000fd5b60006001820161401157614011613e36565b5060010190565b6001600160a01b038581168252841660208201526040810183905261010081016134026060830184613b8e565b6000808335601e1984360301811261405c57600080fd5b8301803591506001600160401b0382111561407657600080fd5b6020019150600681901b3603821315611ce557600080fd5b600080604083850312156140a157600080fd5b505080516020909101519092909150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80516001600160801b0381168114613c7457600080fd5b6000806040838503121561411157600080fd5b61411a836140e7565b9150614128602084016140e7565b90509250929050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b8381101561419757818101518382015260200161417f565b838111156132a35750506000910152565b600082516141ba81846020870161417c565b9190910192915050565b60208152600082518060208401526141e381604085016020870161417c565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202df7eb8e9fbd4016a43bf0b36dcd6cb11231d208b0fd58b2386d149ede46f01d64736f6c634300080f0033",
|
|
1841
|
+
"linkReferences": {
|
|
1842
|
+
"contracts/offchain-helpers/MarketMathStatic.sol": {
|
|
1843
|
+
"MarketMathStatic": [
|
|
1844
|
+
{
|
|
1845
|
+
"length": 20,
|
|
1846
|
+
"start": 3052
|
|
1847
|
+
},
|
|
1848
|
+
{
|
|
1849
|
+
"length": 20,
|
|
1850
|
+
"start": 3195
|
|
1851
|
+
},
|
|
1852
|
+
{
|
|
1853
|
+
"length": 20,
|
|
1854
|
+
"start": 3257
|
|
1855
|
+
},
|
|
1856
|
+
{
|
|
1857
|
+
"length": 20,
|
|
1858
|
+
"start": 3651
|
|
1859
|
+
},
|
|
1860
|
+
{
|
|
1861
|
+
"length": 20,
|
|
1862
|
+
"start": 3788
|
|
1863
|
+
},
|
|
1864
|
+
{
|
|
1865
|
+
"length": 20,
|
|
1866
|
+
"start": 3911
|
|
1867
|
+
},
|
|
1868
|
+
{
|
|
1869
|
+
"length": 20,
|
|
1870
|
+
"start": 4066
|
|
1871
|
+
},
|
|
1872
|
+
{
|
|
1873
|
+
"length": 20,
|
|
1874
|
+
"start": 4178
|
|
1875
|
+
},
|
|
1876
|
+
{
|
|
1877
|
+
"length": 20,
|
|
1878
|
+
"start": 4243
|
|
1879
|
+
},
|
|
1880
|
+
{
|
|
1881
|
+
"length": 20,
|
|
1882
|
+
"start": 4308
|
|
1883
|
+
},
|
|
1884
|
+
{
|
|
1885
|
+
"length": 20,
|
|
1886
|
+
"start": 5011
|
|
1887
|
+
},
|
|
1888
|
+
{
|
|
1889
|
+
"length": 20,
|
|
1890
|
+
"start": 5052
|
|
1891
|
+
},
|
|
1892
|
+
{
|
|
1893
|
+
"length": 20,
|
|
1894
|
+
"start": 5116
|
|
1895
|
+
},
|
|
1896
|
+
{
|
|
1897
|
+
"length": 20,
|
|
1898
|
+
"start": 6924
|
|
1899
|
+
},
|
|
1900
|
+
{
|
|
1901
|
+
"length": 20,
|
|
1902
|
+
"start": 7043
|
|
1903
|
+
},
|
|
1904
|
+
{
|
|
1905
|
+
"length": 20,
|
|
1906
|
+
"start": 7160
|
|
1907
|
+
},
|
|
1908
|
+
{
|
|
1909
|
+
"length": 20,
|
|
1910
|
+
"start": 7846
|
|
1911
|
+
},
|
|
1912
|
+
{
|
|
1913
|
+
"length": 20,
|
|
1914
|
+
"start": 7995
|
|
1915
|
+
},
|
|
1916
|
+
{
|
|
1917
|
+
"length": 20,
|
|
1918
|
+
"start": 8227
|
|
1919
|
+
},
|
|
1920
|
+
{
|
|
1921
|
+
"length": 20,
|
|
1922
|
+
"start": 8488
|
|
1923
|
+
},
|
|
1924
|
+
{
|
|
1925
|
+
"length": 20,
|
|
1926
|
+
"start": 9943
|
|
1927
|
+
},
|
|
1928
|
+
{
|
|
1929
|
+
"length": 20,
|
|
1930
|
+
"start": 10006
|
|
1931
|
+
},
|
|
1932
|
+
{
|
|
1933
|
+
"length": 20,
|
|
1934
|
+
"start": 10146
|
|
1935
|
+
},
|
|
1936
|
+
{
|
|
1937
|
+
"length": 20,
|
|
1938
|
+
"start": 10208
|
|
1939
|
+
},
|
|
1940
|
+
{
|
|
1941
|
+
"length": 20,
|
|
1942
|
+
"start": 10784
|
|
1943
|
+
},
|
|
1944
|
+
{
|
|
1945
|
+
"length": 20,
|
|
1946
|
+
"start": 10831
|
|
1947
|
+
},
|
|
1948
|
+
{
|
|
1949
|
+
"length": 20,
|
|
1950
|
+
"start": 11863
|
|
1951
|
+
}
|
|
1952
|
+
]
|
|
1953
|
+
}
|
|
1954
|
+
},
|
|
1955
|
+
"deployedLinkReferences": {
|
|
1956
|
+
"contracts/offchain-helpers/MarketMathStatic.sol": {
|
|
1957
|
+
"MarketMathStatic": [
|
|
1958
|
+
{
|
|
1959
|
+
"length": 20,
|
|
1960
|
+
"start": 2479
|
|
1961
|
+
},
|
|
1962
|
+
{
|
|
1963
|
+
"length": 20,
|
|
1964
|
+
"start": 2622
|
|
1965
|
+
},
|
|
1966
|
+
{
|
|
1967
|
+
"length": 20,
|
|
1968
|
+
"start": 2684
|
|
1969
|
+
},
|
|
1970
|
+
{
|
|
1971
|
+
"length": 20,
|
|
1972
|
+
"start": 3078
|
|
1973
|
+
},
|
|
1974
|
+
{
|
|
1975
|
+
"length": 20,
|
|
1976
|
+
"start": 3215
|
|
1977
|
+
},
|
|
1978
|
+
{
|
|
1979
|
+
"length": 20,
|
|
1980
|
+
"start": 3338
|
|
1981
|
+
},
|
|
1982
|
+
{
|
|
1983
|
+
"length": 20,
|
|
1984
|
+
"start": 3493
|
|
1985
|
+
},
|
|
1986
|
+
{
|
|
1987
|
+
"length": 20,
|
|
1988
|
+
"start": 3605
|
|
1989
|
+
},
|
|
1990
|
+
{
|
|
1991
|
+
"length": 20,
|
|
1992
|
+
"start": 3670
|
|
1993
|
+
},
|
|
1994
|
+
{
|
|
1995
|
+
"length": 20,
|
|
1996
|
+
"start": 3735
|
|
1997
|
+
},
|
|
1998
|
+
{
|
|
1999
|
+
"length": 20,
|
|
2000
|
+
"start": 4438
|
|
2001
|
+
},
|
|
2002
|
+
{
|
|
2003
|
+
"length": 20,
|
|
2004
|
+
"start": 4479
|
|
2005
|
+
},
|
|
2006
|
+
{
|
|
2007
|
+
"length": 20,
|
|
2008
|
+
"start": 4543
|
|
2009
|
+
},
|
|
2010
|
+
{
|
|
2011
|
+
"length": 20,
|
|
2012
|
+
"start": 6351
|
|
2013
|
+
},
|
|
2014
|
+
{
|
|
2015
|
+
"length": 20,
|
|
2016
|
+
"start": 6470
|
|
2017
|
+
},
|
|
2018
|
+
{
|
|
2019
|
+
"length": 20,
|
|
2020
|
+
"start": 6587
|
|
2021
|
+
},
|
|
2022
|
+
{
|
|
2023
|
+
"length": 20,
|
|
2024
|
+
"start": 7273
|
|
2025
|
+
},
|
|
2026
|
+
{
|
|
2027
|
+
"length": 20,
|
|
2028
|
+
"start": 7422
|
|
2029
|
+
},
|
|
2030
|
+
{
|
|
2031
|
+
"length": 20,
|
|
2032
|
+
"start": 7654
|
|
2033
|
+
},
|
|
2034
|
+
{
|
|
2035
|
+
"length": 20,
|
|
2036
|
+
"start": 7915
|
|
2037
|
+
},
|
|
2038
|
+
{
|
|
2039
|
+
"length": 20,
|
|
2040
|
+
"start": 9370
|
|
2041
|
+
},
|
|
2042
|
+
{
|
|
2043
|
+
"length": 20,
|
|
2044
|
+
"start": 9433
|
|
2045
|
+
},
|
|
2046
|
+
{
|
|
2047
|
+
"length": 20,
|
|
2048
|
+
"start": 9573
|
|
2049
|
+
},
|
|
2050
|
+
{
|
|
2051
|
+
"length": 20,
|
|
2052
|
+
"start": 9635
|
|
2053
|
+
},
|
|
2054
|
+
{
|
|
2055
|
+
"length": 20,
|
|
2056
|
+
"start": 10211
|
|
2057
|
+
},
|
|
2058
|
+
{
|
|
2059
|
+
"length": 20,
|
|
2060
|
+
"start": 10258
|
|
2061
|
+
},
|
|
2062
|
+
{
|
|
2063
|
+
"length": 20,
|
|
2064
|
+
"start": 11290
|
|
2065
|
+
}
|
|
2066
|
+
]
|
|
2067
|
+
}
|
|
2068
|
+
}
|
|
1671
2069
|
}
|