@artblocks/contracts 1.3.1 → 1.4.0
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/README.md +11 -10
- package/artifacts/contracts/AdminACLV0RoyaltyRegistry.sol/AdminACLV0RoyaltyRegistry.json +193 -0
- package/artifacts/contracts/AdminACLV0RoyaltyRegistry.sol/IRoyaltyRegistry.json +35 -0
- package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
- package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol/BytecodeStorageReaderContractV2.json +2 -2
- package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2_Web3Call.sol/BytecodeStorageReaderContractV2_Web3Call.json +2 -2
- package/artifacts/contracts/BytecodeStorageV2Writer.sol/BytecodeStorageV2Writer.json +2 -2
- package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +210 -2
- package/artifacts/contracts/GenArt721CoreV3_Curated.sol/GenArt721CoreV3_Curated.json +235 -20
- package/artifacts/contracts/GenArt721CoreV3_Curated_Flex.sol/GenArt721CoreV3_Curated_Flex.json +3197 -0
- package/artifacts/contracts/GenArt721CoreV3_Explorations_Flex.sol/GenArt721CoreV3_Explorations_Flex.json +3192 -0
- package/artifacts/contracts/OwnedCreate2FactoryV0.sol/OwnedCreate2FactoryV0.json +2 -2
- package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +27 -2
- package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +27 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV4.sol/MinterDALinV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV4.sol/MinterHolderV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +25 -0
- package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSEA/MinterSEAV0.sol/MinterSEAV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
- package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +28 -2
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +239 -20
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +267 -48
- package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +27 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +27 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +25 -0
- package/artifacts/contracts/engine/V3/transfer-hooks/AbstractTransferHook.sol/AbstractTransferHook.json +79 -0
- package/artifacts/contracts/engine/V3/transfer-hooks/OwnerHistoryTransferHook.sol/OwnerHistoryTransferHook.json +315 -0
- package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/GenArt721GeneratorV0.json +2 -2
- package/artifacts/contracts/interfaces/v0.8.x/IClaimMinter.sol/IClaimMinter.json +189 -0
- package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +149 -0
- package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +26 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +25 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +25 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +123 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +123 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +25 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +25 -0
- package/artifacts/contracts/interfaces/v0.8.x/IOwnerHistoryTransferHook.sol/IOwnerHistoryTransferHook.json +299 -0
- package/artifacts/contracts/interfaces/v0.8.x/IPMPV0.sol/IPMPV0.json +7 -1
- package/artifacts/contracts/interfaces/v0.8.x/ISRHooks.sol/ISRHooks.json +432 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +0 -13
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol/ISharedMinterTieredAllowV0.json +94 -0
- package/artifacts/contracts/interfaces/v0.8.x/ITransferHook.sol/ITransferHook.json +63 -0
- package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/ENSLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/IUniversalResolver.json +45 -0
- package/artifacts/contracts/libs/v0.8.x/EnumerableSetUint16.sol/EnumerableSetUint16.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/FeistelWalkLib.sol/FeistelWalkLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/ImmutableUint16Array.sol/ImmutableUint16Array.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/V3EngineLib.sol/V3EngineLib.json +163 -0
- package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/V3TransferHookLib.sol/V3TransferHookLib.json +79 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol/OnChainAllowlistLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol/MinterMinPriceMerkleV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterMinPriceV0.sol/MinterMinPriceV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol/MinterSetPriceOnChainAllowV0.json +522 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol/MinterSetPriceTieredAllowV1.json +715 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol/MinterSlidingScaleV0.json +431 -0
- package/artifacts/contracts/minter-suite/Minters/one-off/ClaimMinter.sol/ClaimMinter.json +502 -0
- package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol/MinterSetPriceTieredOnChainAllowV0.json +673 -0
- package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol/SeaDropXArtBlocksShim.json +6 -19
- package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +2 -2
- package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
- package/artifacts/contracts/mock/ENSLibMock.sol/ENSLibMock.json +30 -0
- package/artifacts/contracts/mock/EnumerableSetUint16Mock.sol/EnumerableSetUint16Mock.json +146 -0
- package/artifacts/contracts/mock/FeistelWalkLibMock.sol/FeistelWalkLibMock.json +142 -0
- package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +2 -2
- package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
- package/artifacts/contracts/mock/ImmutableUint16ArrayMock.sol/ImmutableUint16ArrayMock.json +89 -0
- package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
- package/artifacts/contracts/mock/MockGenArt721V3Core.sol/MockGenArt721V3Core.json +490 -0
- package/artifacts/contracts/mock/MockPMP.sol/MockPMP.json +523 -0
- package/artifacts/contracts/mock/MockPMPAugmentHook.sol/MockPMPAugmentHook.json +2 -2
- package/artifacts/contracts/mock/MockPMPConfigureHook.sol/MockPMPConfigureHook.json +2 -2
- package/artifacts/contracts/mock/MockTransferHook.sol/MockTransferHook.json +453 -0
- package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockBatchTransferrer.json +39 -0
- package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockForwardingERC721Receiver.json +71 -0
- package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockSpoofingCore.json +94 -0
- package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/IBatchMinter.json +64 -0
- package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/ReentrancyBatchMockShared.json +113 -0
- package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/MockTarget.json +74 -0
- package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorPartialRevertsTestHelper.json +138 -0
- package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorTestHelper.json +119 -0
- package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
- package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
- package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
- package/artifacts/contracts/relay/RelayExecutor.sol/RelayExecutor.json +101 -0
- package/artifacts/contracts/relay/RelayExecutorPartialReverts.sol/RelayExecutorPartialReverts.json +120 -0
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol/GenArt721RoyaltyOverrideSplits.json +263 -0
- package/artifacts/contracts/utils/MintMulticallUtil.sol/IMinterSetPriceV5.json +40 -0
- package/artifacts/contracts/utils/MintMulticallUtil.sol/MintMulticallUtil.json +163 -0
- package/artifacts/contracts/web3call/PMPV0.sol/PMPV0.json +9 -3
- package/artifacts/contracts/web3call/PMPV1.sol/PMPV1.json +648 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBaseGasFee.sol/InjectBaseGasFee.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeight.sol/InjectBlockHeight.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol/InjectBlockHeightAndArtistProjectOverrides.json +226 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol/InjectBlockHeightAndNumOwnedProjectTokens.json +182 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.json +226 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol/InjectBlockTimestamp.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBytesPerToken.sol/InjectBytesPerToken.json +358 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol/InjectChromieSquiggleFloorPrice.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectIsNounsDaoMember.sol/InjectIsNounsDaoMember.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol/InjectIsProjectFullyMinted.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectPolyptychTokenHash.sol/InjectPolyptychTokenHash.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol/InjectTokenHashSeed.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwner.sol/InjectTokenOwner.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol/InjectTokenOwnerEthBalance.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectUSDCTotalSupply.sol/InjectUSDCTotalSupply.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/SRHooks.sol/SRHooks.json +899 -0
- package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IGenArt721V0_Minimal.json +30 -0
- package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IRelic.json +35 -0
- package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/LiftHooks.json +256 -0
- package/artifacts/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol}/AbstractPMPConfigureHook.json +1 -1
- package/artifacts/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol/PMPConfigureLockHook.json +195 -0
- package/contracts/AdminACLV0RoyaltyRegistry.sol +142 -0
- package/contracts/DependencyRegistryV0.sol +143 -13
- package/contracts/GenArt721CoreV3_Curated.sol +1 -1
- package/contracts/GenArt721CoreV3_Curated_Flex.sol +173 -0
- package/contracts/GenArt721CoreV3_Explorations_Flex.sol +159 -0
- package/contracts/engine/V3/EngineFactoryV0.sol +20 -1
- package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +286 -299
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +292 -301
- package/contracts/engine/V3/transfer-hooks/AbstractTransferHook.sol +101 -0
- package/contracts/engine/V3/transfer-hooks/OwnerHistoryTransferHook.sol +291 -0
- package/contracts/generator/GenArt721GeneratorV0.sol +145 -47
- package/contracts/helpers/ERC1967ProxyImport.sol +5 -0
- package/contracts/interfaces/v0.8.x/IArtblocksRoyaltyOverride.sol +1 -1
- package/contracts/interfaces/v0.8.x/IClaimMinter.sol +70 -0
- package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +95 -0
- package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +15 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +21 -2
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +72 -0
- package/contracts/interfaces/v0.8.x/IOwnerHistoryTransferHook.sol +119 -0
- package/contracts/interfaces/v0.8.x/IPMPV0.sol +5 -3
- package/contracts/interfaces/v0.8.x/ISRHooks.sol +229 -0
- package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +0 -6
- package/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol +69 -0
- package/contracts/interfaces/v0.8.x/ITransferHook.sol +48 -0
- package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +12 -0
- package/contracts/libs/v0.8.x/ENSLib.sol +85 -0
- package/contracts/libs/v0.8.x/EnumerableSetUint16.sol +429 -0
- package/contracts/libs/v0.8.x/FeistelWalkLib.sol +221 -0
- package/contracts/libs/v0.8.x/ImmutableUint16Array.sol +201 -0
- package/contracts/libs/v0.8.x/V3EngineLib.sol +490 -0
- package/contracts/libs/v0.8.x/V3TransferHookLib.sol +251 -0
- package/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol +165 -0
- package/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol +632 -0
- package/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol +871 -0
- package/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol +493 -0
- package/contracts/minter-suite/Minters/one-off/ClaimMinter.sol +595 -0
- package/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol +894 -0
- package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +59 -41
- package/contracts/mock/ENSLibMock.sol +25 -0
- package/contracts/mock/EnumerableSetUint16Mock.sol +88 -0
- package/contracts/mock/FeistelWalkLibMock.sol +81 -0
- package/contracts/mock/ImmutableUint16ArrayMock.sol +62 -0
- package/contracts/mock/MockGenArt721V3Core.sol +416 -0
- package/contracts/mock/MockPMP.sol +287 -0
- package/contracts/mock/MockTransferHook.sol +160 -0
- package/contracts/mock/MockTransferHookTestHelpers.sol +96 -0
- package/contracts/mock/ReentrancyBatchMockShared.sol +53 -0
- package/contracts/mock/RelayExecutorTestHelper.sol +44 -0
- package/contracts/relay/RelayExecutor.sol +61 -0
- package/contracts/relay/RelayExecutorPartialReverts.sol +79 -0
- package/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol +130 -0
- package/contracts/utils/MintMulticallUtil.sol +103 -0
- package/contracts/web3call/PMPV0.sol +92 -98
- package/contracts/web3call/PMPV1.sol +1204 -0
- package/contracts/web3call/augment-hooks/AbstractPMPAugmentHook.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectBaseGasFee.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectBlockHeight.sol +57 -0
- package/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol +310 -0
- package/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol +141 -0
- package/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol +326 -0
- package/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol +57 -0
- package/contracts/web3call/augment-hooks/InjectBytesPerToken.sol +279 -0
- package/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectTokenOwner.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol +1 -1
- package/contracts/web3call/augment-hooks/SRHooks.sol +1722 -0
- package/contracts/web3call/combined-hooks/LiftHooks.sol +304 -0
- package/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol} +1 -1
- package/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol +107 -0
- package/package.json +40 -25
|
@@ -0,0 +1,899 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "SRHooks",
|
|
4
|
+
"sourceName": "contracts/web3call/augment-hooks/SRHooks.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [],
|
|
8
|
+
"stateMutability": "nonpayable",
|
|
9
|
+
"type": "constructor"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"inputs": [
|
|
13
|
+
{
|
|
14
|
+
"internalType": "address",
|
|
15
|
+
"name": "target",
|
|
16
|
+
"type": "address"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"name": "AddressEmptyCode",
|
|
20
|
+
"type": "error"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"inputs": [
|
|
24
|
+
{
|
|
25
|
+
"internalType": "address",
|
|
26
|
+
"name": "implementation",
|
|
27
|
+
"type": "address"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"name": "ERC1967InvalidImplementation",
|
|
31
|
+
"type": "error"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"inputs": [],
|
|
35
|
+
"name": "ERC1967NonPayable",
|
|
36
|
+
"type": "error"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"inputs": [],
|
|
40
|
+
"name": "FailedInnerCall",
|
|
41
|
+
"type": "error"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"inputs": [],
|
|
45
|
+
"name": "InvalidInitialization",
|
|
46
|
+
"type": "error"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"inputs": [],
|
|
50
|
+
"name": "NotInitializing",
|
|
51
|
+
"type": "error"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"inputs": [
|
|
55
|
+
{
|
|
56
|
+
"internalType": "address",
|
|
57
|
+
"name": "owner",
|
|
58
|
+
"type": "address"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"name": "OwnableInvalidOwner",
|
|
62
|
+
"type": "error"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"inputs": [
|
|
66
|
+
{
|
|
67
|
+
"internalType": "address",
|
|
68
|
+
"name": "account",
|
|
69
|
+
"type": "address"
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"name": "OwnableUnauthorizedAccount",
|
|
73
|
+
"type": "error"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"inputs": [
|
|
77
|
+
{
|
|
78
|
+
"internalType": "uint8",
|
|
79
|
+
"name": "bits",
|
|
80
|
+
"type": "uint8"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"internalType": "uint256",
|
|
84
|
+
"name": "value",
|
|
85
|
+
"type": "uint256"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"name": "SafeCastOverflowedUintDowncast",
|
|
89
|
+
"type": "error"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"inputs": [],
|
|
93
|
+
"name": "UUPSUnauthorizedCallContext",
|
|
94
|
+
"type": "error"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"inputs": [
|
|
98
|
+
{
|
|
99
|
+
"internalType": "bytes32",
|
|
100
|
+
"name": "slot",
|
|
101
|
+
"type": "bytes32"
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"name": "UUPSUnsupportedProxiableUUID",
|
|
105
|
+
"type": "error"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"anonymous": false,
|
|
109
|
+
"inputs": [
|
|
110
|
+
{
|
|
111
|
+
"indexed": false,
|
|
112
|
+
"internalType": "uint64",
|
|
113
|
+
"name": "version",
|
|
114
|
+
"type": "uint64"
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
"name": "Initialized",
|
|
118
|
+
"type": "event"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"anonymous": false,
|
|
122
|
+
"inputs": [
|
|
123
|
+
{
|
|
124
|
+
"indexed": true,
|
|
125
|
+
"internalType": "address",
|
|
126
|
+
"name": "previousOwner",
|
|
127
|
+
"type": "address"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"indexed": true,
|
|
131
|
+
"internalType": "address",
|
|
132
|
+
"name": "newOwner",
|
|
133
|
+
"type": "address"
|
|
134
|
+
}
|
|
135
|
+
],
|
|
136
|
+
"name": "OwnershipTransferred",
|
|
137
|
+
"type": "event"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"anonymous": false,
|
|
141
|
+
"inputs": [
|
|
142
|
+
{
|
|
143
|
+
"indexed": false,
|
|
144
|
+
"internalType": "address",
|
|
145
|
+
"name": "coreContractAddress",
|
|
146
|
+
"type": "address"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"indexed": false,
|
|
150
|
+
"internalType": "uint256",
|
|
151
|
+
"name": "coreProjectId",
|
|
152
|
+
"type": "uint256"
|
|
153
|
+
}
|
|
154
|
+
],
|
|
155
|
+
"name": "SRHooksInitialized",
|
|
156
|
+
"type": "event"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"anonymous": false,
|
|
160
|
+
"inputs": [
|
|
161
|
+
{
|
|
162
|
+
"indexed": false,
|
|
163
|
+
"internalType": "address",
|
|
164
|
+
"name": "coreContract",
|
|
165
|
+
"type": "address"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"indexed": false,
|
|
169
|
+
"internalType": "uint256",
|
|
170
|
+
"name": "tokenId",
|
|
171
|
+
"type": "uint256"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"components": [
|
|
175
|
+
{
|
|
176
|
+
"internalType": "string",
|
|
177
|
+
"name": "key",
|
|
178
|
+
"type": "string"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"internalType": "enum IPMPV0.ParamType",
|
|
182
|
+
"name": "configuredParamType",
|
|
183
|
+
"type": "uint8"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"internalType": "bytes32",
|
|
187
|
+
"name": "configuredValue",
|
|
188
|
+
"type": "bytes32"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"internalType": "bool",
|
|
192
|
+
"name": "configuringArtistString",
|
|
193
|
+
"type": "bool"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"internalType": "string",
|
|
197
|
+
"name": "configuredValueString",
|
|
198
|
+
"type": "string"
|
|
199
|
+
}
|
|
200
|
+
],
|
|
201
|
+
"indexed": false,
|
|
202
|
+
"internalType": "struct IPMPV0.PMPInput[]",
|
|
203
|
+
"name": "pmpInputs",
|
|
204
|
+
"type": "tuple[]"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"indexed": false,
|
|
208
|
+
"internalType": "address[]",
|
|
209
|
+
"name": "authAddresses",
|
|
210
|
+
"type": "address[]"
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
"name": "TokenParamsConfigured",
|
|
214
|
+
"type": "event"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"anonymous": false,
|
|
218
|
+
"inputs": [
|
|
219
|
+
{
|
|
220
|
+
"indexed": true,
|
|
221
|
+
"internalType": "address",
|
|
222
|
+
"name": "coreContract",
|
|
223
|
+
"type": "address"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"indexed": true,
|
|
227
|
+
"internalType": "uint256",
|
|
228
|
+
"name": "tokenId",
|
|
229
|
+
"type": "uint256"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"indexed": false,
|
|
233
|
+
"internalType": "uint16[]",
|
|
234
|
+
"name": "tokensReceivingFrom",
|
|
235
|
+
"type": "uint16[]"
|
|
236
|
+
}
|
|
237
|
+
],
|
|
238
|
+
"name": "TokenReceivingFromUpdated",
|
|
239
|
+
"type": "event"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"anonymous": false,
|
|
243
|
+
"inputs": [
|
|
244
|
+
{
|
|
245
|
+
"indexed": true,
|
|
246
|
+
"internalType": "address",
|
|
247
|
+
"name": "coreContract",
|
|
248
|
+
"type": "address"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"indexed": true,
|
|
252
|
+
"internalType": "uint256",
|
|
253
|
+
"name": "tokenId",
|
|
254
|
+
"type": "uint256"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"indexed": false,
|
|
258
|
+
"internalType": "uint16[]",
|
|
259
|
+
"name": "tokensSendingTo",
|
|
260
|
+
"type": "uint16[]"
|
|
261
|
+
}
|
|
262
|
+
],
|
|
263
|
+
"name": "TokenSendingToUpdated",
|
|
264
|
+
"type": "event"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"anonymous": false,
|
|
268
|
+
"inputs": [
|
|
269
|
+
{
|
|
270
|
+
"indexed": true,
|
|
271
|
+
"internalType": "address",
|
|
272
|
+
"name": "implementation",
|
|
273
|
+
"type": "address"
|
|
274
|
+
}
|
|
275
|
+
],
|
|
276
|
+
"name": "Upgraded",
|
|
277
|
+
"type": "event"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"inputs": [],
|
|
281
|
+
"name": "CORE_CONTRACT_ADDRESS",
|
|
282
|
+
"outputs": [
|
|
283
|
+
{
|
|
284
|
+
"internalType": "address",
|
|
285
|
+
"name": "",
|
|
286
|
+
"type": "address"
|
|
287
|
+
}
|
|
288
|
+
],
|
|
289
|
+
"stateMutability": "view",
|
|
290
|
+
"type": "function"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"inputs": [],
|
|
294
|
+
"name": "CORE_PROJECT_ID",
|
|
295
|
+
"outputs": [
|
|
296
|
+
{
|
|
297
|
+
"internalType": "uint256",
|
|
298
|
+
"name": "",
|
|
299
|
+
"type": "uint256"
|
|
300
|
+
}
|
|
301
|
+
],
|
|
302
|
+
"stateMutability": "view",
|
|
303
|
+
"type": "function"
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"inputs": [],
|
|
307
|
+
"name": "DELEGATE_V2",
|
|
308
|
+
"outputs": [
|
|
309
|
+
{
|
|
310
|
+
"internalType": "contract IDelegateRegistry",
|
|
311
|
+
"name": "",
|
|
312
|
+
"type": "address"
|
|
313
|
+
}
|
|
314
|
+
],
|
|
315
|
+
"stateMutability": "view",
|
|
316
|
+
"type": "function"
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"inputs": [],
|
|
320
|
+
"name": "DELEGATION_REGISTRY_TOKEN_OWNER_RIGHTS",
|
|
321
|
+
"outputs": [
|
|
322
|
+
{
|
|
323
|
+
"internalType": "bytes32",
|
|
324
|
+
"name": "",
|
|
325
|
+
"type": "bytes32"
|
|
326
|
+
}
|
|
327
|
+
],
|
|
328
|
+
"stateMutability": "view",
|
|
329
|
+
"type": "function"
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"inputs": [],
|
|
333
|
+
"name": "MAX_IMAGE_DATA_LENGTH",
|
|
334
|
+
"outputs": [
|
|
335
|
+
{
|
|
336
|
+
"internalType": "uint256",
|
|
337
|
+
"name": "",
|
|
338
|
+
"type": "uint256"
|
|
339
|
+
}
|
|
340
|
+
],
|
|
341
|
+
"stateMutability": "view",
|
|
342
|
+
"type": "function"
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"inputs": [],
|
|
346
|
+
"name": "MAX_SOUND_DATA_LENGTH",
|
|
347
|
+
"outputs": [
|
|
348
|
+
{
|
|
349
|
+
"internalType": "uint256",
|
|
350
|
+
"name": "",
|
|
351
|
+
"type": "uint256"
|
|
352
|
+
}
|
|
353
|
+
],
|
|
354
|
+
"stateMutability": "view",
|
|
355
|
+
"type": "function"
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"inputs": [],
|
|
359
|
+
"name": "NUM_METADATA_SLOTS",
|
|
360
|
+
"outputs": [
|
|
361
|
+
{
|
|
362
|
+
"internalType": "uint256",
|
|
363
|
+
"name": "",
|
|
364
|
+
"type": "uint256"
|
|
365
|
+
}
|
|
366
|
+
],
|
|
367
|
+
"stateMutability": "view",
|
|
368
|
+
"type": "function"
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"inputs": [],
|
|
372
|
+
"name": "UPGRADE_INTERFACE_VERSION",
|
|
373
|
+
"outputs": [
|
|
374
|
+
{
|
|
375
|
+
"internalType": "string",
|
|
376
|
+
"name": "",
|
|
377
|
+
"type": "string"
|
|
378
|
+
}
|
|
379
|
+
],
|
|
380
|
+
"stateMutability": "view",
|
|
381
|
+
"type": "function"
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
"inputs": [],
|
|
385
|
+
"name": "getGeneralPoolState",
|
|
386
|
+
"outputs": [
|
|
387
|
+
{
|
|
388
|
+
"internalType": "uint256",
|
|
389
|
+
"name": "sendGeneralTokensLength",
|
|
390
|
+
"type": "uint256"
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"internalType": "uint256",
|
|
394
|
+
"name": "receiveGeneralTokensLength",
|
|
395
|
+
"type": "uint256"
|
|
396
|
+
}
|
|
397
|
+
],
|
|
398
|
+
"stateMutability": "view",
|
|
399
|
+
"type": "function"
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"inputs": [
|
|
403
|
+
{
|
|
404
|
+
"internalType": "uint256",
|
|
405
|
+
"name": "tokenNumber",
|
|
406
|
+
"type": "uint256"
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"internalType": "uint256",
|
|
410
|
+
"name": "blockNumber",
|
|
411
|
+
"type": "uint256"
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"internalType": "uint256",
|
|
415
|
+
"name": "maxReceive",
|
|
416
|
+
"type": "uint256"
|
|
417
|
+
}
|
|
418
|
+
],
|
|
419
|
+
"name": "getLiveData",
|
|
420
|
+
"outputs": [
|
|
421
|
+
{
|
|
422
|
+
"internalType": "enum ISRHooks.SendStates",
|
|
423
|
+
"name": "sendState",
|
|
424
|
+
"type": "uint8"
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
"internalType": "enum ISRHooks.ReceiveStates",
|
|
428
|
+
"name": "receiveState",
|
|
429
|
+
"type": "uint8"
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"components": [
|
|
433
|
+
{
|
|
434
|
+
"internalType": "uint256",
|
|
435
|
+
"name": "tokenNumber",
|
|
436
|
+
"type": "uint256"
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"internalType": "address",
|
|
440
|
+
"name": "ownerAddress",
|
|
441
|
+
"type": "address"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"internalType": "bytes",
|
|
445
|
+
"name": "imageDataCompressed",
|
|
446
|
+
"type": "bytes"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"internalType": "bytes",
|
|
450
|
+
"name": "soundDataCompressed",
|
|
451
|
+
"type": "bytes"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"internalType": "string",
|
|
455
|
+
"name": "ownerEnsName",
|
|
456
|
+
"type": "string"
|
|
457
|
+
}
|
|
458
|
+
],
|
|
459
|
+
"internalType": "struct ISRHooks.TokenLiveData[]",
|
|
460
|
+
"name": "receivedTokensGeneral",
|
|
461
|
+
"type": "tuple[]"
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"components": [
|
|
465
|
+
{
|
|
466
|
+
"internalType": "uint256",
|
|
467
|
+
"name": "tokenNumber",
|
|
468
|
+
"type": "uint256"
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"internalType": "address",
|
|
472
|
+
"name": "ownerAddress",
|
|
473
|
+
"type": "address"
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
"internalType": "bytes",
|
|
477
|
+
"name": "imageDataCompressed",
|
|
478
|
+
"type": "bytes"
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"internalType": "bytes",
|
|
482
|
+
"name": "soundDataCompressed",
|
|
483
|
+
"type": "bytes"
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
"internalType": "string",
|
|
487
|
+
"name": "ownerEnsName",
|
|
488
|
+
"type": "string"
|
|
489
|
+
}
|
|
490
|
+
],
|
|
491
|
+
"internalType": "struct ISRHooks.TokenLiveData[]",
|
|
492
|
+
"name": "receivedTokensTo",
|
|
493
|
+
"type": "tuple[]"
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
"internalType": "uint256",
|
|
497
|
+
"name": "numSendGeneral",
|
|
498
|
+
"type": "uint256"
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"internalType": "uint256",
|
|
502
|
+
"name": "numReceiveGeneral",
|
|
503
|
+
"type": "uint256"
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
"internalType": "uint256",
|
|
507
|
+
"name": "numSendingToMe",
|
|
508
|
+
"type": "uint256"
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
"internalType": "uint256",
|
|
512
|
+
"name": "usedBlockNumber",
|
|
513
|
+
"type": "uint256"
|
|
514
|
+
}
|
|
515
|
+
],
|
|
516
|
+
"stateMutability": "view",
|
|
517
|
+
"type": "function"
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
"inputs": [
|
|
521
|
+
{
|
|
522
|
+
"internalType": "uint256",
|
|
523
|
+
"name": "tokenNumber",
|
|
524
|
+
"type": "uint256"
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
"internalType": "uint256",
|
|
528
|
+
"name": "slot",
|
|
529
|
+
"type": "uint256"
|
|
530
|
+
}
|
|
531
|
+
],
|
|
532
|
+
"name": "getTokenMetadataAtSlot",
|
|
533
|
+
"outputs": [
|
|
534
|
+
{
|
|
535
|
+
"components": [
|
|
536
|
+
{
|
|
537
|
+
"internalType": "bytes",
|
|
538
|
+
"name": "imageDataCompressed",
|
|
539
|
+
"type": "bytes"
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"internalType": "uint16",
|
|
543
|
+
"name": "imageVersion",
|
|
544
|
+
"type": "uint16"
|
|
545
|
+
},
|
|
546
|
+
{
|
|
547
|
+
"internalType": "bytes",
|
|
548
|
+
"name": "soundDataCompressed",
|
|
549
|
+
"type": "bytes"
|
|
550
|
+
},
|
|
551
|
+
{
|
|
552
|
+
"internalType": "uint16",
|
|
553
|
+
"name": "soundVersion",
|
|
554
|
+
"type": "uint16"
|
|
555
|
+
}
|
|
556
|
+
],
|
|
557
|
+
"internalType": "struct ISRHooks.TokenMetadataView",
|
|
558
|
+
"name": "tokenMetadata",
|
|
559
|
+
"type": "tuple"
|
|
560
|
+
}
|
|
561
|
+
],
|
|
562
|
+
"stateMutability": "view",
|
|
563
|
+
"type": "function"
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
"inputs": [
|
|
567
|
+
{
|
|
568
|
+
"internalType": "uint256",
|
|
569
|
+
"name": "tokenNumber",
|
|
570
|
+
"type": "uint256"
|
|
571
|
+
}
|
|
572
|
+
],
|
|
573
|
+
"name": "getTokenState",
|
|
574
|
+
"outputs": [
|
|
575
|
+
{
|
|
576
|
+
"internalType": "enum ISRHooks.SendStates",
|
|
577
|
+
"name": "sendState",
|
|
578
|
+
"type": "uint8"
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"internalType": "enum ISRHooks.ReceiveStates",
|
|
582
|
+
"name": "receiveState",
|
|
583
|
+
"type": "uint8"
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"internalType": "uint16[]",
|
|
587
|
+
"name": "tokensSendingTo",
|
|
588
|
+
"type": "uint16[]"
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
"internalType": "uint16[]",
|
|
592
|
+
"name": "tokensReceivingFrom",
|
|
593
|
+
"type": "uint16[]"
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
"internalType": "uint256",
|
|
597
|
+
"name": "activeSlot",
|
|
598
|
+
"type": "uint256"
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
"components": [
|
|
602
|
+
{
|
|
603
|
+
"internalType": "bytes",
|
|
604
|
+
"name": "imageDataCompressed",
|
|
605
|
+
"type": "bytes"
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"internalType": "uint16",
|
|
609
|
+
"name": "imageVersion",
|
|
610
|
+
"type": "uint16"
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
"internalType": "bytes",
|
|
614
|
+
"name": "soundDataCompressed",
|
|
615
|
+
"type": "bytes"
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"internalType": "uint16",
|
|
619
|
+
"name": "soundVersion",
|
|
620
|
+
"type": "uint16"
|
|
621
|
+
}
|
|
622
|
+
],
|
|
623
|
+
"internalType": "struct ISRHooks.TokenMetadataView",
|
|
624
|
+
"name": "activeSlotTokenMetadata",
|
|
625
|
+
"type": "tuple"
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
"internalType": "address",
|
|
629
|
+
"name": "ownerAddress",
|
|
630
|
+
"type": "address"
|
|
631
|
+
}
|
|
632
|
+
],
|
|
633
|
+
"stateMutability": "view",
|
|
634
|
+
"type": "function"
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
"inputs": [
|
|
638
|
+
{
|
|
639
|
+
"internalType": "uint256",
|
|
640
|
+
"name": "tokenNumber",
|
|
641
|
+
"type": "uint256"
|
|
642
|
+
}
|
|
643
|
+
],
|
|
644
|
+
"name": "getTokensSendingToToken",
|
|
645
|
+
"outputs": [
|
|
646
|
+
{
|
|
647
|
+
"internalType": "uint256[]",
|
|
648
|
+
"name": "tokensSendingTo",
|
|
649
|
+
"type": "uint256[]"
|
|
650
|
+
}
|
|
651
|
+
],
|
|
652
|
+
"stateMutability": "view",
|
|
653
|
+
"type": "function"
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"inputs": [
|
|
657
|
+
{
|
|
658
|
+
"internalType": "address",
|
|
659
|
+
"name": "_owner",
|
|
660
|
+
"type": "address"
|
|
661
|
+
},
|
|
662
|
+
{
|
|
663
|
+
"internalType": "address",
|
|
664
|
+
"name": "_coreContractAddress",
|
|
665
|
+
"type": "address"
|
|
666
|
+
},
|
|
667
|
+
{
|
|
668
|
+
"internalType": "uint256",
|
|
669
|
+
"name": "_coreProjectId",
|
|
670
|
+
"type": "uint256"
|
|
671
|
+
}
|
|
672
|
+
],
|
|
673
|
+
"name": "initialize",
|
|
674
|
+
"outputs": [],
|
|
675
|
+
"stateMutability": "nonpayable",
|
|
676
|
+
"type": "function"
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
"inputs": [
|
|
680
|
+
{
|
|
681
|
+
"internalType": "address",
|
|
682
|
+
"name": "",
|
|
683
|
+
"type": "address"
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
"internalType": "uint256",
|
|
687
|
+
"name": "tokenId",
|
|
688
|
+
"type": "uint256"
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
"components": [
|
|
692
|
+
{
|
|
693
|
+
"internalType": "string",
|
|
694
|
+
"name": "key",
|
|
695
|
+
"type": "string"
|
|
696
|
+
},
|
|
697
|
+
{
|
|
698
|
+
"internalType": "string",
|
|
699
|
+
"name": "value",
|
|
700
|
+
"type": "string"
|
|
701
|
+
}
|
|
702
|
+
],
|
|
703
|
+
"internalType": "struct IWeb3Call.TokenParam[]",
|
|
704
|
+
"name": "tokenParams",
|
|
705
|
+
"type": "tuple[]"
|
|
706
|
+
}
|
|
707
|
+
],
|
|
708
|
+
"name": "onTokenPMPReadAugmentation",
|
|
709
|
+
"outputs": [
|
|
710
|
+
{
|
|
711
|
+
"components": [
|
|
712
|
+
{
|
|
713
|
+
"internalType": "string",
|
|
714
|
+
"name": "key",
|
|
715
|
+
"type": "string"
|
|
716
|
+
},
|
|
717
|
+
{
|
|
718
|
+
"internalType": "string",
|
|
719
|
+
"name": "value",
|
|
720
|
+
"type": "string"
|
|
721
|
+
}
|
|
722
|
+
],
|
|
723
|
+
"internalType": "struct IWeb3Call.TokenParam[]",
|
|
724
|
+
"name": "augmentedTokenParams",
|
|
725
|
+
"type": "tuple[]"
|
|
726
|
+
}
|
|
727
|
+
],
|
|
728
|
+
"stateMutability": "view",
|
|
729
|
+
"type": "function"
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
"inputs": [],
|
|
733
|
+
"name": "owner",
|
|
734
|
+
"outputs": [
|
|
735
|
+
{
|
|
736
|
+
"internalType": "address",
|
|
737
|
+
"name": "",
|
|
738
|
+
"type": "address"
|
|
739
|
+
}
|
|
740
|
+
],
|
|
741
|
+
"stateMutability": "view",
|
|
742
|
+
"type": "function"
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
"inputs": [],
|
|
746
|
+
"name": "proxiableUUID",
|
|
747
|
+
"outputs": [
|
|
748
|
+
{
|
|
749
|
+
"internalType": "bytes32",
|
|
750
|
+
"name": "",
|
|
751
|
+
"type": "bytes32"
|
|
752
|
+
}
|
|
753
|
+
],
|
|
754
|
+
"stateMutability": "view",
|
|
755
|
+
"type": "function"
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
"inputs": [],
|
|
759
|
+
"name": "renounceOwnership",
|
|
760
|
+
"outputs": [],
|
|
761
|
+
"stateMutability": "nonpayable",
|
|
762
|
+
"type": "function"
|
|
763
|
+
},
|
|
764
|
+
{
|
|
765
|
+
"inputs": [
|
|
766
|
+
{
|
|
767
|
+
"internalType": "bytes4",
|
|
768
|
+
"name": "interfaceId",
|
|
769
|
+
"type": "bytes4"
|
|
770
|
+
}
|
|
771
|
+
],
|
|
772
|
+
"name": "supportsInterface",
|
|
773
|
+
"outputs": [
|
|
774
|
+
{
|
|
775
|
+
"internalType": "bool",
|
|
776
|
+
"name": "",
|
|
777
|
+
"type": "bool"
|
|
778
|
+
}
|
|
779
|
+
],
|
|
780
|
+
"stateMutability": "view",
|
|
781
|
+
"type": "function"
|
|
782
|
+
},
|
|
783
|
+
{
|
|
784
|
+
"inputs": [
|
|
785
|
+
{
|
|
786
|
+
"internalType": "address",
|
|
787
|
+
"name": "newOwner",
|
|
788
|
+
"type": "address"
|
|
789
|
+
}
|
|
790
|
+
],
|
|
791
|
+
"name": "transferOwnership",
|
|
792
|
+
"outputs": [],
|
|
793
|
+
"stateMutability": "nonpayable",
|
|
794
|
+
"type": "function"
|
|
795
|
+
},
|
|
796
|
+
{
|
|
797
|
+
"inputs": [
|
|
798
|
+
{
|
|
799
|
+
"internalType": "uint256",
|
|
800
|
+
"name": "tokenNumber",
|
|
801
|
+
"type": "uint256"
|
|
802
|
+
},
|
|
803
|
+
{
|
|
804
|
+
"internalType": "bool",
|
|
805
|
+
"name": "updateSendState",
|
|
806
|
+
"type": "bool"
|
|
807
|
+
},
|
|
808
|
+
{
|
|
809
|
+
"internalType": "enum ISRHooks.SendStates",
|
|
810
|
+
"name": "sendState",
|
|
811
|
+
"type": "uint8"
|
|
812
|
+
},
|
|
813
|
+
{
|
|
814
|
+
"internalType": "uint16[]",
|
|
815
|
+
"name": "tokensSendingTo",
|
|
816
|
+
"type": "uint16[]"
|
|
817
|
+
},
|
|
818
|
+
{
|
|
819
|
+
"internalType": "bool",
|
|
820
|
+
"name": "updateReceiveState",
|
|
821
|
+
"type": "bool"
|
|
822
|
+
},
|
|
823
|
+
{
|
|
824
|
+
"internalType": "enum ISRHooks.ReceiveStates",
|
|
825
|
+
"name": "receiveState",
|
|
826
|
+
"type": "uint8"
|
|
827
|
+
},
|
|
828
|
+
{
|
|
829
|
+
"internalType": "uint16[]",
|
|
830
|
+
"name": "tokensReceivingFrom",
|
|
831
|
+
"type": "uint16[]"
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
"internalType": "bool",
|
|
835
|
+
"name": "updateTokenMetadata",
|
|
836
|
+
"type": "bool"
|
|
837
|
+
},
|
|
838
|
+
{
|
|
839
|
+
"internalType": "uint256",
|
|
840
|
+
"name": "updatedActiveSlot",
|
|
841
|
+
"type": "uint256"
|
|
842
|
+
},
|
|
843
|
+
{
|
|
844
|
+
"components": [
|
|
845
|
+
{
|
|
846
|
+
"internalType": "bool",
|
|
847
|
+
"name": "updateImage",
|
|
848
|
+
"type": "bool"
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
"internalType": "bytes",
|
|
852
|
+
"name": "imageDataCompressed",
|
|
853
|
+
"type": "bytes"
|
|
854
|
+
},
|
|
855
|
+
{
|
|
856
|
+
"internalType": "bool",
|
|
857
|
+
"name": "updateSound",
|
|
858
|
+
"type": "bool"
|
|
859
|
+
},
|
|
860
|
+
{
|
|
861
|
+
"internalType": "bytes",
|
|
862
|
+
"name": "soundDataCompressed",
|
|
863
|
+
"type": "bytes"
|
|
864
|
+
}
|
|
865
|
+
],
|
|
866
|
+
"internalType": "struct ISRHooks.TokenMetadataCalldata",
|
|
867
|
+
"name": "tokenMetadataCalldata",
|
|
868
|
+
"type": "tuple"
|
|
869
|
+
}
|
|
870
|
+
],
|
|
871
|
+
"name": "updateTokenStateAndMetadata",
|
|
872
|
+
"outputs": [],
|
|
873
|
+
"stateMutability": "nonpayable",
|
|
874
|
+
"type": "function"
|
|
875
|
+
},
|
|
876
|
+
{
|
|
877
|
+
"inputs": [
|
|
878
|
+
{
|
|
879
|
+
"internalType": "address",
|
|
880
|
+
"name": "newImplementation",
|
|
881
|
+
"type": "address"
|
|
882
|
+
},
|
|
883
|
+
{
|
|
884
|
+
"internalType": "bytes",
|
|
885
|
+
"name": "data",
|
|
886
|
+
"type": "bytes"
|
|
887
|
+
}
|
|
888
|
+
],
|
|
889
|
+
"name": "upgradeToAndCall",
|
|
890
|
+
"outputs": [],
|
|
891
|
+
"stateMutability": "payable",
|
|
892
|
+
"type": "function"
|
|
893
|
+
}
|
|
894
|
+
],
|
|
895
|
+
"bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051615461620001046000396000818161113e0152818161116701526112a401526154616000f3fe6080604052600436106101055760003560e01c806301ffc9a71461010a5780631794bb3c1461013f57806320b365df1461016157806324cc64931461018f5780634eab1d15146101b25780634f1ef286146101c857806352d1902d146101db57806358f8699f146101f05780635ab53d9f1461021d578063715018a61461025157806377ece0ed1461026657806386f5caa0146102935780638da5cb5b146102a957806398a6e118146102be578063a2745897146102e7578063ad3cb1cc146102fd578063bdf1767a1461033b578063d4ae306814610368578063d8abc81814610388578063e8bc1f92146103a8578063f2fde38b146103d2578063f45fd0f3146103f2575b600080fd5b34801561011657600080fd5b5061012a610125366004614631565b610425565b60405190151581526020015b60405180910390f35b34801561014b57600080fd5b5061015f61015a366004614670565b610450565b005b34801561016d57600080fd5b506101826c447e69651d841bd8d104bed49381565b60405161013691906146b1565b34801561019b57600080fd5b506101a4600581565b604051908152602001610136565b3480156101be57600080fd5b506101a461280081565b61015f6101d6366004614788565b6105af565b3480156101e757600080fd5b506101a46105ce565b3480156101fc57600080fd5b5061021061020b3660046147d7565b6105eb565b60405161013691906148b2565b34801561022957600080fd5b5061023d610238366004614939565b6108a9565b604051610136989796959493929190614a5a565b34801561025d57600080fd5b5061015f610bc8565b34801561027257600080fd5b50610286610281366004614ac4565b610bdc565b6040516101369190614add565b34801561029f57600080fd5b506101a460015481565b3480156102b557600080fd5b50610182610bff565b3480156102ca57600080fd5b506101a471706f73746d696e74706172616d657465727360701b81565b3480156102f357600080fd5b506101a4613c0081565b34801561030957600080fd5b5061032e604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101369190614b21565b34801561034757600080fd5b5061035b610356366004614b34565b610c1a565b6040516101369190614bb0565b34801561037457600080fd5b5061015f610383366004614d33565b610d2d565b34801561039457600080fd5b50600054610182906001600160a01b031681565b3480156103b457600080fd5b506103bd610ea3565b60408051928352602083019190915201610136565b3480156103de57600080fd5b5061015f6103ed366004614e23565b610ec2565b3480156103fe57600080fd5b5061041261040d366004614ac4565b610f00565b6040516101369796959493929190614e80565b60006001600160e01b031982166358f8699f60e01b148061044a575061044a826110c1565b92915050565b600061045a6110f6565b805490915060ff600160401b82041615906001600160401b03166000811580156104815750825b90506000826001600160401b0316600114801561049d5750303b155b9050811580156104ab575080155b156104c95760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156104f257845460ff60401b1916600160401b1785555b6104fb8861111a565b61050361112b565b600080546001600160a01b0319166001600160a01b038916908117909155600187905560408051918252602082018890527facb755af0ec3542ca6af3a79dcbe8f0b12f9d3ed27c17a0bbdc16244fed42bbc910160405180910390a183156105a557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6105b7611133565b6105c0826111d8565b6105ca82826111e0565b5050565b60006105d8611299565b506000805160206153ac83398151915290565b60608160006105fb826004614f0c565b9050806001600160401b03811115610615576106156146c5565b60405190808252806020026020018201604052801561065a57816020015b60408051808201909152606080825260208201528152602001906001900390816106335790505b50925060005b828110156106ba5785858281811061067a5761067a614f1f565b905060200281019061068c9190614f35565b61069590614f55565b8482815181106106a7576106a7614f1f565b6020908102919091010152600101610660565b5060006106c6876112e2565b6000818152600360209081526040808320546002835281842060ff909116808552908352928190208151608081018352600992810192835268696d6167654461746160b81b6060820152918252805494955092939091820190610731906001600160a01b03166112f1565b81525086868151811061074657610746614f1f565b60209081029190910181019190915260408051608081018252600991810191825268736f756e644461746160b81b606082015290815260018301549091820190610798906001600160a01b03166112f1565b9052866107a6876001614f0c565b815181106107b6576107b6614f1f565b602002602001018190525060405180604001604052806040518060400160405280600981526020016873656e64537461746560b81b81525081526020016108046107ff86611326565b61136b565b905286610812876002614f0c565b8151811061082257610822614f1f565b602002602001018190525060405180604001604052806040518060400160405280600c81526020016b72656365697665537461746560a01b815250815260200161087361086e8661140f565b611470565b905286610881876003614f0c565b8151811061089157610891614f1f565b60200260200101819052505050505050949350505050565b6000806060806000806000806108be8b6115af565b50602489111561090f5760405162461bcd60e51b81526020600482015260176024820152766d61785265636569766520697320746f6f206c6172676560481b60448201526064015b60405180910390fd5b891561091b5789610926565b610926600143614fda565b9050610933600143614fda565b8111156109a15760405162461bcd60e51b815260206004820152603660248201527f426c6f636b206e756d62657220696e20667574757265202d206e65656420626c6044820152751bd8dac81a185cda081d1bc81899481919599a5b995960521b6064820152608401610906565b804080610a115760405162461bcd60e51b815260206004820152603860248201527f626c6f636b2068617368206e6f7420617661696c61626c65202d206d75737420604482015277626520696e206c6173746573742032353620626c6f636b7360401b6064820152608401610906565b610a1a8c611326565b9850610a258c61140f565b9750610a3160046115e2565b9450610a3d60066115e2565b60008d8152600860205260409020909450610a57906115e2565b92506000886003811115610a6d57610a6d614965565b03610ae857604080516000808252602082019092528a918a9190610aa7565b610a9461459b565b815260200190600190039081610a8c5790505b506040805160008082526020820190925290610ad9565b610ac661459b565b815260200190600190039081610abe5790505b50985098509850985050610bbb565b6001886003811115610afc57610afc614965565b03610b2157610b0c8c828c6116a5565b9650610b198c828c611715565b955050610bbb565b6002886003811115610b3557610b35614965565b03610b5157610b458c828c6118e1565b9097509550610bbb9050565b6003886003811115610b6557610b65614965565b03610bb957610b758c828c611715565b604080516000808252602082019092529197508a918a91610bac565b610b9961459b565b815260200190600190039081610b915790505b5098509850985050610bbb565b505b9397509397509397509397565b610bd0611b67565b610bda6000611b99565b565b6060610be7826115af565b50600082815260086020526040902061044a90611bf5565b600080610c0a611c90565b546001600160a01b031692915050565b610c226145d3565b610c2b836115af565b5060058210610c6b5760405162461bcd60e51b815260206004820152600c60248201526b125b9d985b1a59081cdb1bdd60a21b6044820152606401610906565b6000838152600260209081526040808320858452909152902080546001600160a01b0316610ca85760405180602001604052806000815250610cbc565b8054610cbc906001600160a01b0316611cb4565b82528054600160a01b900461ffff16602083015260018101546001600160a01b0316610cf75760405180602001604052806000815250610d0e565b6001810154610d0e906001600160a01b0316611cb4565b604083015260010154600160a01b900461ffff16606082015292915050565b61ffff8a10610d755760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b2103a37b5b2b710373ab6b132b960611b6044820152606401610906565b600080610d828c33611cd5565b9150915081610df65760405162461bcd60e51b815260206004820152603a60248201527f4f6e6c79206f776e6572206f722076616c69642064656c65676174652e78797a60448201527908158c881bd9881d1bdad95b881bdddb995c88185b1b1bddd95960321b6064820152608401610906565b8a80610dff5750875b80610e075750845b610e5f5760405162461bcd60e51b8152602060048201526024808201527f4174206c65617374206f6e6520757064617465206d7573742062652070726f766044820152631a59195960e21b6064820152608401610906565b8415610e7157610e718c858584611e26565b8a15610e8357610e838c8b8b846123de565b8715610e9557610e958c888884612803565b505050505050505050505050565b600080610eb060046115e2565b610eba60066115e2565b915091509091565b610eca611b67565b6001600160a01b038116610ef4576000604051631e4fbdf760e01b815260040161090691906146b1565b610efd81611b99565b50565b6000806060806000610f106145d3565b6000610f1b886115af565b50610f2588611326565b9650610f308861140f565b6000898152600960205260409020909650610f4a90612bc7565b6000898152600a60205260409020909550610f6490612bc7565b6000898152600360209081526040808320546002835281842060ff90911680855292529091208054929650909450906001600160a01b0316610fb55760405180602001604052806000815250610fc9565b8054610fc9906001600160a01b0316611cb4565b83528054600160a01b900461ffff16602084015260018101546001600160a01b0316611004576040518060200160405280600081525061101b565b600181015461101b906001600160a01b0316611cb4565b6040840152600181810154600160a01b900461ffff16606085015254600090611044908b612c8c565b6000546040516331a9108f60e11b8152600481018390529192506001600160a01b031690636352211e90602401602060405180830381865afa15801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b29190614fed565b92505050919395979092949650565b60006001600160e01b031982166358f8699f60e01b148061044a57506301ffc9a760e01b6001600160e01b031983161461044a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611122612ca6565b610efd81612ccb565b610bda612ca6565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111ba57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111ae6000805160206153ac833981519152546001600160a01b031690565b6001600160a01b031614155b15610bda5760405163703e46dd60e11b815260040160405180910390fd5b610efd611b67565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561123a575060408051601f3d908101601f191682019092526112379181019061500a565b60015b6112595781604051634c9c8ce360e01b815260040161090691906146b1565b6000805160206153ac833981519152811461128a57604051632a87526960e21b815260048101829052602401610906565b6112948383612cd3565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bda5760405163703e46dd60e11b815260040160405180910390fd5b600061044a620f424083615023565b60606001600160a01b03821661131557505060408051602081019091526000815290565b61044a61132183611cb4565b612d29565b6000611333600483612d4d565b1561134057506001919050565b600082815260096020526040902061135790612d65565b61136357506002919050565b506000919050565b6060600182600281111561138157611381614965565b146113e857600282600281111561139a5761139a614965565b146113c4576040518060400160405280600781526020016613995d5d1c985b60ca1b81525061044a565b6040518060400160405280600681526020016553656e64546f60d01b81525061044a565b505060408051808201909152600b81526a14d95b9911d95b995c985b60aa1b602082015290565b600061141c600683612d4d565b1561142957506001919050565b6000828152600a6020526040902061144090612d65565b61144c57506002919050565b600082815260036020526040902054610100900460ff161561136357506003919050565b6060600082600381111561148657611486614965565b036114ae57505060408051808201909152600781526613995d5d1c985b60ca1b602082015290565b60018260038111156114c2576114c2614965565b036114f157505060408051808201909152600e81526d149958d95a5d9951d95b995c985b60921b602082015290565b600282600381111561150557611505614965565b0361153157505060408051808201909152600b81526a5265636569766546726f6d60a81b602082015290565b600382600381111561154557611545614965565b0361156f57505060408051808201909152600981526852656365697665546f60b81b602082015290565b60405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207265636569766520737461746560581b6044820152606401610906565b600061ffff8211156115de576040516306dfcc6560e41b81526010600482015260248101839052604401610906565b5090565b80546000908082036115f75750600092915050565b600083611605600184614fda565b8154811061161557611615614f1f565b6000918252602082200154915081608081901c801561163657600892508091505b50604081901c801561164c576004830192508091505b50602081901c8015611662576002830192508091505b50601081901c8015611675576001830192505b508190506004611686600186614fda565b61169192911b614f0c565b61169c906001614f0c565b95945050505050565b606060006116b360046115e2565b905060008382116116c457816116c6565b835b9050600085876040516020016116e6929190918252602082015260400190565b6040516020818303038152906040528051906020012090506117088183612d73565b93505050505b9392505050565b600083815260086020526040812060609190611730906115e2565b90508060000361177457604080516000808252602082019092529061176b565b61175861459b565b8152602001906001900390816117505790505b5091505061170e565b60008382116117835781611785565b835b9050600085876040516020016117a5929190918252602082015260400190565b60405160208183030381529060405280519060200120905060006117c98285612eda565b905060006117d78285613039565b90506000846001600160401b038111156117f3576117f36146c5565b60405190808252806020026020018201604052801561182c57816020015b61181961459b565b8152602001906001900390816118115790505b50600154600080548d825260086020526040822093945091926001600160a01b0390921691905b888110156118cf57600061188987838151811061187257611872614f1f565b6020026020010151846130c890919063ffffffff16565b61ffff169050600061189b8683612c8c565b90506118a8828287613159565b8784815181106118ba576118ba614f1f565b60209081029190910101525050600101611853565b50929c9b505050505050505050505050565b6000838152600a6020526040812060609182916118fd90612bc7565b8051909150600081900361197a57604080516000808252602082019092529061193c565b61192961459b565b8152602001906001900390816119215790505b50604080516000808252602082019092529061196e565b61195b61459b565b8152602001906001900390816119535790505b50935093505050611b5f565b6040805160208082018990528183018a90528251808303840181526060909201909252805191012060006119ae8284612eda565b905060006119bf8a8686858c613277565b805190915060006119d38c8888878e613433565b8051909150806001600160401b038111156119f0576119f06146c5565b604051908082528060200260200182016040528015611a2957816020015b611a1661459b565b815260200190600190039081611a0e5790505b5060015460008054929c5090916001600160a01b0316905b83811015611aa1576000858281518110611a5d57611a5d614f1f565b60200260200101519050611a7b81611a758684612c8c565b85613159565b8e8381518110611a8d57611a8d614f1f565b602090810291909101015250600101611a41565b50846001600160401b03811115611aba57611aba6146c5565b604051908082528060200260200182016040528015611af357816020015b611ae061459b565b815260200190600190039081611ad85790505b509a5060005b85811015611b53576000878281518110611b1557611b15614f1f565b60200260200101519050611b2d81611a758684612c8c565b8d8381518110611b3f57611b3f614f1f565b602090810291909101015250600101611af9565b50505050505050505050505b935093915050565b33611b70610bff565b6001600160a01b031614610bda573360405163118cdaa760e01b815260040161090691906146b1565b6000611ba3611c90565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60606000611c02836115e2565b90506000816001600160401b03811115611c1e57611c1e6146c5565b604051908082528060200260200182016040528015611c47578160200160208202803683370190505b50905060005b82811015611c8857611c5f85826130c8565b61ffff16828281518110611c7557611c75614f1f565b6020908102919091010152600101611c4d565b509392505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b606061044a826001611cd0816001600160a01b0384163b614fda565b6135d3565b6000806000611ce660015486612c8c565b6000546040516331a9108f60e11b8152600481018390529192506001600160a01b031690636352211e90602401602060405180830381865afa158015611d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d549190614fed565b9150816001600160a01b0316846001600160a01b03161480611e1c5750600054604051632e7cda1d60e21b81526001600160a01b038087166004830152808516602483015290911660448201526064810182905271706f73746d696e74706172616d657465727360701b60848201526c447e69651d841bd8d104bed4939063b9f368749060a401602060405180830381865afa158015611df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1c9190615045565b9250509250929050565b60058310611e6c5760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081858dd1a5d99481cdb1bdd606a1b6044820152606401610906565b6000848152600360209081526040808320546002835281842087855290925290912060ff909116841480159190611f3057835180611eb3575080546001600160a01b031615155b611f305760405162461bcd60e51b815260206004820152604260248201527f4e65772061637469766520736c6f74206d757374206861766520696d6167652060448201527f6d65746164617461207768656e207570646174696e672061637469766520736c6064820152611bdd60f21b608482015260a401610906565b6000611f3e60015488612c8c565b8551909150156120f357600085602001515111611faf5760405162461bcd60e51b815260206004820152602960248201527f496d6167652064617461206d7573742062652070726f7669646564207768656e604482015268207570646174696e6760b81b6064820152608401610906565b613c00856020015151111561202c5760405162461bcd60e51b815260206004820152603e60248201527f496d6167652064617461206d757374206265206c657373207468616e206f722060448201527f657175616c20746f204d41585f494d4147455f444154415f4c454e47544800006064820152608401610906565b61203985602001516135f6565b82546001600160a01b0319166001600160a01b0391909116178083556001908390601490612073908490600160a01b900461ffff16615062565b92506101000a81548161ffff021916908361ffff16021790555060008051602061540c83398151915260008054906101000a90046001600160a01b0316826120cd898660000160149054906101000a900461ffff1661369b565b6120d68861378b565b6040516120e694939291906150b7565b60405180910390a1612159565b602085015151156121595760405162461bcd60e51b815260206004820152602a60248201527f496d6167652064617461206d75737420626520656d707479207768656e206e6f60448201526974207570646174696e6760b01b6064820152608401610906565b8460400151156122e75784606001515160000361221d57600182810180546001600160a01b03191680825560149061219d908490600160a01b900461ffff16615062565b92506101000a81548161ffff021916908361ffff16021790555060008051602061540c83398151915260008054906101000a90046001600160a01b0316826121f7898660010160149054906101000a900461ffff166137e3565b6122008861378b565b60405161221094939291906150b7565b60405180910390a161234d565b612800856060015151111561229a5760405162461bcd60e51b815260206004820152603e60248201527f536f756e642064617461206d757374206265206c657373207468616e206f722060448201527f657175616c20746f204d41585f534f554e445f444154415f4c454e47544800006064820152608401610906565b6122a785606001516135f6565b600183810180546001600160a01b0319166001600160a01b03939093169290921780835590919060149061219d908490600160a01b900461ffff16615062565b6060850151511561234d5760405162461bcd60e51b815260206004820152602a60248201527f536f756e642064617461206d75737420626520656d707479207768656e206e6f60448201526974207570646174696e6760b01b6064820152608401610906565b60008781526003602052604090205460ff1686146123d55761236e86613883565b6000888152600360205260408120805460ff191660ff93909316929092179091555460008051602061540c833981519152906001600160a01b0316826123b3896138b1565b6123bc8861378b565b6040516123cc94939291906150b7565b60405180910390a15b50505050505050565b6000848152600260209081526040808320600383528184205460ff1684529091529020546001600160a01b03166124275760405162461bcd60e51b815260040161090690615198565b600283600281111561243b5761243b614965565b146124945781511561248f5760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e7353656e64696e67546f206d75737420626520656d7074790000006044820152606401610906565b6124ef565b60008251116124ef5760405162461bcd60e51b815260206004820152602160248201527f746f6b656e7353656e64696e67546f206d757374206265206e6f6e2d656d70746044820152607960f81b6064820152608401610906565b6019825111156125735760405162461bcd60e51b815260206004820152604360248201527f746f6b656e7353656e64696e67546f206d757374206265206c6573732074686160448201527f6e206f7220657175616c20746f204d41585f53454e44494e475f544f5f4c454e60648201526208ea8960eb1b608482015260a401610906565b600061258160015486612c8c565b9050600061258e86611326565b905060018160028111156125a4576125a4614965565b036125ba576125b4600487613967565b506126a9565b60028160028111156125ce576125ce614965565b036126a95760008681526009602052604081206125ea90612bc7565b805190915060005b8181101561264b57600083828151811061260e5761260e614f1f565b602002602001015161ffff1690506126418a6008600084815260200190815260200160002061396790919063ffffffff16565b50506001016125f2565b50600088815260096020526040902061266390613aa2565b6000805460408051928352602083019081905286926001600160a01b03909216916000805160206153ec8339815191529161269e91906151f5565b60405180910390a350505b60018560028111156126bd576126bd614965565b036126d3576126cd600487613ab2565b50612765565b60028560028111156126e7576126e7614965565b036127655760008681526009602052604090206127049085613bab565b835160005b8181101561276257600086828151811061272557612725614f1f565b602002602001015161ffff1690506127588960086000848152602001908152602001600020613ab290919063ffffffff16565b5050600101612709565b50505b60005460008051602061540c833981519152906001600160a01b03168361278b88613d8b565b6127948761378b565b6040516127a494939291906150b7565b60405180910390a160028560028111156127c0576127c0614965565b036127fb5760005460405183916001600160a01b0316906000805160206153ec833981519152906127f29088906151f5565b60405180910390a35b505050505050565b6000848152600260209081526040808320600383528184205460ff1684529091529020546001600160a01b031661284c5760405162461bcd60e51b815260040161090690615198565b600283600381111561286057612860614965565b146128c3578151156128be5760405162461bcd60e51b815260206004820152602160248201527f746f6b656e73526563656976696e6746726f6d206d75737420626520656d70746044820152607960f81b6064820152608401610906565b612922565b60008251116129225760405162461bcd60e51b815260206004820152602560248201527f746f6b656e73526563656976696e6746726f6d206d757374206265206e6f6e2d604482015264656d70747960d81b6064820152608401610906565b6103e8825111156129b55760405162461bcd60e51b815260206004820152605160248201527f746f6b656e73526563656976696e6746726f6d206d757374206265206c65737360448201527f207468616e206f7220657175616c20746f204d41585f524543454956494e475f60648201527008ca49e9abe82a4a482b2be988a9c8ea89607b1b608482015260a401610906565b60006129c360015486612c8c565b905060006129d08661140f565b905060018160038111156129e6576129e6614965565b036129fc576129f6600687613967565b50612aa5565b6002816003811115612a1057612a10614965565b03612a74576000868152600a60205260409020612a2c90613aa2565b6000805460408051928352602083019081905284926001600160a01b03909216916000805160206153cc83398151915291612a6791906151f5565b60405180910390a3612aa5565b6003816003811115612a8857612a88614965565b03612aa5576000868152600360205260409020805461ff00191690555b6001856003811115612ab957612ab9614965565b03612acf57612ac9600687613ab2565b50612b3a565b6002856003811115612ae357612ae3614965565b03612b05576000868152600a60205260409020612b009085613bab565b612b3a565b6003856003811115612b1957612b19614965565b03612b3a576000868152600360205260409020805461ff0019166101001790555b60005460008051602061540c833981519152906001600160a01b031683612b6088613e3c565b612b698761378b565b604051612b7994939291906150b7565b60405180910390a16002856003811115612b9557612b95614965565b036127fb5760005460405183916001600160a01b0316906000805160206153cc833981519152906127f29088906151f5565b80546060906001600160a01b0316612bf25760408051600080825260208201909252905b5092915050565b8154600090612c09906001600160a01b0316611cb4565b602081015190915060c01c806001600160401b03811115612c2c57612c2c6146c5565b604051908082528060200260200182016040528015612c55578160200160208202803683370190505b5092506028820160005b82811015612c8357815160f01c602082810287010152600290910190600101612c5f565b50505050919050565b600081612c9c620f424085615208565b61170e9190614f0c565b612cae613eb9565b610bda57604051631afcd79f60e31b815260040160405180910390fd5b610eca612ca6565b612cdc82613ed3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115612d21576112948282613f2f565b6105ca613f9c565b6060612d3482613fbb565b8051613078825260020160011990910190815292915050565b6000612d5c8360010183614021565b15159392505050565b546001600160a01b03161590565b606081600003612db6576040805160008082526020820190925290612dae565b612d9b61459b565b815260200190600190039081612d935790505b50905061044a565b6000612dc260046115e2565b90506000612dd08583612eda565b90506000612dde8286613039565b80519091506000816001600160401b03811115612dfd57612dfd6146c5565b604051908082528060200260200182016040528015612e3657816020015b612e2361459b565b815260200190600190039081612e1b5790505b506001546000805492935090916001600160a01b0316905b84811015612ecb576000612e85878381518110612e6d57612e6d614f1f565b602002602001015160046130c890919063ffffffff16565b61ffff1690506000612e978583612c8c565b9050612ea4828286613159565b868481518110612eb657612eb6614f1f565b60209081029190910101525050600101612e4e565b50919998505050505050505050565b612f256040518060c001604052806000815260200160008152602001600081526020016000815260200160006001600160401b0316815260200160006001600160401b031681525090565b60008211612f6a5760405162461bcd60e51b815260206004820152601260248201527104665697374656c57616c6b4c69623a4e3d360741b6044820152606401610906565b818152612f7682614046565b60208201819052612f8690614093565b6040808301919091526002606083015251612fc390849084906020019182526906665697374656c2e6b360b41b6020830152602a820152604a0190565b60408051808303601f1901815291815281516020928301206001600160401b031660808401528051918201859052696665697374656c2e6b3160b01b90820152604a8101839052606a0160408051601f1981840301815291905280516020909101206001600160401b031660a082015292915050565b815160609082111561304a57825191505b816001600160401b03811115613062576130626146c5565b60405190808252806020026020018201604052801561308b578160200160208202803683370190505b50905060005b82811015612beb576130a384826140f0565b8282815181106130b5576130b5614f1f565b6020908102919091010152600101613091565b60006130d3836115e2565b82106131325760405162461bcd60e51b815260206004820152602860248201527f456e756d657261626c6553657455696e7431363a20696e646578206f7574206f6044820152676620626f756e647360c01b6064820152608401610906565b5060009182526020909120600482811c9091015461ffff9290911b60f0161c166000190190565b61316161459b565b6040516331a9108f60e11b8152600481018490526000906001600160a01b03841690636352211e90602401602060405180830381865afa1580156131a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131cd9190614fed565b6000868152600360209081526040808320546002835281842060ff90911680855290835292208886526001600160a01b038085169287019290925280549394509192161561322f578054613229906001600160a01b0316611cb4565b60408501525b60018101546001600160a01b03161561325f576001810154613259906001600160a01b0316611cb4565b60608501525b61326883614171565b60808501525050509392505050565b6060816001600160401b03811115613291576132916146c5565b6040519080825280602002602001820160405280156132ba578160200160208202803683370190505b509050600080836001600160401b038111156132d8576132d86146c5565b604051908082528060200260200182016040528015613301578160200160208202803683370190505b5090506000805b878110156134255760008061331d89846140f0565b90508a818151811061333157613331614f1f565b602002602001015161ffff169150508a810361334d575061341d565b6000805b8481101561338a578286828151811061336c5761336c614f1f565b602002602001015103613382576001915061338a565b600101613351565b50801561339857505061341d565b60008c81526008602052604090206133b09083612d4d565b1561340c57818787815181106133c8576133c8614f1f565b6020908102919091010152856133dd8161521f565b965050818585806133ed9061521f565b9650815181106133ff576133ff614f1f565b6020026020010181815250505b87861061341a575050613425565b50505b600101613308565b505050815295945050505050565b6060816001600160401b0381111561344d5761344d6146c5565b604051908082528060200260200182016040528015613476578160200160208202803683370190505b509050600080836001600160401b03811115613494576134946146c5565b6040519080825280602002602001820160405280156134bd578160200160208202803683370190505b5090506000805b87811015613425576000806134d989846140f0565b90508a81815181106134ed576134ed614f1f565b602002602001015161ffff169150508a810361350957506135cb565b6000805b84811015613546578286828151811061352857613528614f1f565b60200260200101510361353e5760019150613546565b60010161350d565b5080156135545750506135cb565b61355f600483612d4d565b156135c8578187878151811061357757613577614f1f565b60209081029190910101528561358c8161521f565b9650508185858061359c9061521f565b9650815181106135ae576135ae614f1f565b6020026020010181815250508786106135c8575050613425565b50505b6001016134c4565b60408051603f8301601f19168101909152818152818360208301863c9392505050565b6000808260405160200161360a9190615238565b604051602081830303815290604052905060008160405160200161362e919061525e565b60405160208183030381529060405290508051602082016000f092506001600160a01b0383166136945760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b6044820152606401610906565b5050919050565b606060006040518060400160405280601081526020016f125b5859d955995c9cda5bdb94db1bdd60821b8152506136d185614235565b6040516020016136e2929190615292565b60408051808303601f190181526001808452838301909252925060009190816020015b61370d614603565b8152602001906001900390816137055750506040805160a081019091528381529091506020810160035b81526020018561ffff1660001b8152602001600015158152602001604051806020016040528060008152508152508160008151811061377857613778614f1f565b6020908102919091010152949350505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106137c5576137c5614f1f565b6001600160a01b039092166020928302919091019091015292915050565b606060006040518060400160405280601081526020016f14dbdd5b9915995c9cda5bdb94db1bdd60821b81525061381985614235565b60405160200161382a929190615292565b60408051808303601f190181526001808452838301909252925060009190816020015b613855614603565b81526020019060019003908161384d5750506040805160a08101909152838152909150602081016003613737565b600060ff8211156115de576040516306dfcc6560e41b81526008600482015260248101839052604401610906565b60408051600180825281830190925260609160009190816020015b6138d4614603565b8152602001906001900390816138cc579050506040805160e08101909152600a60a08201908152691058dd1a5d9954db1bdd60b21b60c0830152815290915060208101600381526020018460001b8152602001600015158152602001604051806020016040528060008152508152508160008151811061395657613956614f1f565b602090810291909101015292915050565b6000806139778460010184614021565b90508060000361398b57600091505061044a565b60006001613998866115e2565b6139a29190614fda565b905060006139b1600184614fda565b9050600482901c600f8316838314613a215760008881526020902082810154600485811c928301805461ffff60f089851b1681811b199092169387901b9490941c9093169283901b91909117905590600f8516613a1d6001808d0190613a179086614fda565b8a6142c7565b5050505b6000888152602090208201805461ffff600484901b1b19169081905515808015613a5757508854613a5490600190614fda565b83145b15613a84578854899080613a6d57613a6d6152c1565b600190038181906000526020600020016000905590555b613a93896001018960006142c7565b50600198975050505050505050565b80546001600160a01b0319169055565b600061ffff82811610613b135760405162461bcd60e51b8152602060048201526024808201527f456e756d657261626c6553657455696e7431363a2076616c756520746f6f206c6044820152636172676560e01b6064820152608401610906565b613b1d8383612d4d565b15613b2a5750600061044a565b6000613b35846115e2565b8454909150600482901c90600f8316908210613b61578554600181018755600087815260208120909101555b6000868152602090208201805461ffff600484811b91821b19909216600189810190921b1790925583901b8217810190613b9e90880187836142c7565b5060019695505050505050565b80516000819003613bc857505080546001600160a01b0319169055565b61ffff811115613c2a5760405162461bcd60e51b815260206004820152602760248201527f546f74616c206279746573206c656e67746820657863656564732075696e74316044820152660d881b1a5b5a5d60ca1b6064820152608401610906565b6000613c37826002615208565b90506000613c46826008614f0c565b90506000613c55826020614f0c565b6001600160401b03811115613c6c57613c6c6146c5565b6040519080825280601f01601f191660200182016040528015613c96576020820181803683370190505b5060c085901b602082015290506028810160005b85811015613d5857600086613cc0836010614f0c565b10613ccb5786613cd6565b613cd6826010614f0c565b90506000805b613ce68484614fda565b811015613d3c57613cf8816010615208565b613d039060f0614fda565b8a613d0e8387614f0c565b81518110613d1e57613d1e614f1f565b602090810291909101015161ffff16901b9190911790600101613cdc565b50835250602090910190613d51601082614f0c565b9050613caa565b505081815280613d67816135f6565b87546001600160a01b0319166001600160a01b039190911617909655505050505050565b60408051600180825281830190925260609160009190816020015b613dae614603565b815260200190600190039081613da65750506040805160e081018252600960a082019081526853656e64537461746560b81b60c08301528152600160208201529192508101846002811115613e0557613e05614965565b60001b8152602001600015158152602001604051806020016040528060008152508152508160008151811061395657613956614f1f565b60408051600180825281830190925260609160009190816020015b613e5f614603565b815260200190600190039081613e575750506040805160e081018252600c60a082019081526b52656365697665537461746560a01b60c08301528152600160208201529192508101846003811115613e0557613e05614965565b6000613ec36110f6565b54600160401b900460ff16919050565b806001600160a01b03163b600003613f005780604051634c9c8ce360e01b815260040161090691906146b1565b6000805160206153ac83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051613f4c91906152d7565b600060405180830381855af49150503d8060008114613f87576040519150601f19603f3d011682016040523d82523d6000602084013e613f8c565b606091505b509150915061169c8583836142f7565b3415610bda5760405163b398979f60e01b815260040160405180910390fd5b8051604051818001600282019081526f30313233343536373839616263646566600f52918301906022015b81841461401157600184019350600f845116516001820153600f845160041c16518153600201613fe6565b6000815260200160405250919050565b600481811c600090815260209390935260409092205460f09190921b161c61ffff1690565b60006001821161405857506001919050565b5060001901600181811c909117600281901c17600481901c17600881901c17601081901c17602081901c17604081901c17608081901c170190565b60008082116140d25760405162461bcd60e51b815260206004820152600b60248201526a6c6f67326365696c28302960a81b6044820152606401610906565b6001820391505b81156140eb57600191821c91016140d9565b919050565b815160009082106141395760405162461bcd60e51b81526020600482015260136024820152722332b4b9ba32b62bb0b635a634b11d359f1ea760691b6044820152606401610906565b825160010361414a5750600061044a565b61170e82846000015185602001518660400151876060015188608001518960a0015161434a565b604051606082811b6001600160601b03191660208301529073eeeeeeee14d718c2b47d9923deab1335e144eeee90635d78a21790603401604051602081830303815290604052603c6040518363ffffffff1660e01b81526004016141d69291906152e9565b600060405180830381865afa92505050801561421457506040513d6000823e601f3d908101601f19168201604052614211919081019061530b565b60015b61422c57505060408051602081019091526000815290565b50909392505050565b60606000614242836143a8565b60010190506000816001600160401b03811115614261576142616146c5565b6040519080825280601f01601f19166020018201604052801561428b576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461429557509392505050565b600482811c6000908152602094909452604090932080549290931b60f01690811b61ffff90911b19909116179055565b60608261430c576143078261447e565b61170e565b815115801561432357506001600160a01b0384163b155b156143435783604051639996b31560e01b815260040161090691906146b1565b508061170e565b60008660010361435c5750600061439d565b8760005b6020811015614397576000614379838a8a8a8a8a6144a7565b90508981101561438d57925061439d915050565b9150600101614360565b50889150505b979650505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106143e75772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310614411576904ee2d6d415b85acef8160201b830492506020015b662386f26fc10000831061442f57662386f26fc10000830492506010015b6305f5e1008310614447576305f5e100830492506008015b612710831061445b57612710830492506004015b6064831061446d576064830492506002015b600a831061044a5760010192915050565b80511561448e5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000856001036144b957506000614591565b856002036144e35760018316156144da576144d5876001614fda565b6144dc565b865b9050614591565b600060028604808703600180831b03600180831b039150808b16828c851c166001600160401b038116898118905080600d1b811890508060071c811890508060111b811890508060051c81189050838184181693508192508391506001600160401b0382169050600189188118905080600d1b811890508060071c811890508060111b811890508060051c8118905084818418169350508091508290508181861b1795505050505050809150505b9695505050505050565b6040518060a001604052806000815260200160006001600160a01b031681526020016060815260200160608152602001606081525090565b604051806080016040528060608152602001600061ffff16815260200160608152602001600061ffff1681525090565b6040805160a08101909152606081526020810160008152600060208201819052604082015260609081015290565b60006020828403121561464357600080fd5b81356001600160e01b03198116811461170e57600080fd5b6001600160a01b0381168114610efd57600080fd5b60008060006060848603121561468557600080fd5b83356146908161465b565b925060208401356146a08161465b565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614703576147036146c5565b604052919050565b60006001600160401b03821115614724576147246146c5565b50601f01601f191660200190565b600082601f83011261474357600080fd5b81356147566147518261470b565b6146db565b81815284602083860101111561476b57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561479b57600080fd5b82356147a68161465b565b915060208301356001600160401b038111156147c157600080fd5b6147cd85828601614732565b9150509250929050565b600080600080606085870312156147ed57600080fd5b84356147f88161465b565b93506020850135925060408501356001600160401b038082111561481b57600080fd5b818701915087601f83011261482f57600080fd5b81358181111561483e57600080fd5b8860208260051b850101111561485357600080fd5b95989497505060200194505050565b60005b8381101561487d578181015183820152602001614865565b50506000910152565b6000815180845261489e816020860160208601614862565b601f01601f19169290920160200192915050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561492b57888303603f19018552815180518785526148ff88860182614886565b91890151858303868b01529190506149178183614886565b9689019694505050908601906001016148db565b509098975050505050505050565b60008060006060848603121561494e57600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052602160045260246000fd5b6003811061498b5761498b614965565b9052565b6004811061498b5761498b614965565b600082825180855260208086019550808260051b84010181860160005b84811015614a4d57858303601f19018952815180518452848101516001600160a01b03168585015260408082015160a08287018190529190614a0083880182614886565b9250505060608083015186830382880152614a1b8382614886565b9250505060808083015192508582038187015250614a398183614886565b9a86019a94505050908301906001016149bc565b5090979650505050505050565b6000610100614a69838c61497b565b614a76602084018b61498f565b806040840152614a888184018a61499f565b90508281036060840152614a9c818961499f565b9150508560808301528460a08301528360c08301528260e08301529998505050505050505050565b600060208284031215614ad657600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015614b1557835183529284019291840191600101614af9565b50909695505050505050565b60208152600061170e6020830184614886565b60008060408385031215614b4757600080fd5b50508035926020909101359150565b6000815160808452614b6b6080850182614886565b9050602083015161ffff8082166020870152604085015191508583036040870152614b968383614886565b925080606086015116606087015250508091505092915050565b60208152600061170e6020830184614b56565b8015158114610efd57600080fd5b80356140eb81614bc3565b8035600381106140eb57600080fd5b600082601f830112614bfc57600080fd5b813560206001600160401b03821115614c1757614c176146c5565b8160051b614c268282016146db565b9283528481018201928281019087851115614c4057600080fd5b83870192505b8483101561439d57823561ffff81168114614c615760008081fd5b82529183019190830190614c46565b8035600481106140eb57600080fd5b600060808284031215614c9157600080fd5b604051608081016001600160401b038082118383101715614cb457614cb46146c5565b8160405282935084359150614cc882614bc3565b90825260208401359080821115614cde57600080fd5b614cea86838701614732565b602084015260408501359150614cff82614bc3565b8160408401526060850135915080821115614d1957600080fd5b50614d2685828601614732565b6060830152505092915050565b6000806000806000806000806000806101408b8d031215614d5357600080fd5b8a359950614d6360208c01614bd1565b9850614d7160408c01614bdc565b975060608b01356001600160401b0380821115614d8d57600080fd5b614d998e838f01614beb565b9850614da760808e01614bd1565b9750614db560a08e01614c70565b965060c08d0135915080821115614dcb57600080fd5b614dd78e838f01614beb565b9550614de560e08e01614bd1565b94506101008d013593506101208d0135915080821115614e0457600080fd5b50614e118d828e01614c7f565b9150509295989b9194979a5092959850565b600060208284031215614e3557600080fd5b813561170e8161465b565b60008151808452602080850194506020840160005b83811015614e7557815161ffff1687529582019590820190600101614e55565b509495945050505050565b614e8a818961497b565b614e97602082018861498f565b60e060408201526000614ead60e0830188614e40565b8281036060840152614ebf8188614e40565b905085608084015282810360a0840152614ed98186614b56565b91505060018060a01b03831660c083015298975050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561044a5761044a614ef6565b634e487b7160e01b600052603260045260246000fd5b60008235603e19833603018112614f4b57600080fd5b9190910192915050565b600060408236031215614f6757600080fd5b604080519081016001600160401b038082118383101715614f8a57614f8a6146c5565b816040528435915080821115614f9f57600080fd5b614fab36838701614732565b83526020850135915080821115614fc157600080fd5b50614fce36828601614732565b60208301525092915050565b8181038181111561044a5761044a614ef6565b600060208284031215614fff57600080fd5b815161170e8161465b565b60006020828403121561501c57600080fd5b5051919050565b60008261504057634e487b7160e01b600052601260045260246000fd5b500690565b60006020828403121561505757600080fd5b815161170e81614bc3565b61ffff818116838216019080821115612beb57612beb614ef6565b60008151808452602080850194506020840160005b83811015614e755781516001600160a01b031687529582019590820190600101615092565b6001600160a01b0385168152602080820185905260806040808401829052855184830181905260009360a092909183870190600581901b880185018a8501885b83811015615173578a8303609f190185528151805189855261511b8a860182614886565b9050888201516009811061513157615131614965565b858a01528188015188860152606080830151151590860152908a01518482038b8601529061515f8183614886565b9689019694505050908601906001016150f7565b505088810360608a0152615187818b61507d565b9d9c50505050505050505050505050565b6020808252603f908201527f546f6b656e206d757374206861766520696d616765206d65746164617461206160408201527f742061637469766520736c6f74207768656e20706172746963706174696e6700606082015260800190565b60208152600061170e6020830184614e40565b808202811582820484141761044a5761044a614ef6565b60006001820161523157615231614ef6565b5060010190565b6000815260008251615251816001850160208701614862565b9190910160010192915050565b6a600b5981380380925939f360a81b8152815160009061528581600b850160208701614862565b91909101600b0192915050565b600083516152a4818460208801614862565b8351908301906152b8818360208801614862565b01949350505050565b634e487b7160e01b600052603160045260246000fd5b60008251614f4b818460208701614862565b6040815260006152fc6040830185614886565b90508260208301529392505050565b60008060006060848603121561532057600080fd5b83516001600160401b0381111561533657600080fd5b8401601f8101861361534757600080fd5b80516153556147518261470b565b81815287602083850101111561536a57600080fd5b61537b826020830160208601614862565b809550505050602084015161538f8161465b565b60408501519092506153a08161465b565b80915050925092509256fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc2a54fbf322eb9aa58a962240a1babced037cbfc539a425887a8d27817e0160ebde937289f46e805af8ee80434fd9460e355979dba7f43836f2456fceaf6ead863dfcd927ac9e2552184b368328e6cca04f875ef453930277d7dfa53f40dbeac4a26469706673582212207f51d67d25d2049300bf24aa746efc2d3b4776ba8ec50ef5e136c22b13be360464736f6c63430008160033",
|
|
896
|
+
"deployedBytecode": "0x6080604052600436106101055760003560e01c806301ffc9a71461010a5780631794bb3c1461013f57806320b365df1461016157806324cc64931461018f5780634eab1d15146101b25780634f1ef286146101c857806352d1902d146101db57806358f8699f146101f05780635ab53d9f1461021d578063715018a61461025157806377ece0ed1461026657806386f5caa0146102935780638da5cb5b146102a957806398a6e118146102be578063a2745897146102e7578063ad3cb1cc146102fd578063bdf1767a1461033b578063d4ae306814610368578063d8abc81814610388578063e8bc1f92146103a8578063f2fde38b146103d2578063f45fd0f3146103f2575b600080fd5b34801561011657600080fd5b5061012a610125366004614631565b610425565b60405190151581526020015b60405180910390f35b34801561014b57600080fd5b5061015f61015a366004614670565b610450565b005b34801561016d57600080fd5b506101826c447e69651d841bd8d104bed49381565b60405161013691906146b1565b34801561019b57600080fd5b506101a4600581565b604051908152602001610136565b3480156101be57600080fd5b506101a461280081565b61015f6101d6366004614788565b6105af565b3480156101e757600080fd5b506101a46105ce565b3480156101fc57600080fd5b5061021061020b3660046147d7565b6105eb565b60405161013691906148b2565b34801561022957600080fd5b5061023d610238366004614939565b6108a9565b604051610136989796959493929190614a5a565b34801561025d57600080fd5b5061015f610bc8565b34801561027257600080fd5b50610286610281366004614ac4565b610bdc565b6040516101369190614add565b34801561029f57600080fd5b506101a460015481565b3480156102b557600080fd5b50610182610bff565b3480156102ca57600080fd5b506101a471706f73746d696e74706172616d657465727360701b81565b3480156102f357600080fd5b506101a4613c0081565b34801561030957600080fd5b5061032e604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101369190614b21565b34801561034757600080fd5b5061035b610356366004614b34565b610c1a565b6040516101369190614bb0565b34801561037457600080fd5b5061015f610383366004614d33565b610d2d565b34801561039457600080fd5b50600054610182906001600160a01b031681565b3480156103b457600080fd5b506103bd610ea3565b60408051928352602083019190915201610136565b3480156103de57600080fd5b5061015f6103ed366004614e23565b610ec2565b3480156103fe57600080fd5b5061041261040d366004614ac4565b610f00565b6040516101369796959493929190614e80565b60006001600160e01b031982166358f8699f60e01b148061044a575061044a826110c1565b92915050565b600061045a6110f6565b805490915060ff600160401b82041615906001600160401b03166000811580156104815750825b90506000826001600160401b0316600114801561049d5750303b155b9050811580156104ab575080155b156104c95760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156104f257845460ff60401b1916600160401b1785555b6104fb8861111a565b61050361112b565b600080546001600160a01b0319166001600160a01b038916908117909155600187905560408051918252602082018890527facb755af0ec3542ca6af3a79dcbe8f0b12f9d3ed27c17a0bbdc16244fed42bbc910160405180910390a183156105a557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6105b7611133565b6105c0826111d8565b6105ca82826111e0565b5050565b60006105d8611299565b506000805160206153ac83398151915290565b60608160006105fb826004614f0c565b9050806001600160401b03811115610615576106156146c5565b60405190808252806020026020018201604052801561065a57816020015b60408051808201909152606080825260208201528152602001906001900390816106335790505b50925060005b828110156106ba5785858281811061067a5761067a614f1f565b905060200281019061068c9190614f35565b61069590614f55565b8482815181106106a7576106a7614f1f565b6020908102919091010152600101610660565b5060006106c6876112e2565b6000818152600360209081526040808320546002835281842060ff909116808552908352928190208151608081018352600992810192835268696d6167654461746160b81b6060820152918252805494955092939091820190610731906001600160a01b03166112f1565b81525086868151811061074657610746614f1f565b60209081029190910181019190915260408051608081018252600991810191825268736f756e644461746160b81b606082015290815260018301549091820190610798906001600160a01b03166112f1565b9052866107a6876001614f0c565b815181106107b6576107b6614f1f565b602002602001018190525060405180604001604052806040518060400160405280600981526020016873656e64537461746560b81b81525081526020016108046107ff86611326565b61136b565b905286610812876002614f0c565b8151811061082257610822614f1f565b602002602001018190525060405180604001604052806040518060400160405280600c81526020016b72656365697665537461746560a01b815250815260200161087361086e8661140f565b611470565b905286610881876003614f0c565b8151811061089157610891614f1f565b60200260200101819052505050505050949350505050565b6000806060806000806000806108be8b6115af565b50602489111561090f5760405162461bcd60e51b81526020600482015260176024820152766d61785265636569766520697320746f6f206c6172676560481b60448201526064015b60405180910390fd5b891561091b5789610926565b610926600143614fda565b9050610933600143614fda565b8111156109a15760405162461bcd60e51b815260206004820152603660248201527f426c6f636b206e756d62657220696e20667574757265202d206e65656420626c6044820152751bd8dac81a185cda081d1bc81899481919599a5b995960521b6064820152608401610906565b804080610a115760405162461bcd60e51b815260206004820152603860248201527f626c6f636b2068617368206e6f7420617661696c61626c65202d206d75737420604482015277626520696e206c6173746573742032353620626c6f636b7360401b6064820152608401610906565b610a1a8c611326565b9850610a258c61140f565b9750610a3160046115e2565b9450610a3d60066115e2565b60008d8152600860205260409020909450610a57906115e2565b92506000886003811115610a6d57610a6d614965565b03610ae857604080516000808252602082019092528a918a9190610aa7565b610a9461459b565b815260200190600190039081610a8c5790505b506040805160008082526020820190925290610ad9565b610ac661459b565b815260200190600190039081610abe5790505b50985098509850985050610bbb565b6001886003811115610afc57610afc614965565b03610b2157610b0c8c828c6116a5565b9650610b198c828c611715565b955050610bbb565b6002886003811115610b3557610b35614965565b03610b5157610b458c828c6118e1565b9097509550610bbb9050565b6003886003811115610b6557610b65614965565b03610bb957610b758c828c611715565b604080516000808252602082019092529197508a918a91610bac565b610b9961459b565b815260200190600190039081610b915790505b5098509850985050610bbb565b505b9397509397509397509397565b610bd0611b67565b610bda6000611b99565b565b6060610be7826115af565b50600082815260086020526040902061044a90611bf5565b600080610c0a611c90565b546001600160a01b031692915050565b610c226145d3565b610c2b836115af565b5060058210610c6b5760405162461bcd60e51b815260206004820152600c60248201526b125b9d985b1a59081cdb1bdd60a21b6044820152606401610906565b6000838152600260209081526040808320858452909152902080546001600160a01b0316610ca85760405180602001604052806000815250610cbc565b8054610cbc906001600160a01b0316611cb4565b82528054600160a01b900461ffff16602083015260018101546001600160a01b0316610cf75760405180602001604052806000815250610d0e565b6001810154610d0e906001600160a01b0316611cb4565b604083015260010154600160a01b900461ffff16606082015292915050565b61ffff8a10610d755760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b2103a37b5b2b710373ab6b132b960611b6044820152606401610906565b600080610d828c33611cd5565b9150915081610df65760405162461bcd60e51b815260206004820152603a60248201527f4f6e6c79206f776e6572206f722076616c69642064656c65676174652e78797a60448201527908158c881bd9881d1bdad95b881bdddb995c88185b1b1bddd95960321b6064820152608401610906565b8a80610dff5750875b80610e075750845b610e5f5760405162461bcd60e51b8152602060048201526024808201527f4174206c65617374206f6e6520757064617465206d7573742062652070726f766044820152631a59195960e21b6064820152608401610906565b8415610e7157610e718c858584611e26565b8a15610e8357610e838c8b8b846123de565b8715610e9557610e958c888884612803565b505050505050505050505050565b600080610eb060046115e2565b610eba60066115e2565b915091509091565b610eca611b67565b6001600160a01b038116610ef4576000604051631e4fbdf760e01b815260040161090691906146b1565b610efd81611b99565b50565b6000806060806000610f106145d3565b6000610f1b886115af565b50610f2588611326565b9650610f308861140f565b6000898152600960205260409020909650610f4a90612bc7565b6000898152600a60205260409020909550610f6490612bc7565b6000898152600360209081526040808320546002835281842060ff90911680855292529091208054929650909450906001600160a01b0316610fb55760405180602001604052806000815250610fc9565b8054610fc9906001600160a01b0316611cb4565b83528054600160a01b900461ffff16602084015260018101546001600160a01b0316611004576040518060200160405280600081525061101b565b600181015461101b906001600160a01b0316611cb4565b6040840152600181810154600160a01b900461ffff16606085015254600090611044908b612c8c565b6000546040516331a9108f60e11b8152600481018390529192506001600160a01b031690636352211e90602401602060405180830381865afa15801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b29190614fed565b92505050919395979092949650565b60006001600160e01b031982166358f8699f60e01b148061044a57506301ffc9a760e01b6001600160e01b031983161461044a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611122612ca6565b610efd81612ccb565b610bda612ca6565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111ba57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111ae6000805160206153ac833981519152546001600160a01b031690565b6001600160a01b031614155b15610bda5760405163703e46dd60e11b815260040160405180910390fd5b610efd611b67565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561123a575060408051601f3d908101601f191682019092526112379181019061500a565b60015b6112595781604051634c9c8ce360e01b815260040161090691906146b1565b6000805160206153ac833981519152811461128a57604051632a87526960e21b815260048101829052602401610906565b6112948383612cd3565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bda5760405163703e46dd60e11b815260040160405180910390fd5b600061044a620f424083615023565b60606001600160a01b03821661131557505060408051602081019091526000815290565b61044a61132183611cb4565b612d29565b6000611333600483612d4d565b1561134057506001919050565b600082815260096020526040902061135790612d65565b61136357506002919050565b506000919050565b6060600182600281111561138157611381614965565b146113e857600282600281111561139a5761139a614965565b146113c4576040518060400160405280600781526020016613995d5d1c985b60ca1b81525061044a565b6040518060400160405280600681526020016553656e64546f60d01b81525061044a565b505060408051808201909152600b81526a14d95b9911d95b995c985b60aa1b602082015290565b600061141c600683612d4d565b1561142957506001919050565b6000828152600a6020526040902061144090612d65565b61144c57506002919050565b600082815260036020526040902054610100900460ff161561136357506003919050565b6060600082600381111561148657611486614965565b036114ae57505060408051808201909152600781526613995d5d1c985b60ca1b602082015290565b60018260038111156114c2576114c2614965565b036114f157505060408051808201909152600e81526d149958d95a5d9951d95b995c985b60921b602082015290565b600282600381111561150557611505614965565b0361153157505060408051808201909152600b81526a5265636569766546726f6d60a81b602082015290565b600382600381111561154557611545614965565b0361156f57505060408051808201909152600981526852656365697665546f60b81b602082015290565b60405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207265636569766520737461746560581b6044820152606401610906565b600061ffff8211156115de576040516306dfcc6560e41b81526010600482015260248101839052604401610906565b5090565b80546000908082036115f75750600092915050565b600083611605600184614fda565b8154811061161557611615614f1f565b6000918252602082200154915081608081901c801561163657600892508091505b50604081901c801561164c576004830192508091505b50602081901c8015611662576002830192508091505b50601081901c8015611675576001830192505b508190506004611686600186614fda565b61169192911b614f0c565b61169c906001614f0c565b95945050505050565b606060006116b360046115e2565b905060008382116116c457816116c6565b835b9050600085876040516020016116e6929190918252602082015260400190565b6040516020818303038152906040528051906020012090506117088183612d73565b93505050505b9392505050565b600083815260086020526040812060609190611730906115e2565b90508060000361177457604080516000808252602082019092529061176b565b61175861459b565b8152602001906001900390816117505790505b5091505061170e565b60008382116117835781611785565b835b9050600085876040516020016117a5929190918252602082015260400190565b60405160208183030381529060405280519060200120905060006117c98285612eda565b905060006117d78285613039565b90506000846001600160401b038111156117f3576117f36146c5565b60405190808252806020026020018201604052801561182c57816020015b61181961459b565b8152602001906001900390816118115790505b50600154600080548d825260086020526040822093945091926001600160a01b0390921691905b888110156118cf57600061188987838151811061187257611872614f1f565b6020026020010151846130c890919063ffffffff16565b61ffff169050600061189b8683612c8c565b90506118a8828287613159565b8784815181106118ba576118ba614f1f565b60209081029190910101525050600101611853565b50929c9b505050505050505050505050565b6000838152600a6020526040812060609182916118fd90612bc7565b8051909150600081900361197a57604080516000808252602082019092529061193c565b61192961459b565b8152602001906001900390816119215790505b50604080516000808252602082019092529061196e565b61195b61459b565b8152602001906001900390816119535790505b50935093505050611b5f565b6040805160208082018990528183018a90528251808303840181526060909201909252805191012060006119ae8284612eda565b905060006119bf8a8686858c613277565b805190915060006119d38c8888878e613433565b8051909150806001600160401b038111156119f0576119f06146c5565b604051908082528060200260200182016040528015611a2957816020015b611a1661459b565b815260200190600190039081611a0e5790505b5060015460008054929c5090916001600160a01b0316905b83811015611aa1576000858281518110611a5d57611a5d614f1f565b60200260200101519050611a7b81611a758684612c8c565b85613159565b8e8381518110611a8d57611a8d614f1f565b602090810291909101015250600101611a41565b50846001600160401b03811115611aba57611aba6146c5565b604051908082528060200260200182016040528015611af357816020015b611ae061459b565b815260200190600190039081611ad85790505b509a5060005b85811015611b53576000878281518110611b1557611b15614f1f565b60200260200101519050611b2d81611a758684612c8c565b8d8381518110611b3f57611b3f614f1f565b602090810291909101015250600101611af9565b50505050505050505050505b935093915050565b33611b70610bff565b6001600160a01b031614610bda573360405163118cdaa760e01b815260040161090691906146b1565b6000611ba3611c90565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60606000611c02836115e2565b90506000816001600160401b03811115611c1e57611c1e6146c5565b604051908082528060200260200182016040528015611c47578160200160208202803683370190505b50905060005b82811015611c8857611c5f85826130c8565b61ffff16828281518110611c7557611c75614f1f565b6020908102919091010152600101611c4d565b509392505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b606061044a826001611cd0816001600160a01b0384163b614fda565b6135d3565b6000806000611ce660015486612c8c565b6000546040516331a9108f60e11b8152600481018390529192506001600160a01b031690636352211e90602401602060405180830381865afa158015611d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d549190614fed565b9150816001600160a01b0316846001600160a01b03161480611e1c5750600054604051632e7cda1d60e21b81526001600160a01b038087166004830152808516602483015290911660448201526064810182905271706f73746d696e74706172616d657465727360701b60848201526c447e69651d841bd8d104bed4939063b9f368749060a401602060405180830381865afa158015611df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1c9190615045565b9250509250929050565b60058310611e6c5760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081858dd1a5d99481cdb1bdd606a1b6044820152606401610906565b6000848152600360209081526040808320546002835281842087855290925290912060ff909116841480159190611f3057835180611eb3575080546001600160a01b031615155b611f305760405162461bcd60e51b815260206004820152604260248201527f4e65772061637469766520736c6f74206d757374206861766520696d6167652060448201527f6d65746164617461207768656e207570646174696e672061637469766520736c6064820152611bdd60f21b608482015260a401610906565b6000611f3e60015488612c8c565b8551909150156120f357600085602001515111611faf5760405162461bcd60e51b815260206004820152602960248201527f496d6167652064617461206d7573742062652070726f7669646564207768656e604482015268207570646174696e6760b81b6064820152608401610906565b613c00856020015151111561202c5760405162461bcd60e51b815260206004820152603e60248201527f496d6167652064617461206d757374206265206c657373207468616e206f722060448201527f657175616c20746f204d41585f494d4147455f444154415f4c454e47544800006064820152608401610906565b61203985602001516135f6565b82546001600160a01b0319166001600160a01b0391909116178083556001908390601490612073908490600160a01b900461ffff16615062565b92506101000a81548161ffff021916908361ffff16021790555060008051602061540c83398151915260008054906101000a90046001600160a01b0316826120cd898660000160149054906101000a900461ffff1661369b565b6120d68861378b565b6040516120e694939291906150b7565b60405180910390a1612159565b602085015151156121595760405162461bcd60e51b815260206004820152602a60248201527f496d6167652064617461206d75737420626520656d707479207768656e206e6f60448201526974207570646174696e6760b01b6064820152608401610906565b8460400151156122e75784606001515160000361221d57600182810180546001600160a01b03191680825560149061219d908490600160a01b900461ffff16615062565b92506101000a81548161ffff021916908361ffff16021790555060008051602061540c83398151915260008054906101000a90046001600160a01b0316826121f7898660010160149054906101000a900461ffff166137e3565b6122008861378b565b60405161221094939291906150b7565b60405180910390a161234d565b612800856060015151111561229a5760405162461bcd60e51b815260206004820152603e60248201527f536f756e642064617461206d757374206265206c657373207468616e206f722060448201527f657175616c20746f204d41585f534f554e445f444154415f4c454e47544800006064820152608401610906565b6122a785606001516135f6565b600183810180546001600160a01b0319166001600160a01b03939093169290921780835590919060149061219d908490600160a01b900461ffff16615062565b6060850151511561234d5760405162461bcd60e51b815260206004820152602a60248201527f536f756e642064617461206d75737420626520656d707479207768656e206e6f60448201526974207570646174696e6760b01b6064820152608401610906565b60008781526003602052604090205460ff1686146123d55761236e86613883565b6000888152600360205260408120805460ff191660ff93909316929092179091555460008051602061540c833981519152906001600160a01b0316826123b3896138b1565b6123bc8861378b565b6040516123cc94939291906150b7565b60405180910390a15b50505050505050565b6000848152600260209081526040808320600383528184205460ff1684529091529020546001600160a01b03166124275760405162461bcd60e51b815260040161090690615198565b600283600281111561243b5761243b614965565b146124945781511561248f5760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e7353656e64696e67546f206d75737420626520656d7074790000006044820152606401610906565b6124ef565b60008251116124ef5760405162461bcd60e51b815260206004820152602160248201527f746f6b656e7353656e64696e67546f206d757374206265206e6f6e2d656d70746044820152607960f81b6064820152608401610906565b6019825111156125735760405162461bcd60e51b815260206004820152604360248201527f746f6b656e7353656e64696e67546f206d757374206265206c6573732074686160448201527f6e206f7220657175616c20746f204d41585f53454e44494e475f544f5f4c454e60648201526208ea8960eb1b608482015260a401610906565b600061258160015486612c8c565b9050600061258e86611326565b905060018160028111156125a4576125a4614965565b036125ba576125b4600487613967565b506126a9565b60028160028111156125ce576125ce614965565b036126a95760008681526009602052604081206125ea90612bc7565b805190915060005b8181101561264b57600083828151811061260e5761260e614f1f565b602002602001015161ffff1690506126418a6008600084815260200190815260200160002061396790919063ffffffff16565b50506001016125f2565b50600088815260096020526040902061266390613aa2565b6000805460408051928352602083019081905286926001600160a01b03909216916000805160206153ec8339815191529161269e91906151f5565b60405180910390a350505b60018560028111156126bd576126bd614965565b036126d3576126cd600487613ab2565b50612765565b60028560028111156126e7576126e7614965565b036127655760008681526009602052604090206127049085613bab565b835160005b8181101561276257600086828151811061272557612725614f1f565b602002602001015161ffff1690506127588960086000848152602001908152602001600020613ab290919063ffffffff16565b5050600101612709565b50505b60005460008051602061540c833981519152906001600160a01b03168361278b88613d8b565b6127948761378b565b6040516127a494939291906150b7565b60405180910390a160028560028111156127c0576127c0614965565b036127fb5760005460405183916001600160a01b0316906000805160206153ec833981519152906127f29088906151f5565b60405180910390a35b505050505050565b6000848152600260209081526040808320600383528184205460ff1684529091529020546001600160a01b031661284c5760405162461bcd60e51b815260040161090690615198565b600283600381111561286057612860614965565b146128c3578151156128be5760405162461bcd60e51b815260206004820152602160248201527f746f6b656e73526563656976696e6746726f6d206d75737420626520656d70746044820152607960f81b6064820152608401610906565b612922565b60008251116129225760405162461bcd60e51b815260206004820152602560248201527f746f6b656e73526563656976696e6746726f6d206d757374206265206e6f6e2d604482015264656d70747960d81b6064820152608401610906565b6103e8825111156129b55760405162461bcd60e51b815260206004820152605160248201527f746f6b656e73526563656976696e6746726f6d206d757374206265206c65737360448201527f207468616e206f7220657175616c20746f204d41585f524543454956494e475f60648201527008ca49e9abe82a4a482b2be988a9c8ea89607b1b608482015260a401610906565b60006129c360015486612c8c565b905060006129d08661140f565b905060018160038111156129e6576129e6614965565b036129fc576129f6600687613967565b50612aa5565b6002816003811115612a1057612a10614965565b03612a74576000868152600a60205260409020612a2c90613aa2565b6000805460408051928352602083019081905284926001600160a01b03909216916000805160206153cc83398151915291612a6791906151f5565b60405180910390a3612aa5565b6003816003811115612a8857612a88614965565b03612aa5576000868152600360205260409020805461ff00191690555b6001856003811115612ab957612ab9614965565b03612acf57612ac9600687613ab2565b50612b3a565b6002856003811115612ae357612ae3614965565b03612b05576000868152600a60205260409020612b009085613bab565b612b3a565b6003856003811115612b1957612b19614965565b03612b3a576000868152600360205260409020805461ff0019166101001790555b60005460008051602061540c833981519152906001600160a01b031683612b6088613e3c565b612b698761378b565b604051612b7994939291906150b7565b60405180910390a16002856003811115612b9557612b95614965565b036127fb5760005460405183916001600160a01b0316906000805160206153cc833981519152906127f29088906151f5565b80546060906001600160a01b0316612bf25760408051600080825260208201909252905b5092915050565b8154600090612c09906001600160a01b0316611cb4565b602081015190915060c01c806001600160401b03811115612c2c57612c2c6146c5565b604051908082528060200260200182016040528015612c55578160200160208202803683370190505b5092506028820160005b82811015612c8357815160f01c602082810287010152600290910190600101612c5f565b50505050919050565b600081612c9c620f424085615208565b61170e9190614f0c565b612cae613eb9565b610bda57604051631afcd79f60e31b815260040160405180910390fd5b610eca612ca6565b612cdc82613ed3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115612d21576112948282613f2f565b6105ca613f9c565b6060612d3482613fbb565b8051613078825260020160011990910190815292915050565b6000612d5c8360010183614021565b15159392505050565b546001600160a01b03161590565b606081600003612db6576040805160008082526020820190925290612dae565b612d9b61459b565b815260200190600190039081612d935790505b50905061044a565b6000612dc260046115e2565b90506000612dd08583612eda565b90506000612dde8286613039565b80519091506000816001600160401b03811115612dfd57612dfd6146c5565b604051908082528060200260200182016040528015612e3657816020015b612e2361459b565b815260200190600190039081612e1b5790505b506001546000805492935090916001600160a01b0316905b84811015612ecb576000612e85878381518110612e6d57612e6d614f1f565b602002602001015160046130c890919063ffffffff16565b61ffff1690506000612e978583612c8c565b9050612ea4828286613159565b868481518110612eb657612eb6614f1f565b60209081029190910101525050600101612e4e565b50919998505050505050505050565b612f256040518060c001604052806000815260200160008152602001600081526020016000815260200160006001600160401b0316815260200160006001600160401b031681525090565b60008211612f6a5760405162461bcd60e51b815260206004820152601260248201527104665697374656c57616c6b4c69623a4e3d360741b6044820152606401610906565b818152612f7682614046565b60208201819052612f8690614093565b6040808301919091526002606083015251612fc390849084906020019182526906665697374656c2e6b360b41b6020830152602a820152604a0190565b60408051808303601f1901815291815281516020928301206001600160401b031660808401528051918201859052696665697374656c2e6b3160b01b90820152604a8101839052606a0160408051601f1981840301815291905280516020909101206001600160401b031660a082015292915050565b815160609082111561304a57825191505b816001600160401b03811115613062576130626146c5565b60405190808252806020026020018201604052801561308b578160200160208202803683370190505b50905060005b82811015612beb576130a384826140f0565b8282815181106130b5576130b5614f1f565b6020908102919091010152600101613091565b60006130d3836115e2565b82106131325760405162461bcd60e51b815260206004820152602860248201527f456e756d657261626c6553657455696e7431363a20696e646578206f7574206f6044820152676620626f756e647360c01b6064820152608401610906565b5060009182526020909120600482811c9091015461ffff9290911b60f0161c166000190190565b61316161459b565b6040516331a9108f60e11b8152600481018490526000906001600160a01b03841690636352211e90602401602060405180830381865afa1580156131a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131cd9190614fed565b6000868152600360209081526040808320546002835281842060ff90911680855290835292208886526001600160a01b038085169287019290925280549394509192161561322f578054613229906001600160a01b0316611cb4565b60408501525b60018101546001600160a01b03161561325f576001810154613259906001600160a01b0316611cb4565b60608501525b61326883614171565b60808501525050509392505050565b6060816001600160401b03811115613291576132916146c5565b6040519080825280602002602001820160405280156132ba578160200160208202803683370190505b509050600080836001600160401b038111156132d8576132d86146c5565b604051908082528060200260200182016040528015613301578160200160208202803683370190505b5090506000805b878110156134255760008061331d89846140f0565b90508a818151811061333157613331614f1f565b602002602001015161ffff169150508a810361334d575061341d565b6000805b8481101561338a578286828151811061336c5761336c614f1f565b602002602001015103613382576001915061338a565b600101613351565b50801561339857505061341d565b60008c81526008602052604090206133b09083612d4d565b1561340c57818787815181106133c8576133c8614f1f565b6020908102919091010152856133dd8161521f565b965050818585806133ed9061521f565b9650815181106133ff576133ff614f1f565b6020026020010181815250505b87861061341a575050613425565b50505b600101613308565b505050815295945050505050565b6060816001600160401b0381111561344d5761344d6146c5565b604051908082528060200260200182016040528015613476578160200160208202803683370190505b509050600080836001600160401b03811115613494576134946146c5565b6040519080825280602002602001820160405280156134bd578160200160208202803683370190505b5090506000805b87811015613425576000806134d989846140f0565b90508a81815181106134ed576134ed614f1f565b602002602001015161ffff169150508a810361350957506135cb565b6000805b84811015613546578286828151811061352857613528614f1f565b60200260200101510361353e5760019150613546565b60010161350d565b5080156135545750506135cb565b61355f600483612d4d565b156135c8578187878151811061357757613577614f1f565b60209081029190910101528561358c8161521f565b9650508185858061359c9061521f565b9650815181106135ae576135ae614f1f565b6020026020010181815250508786106135c8575050613425565b50505b6001016134c4565b60408051603f8301601f19168101909152818152818360208301863c9392505050565b6000808260405160200161360a9190615238565b604051602081830303815290604052905060008160405160200161362e919061525e565b60405160208183030381529060405290508051602082016000f092506001600160a01b0383166136945760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b6044820152606401610906565b5050919050565b606060006040518060400160405280601081526020016f125b5859d955995c9cda5bdb94db1bdd60821b8152506136d185614235565b6040516020016136e2929190615292565b60408051808303601f190181526001808452838301909252925060009190816020015b61370d614603565b8152602001906001900390816137055750506040805160a081019091528381529091506020810160035b81526020018561ffff1660001b8152602001600015158152602001604051806020016040528060008152508152508160008151811061377857613778614f1f565b6020908102919091010152949350505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106137c5576137c5614f1f565b6001600160a01b039092166020928302919091019091015292915050565b606060006040518060400160405280601081526020016f14dbdd5b9915995c9cda5bdb94db1bdd60821b81525061381985614235565b60405160200161382a929190615292565b60408051808303601f190181526001808452838301909252925060009190816020015b613855614603565b81526020019060019003908161384d5750506040805160a08101909152838152909150602081016003613737565b600060ff8211156115de576040516306dfcc6560e41b81526008600482015260248101839052604401610906565b60408051600180825281830190925260609160009190816020015b6138d4614603565b8152602001906001900390816138cc579050506040805160e08101909152600a60a08201908152691058dd1a5d9954db1bdd60b21b60c0830152815290915060208101600381526020018460001b8152602001600015158152602001604051806020016040528060008152508152508160008151811061395657613956614f1f565b602090810291909101015292915050565b6000806139778460010184614021565b90508060000361398b57600091505061044a565b60006001613998866115e2565b6139a29190614fda565b905060006139b1600184614fda565b9050600482901c600f8316838314613a215760008881526020902082810154600485811c928301805461ffff60f089851b1681811b199092169387901b9490941c9093169283901b91909117905590600f8516613a1d6001808d0190613a179086614fda565b8a6142c7565b5050505b6000888152602090208201805461ffff600484901b1b19169081905515808015613a5757508854613a5490600190614fda565b83145b15613a84578854899080613a6d57613a6d6152c1565b600190038181906000526020600020016000905590555b613a93896001018960006142c7565b50600198975050505050505050565b80546001600160a01b0319169055565b600061ffff82811610613b135760405162461bcd60e51b8152602060048201526024808201527f456e756d657261626c6553657455696e7431363a2076616c756520746f6f206c6044820152636172676560e01b6064820152608401610906565b613b1d8383612d4d565b15613b2a5750600061044a565b6000613b35846115e2565b8454909150600482901c90600f8316908210613b61578554600181018755600087815260208120909101555b6000868152602090208201805461ffff600484811b91821b19909216600189810190921b1790925583901b8217810190613b9e90880187836142c7565b5060019695505050505050565b80516000819003613bc857505080546001600160a01b0319169055565b61ffff811115613c2a5760405162461bcd60e51b815260206004820152602760248201527f546f74616c206279746573206c656e67746820657863656564732075696e74316044820152660d881b1a5b5a5d60ca1b6064820152608401610906565b6000613c37826002615208565b90506000613c46826008614f0c565b90506000613c55826020614f0c565b6001600160401b03811115613c6c57613c6c6146c5565b6040519080825280601f01601f191660200182016040528015613c96576020820181803683370190505b5060c085901b602082015290506028810160005b85811015613d5857600086613cc0836010614f0c565b10613ccb5786613cd6565b613cd6826010614f0c565b90506000805b613ce68484614fda565b811015613d3c57613cf8816010615208565b613d039060f0614fda565b8a613d0e8387614f0c565b81518110613d1e57613d1e614f1f565b602090810291909101015161ffff16901b9190911790600101613cdc565b50835250602090910190613d51601082614f0c565b9050613caa565b505081815280613d67816135f6565b87546001600160a01b0319166001600160a01b039190911617909655505050505050565b60408051600180825281830190925260609160009190816020015b613dae614603565b815260200190600190039081613da65750506040805160e081018252600960a082019081526853656e64537461746560b81b60c08301528152600160208201529192508101846002811115613e0557613e05614965565b60001b8152602001600015158152602001604051806020016040528060008152508152508160008151811061395657613956614f1f565b60408051600180825281830190925260609160009190816020015b613e5f614603565b815260200190600190039081613e575750506040805160e081018252600c60a082019081526b52656365697665537461746560a01b60c08301528152600160208201529192508101846003811115613e0557613e05614965565b6000613ec36110f6565b54600160401b900460ff16919050565b806001600160a01b03163b600003613f005780604051634c9c8ce360e01b815260040161090691906146b1565b6000805160206153ac83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051613f4c91906152d7565b600060405180830381855af49150503d8060008114613f87576040519150601f19603f3d011682016040523d82523d6000602084013e613f8c565b606091505b509150915061169c8583836142f7565b3415610bda5760405163b398979f60e01b815260040160405180910390fd5b8051604051818001600282019081526f30313233343536373839616263646566600f52918301906022015b81841461401157600184019350600f845116516001820153600f845160041c16518153600201613fe6565b6000815260200160405250919050565b600481811c600090815260209390935260409092205460f09190921b161c61ffff1690565b60006001821161405857506001919050565b5060001901600181811c909117600281901c17600481901c17600881901c17601081901c17602081901c17604081901c17608081901c170190565b60008082116140d25760405162461bcd60e51b815260206004820152600b60248201526a6c6f67326365696c28302960a81b6044820152606401610906565b6001820391505b81156140eb57600191821c91016140d9565b919050565b815160009082106141395760405162461bcd60e51b81526020600482015260136024820152722332b4b9ba32b62bb0b635a634b11d359f1ea760691b6044820152606401610906565b825160010361414a5750600061044a565b61170e82846000015185602001518660400151876060015188608001518960a0015161434a565b604051606082811b6001600160601b03191660208301529073eeeeeeee14d718c2b47d9923deab1335e144eeee90635d78a21790603401604051602081830303815290604052603c6040518363ffffffff1660e01b81526004016141d69291906152e9565b600060405180830381865afa92505050801561421457506040513d6000823e601f3d908101601f19168201604052614211919081019061530b565b60015b61422c57505060408051602081019091526000815290565b50909392505050565b60606000614242836143a8565b60010190506000816001600160401b03811115614261576142616146c5565b6040519080825280601f01601f19166020018201604052801561428b576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461429557509392505050565b600482811c6000908152602094909452604090932080549290931b60f01690811b61ffff90911b19909116179055565b60608261430c576143078261447e565b61170e565b815115801561432357506001600160a01b0384163b155b156143435783604051639996b31560e01b815260040161090691906146b1565b508061170e565b60008660010361435c5750600061439d565b8760005b6020811015614397576000614379838a8a8a8a8a6144a7565b90508981101561438d57925061439d915050565b9150600101614360565b50889150505b979650505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106143e75772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310614411576904ee2d6d415b85acef8160201b830492506020015b662386f26fc10000831061442f57662386f26fc10000830492506010015b6305f5e1008310614447576305f5e100830492506008015b612710831061445b57612710830492506004015b6064831061446d576064830492506002015b600a831061044a5760010192915050565b80511561448e5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000856001036144b957506000614591565b856002036144e35760018316156144da576144d5876001614fda565b6144dc565b865b9050614591565b600060028604808703600180831b03600180831b039150808b16828c851c166001600160401b038116898118905080600d1b811890508060071c811890508060111b811890508060051c81189050838184181693508192508391506001600160401b0382169050600189188118905080600d1b811890508060071c811890508060111b811890508060051c8118905084818418169350508091508290508181861b1795505050505050809150505b9695505050505050565b6040518060a001604052806000815260200160006001600160a01b031681526020016060815260200160608152602001606081525090565b604051806080016040528060608152602001600061ffff16815260200160608152602001600061ffff1681525090565b6040805160a08101909152606081526020810160008152600060208201819052604082015260609081015290565b60006020828403121561464357600080fd5b81356001600160e01b03198116811461170e57600080fd5b6001600160a01b0381168114610efd57600080fd5b60008060006060848603121561468557600080fd5b83356146908161465b565b925060208401356146a08161465b565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614703576147036146c5565b604052919050565b60006001600160401b03821115614724576147246146c5565b50601f01601f191660200190565b600082601f83011261474357600080fd5b81356147566147518261470b565b6146db565b81815284602083860101111561476b57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561479b57600080fd5b82356147a68161465b565b915060208301356001600160401b038111156147c157600080fd5b6147cd85828601614732565b9150509250929050565b600080600080606085870312156147ed57600080fd5b84356147f88161465b565b93506020850135925060408501356001600160401b038082111561481b57600080fd5b818701915087601f83011261482f57600080fd5b81358181111561483e57600080fd5b8860208260051b850101111561485357600080fd5b95989497505060200194505050565b60005b8381101561487d578181015183820152602001614865565b50506000910152565b6000815180845261489e816020860160208601614862565b601f01601f19169290920160200192915050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561492b57888303603f19018552815180518785526148ff88860182614886565b91890151858303868b01529190506149178183614886565b9689019694505050908601906001016148db565b509098975050505050505050565b60008060006060848603121561494e57600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052602160045260246000fd5b6003811061498b5761498b614965565b9052565b6004811061498b5761498b614965565b600082825180855260208086019550808260051b84010181860160005b84811015614a4d57858303601f19018952815180518452848101516001600160a01b03168585015260408082015160a08287018190529190614a0083880182614886565b9250505060608083015186830382880152614a1b8382614886565b9250505060808083015192508582038187015250614a398183614886565b9a86019a94505050908301906001016149bc565b5090979650505050505050565b6000610100614a69838c61497b565b614a76602084018b61498f565b806040840152614a888184018a61499f565b90508281036060840152614a9c818961499f565b9150508560808301528460a08301528360c08301528260e08301529998505050505050505050565b600060208284031215614ad657600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015614b1557835183529284019291840191600101614af9565b50909695505050505050565b60208152600061170e6020830184614886565b60008060408385031215614b4757600080fd5b50508035926020909101359150565b6000815160808452614b6b6080850182614886565b9050602083015161ffff8082166020870152604085015191508583036040870152614b968383614886565b925080606086015116606087015250508091505092915050565b60208152600061170e6020830184614b56565b8015158114610efd57600080fd5b80356140eb81614bc3565b8035600381106140eb57600080fd5b600082601f830112614bfc57600080fd5b813560206001600160401b03821115614c1757614c176146c5565b8160051b614c268282016146db565b9283528481018201928281019087851115614c4057600080fd5b83870192505b8483101561439d57823561ffff81168114614c615760008081fd5b82529183019190830190614c46565b8035600481106140eb57600080fd5b600060808284031215614c9157600080fd5b604051608081016001600160401b038082118383101715614cb457614cb46146c5565b8160405282935084359150614cc882614bc3565b90825260208401359080821115614cde57600080fd5b614cea86838701614732565b602084015260408501359150614cff82614bc3565b8160408401526060850135915080821115614d1957600080fd5b50614d2685828601614732565b6060830152505092915050565b6000806000806000806000806000806101408b8d031215614d5357600080fd5b8a359950614d6360208c01614bd1565b9850614d7160408c01614bdc565b975060608b01356001600160401b0380821115614d8d57600080fd5b614d998e838f01614beb565b9850614da760808e01614bd1565b9750614db560a08e01614c70565b965060c08d0135915080821115614dcb57600080fd5b614dd78e838f01614beb565b9550614de560e08e01614bd1565b94506101008d013593506101208d0135915080821115614e0457600080fd5b50614e118d828e01614c7f565b9150509295989b9194979a5092959850565b600060208284031215614e3557600080fd5b813561170e8161465b565b60008151808452602080850194506020840160005b83811015614e7557815161ffff1687529582019590820190600101614e55565b509495945050505050565b614e8a818961497b565b614e97602082018861498f565b60e060408201526000614ead60e0830188614e40565b8281036060840152614ebf8188614e40565b905085608084015282810360a0840152614ed98186614b56565b91505060018060a01b03831660c083015298975050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561044a5761044a614ef6565b634e487b7160e01b600052603260045260246000fd5b60008235603e19833603018112614f4b57600080fd5b9190910192915050565b600060408236031215614f6757600080fd5b604080519081016001600160401b038082118383101715614f8a57614f8a6146c5565b816040528435915080821115614f9f57600080fd5b614fab36838701614732565b83526020850135915080821115614fc157600080fd5b50614fce36828601614732565b60208301525092915050565b8181038181111561044a5761044a614ef6565b600060208284031215614fff57600080fd5b815161170e8161465b565b60006020828403121561501c57600080fd5b5051919050565b60008261504057634e487b7160e01b600052601260045260246000fd5b500690565b60006020828403121561505757600080fd5b815161170e81614bc3565b61ffff818116838216019080821115612beb57612beb614ef6565b60008151808452602080850194506020840160005b83811015614e755781516001600160a01b031687529582019590820190600101615092565b6001600160a01b0385168152602080820185905260806040808401829052855184830181905260009360a092909183870190600581901b880185018a8501885b83811015615173578a8303609f190185528151805189855261511b8a860182614886565b9050888201516009811061513157615131614965565b858a01528188015188860152606080830151151590860152908a01518482038b8601529061515f8183614886565b9689019694505050908601906001016150f7565b505088810360608a0152615187818b61507d565b9d9c50505050505050505050505050565b6020808252603f908201527f546f6b656e206d757374206861766520696d616765206d65746164617461206160408201527f742061637469766520736c6f74207768656e20706172746963706174696e6700606082015260800190565b60208152600061170e6020830184614e40565b808202811582820484141761044a5761044a614ef6565b60006001820161523157615231614ef6565b5060010190565b6000815260008251615251816001850160208701614862565b9190910160010192915050565b6a600b5981380380925939f360a81b8152815160009061528581600b850160208701614862565b91909101600b0192915050565b600083516152a4818460208801614862565b8351908301906152b8818360208801614862565b01949350505050565b634e487b7160e01b600052603160045260246000fd5b60008251614f4b818460208701614862565b6040815260006152fc6040830185614886565b90508260208301529392505050565b60008060006060848603121561532057600080fd5b83516001600160401b0381111561533657600080fd5b8401601f8101861361534757600080fd5b80516153556147518261470b565b81815287602083850101111561536a57600080fd5b61537b826020830160208601614862565b809550505050602084015161538f8161465b565b60408501519092506153a08161465b565b80915050925092509256fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc2a54fbf322eb9aa58a962240a1babced037cbfc539a425887a8d27817e0160ebde937289f46e805af8ee80434fd9460e355979dba7f43836f2456fceaf6ead863dfcd927ac9e2552184b368328e6cca04f875ef453930277d7dfa53f40dbeac4a26469706673582212207f51d67d25d2049300bf24aa746efc2d3b4776ba8ec50ef5e136c22b13be360464736f6c63430008160033",
|
|
897
|
+
"linkReferences": {},
|
|
898
|
+
"deployedLinkReferences": {}
|
|
899
|
+
}
|