@artblocks/contracts 1.0.4 → 1.2.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.
Files changed (289) hide show
  1. package/README.md +75 -7
  2. package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +2 -2
  3. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  4. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +336 -131
  5. package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +2047 -0
  6. package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +2021 -0
  7. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol/MinterBase.json +1 -1
  8. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  9. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  10. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol/MinterDAExpV4.json +3 -3
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +1109 -0
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  16. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol/MinterDALinV4.json +3 -3
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  20. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol/MinterHolderV4.json +3 -3
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  25. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol/MinterMerkleV5.json +3 -3
  26. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +31 -63
  27. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/MinterPolyptychV0.json +3 -3
  28. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol/MinterSEAV0.json +3 -3
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  31. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol/MinterSetPriceV4.json +3 -3
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +65 -2
  33. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +65 -2
  34. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  35. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  36. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +807 -0
  37. package/artifacts/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +65 -2
  38. package/artifacts/contracts/engine/V2/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +65 -2
  39. package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +606 -0
  40. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +565 -209
  41. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +785 -227
  42. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +40 -15
  43. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
  44. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +40 -15
  45. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +36 -68
  46. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +12 -12
  47. package/artifacts/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol/IAdminACLV0_Extended.json +140 -0
  48. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +130 -0
  49. package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +6 -6
  50. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +71 -39
  51. package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +283 -0
  52. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +12 -12
  53. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +12 -12
  54. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +30 -62
  55. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +30 -62
  56. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +170 -104
  57. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +170 -104
  58. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +1028 -0
  59. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +741 -0
  60. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol/IGenArt721CoreContractV3_ProjectFinance.json +87 -0
  61. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol/IGenArt721Minter_PBAB.json +279 -0
  62. package/artifacts/contracts/interfaces/v0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +22 -22
  63. package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
  64. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +26 -101
  65. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +1 -57
  66. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +1 -57
  67. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +2 -21
  68. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol/ISharedMinterHolderERC20V0.json +158 -0
  69. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +15 -90
  70. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +10 -36
  71. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol/ISharedMinterRAMV0.json +62 -0
  72. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol/ISharedMinterRequired.json +37 -0
  73. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +4 -236
  74. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +5 -5
  75. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +7 -423
  76. package/artifacts/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +17 -17
  77. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol/ISplitAtomicFactoryV0.json +170 -0
  78. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol/ISplitAtomicV0.json +126 -0
  79. package/artifacts/contracts/interfaces/v0.8.x/ISplitProviderV0.sol/ISplitProviderV0.json +98 -0
  80. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol/ISplitFactoryV2.json +123 -0
  81. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  82. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
  83. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
  84. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
  85. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +2 -2
  86. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +2 -2
  87. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  88. package/artifacts/contracts/libs/v0.8.x/BitMap.sol/BitMaps256.json +10 -0
  89. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV0.sol/BytecodeStorage.json +2 -2
  90. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +2 -2
  91. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +2 -2
  92. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +214 -0
  93. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +10 -0
  94. package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  95. package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +10 -0
  96. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
  97. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol/ERC721_PackedHashSeedV1.json +444 -0
  98. package/artifacts/contracts/libs/v0.8.x/PackedBools.sol/PackedBools.json +10 -0
  99. package/artifacts/contracts/libs/v0.8.x/SSTORE2.sol/SSTORE2.json +2 -2
  100. package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +208 -0
  101. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +60 -3
  102. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +30 -0
  103. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +60 -3
  104. package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +346 -0
  105. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +29 -3
  106. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +30 -3
  107. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  108. package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +398 -0
  109. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +254 -3
  110. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +48 -3
  111. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +41 -3
  112. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +35 -3
  113. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +79 -3
  114. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  115. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +41 -41
  116. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +66 -632
  117. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +67 -594
  118. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +33 -524
  119. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +66 -632
  120. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +33 -524
  121. package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +1374 -0
  122. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +56 -722
  123. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +58 -454
  124. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +61 -552
  125. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +55 -497
  126. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +110 -571
  127. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +69 -560
  128. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +28 -444
  129. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +417 -0
  130. package/artifacts/contracts/mock/BytecodeV2LibCallsMock.sol/BytecodeV2LibCallsMock.json +154 -0
  131. package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +428 -0
  132. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  133. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
  134. package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +24 -0
  135. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +4 -9
  136. package/artifacts/contracts/mock/Mock0xSplitsV2PullFactory.sol/Mock0xSplitsV2PullFactory.json +149 -0
  137. package/artifacts/contracts/mock/Mock0xSplitsV2Splitter.sol/Mock0xSplitsV2Splitter.json +99 -0
  138. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +20 -2
  139. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +20 -2
  140. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
  141. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  142. package/artifacts/contracts/mock/ReentrancyGenArt721MinterMock.sol/ReentrancyGenArt721MinterMock.json +100 -0
  143. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  144. package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +136 -0
  145. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  146. package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +105 -0
  147. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  148. package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +100 -0
  149. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
  150. package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +69 -0
  151. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterDrainETHMock.json +54 -0
  152. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterSendETHMock.json +54 -0
  153. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  154. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  155. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
  156. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +19 -19
  157. package/artifacts/contracts/split/SplitAtomicFactoryV0.sol/SplitAtomicFactoryV0.json +203 -0
  158. package/artifacts/contracts/split/SplitAtomicV0.sol/SplitAtomicV0.json +168 -0
  159. package/artifacts/contracts/split/split-provider/SplitProviderV0.sol/SplitProviderV0.json +141 -0
  160. package/contracts/AdminACLV0.sol +6 -2
  161. package/contracts/AdminACLV1.sol +2 -2
  162. package/contracts/DependencyRegistryV0.sol +737 -390
  163. package/contracts/{GenArt721CoreV3.sol → archive/GenArt721CoreV3.sol} +56 -20
  164. package/contracts/{explorations → archive}/GenArt721CoreV3_Explorations.sol +49 -13
  165. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol +4 -4
  166. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol +4 -4
  167. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +4 -4
  168. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +5 -5
  169. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol +9 -62
  170. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol +4 -4
  171. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol +5 -5
  172. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol +5 -5
  173. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol +7 -7
  174. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol +13 -13
  175. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol +4 -4
  176. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +82 -10
  177. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +82 -10
  178. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPriceERC20}/MinterSetPriceERC20V4.sol +88 -21
  179. package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +81 -22
  180. package/contracts/engine/V2/GenArt721Minter_PBAB.sol +80 -22
  181. package/contracts/engine/V3/EngineFactoryV0.sol +419 -0
  182. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +893 -493
  183. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +1053 -655
  184. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +7 -13
  185. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +5 -11
  186. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +2 -2
  187. package/contracts/engine-registry/CoreRegistryV1.sol +58 -65
  188. package/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol +20 -0
  189. package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +23 -0
  190. package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +6 -8
  191. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +48 -43
  192. package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +124 -0
  193. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol +1 -3
  194. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol +1 -3
  195. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpV1.sol +1 -3
  196. package/contracts/interfaces/v0.8.x/IFilteredMinterDALinV1.sol +1 -3
  197. package/contracts/interfaces/v0.8.x/IFilteredMinterHolderV2.sol +1 -3
  198. package/contracts/interfaces/v0.8.x/IFilteredMinterMerkleV2.sol +1 -3
  199. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +115 -11
  200. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +84 -8
  201. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +26 -8
  202. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol +141 -0
  203. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol +78 -0
  204. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol +47 -0
  205. package/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol +91 -0
  206. package/contracts/interfaces/v0.8.x/IMinterFilterV1.sol +25 -25
  207. package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +1 -3
  208. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +30 -20
  209. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +1 -14
  210. package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +1 -15
  211. package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +2 -8
  212. package/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol +47 -0
  213. package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +15 -43
  214. package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +10 -20
  215. package/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol +23 -0
  216. package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +20 -0
  217. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +1 -67
  218. package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +5 -5
  219. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +18 -160
  220. package/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol +37 -37
  221. package/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol +81 -0
  222. package/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol +72 -0
  223. package/contracts/interfaces/v0.8.x/ISplitProviderV0.sol +49 -0
  224. package/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol +62 -0
  225. package/contracts/libs/v0.8.x/ABHelpers.sol +31 -17
  226. package/contracts/libs/v0.8.x/AuthLib.sol +101 -102
  227. package/contracts/libs/v0.8.x/BitMap.sol +112 -0
  228. package/contracts/libs/v0.8.x/BytecodeStorageV2.sol +593 -0
  229. package/contracts/libs/v0.8.x/Bytes32Strings.sol +5 -5
  230. package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +90 -0
  231. package/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol +591 -0
  232. package/contracts/libs/v0.8.x/PackedBools.sol +42 -0
  233. package/contracts/libs/v0.8.x/V3FlexLib.sol +591 -0
  234. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +162 -39
  235. package/contracts/libs/v0.8.x/minter-libs/DALib.sol +26 -0
  236. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +139 -37
  237. package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +171 -0
  238. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +299 -158
  239. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +268 -55
  240. package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +138 -58
  241. package/contracts/libs/v0.8.x/minter-libs/RAMLib.sol +2927 -0
  242. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +796 -123
  243. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +131 -13
  244. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +607 -224
  245. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +494 -330
  246. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +217 -78
  247. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +358 -309
  248. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +391 -491
  249. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +396 -632
  250. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +212 -273
  251. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +393 -488
  252. package/contracts/minter-suite/Minters/MinterDALinV5.sol +220 -277
  253. package/contracts/minter-suite/Minters/MinterRAMV0.sol +1205 -0
  254. package/contracts/minter-suite/Minters/MinterSEAV1.sol +329 -677
  255. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +287 -303
  256. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +355 -446
  257. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +328 -416
  258. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +552 -622
  259. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +429 -553
  260. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +180 -227
  261. package/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol +446 -0
  262. package/contracts/mock/BytecodeV2LibCallsMock.sol +128 -0
  263. package/contracts/mock/BytecodeV2TextCR_DMock.sol +316 -0
  264. package/contracts/mock/ForceSendMock.sol +22 -0
  265. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +3 -10
  266. package/contracts/mock/Mock0xSplitsV2PullFactory.sol +75 -0
  267. package/contracts/mock/Mock0xSplitsV2Splitter.sol +47 -0
  268. package/contracts/mock/MockAdminACLV0.sol +21 -0
  269. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +21 -0
  270. package/contracts/mock/ReentrancyGenArt721MinterMock.sol +47 -0
  271. package/contracts/mock/ReentrancyHolderMockShared.sol +59 -0
  272. package/contracts/mock/ReentrancyMerkleMockShared.sol +58 -0
  273. package/contracts/mock/ReentrancyMockShared.sol +48 -0
  274. package/contracts/mock/ReentrancySEAMockShared.sol +40 -0
  275. package/contracts/mock/ReentrancySplitterMocks.sol +67 -0
  276. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
  277. package/contracts/randomizer/shared/SharedRandomizerV0.sol +79 -71
  278. package/contracts/split/SplitAtomicFactoryV0.sol +121 -0
  279. package/contracts/split/SplitAtomicV0.sol +265 -0
  280. package/contracts/split/split-provider/SplitProviderV0.sol +201 -0
  281. package/package.json +79 -45
  282. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +0 -1965
  283. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +0 -1939
  284. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +0 -1127
  285. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +0 -768
  286. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +0 -208
  287. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +0 -301
  288. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +0 -168
  289. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +0 -221
@@ -7,12 +7,12 @@
7
7
  "inputs": [
8
8
  {
9
9
  "internalType": "address",
10
- "name": "_minterFilter",
10
+ "name": "minterFilter",
11
11
  "type": "address"
12
12
  },
13
13
  {
14
14
  "internalType": "address",
15
- "name": "_delegationRegistryAddress",
15
+ "name": "delegationRegistryAddress_",
16
16
  "type": "address"
17
17
  }
18
18
  ],
@@ -20,601 +20,35 @@
20
20
  "type": "constructor"
21
21
  },
22
22
  {
23
- "anonymous": false,
24
23
  "inputs": [
25
24
  {
26
- "indexed": true,
27
25
  "internalType": "uint256",
28
- "name": "_projectId",
26
+ "name": "projectId",
29
27
  "type": "uint256"
30
28
  },
31
29
  {
32
- "indexed": true,
33
30
  "internalType": "address",
34
- "name": "_coreContract",
31
+ "name": "coreContract",
35
32
  "type": "address"
36
33
  },
37
34
  {
38
- "indexed": false,
39
35
  "internalType": "address[]",
40
- "name": "_ownedNFTAddresses",
36
+ "name": "ownedNFTAddressesAdd",
41
37
  "type": "address[]"
42
38
  },
43
39
  {
44
- "indexed": false,
45
40
  "internalType": "uint256[]",
46
- "name": "_ownedNFTProjectIds",
41
+ "name": "ownedNFTProjectIdsAdd",
47
42
  "type": "uint256[]"
48
- }
49
- ],
50
- "name": "AllowedHoldersOfProjects",
51
- "type": "event"
52
- },
53
- {
54
- "anonymous": false,
55
- "inputs": [
56
- {
57
- "indexed": false,
58
- "internalType": "uint256",
59
- "name": "_minimumPriceDecayHalfLifeSeconds",
60
- "type": "uint256"
61
- }
62
- ],
63
- "name": "AuctionMinHalfLifeSecondsUpdated",
64
- "type": "event"
65
- },
66
- {
67
- "anonymous": false,
68
- "inputs": [
69
- {
70
- "indexed": true,
71
- "internalType": "uint256",
72
- "name": "_projectId",
73
- "type": "uint256"
74
- },
75
- {
76
- "indexed": true,
77
- "internalType": "address",
78
- "name": "_coreContract",
79
- "type": "address"
80
- },
81
- {
82
- "indexed": false,
83
- "internalType": "bytes32",
84
- "name": "_key",
85
- "type": "bytes32"
86
- }
87
- ],
88
- "name": "ConfigKeyRemoved",
89
- "type": "event"
90
- },
91
- {
92
- "anonymous": false,
93
- "inputs": [
94
- {
95
- "indexed": true,
96
- "internalType": "uint256",
97
- "name": "_projectId",
98
- "type": "uint256"
99
- },
100
- {
101
- "indexed": true,
102
- "internalType": "address",
103
- "name": "_coreContract",
104
- "type": "address"
105
- },
106
- {
107
- "indexed": false,
108
- "internalType": "bytes32",
109
- "name": "_key",
110
- "type": "bytes32"
111
- },
112
- {
113
- "indexed": false,
114
- "internalType": "uint256",
115
- "name": "_value",
116
- "type": "uint256"
117
- }
118
- ],
119
- "name": "ConfigValueAddedToSet",
120
- "type": "event"
121
- },
122
- {
123
- "anonymous": false,
124
- "inputs": [
125
- {
126
- "indexed": true,
127
- "internalType": "uint256",
128
- "name": "_projectId",
129
- "type": "uint256"
130
- },
131
- {
132
- "indexed": true,
133
- "internalType": "address",
134
- "name": "_coreContract",
135
- "type": "address"
136
- },
137
- {
138
- "indexed": false,
139
- "internalType": "bytes32",
140
- "name": "_key",
141
- "type": "bytes32"
142
- },
143
- {
144
- "indexed": false,
145
- "internalType": "address",
146
- "name": "_value",
147
- "type": "address"
148
- }
149
- ],
150
- "name": "ConfigValueAddedToSet",
151
- "type": "event"
152
- },
153
- {
154
- "anonymous": false,
155
- "inputs": [
156
- {
157
- "indexed": true,
158
- "internalType": "uint256",
159
- "name": "_projectId",
160
- "type": "uint256"
161
- },
162
- {
163
- "indexed": true,
164
- "internalType": "address",
165
- "name": "_coreContract",
166
- "type": "address"
167
- },
168
- {
169
- "indexed": false,
170
- "internalType": "bytes32",
171
- "name": "_key",
172
- "type": "bytes32"
173
- },
174
- {
175
- "indexed": false,
176
- "internalType": "bytes32",
177
- "name": "_value",
178
- "type": "bytes32"
179
- }
180
- ],
181
- "name": "ConfigValueAddedToSet",
182
- "type": "event"
183
- },
184
- {
185
- "anonymous": false,
186
- "inputs": [
187
- {
188
- "indexed": true,
189
- "internalType": "uint256",
190
- "name": "_projectId",
191
- "type": "uint256"
192
- },
193
- {
194
- "indexed": true,
195
- "internalType": "address",
196
- "name": "_coreContract",
197
- "type": "address"
198
- },
199
- {
200
- "indexed": false,
201
- "internalType": "bytes32",
202
- "name": "_key",
203
- "type": "bytes32"
204
- },
205
- {
206
- "indexed": false,
207
- "internalType": "uint256",
208
- "name": "_value",
209
- "type": "uint256"
210
- }
211
- ],
212
- "name": "ConfigValueRemovedFromSet",
213
- "type": "event"
214
- },
215
- {
216
- "anonymous": false,
217
- "inputs": [
218
- {
219
- "indexed": true,
220
- "internalType": "uint256",
221
- "name": "_projectId",
222
- "type": "uint256"
223
- },
224
- {
225
- "indexed": true,
226
- "internalType": "address",
227
- "name": "_coreContract",
228
- "type": "address"
229
- },
230
- {
231
- "indexed": false,
232
- "internalType": "bytes32",
233
- "name": "_key",
234
- "type": "bytes32"
235
- },
236
- {
237
- "indexed": false,
238
- "internalType": "address",
239
- "name": "_value",
240
- "type": "address"
241
- }
242
- ],
243
- "name": "ConfigValueRemovedFromSet",
244
- "type": "event"
245
- },
246
- {
247
- "anonymous": false,
248
- "inputs": [
249
- {
250
- "indexed": true,
251
- "internalType": "uint256",
252
- "name": "_projectId",
253
- "type": "uint256"
254
- },
255
- {
256
- "indexed": true,
257
- "internalType": "address",
258
- "name": "_coreContract",
259
- "type": "address"
260
- },
261
- {
262
- "indexed": false,
263
- "internalType": "bytes32",
264
- "name": "_key",
265
- "type": "bytes32"
266
- },
267
- {
268
- "indexed": false,
269
- "internalType": "bytes32",
270
- "name": "_value",
271
- "type": "bytes32"
272
- }
273
- ],
274
- "name": "ConfigValueRemovedFromSet",
275
- "type": "event"
276
- },
277
- {
278
- "anonymous": false,
279
- "inputs": [
280
- {
281
- "indexed": true,
282
- "internalType": "uint256",
283
- "name": "_projectId",
284
- "type": "uint256"
285
- },
286
- {
287
- "indexed": true,
288
- "internalType": "address",
289
- "name": "_coreContract",
290
- "type": "address"
291
- },
292
- {
293
- "indexed": false,
294
- "internalType": "bytes32",
295
- "name": "_key",
296
- "type": "bytes32"
297
- },
298
- {
299
- "indexed": false,
300
- "internalType": "bool",
301
- "name": "_value",
302
- "type": "bool"
303
- }
304
- ],
305
- "name": "ConfigValueSet",
306
- "type": "event"
307
- },
308
- {
309
- "anonymous": false,
310
- "inputs": [
311
- {
312
- "indexed": true,
313
- "internalType": "uint256",
314
- "name": "_projectId",
315
- "type": "uint256"
316
- },
317
- {
318
- "indexed": true,
319
- "internalType": "address",
320
- "name": "_coreContract",
321
- "type": "address"
322
- },
323
- {
324
- "indexed": false,
325
- "internalType": "bytes32",
326
- "name": "_key",
327
- "type": "bytes32"
328
- },
329
- {
330
- "indexed": false,
331
- "internalType": "uint256",
332
- "name": "_value",
333
- "type": "uint256"
334
- }
335
- ],
336
- "name": "ConfigValueSet",
337
- "type": "event"
338
- },
339
- {
340
- "anonymous": false,
341
- "inputs": [
342
- {
343
- "indexed": true,
344
- "internalType": "uint256",
345
- "name": "_projectId",
346
- "type": "uint256"
347
- },
348
- {
349
- "indexed": true,
350
- "internalType": "address",
351
- "name": "_coreContract",
352
- "type": "address"
353
- },
354
- {
355
- "indexed": false,
356
- "internalType": "bytes32",
357
- "name": "_key",
358
- "type": "bytes32"
359
- },
360
- {
361
- "indexed": false,
362
- "internalType": "address",
363
- "name": "_value",
364
- "type": "address"
365
- }
366
- ],
367
- "name": "ConfigValueSet",
368
- "type": "event"
369
- },
370
- {
371
- "anonymous": false,
372
- "inputs": [
373
- {
374
- "indexed": true,
375
- "internalType": "uint256",
376
- "name": "_projectId",
377
- "type": "uint256"
378
- },
379
- {
380
- "indexed": true,
381
- "internalType": "address",
382
- "name": "_coreContract",
383
- "type": "address"
384
- },
385
- {
386
- "indexed": false,
387
- "internalType": "bytes32",
388
- "name": "_key",
389
- "type": "bytes32"
390
- },
391
- {
392
- "indexed": false,
393
- "internalType": "bytes32",
394
- "name": "_value",
395
- "type": "bytes32"
396
- }
397
- ],
398
- "name": "ConfigValueSet",
399
- "type": "event"
400
- },
401
- {
402
- "anonymous": false,
403
- "inputs": [
404
- {
405
- "indexed": false,
406
- "internalType": "address",
407
- "name": "delegationRegistry",
408
- "type": "address"
409
- }
410
- ],
411
- "name": "DelegationRegistryUpdated",
412
- "type": "event"
413
- },
414
- {
415
- "anonymous": false,
416
- "inputs": [
417
- {
418
- "indexed": true,
419
- "internalType": "uint256",
420
- "name": "_projectId",
421
- "type": "uint256"
422
- },
423
- {
424
- "indexed": true,
425
- "internalType": "address",
426
- "name": "_coreContract",
427
- "type": "address"
428
- },
429
- {
430
- "indexed": true,
431
- "internalType": "uint256",
432
- "name": "_pricePerTokenInWei",
433
- "type": "uint256"
434
- }
435
- ],
436
- "name": "PricePerTokenInWeiUpdated",
437
- "type": "event"
438
- },
439
- {
440
- "anonymous": false,
441
- "inputs": [
442
- {
443
- "indexed": true,
444
- "internalType": "uint256",
445
- "name": "_projectId",
446
- "type": "uint256"
447
- },
448
- {
449
- "indexed": true,
450
- "internalType": "address",
451
- "name": "_coreContract",
452
- "type": "address"
453
- },
454
- {
455
- "indexed": true,
456
- "internalType": "address",
457
- "name": "_currencyAddress",
458
- "type": "address"
459
- },
460
- {
461
- "indexed": false,
462
- "internalType": "string",
463
- "name": "_currencySymbol",
464
- "type": "string"
465
- }
466
- ],
467
- "name": "ProjectCurrencyInfoUpdated",
468
- "type": "event"
469
- },
470
- {
471
- "anonymous": false,
472
- "inputs": [
473
- {
474
- "indexed": true,
475
- "internalType": "uint256",
476
- "name": "_projectId",
477
- "type": "uint256"
478
- },
479
- {
480
- "indexed": true,
481
- "internalType": "address",
482
- "name": "_coreContract",
483
- "type": "address"
484
- },
485
- {
486
- "indexed": false,
487
- "internalType": "uint256",
488
- "name": "_maxInvocations",
489
- "type": "uint256"
490
- }
491
- ],
492
- "name": "ProjectMaxInvocationsLimitUpdated",
493
- "type": "event"
494
- },
495
- {
496
- "anonymous": false,
497
- "inputs": [
498
- {
499
- "indexed": true,
500
- "internalType": "uint256",
501
- "name": "_projectId",
502
- "type": "uint256"
503
- },
504
- {
505
- "indexed": true,
506
- "internalType": "address",
507
- "name": "_coreContract",
508
- "type": "address"
509
- },
510
- {
511
- "indexed": false,
512
- "internalType": "address[]",
513
- "name": "_ownedNFTAddresses",
514
- "type": "address[]"
515
- },
516
- {
517
- "indexed": false,
518
- "internalType": "uint256[]",
519
- "name": "_ownedNFTProjectIds",
520
- "type": "uint256[]"
521
- }
522
- ],
523
- "name": "RemovedHoldersOfProjects",
524
- "type": "event"
525
- },
526
- {
527
- "anonymous": false,
528
- "inputs": [
529
- {
530
- "indexed": true,
531
- "internalType": "uint256",
532
- "name": "_projectId",
533
- "type": "uint256"
534
- },
535
- {
536
- "indexed": true,
537
- "internalType": "address",
538
- "name": "_coreContract",
539
- "type": "address"
540
- }
541
- ],
542
- "name": "ResetAuctionDetails",
543
- "type": "event"
544
- },
545
- {
546
- "anonymous": false,
547
- "inputs": [
548
- {
549
- "indexed": true,
550
- "internalType": "uint256",
551
- "name": "_projectId",
552
- "type": "uint256"
553
- },
554
- {
555
- "indexed": true,
556
- "internalType": "address",
557
- "name": "_coreContract",
558
- "type": "address"
559
- },
560
- {
561
- "indexed": false,
562
- "internalType": "uint40",
563
- "name": "_auctionTimestampStart",
564
- "type": "uint40"
565
- },
566
- {
567
- "indexed": false,
568
- "internalType": "uint40",
569
- "name": "_priceDecayHalfLifeSeconds",
570
- "type": "uint40"
571
- },
572
- {
573
- "indexed": false,
574
- "internalType": "uint256",
575
- "name": "_startPrice",
576
- "type": "uint256"
577
- },
578
- {
579
- "indexed": false,
580
- "internalType": "uint256",
581
- "name": "_basePrice",
582
- "type": "uint256"
583
- }
584
- ],
585
- "name": "SetAuctionDetailsExp",
586
- "type": "event"
587
- },
588
- {
589
- "inputs": [
590
- {
591
- "internalType": "uint256",
592
- "name": "_projectId",
593
- "type": "uint256"
594
- },
595
- {
596
- "internalType": "address",
597
- "name": "_coreContract",
598
- "type": "address"
599
43
  },
600
44
  {
601
45
  "internalType": "address[]",
602
- "name": "_ownedNFTAddressesAdd",
46
+ "name": "ownedNFTAddressesRemove",
603
47
  "type": "address[]"
604
48
  },
605
49
  {
606
50
  "internalType": "uint256[]",
607
- "name": "_ownedNFTProjectIdsAdd",
608
- "type": "uint256[]"
609
- },
610
- {
611
- "internalType": "address[]",
612
- "name": "_ownedNFTAddressesRemove",
613
- "type": "address[]"
614
- },
615
- {
616
- "internalType": "uint256[]",
617
- "name": "_ownedNFTProjectIdsRemove",
51
+ "name": "ownedNFTProjectIdsRemove",
618
52
  "type": "uint256[]"
619
53
  }
620
54
  ],
@@ -627,22 +61,22 @@
627
61
  "inputs": [
628
62
  {
629
63
  "internalType": "uint256",
630
- "name": "_projectId",
64
+ "name": "projectId",
631
65
  "type": "uint256"
632
66
  },
633
67
  {
634
68
  "internalType": "address",
635
- "name": "_coreContract",
69
+ "name": "coreContract",
636
70
  "type": "address"
637
71
  },
638
72
  {
639
73
  "internalType": "address[]",
640
- "name": "_ownedNFTAddresses",
74
+ "name": "ownedNFTAddresses",
641
75
  "type": "address[]"
642
76
  },
643
77
  {
644
78
  "internalType": "uint256[]",
645
- "name": "_ownedNFTProjectIds",
79
+ "name": "ownedNFTProjectIds",
646
80
  "type": "uint256[]"
647
81
  }
648
82
  ],
@@ -655,22 +89,22 @@
655
89
  "inputs": [
656
90
  {
657
91
  "internalType": "uint256",
658
- "name": "_projectId",
92
+ "name": "projectId",
659
93
  "type": "uint256"
660
94
  },
661
95
  {
662
96
  "internalType": "address",
663
- "name": "_coreContract",
97
+ "name": "coreContract",
664
98
  "type": "address"
665
99
  },
666
100
  {
667
101
  "internalType": "address",
668
- "name": "_ownedNFTAddress",
102
+ "name": "ownedNFTAddress",
669
103
  "type": "address"
670
104
  },
671
105
  {
672
106
  "internalType": "uint256",
673
- "name": "_ownedNFTProjectId",
107
+ "name": "ownedNFTProjectId",
674
108
  "type": "uint256"
675
109
  }
676
110
  ],
@@ -702,12 +136,12 @@
702
136
  "inputs": [
703
137
  {
704
138
  "internalType": "uint256",
705
- "name": "_projectId",
139
+ "name": "projectId",
706
140
  "type": "uint256"
707
141
  },
708
142
  {
709
143
  "internalType": "address",
710
- "name": "_coreContract",
144
+ "name": "coreContract",
711
145
  "type": "address"
712
146
  }
713
147
  ],
@@ -741,22 +175,22 @@
741
175
  "inputs": [
742
176
  {
743
177
  "internalType": "uint256",
744
- "name": "_projectId",
178
+ "name": "projectId",
745
179
  "type": "uint256"
746
180
  },
747
181
  {
748
182
  "internalType": "address",
749
- "name": "_coreContract",
183
+ "name": "coreContract",
750
184
  "type": "address"
751
185
  },
752
186
  {
753
187
  "internalType": "address",
754
- "name": "_ownedNFTAddress",
188
+ "name": "ownedNFTAddress",
755
189
  "type": "address"
756
190
  },
757
191
  {
758
192
  "internalType": "uint256",
759
- "name": "_ownedNFTTokenId",
193
+ "name": "ownedNFTTokenId",
760
194
  "type": "uint256"
761
195
  }
762
196
  ],
@@ -775,7 +209,7 @@
775
209
  "inputs": [
776
210
  {
777
211
  "internalType": "address",
778
- "name": "_coreContract",
212
+ "name": "coreContract",
779
213
  "type": "address"
780
214
  }
781
215
  ],
@@ -794,17 +228,17 @@
794
228
  "inputs": [
795
229
  {
796
230
  "internalType": "uint256",
797
- "name": "_projectId",
231
+ "name": "projectId",
798
232
  "type": "uint256"
799
233
  },
800
234
  {
801
235
  "internalType": "address",
802
- "name": "_coreContract",
236
+ "name": "coreContract",
803
237
  "type": "address"
804
238
  },
805
239
  {
806
240
  "internalType": "uint24",
807
- "name": "_maxInvocations",
241
+ "name": "maxInvocations",
808
242
  "type": "uint24"
809
243
  }
810
244
  ],
@@ -817,12 +251,12 @@
817
251
  "inputs": [
818
252
  {
819
253
  "internalType": "uint256",
820
- "name": "_projectId",
254
+ "name": "projectId",
821
255
  "type": "uint256"
822
256
  },
823
257
  {
824
258
  "internalType": "address",
825
- "name": "_coreContract",
259
+ "name": "coreContract",
826
260
  "type": "address"
827
261
  }
828
262
  ],
@@ -905,12 +339,12 @@
905
339
  "inputs": [
906
340
  {
907
341
  "internalType": "uint256",
908
- "name": "_projectId",
342
+ "name": "projectId",
909
343
  "type": "uint256"
910
344
  },
911
345
  {
912
346
  "internalType": "address",
913
- "name": "_coreContract",
347
+ "name": "coreContract",
914
348
  "type": "address"
915
349
  }
916
350
  ],
@@ -944,12 +378,12 @@
944
378
  "inputs": [
945
379
  {
946
380
  "internalType": "uint256",
947
- "name": "_projectId",
381
+ "name": "projectId",
948
382
  "type": "uint256"
949
383
  },
950
384
  {
951
385
  "internalType": "address",
952
- "name": "_coreContract",
386
+ "name": "coreContract",
953
387
  "type": "address"
954
388
  }
955
389
  ],
@@ -968,12 +402,12 @@
968
402
  "inputs": [
969
403
  {
970
404
  "internalType": "uint256",
971
- "name": "_projectId",
405
+ "name": "projectId",
972
406
  "type": "uint256"
973
407
  },
974
408
  {
975
409
  "internalType": "address",
976
- "name": "_coreContract",
410
+ "name": "coreContract",
977
411
  "type": "address"
978
412
  }
979
413
  ],
@@ -992,22 +426,22 @@
992
426
  "inputs": [
993
427
  {
994
428
  "internalType": "uint256",
995
- "name": "_projectId",
429
+ "name": "projectId",
996
430
  "type": "uint256"
997
431
  },
998
432
  {
999
433
  "internalType": "address",
1000
- "name": "_coreContract",
434
+ "name": "coreContract",
1001
435
  "type": "address"
1002
436
  },
1003
437
  {
1004
438
  "internalType": "address",
1005
- "name": "_ownedNFTAddress",
439
+ "name": "ownedNFTAddress",
1006
440
  "type": "address"
1007
441
  },
1008
442
  {
1009
443
  "internalType": "uint256",
1010
- "name": "_ownedNFTTokenId",
444
+ "name": "ownedNFTTokenId",
1011
445
  "type": "uint256"
1012
446
  }
1013
447
  ],
@@ -1026,32 +460,32 @@
1026
460
  "inputs": [
1027
461
  {
1028
462
  "internalType": "address",
1029
- "name": "_to",
463
+ "name": "to",
1030
464
  "type": "address"
1031
465
  },
1032
466
  {
1033
467
  "internalType": "uint256",
1034
- "name": "_projectId",
468
+ "name": "projectId",
1035
469
  "type": "uint256"
1036
470
  },
1037
471
  {
1038
472
  "internalType": "address",
1039
- "name": "_coreContract",
473
+ "name": "coreContract",
1040
474
  "type": "address"
1041
475
  },
1042
476
  {
1043
477
  "internalType": "address",
1044
- "name": "_ownedNFTAddress",
478
+ "name": "ownedNFTAddress",
1045
479
  "type": "address"
1046
480
  },
1047
481
  {
1048
482
  "internalType": "uint256",
1049
- "name": "_ownedNFTTokenId",
483
+ "name": "ownedNFTTokenId",
1050
484
  "type": "uint256"
1051
485
  },
1052
486
  {
1053
487
  "internalType": "address",
1054
- "name": "_vault",
488
+ "name": "vault",
1055
489
  "type": "address"
1056
490
  }
1057
491
  ],
@@ -1070,27 +504,27 @@
1070
504
  "inputs": [
1071
505
  {
1072
506
  "internalType": "address",
1073
- "name": "_to",
507
+ "name": "to",
1074
508
  "type": "address"
1075
509
  },
1076
510
  {
1077
511
  "internalType": "uint256",
1078
- "name": "_projectId",
512
+ "name": "projectId",
1079
513
  "type": "uint256"
1080
514
  },
1081
515
  {
1082
516
  "internalType": "address",
1083
- "name": "_coreContract",
517
+ "name": "coreContract",
1084
518
  "type": "address"
1085
519
  },
1086
520
  {
1087
521
  "internalType": "address",
1088
- "name": "_ownedNFTAddress",
522
+ "name": "ownedNFTAddress",
1089
523
  "type": "address"
1090
524
  },
1091
525
  {
1092
526
  "internalType": "uint256",
1093
- "name": "_ownedNFTTokenId",
527
+ "name": "ownedNFTTokenId",
1094
528
  "type": "uint256"
1095
529
  }
1096
530
  ],
@@ -1109,22 +543,22 @@
1109
543
  "inputs": [
1110
544
  {
1111
545
  "internalType": "uint256",
1112
- "name": "_projectId",
546
+ "name": "projectId",
1113
547
  "type": "uint256"
1114
548
  },
1115
549
  {
1116
550
  "internalType": "address",
1117
- "name": "_coreContract",
551
+ "name": "coreContract",
1118
552
  "type": "address"
1119
553
  },
1120
554
  {
1121
555
  "internalType": "address[]",
1122
- "name": "_ownedNFTAddresses",
556
+ "name": "ownedNFTAddresses",
1123
557
  "type": "address[]"
1124
558
  },
1125
559
  {
1126
560
  "internalType": "uint256[]",
1127
- "name": "_ownedNFTProjectIds",
561
+ "name": "ownedNFTProjectIds",
1128
562
  "type": "uint256[]"
1129
563
  }
1130
564
  ],
@@ -1137,12 +571,12 @@
1137
571
  "inputs": [
1138
572
  {
1139
573
  "internalType": "uint256",
1140
- "name": "_projectId",
574
+ "name": "projectId",
1141
575
  "type": "uint256"
1142
576
  },
1143
577
  {
1144
578
  "internalType": "address",
1145
- "name": "_coreContract",
579
+ "name": "coreContract",
1146
580
  "type": "address"
1147
581
  }
1148
582
  ],
@@ -1155,32 +589,32 @@
1155
589
  "inputs": [
1156
590
  {
1157
591
  "internalType": "uint256",
1158
- "name": "_projectId",
592
+ "name": "projectId",
1159
593
  "type": "uint256"
1160
594
  },
1161
595
  {
1162
596
  "internalType": "address",
1163
- "name": "_coreContract",
597
+ "name": "coreContract",
1164
598
  "type": "address"
1165
599
  },
1166
600
  {
1167
601
  "internalType": "uint40",
1168
- "name": "_auctionTimestampStart",
602
+ "name": "auctionTimestampStart",
1169
603
  "type": "uint40"
1170
604
  },
1171
605
  {
1172
606
  "internalType": "uint40",
1173
- "name": "_priceDecayHalfLifeSeconds",
607
+ "name": "priceDecayHalfLifeSeconds",
1174
608
  "type": "uint40"
1175
609
  },
1176
610
  {
1177
611
  "internalType": "uint256",
1178
- "name": "_startPrice",
612
+ "name": "startPrice",
1179
613
  "type": "uint256"
1180
614
  },
1181
615
  {
1182
616
  "internalType": "uint256",
1183
- "name": "_basePrice",
617
+ "name": "basePrice",
1184
618
  "type": "uint256"
1185
619
  }
1186
620
  ],
@@ -1193,7 +627,7 @@
1193
627
  "inputs": [
1194
628
  {
1195
629
  "internalType": "uint256",
1196
- "name": "_minimumPriceDecayHalfLifeSeconds",
630
+ "name": "minimumPriceDecayHalfLifeSeconds_",
1197
631
  "type": "uint256"
1198
632
  }
1199
633
  ],
@@ -1206,12 +640,12 @@
1206
640
  "inputs": [
1207
641
  {
1208
642
  "internalType": "uint256",
1209
- "name": "_projectId",
643
+ "name": "projectId",
1210
644
  "type": "uint256"
1211
645
  },
1212
646
  {
1213
647
  "internalType": "address",
1214
- "name": "_coreContract",
648
+ "name": "coreContract",
1215
649
  "type": "address"
1216
650
  }
1217
651
  ],
@@ -1221,8 +655,8 @@
1221
655
  "type": "function"
1222
656
  }
1223
657
  ],
1224
- "bytecode": "0x610100604052602d6001553480156200001757600080fd5b5060405162002c2538038062002c258339810160408190526200003a91620000f2565b60016000556001600160a01b03828116608081905260a052811660c081905260e08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a17fdae7136b6b1f9f3031d9536e8bdd02f1d223eb793054446ff278143abeafa21b600154604051620000c591815260200190565b60405180910390a150506200012a565b80516001600160a01b0381168114620000ed57600080fd5b919050565b600080604083850312156200010657600080fd5b6200011183620000d5565b91506200012160208401620000d5565b90509250929050565b60805160a05160c05160e051612aba6200016b6000396000610885015260006103280152600061097a0152600081816104390152610c500152612aba6000f3fe60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e1461017757806339b87cf8146101985780634869f3df146101b85780637fbbc005146101d85780638a605b51146101eb57806395c575fa1461020b5780639a94488a1461022b5780639d923dff146102c3578063b000e334146102d6578063b3fe4723146102f6578063bf5bf5f814610316578063cce7c90914610362578063cf6681ea14610382578063d3ddabe614610398578063d9bffbce146103d7578063d9eb16db146103f7578063dd85582f14610427578063e9d1e8ac1461045b578063f7f5e9d01461049a578063fca23f4e146104ba578063fdca4cb814610514578063fea1d7b414610534575b600080fd5b34801561012c57600080fd5b5061014061013b366004612150565b6105b4565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b506101756101703660046122a5565b6105f5565b005b61018a61018536600461236a565b6106c0565b60405190815260200161014c565b3480156101a457600080fd5b506101406101b33660046123da565b610a41565b3480156101c457600080fd5b5061018a6101d3366004612422565b610a78565b61018a6101e63660046123da565b610ab0565b3480156101f757600080fd5b50610175610206366004612452565b610ac1565b34801561021757600080fd5b50610175610226366004612422565b610b44565b34801561023757600080fd5b506102a1610246366004612422565b6040805180820190915260008082526020820152506001600160a01b031660009081526004602090815260408083209383529281529082902082518084019093525460ff811615158352610100900462ffffff169082015290565b6040805182511515815260209283015162ffffff16928101929092520161014c565b61018a6102d13660046124d1565b610ba8565b3480156102e257600080fd5b506101756102f136600461252c565b610bc3565b34801561030257600080fd5b50610175610311366004612576565b610c4b565b34801561032257600080fd5b5061034a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561036e57600080fd5b5061014061037d366004612422565b610d09565b34801561038e57600080fd5b5061018a60015481565b3480156103a457600080fd5b506103ca60405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c91906125df565b3480156103e357600080fd5b506101756103f2366004612422565b610d35565b34801561040357600080fd5b50610417610412366004612422565b610dae565b60405161014c94939291906125f2565b34801561043357600080fd5b5061034a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561046757600080fd5b506103ca604051806040016040528060138152602001724d696e7465724441457870486f6c646572563560681b81525081565b3480156104a657600080fd5b506101756104b5366004612452565b610e5a565b3480156104c657600080fd5b506101406104d53660046123da565b6001600160a01b039283166000908152600560209081526040808320968352958152858220939094168152918352838220908252909152205460ff1690565b34801561052057600080fd5b5061017561052f366004612641565b610ecf565b34801561054057600080fd5b506105a461054f366004612422565b6001600160a01b03166000908152600360209081526040808320938352929052205464ffffffffff80821692600160281b8304909116916001600160581b03600160501b8204811692600160a81b9092041690565b60405161014c94939291906126a2565b6001600160a01b03811660009081526002602052604081208054610100900460ff16156105e5575460ff1692915050565b6105ee83611026565b9392505050565b61060086863361115e565b6001600160a01b0385166000908152600560209081526040808320898452909152902061063090858585856111a8565b846001600160a01b0316867fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82868660405161066c9291906126c9565b60405180910390a3846001600160a01b0316867f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced0984846040516106b09291906126c9565b60405180910390a3505050505050565b60006002600054036107195760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260009081556001600160a01b0386168082526004602090815260408084208a85528252808420928452600382528084208a8552909152909120815460ff16156107765760405162461bcd60e51b81526004016107109061274d565b6000610781826111c5565b9050803410156107cc5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b6044820152606401610710565b6001600160a01b03881660009081526005602090815260408083208c845290915290206107fa908888611300565b61083e5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610710565b336001600160a01b0386161561094657604051631574d39f60e31b81523360048201526001600160a01b0387811660248301528a81166044830152606482018990526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156108ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f2919061278e565b9050806109415760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610710565b869150505b6040516117cd60e21b81526001600160a01b038c81166004830152602482018c90528a8116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af11580156109c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e591906127a9565b94506109f1858561133e565b6109fc88888361138d565b6001600160a01b0389166000908152600260205260408120610a1f908b90611450565b9050610a2d8b848c84611482565b505050505060016000559695505050505050565b6001600160a01b03831660009081526005602090815260408083208784529091528120610a6f908484611300565b95945050505050565b6001600160a01b0381166000908152600460209081526040808320858452909152812054610100900462ffffff165b90505b92915050565b6000610a6f338686868660006106c0565b610acc84843361115e565b6001600160a01b03831660009081526005602090815260408083208784529091529020610afa908383611539565b826001600160a01b0316847fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828484604051610b369291906126c9565b60405180910390a350505050565b610b57813330634ae2bafd60e11b6115fc565b6001600160a01b03811660008181526003602090815260408083208684529091528082208290555184917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c8091a35050565b6000610bb9868686868660006106c0565b9695505050505050565b610bce83833361115e565b6001600160a01b03821660009081526004602090815260408083208684529091529020610c0090849084908490611651565b60405162ffffff821681526001600160a01b0383169084907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237906020015b60405180910390a3505050565b610c7e7f0000000000000000000000000000000000000000000000000000000000000000333063b3fe472360e01b6116d8565b60008111610cce5760405162461bcd60e51b815260206004820152601d60248201527f48616c66206c696665206f66207a65726f206e6f7420616c6c6f7765640000006044820152606401610710565b60018190556040518181527fdae7136b6b1f9f3031d9536e8bdd02f1d223eb793054446ff278143abeafa21b9060200160405180910390a150565b6001600160a01b038116600090815260046020908152604080832085845290915281205460ff16610aa7565b610d4082823361115e565b6001600160a01b03811660009081526004602090815260408083208584529091528120610d70908490849061172d565b9050816001600160a01b0316837f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23783604051610c3e91815260200190565b6001600160a01b038116600090815260036020908152604080832085845290915281208054600160501b90046001600160581b031615159190606090829084610dfa5760009350610e2e565b805464ffffffffff164211610e22578054600160501b90046001600160581b03169350610e2e565b610e2b816111c5565b93505b6040518060400160405280600381526020016208aa8960eb1b8152509250600091505092959194509250565b610e6584843361115e565b6001600160a01b03831660009081526005602090815260408083208784529091529020610e939083836117d2565b826001600160a01b0316847f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced098484604051610b369291906126c9565b610eda86863361115e565b6001600160a01b03851660008181526003602090815260408083208a84528252808320938352600482528083208a8452909152902060015464ffffffffff86161015610f8e5760405162461bcd60e51b815260206004820152603e60248201527f50726963652064656361792068616c66206c696665206d75737420626520677260448201527f6561746572207468616e206d696e20616c6c6f7761626c652076616c756500006064820152608401610710565b6000610f9b825460ff1690565b9050610fbb838888610fac89611895565b610fb589611895565b86611901565b876001600160a01b0316897f7fbd78481800c1705ba89e4be2e8c979412fb121f7f3cbace9d7f5c3dd85c44e89898989604051610ffb94939291906126a2565b60405180910390a361100c82611a9e565b1561101b5761101b8989610d35565b505050505050505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b038616906110889085906127c2565b600060405180830381855afa9150503d80600081146110c3576040519150601f19603f3d011682016040523d82523d6000602084013e6110c8565b606091505b5091509150816110ea5760405162461bcd60e51b8152600401610710906127de565b805160c08190036111015750600095945050505050565b80610100036111165750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610710565b611169838383611abe565b6111a35760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610710565b505050565b6111b3858585611539565b6111be8583836117d2565b5050505050565b805460009064ffffffffff80821691600160281b810490911690600160a81b90046001600160581b03164283106112385760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b6044820152606401610710565b600082116112835760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b6044820152606401610710565b8454600160501b90046001600160581b0316428490038381816112a8576112a8612823565b0482901c91506002848583816112c0576112c0612823565b068402816112d0576112d0612823565b04816112de576112de612823565b0482039150828210156112f657509095945050505050565b5095945050505050565b600080611310620f42408461284f565b6001600160a01b038516600090815260208781526040808320938352929052205460ff169150509392505050565b8054620f4240830660010190610100900462ffffff16808211156113745760405162461bcd60e51b81526004016107109061274d565b80820361138757825460ff191660011783555b50505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa1580156113d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f99190612871565b9050816001600160a01b0316816001600160a01b0316146113875760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b6044820152606401610710565b8054600090610100900460ff161561146d5750805460ff16610aaa565b60006114798484611b47565b9150610aaa9050565b341561138757600080611495853461288e565b905080156115255760405133908290600081818185875af1925050503d80600081146114dd576040519150601f19603f3d011682016040523d82523d6000602084013e6114e2565b606091505b505080925050816115255760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610710565b61153186868686611c57565b505050505050565b805182511461155a5760405162461bcd60e51b8152600401610710906128a1565b60005b8251811015611387576001846000016000858481518110611580576115806128e2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008484815181106115bc576115bc6128e2565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115f4906128f8565b91505061155d565b61160884848484612022565b6113875760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610710565b60008061165e86866120aa565b91509150808462ffffff1611156116875760405162461bcd60e51b815260040161071090612911565b818462ffffff1610156116ac5760405162461bcd60e51b815260040161071090612911565b50815460ff1962ffffff90941661010081029490941663ffffffff199091161792149190911790555050565b6116e484848484612022565b6113875760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b6044820152606401610710565b6000806000846001600160a01b0316630ea5613f876040518263ffffffff1660e01b815260040161176091815260200190565b60c060405180830381865afa15801561177d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a19190612942565b5050875493831463ffffffff1990941661010062ffffff85160260ff19161793909317909655979650505050505050565b80518251146117f35760405162461bcd60e51b8152600401610710906128a1565b60005b8251811015611387576000846000016000858481518110611819576118196128e2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611855576118556128e2565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061188d906128f8565b9150506117f6565b60006001600160581b038211156118fd5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201526538206269747360d01b6064820152608401610710565b5090565b855464ffffffffff16158061191d5750855464ffffffffff1642105b806119255750805b6119705760405162461bcd60e51b815260206004820152601c60248201527b27379036b7b234b334b1b0ba34b7b7399036b4b216b0bab1ba34b7b760211b6044820152606401610710565b8464ffffffffff1642106119bd5760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b6044820152606401610710565b816001600160581b0316836001600160581b031611611a415760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d7573742062652067726561604482015279746572207468616e2061756374696f6e20656e6420707269636560301b6064820152608401610710565b50845464ffffffffff9485166001600160501b031990911617600160281b9390941692909202929092176001600160501b0316600160501b6001600160581b03938416026001600160a81b031617600160a81b9190921602179055565b8054600090610100900462ffffff16158015610aaa5750505460ff161590565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2a9190612871565b6001600160a01b0316826001600160a01b03161490509392505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03871690611ba99085906127c2565b6000604051808303816000865af19150503d8060008114611be6576040519150601f19603f3d011682016040523d82523d6000602084013e611beb565b606091505b509150915081611c0d5760405162461bcd60e51b8152600401610710906127de565b805160c0819003611c33575050835461ffff19166101001784555060009150610aaa9050565b8061010003611116575050835461ffff19166101011784555060019150610aaa9050565b82156113875760008060008060008060008715611da857604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038c1690638639415b9060440161010060405180830381865afa158015611cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce491906129a1565b969e50949c50909a50985091965091945090925090508115611da1576040516001600160a01b038216908390600081818185875af1925050503d8060008114611d49576040519150601f19603f3d011682016040523d82523d6000602084013e611d4e565b606091505b50508099505088611da15760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610710565b5050611e28565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b038a1690638639415b9060440160c060405180830381865afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190612a29565b949a509298509096509450925090505b8515611ecf576040516001600160a01b038616908790600081818185875af1925050503d8060008114611e77576040519150601f19603f3d011682016040523d82523d6000602084013e611e7c565b606091505b50508097505086611ecf5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610710565b8315611f6e576040516001600160a01b038416908590600081818185875af1925050503d8060008114611f1e576040519150601f19603f3d011682016040523d82523d6000602084013e611f23565b606091505b50508097505086611f6e5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610710565b8115612015576040516001600160a01b038216908390600081818185875af1925050503d8060008114611fbd576040519150601f19603f3d011682016040523d82523d6000602084013e611fc2565b606091505b505080975050866120155760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610710565b5050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015612086573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6f919061278e565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa1580156120f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121189190612942565b5093989297509195505050505050565b6001600160a01b038116811461213d57600080fd5b50565b803561214b81612128565b919050565b60006020828403121561216257600080fd5b81356105ee81612128565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156121ab576121ab61216d565b604052919050565b60006001600160401b038211156121cc576121cc61216d565b5060051b60200190565b600082601f8301126121e757600080fd5b813560206121fc6121f7836121b3565b612183565b82815260059290921b8401810191818101908684111561221b57600080fd5b8286015b8481101561223f57803561223281612128565b835291830191830161221f565b509695505050505050565b600082601f83011261225b57600080fd5b8135602061226b6121f7836121b3565b82815260059290921b8401810191818101908684111561228a57600080fd5b8286015b8481101561223f578035835291830191830161228e565b60008060008060008060c087890312156122be57600080fd5b863595506122ce60208801612140565b945060408701356001600160401b03808211156122ea57600080fd5b6122f68a838b016121d6565b9550606089013591508082111561230c57600080fd5b6123188a838b0161224a565b9450608089013591508082111561232e57600080fd5b61233a8a838b016121d6565b935060a089013591508082111561235057600080fd5b5061235d89828a0161224a565b9150509295509295509295565b60008060008060008060c0878903121561238357600080fd5b863561238e81612128565b95506020870135945060408701356123a581612128565b935060608701356123b581612128565b92506080870135915060a08701356123cc81612128565b809150509295509295509295565b600080600080608085870312156123f057600080fd5b84359350602085013561240281612128565b9250604085013561241281612128565b9396929550929360600135925050565b6000806040838503121561243557600080fd5b82359150602083013561244781612128565b809150509250929050565b6000806000806080858703121561246857600080fd5b84359350602085013561247a81612128565b925060408501356001600160401b038082111561249657600080fd5b6124a2888389016121d6565b935060608701359150808211156124b857600080fd5b506124c58782880161224a565b91505092959194509250565b600080600080600060a086880312156124e957600080fd5b85356124f481612128565b945060208601359350604086013561250b81612128565b9250606086013561251b81612128565b949793965091946080013592915050565b60008060006060848603121561254157600080fd5b83359250602084013561255381612128565b9150604084013562ffffff8116811461256b57600080fd5b809150509250925092565b60006020828403121561258857600080fd5b5035919050565b60005b838110156125aa578181015183820152602001612592565b50506000910152565b600081518084526125cb81602086016020860161258f565b601f01601f19169290920160200192915050565b602081526000610aa760208301846125b3565b841515815283602082015260806040820152600061261360808301856125b3565b905060018060a01b038316606083015295945050505050565b803564ffffffffff8116811461214b57600080fd5b60008060008060008060c0878903121561265a57600080fd5b86359550602087013561266c81612128565b945061267a6040880161262c565b93506126886060880161262c565b92506080870135915060a087013590509295509295509295565b64ffffffffff94851681529290931660208301526040820152606081019190915260800190565b604080825283519082018190526000906020906060840190828701845b8281101561270b5781516001600160a01b0316845292840192908401906001016126e6565b5050508381038285015284518082528583019183019060005b8181101561274057835183529284019291840191600101612724565b5090979650505050505050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b8051801515811461214b57600080fd5b6000602082840312156127a057600080fd5b610aa78261277e565b6000602082840312156127bb57600080fd5b5051919050565b600082516127d481846020870161258f565b9190910192915050565b60208082526025908201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604082015264185a5b195960da1b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008261286c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561288357600080fd5b81516105ee81612128565b81810381811115610aaa57610aaa612839565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161290a5761290a612839565b5060010190565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b60008060008060008060c0878903121561295b57600080fd5b86519550602087015194506129726040880161277e565b93506129806060880161277e565b92506080870151915061299560a0880161277e565b90509295509295509295565b600080600080600080600080610100898b0312156129be57600080fd5b8851975060208901516129d081612128565b60408a015160608b015191985096506129e881612128565b60808a015160a08b01519196509450612a0081612128565b60c08a015160e08b01519194509250612a1881612128565b809150509295985092959890939650565b60008060008060008060c08789031215612a4257600080fd5b865195506020870151612a5481612128565b604088015160608901519196509450612a6c81612128565b608088015160a089015191945092506123cc8161212856fea2646970667358221220130f5f5b0b6709c0e5b4dc89e36a629340c2076d55cbf5863e0464b8b83117a464736f6c63430008130033",
1225
- "deployedBytecode": "0x60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e1461017757806339b87cf8146101985780634869f3df146101b85780637fbbc005146101d85780638a605b51146101eb57806395c575fa1461020b5780639a94488a1461022b5780639d923dff146102c3578063b000e334146102d6578063b3fe4723146102f6578063bf5bf5f814610316578063cce7c90914610362578063cf6681ea14610382578063d3ddabe614610398578063d9bffbce146103d7578063d9eb16db146103f7578063dd85582f14610427578063e9d1e8ac1461045b578063f7f5e9d01461049a578063fca23f4e146104ba578063fdca4cb814610514578063fea1d7b414610534575b600080fd5b34801561012c57600080fd5b5061014061013b366004612150565b6105b4565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b506101756101703660046122a5565b6105f5565b005b61018a61018536600461236a565b6106c0565b60405190815260200161014c565b3480156101a457600080fd5b506101406101b33660046123da565b610a41565b3480156101c457600080fd5b5061018a6101d3366004612422565b610a78565b61018a6101e63660046123da565b610ab0565b3480156101f757600080fd5b50610175610206366004612452565b610ac1565b34801561021757600080fd5b50610175610226366004612422565b610b44565b34801561023757600080fd5b506102a1610246366004612422565b6040805180820190915260008082526020820152506001600160a01b031660009081526004602090815260408083209383529281529082902082518084019093525460ff811615158352610100900462ffffff169082015290565b6040805182511515815260209283015162ffffff16928101929092520161014c565b61018a6102d13660046124d1565b610ba8565b3480156102e257600080fd5b506101756102f136600461252c565b610bc3565b34801561030257600080fd5b50610175610311366004612576565b610c4b565b34801561032257600080fd5b5061034a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561036e57600080fd5b5061014061037d366004612422565b610d09565b34801561038e57600080fd5b5061018a60015481565b3480156103a457600080fd5b506103ca60405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c91906125df565b3480156103e357600080fd5b506101756103f2366004612422565b610d35565b34801561040357600080fd5b50610417610412366004612422565b610dae565b60405161014c94939291906125f2565b34801561043357600080fd5b5061034a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561046757600080fd5b506103ca604051806040016040528060138152602001724d696e7465724441457870486f6c646572563560681b81525081565b3480156104a657600080fd5b506101756104b5366004612452565b610e5a565b3480156104c657600080fd5b506101406104d53660046123da565b6001600160a01b039283166000908152600560209081526040808320968352958152858220939094168152918352838220908252909152205460ff1690565b34801561052057600080fd5b5061017561052f366004612641565b610ecf565b34801561054057600080fd5b506105a461054f366004612422565b6001600160a01b03166000908152600360209081526040808320938352929052205464ffffffffff80821692600160281b8304909116916001600160581b03600160501b8204811692600160a81b9092041690565b60405161014c94939291906126a2565b6001600160a01b03811660009081526002602052604081208054610100900460ff16156105e5575460ff1692915050565b6105ee83611026565b9392505050565b61060086863361115e565b6001600160a01b0385166000908152600560209081526040808320898452909152902061063090858585856111a8565b846001600160a01b0316867fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82868660405161066c9291906126c9565b60405180910390a3846001600160a01b0316867f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced0984846040516106b09291906126c9565b60405180910390a3505050505050565b60006002600054036107195760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260009081556001600160a01b0386168082526004602090815260408084208a85528252808420928452600382528084208a8552909152909120815460ff16156107765760405162461bcd60e51b81526004016107109061274d565b6000610781826111c5565b9050803410156107cc5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b6044820152606401610710565b6001600160a01b03881660009081526005602090815260408083208c845290915290206107fa908888611300565b61083e5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610710565b336001600160a01b0386161561094657604051631574d39f60e31b81523360048201526001600160a01b0387811660248301528a81166044830152606482018990526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156108ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f2919061278e565b9050806109415760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610710565b869150505b6040516117cd60e21b81526001600160a01b038c81166004830152602482018c90528a8116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af11580156109c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e591906127a9565b94506109f1858561133e565b6109fc88888361138d565b6001600160a01b0389166000908152600260205260408120610a1f908b90611450565b9050610a2d8b848c84611482565b505050505060016000559695505050505050565b6001600160a01b03831660009081526005602090815260408083208784529091528120610a6f908484611300565b95945050505050565b6001600160a01b0381166000908152600460209081526040808320858452909152812054610100900462ffffff165b90505b92915050565b6000610a6f338686868660006106c0565b610acc84843361115e565b6001600160a01b03831660009081526005602090815260408083208784529091529020610afa908383611539565b826001600160a01b0316847fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828484604051610b369291906126c9565b60405180910390a350505050565b610b57813330634ae2bafd60e11b6115fc565b6001600160a01b03811660008181526003602090815260408083208684529091528082208290555184917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c8091a35050565b6000610bb9868686868660006106c0565b9695505050505050565b610bce83833361115e565b6001600160a01b03821660009081526004602090815260408083208684529091529020610c0090849084908490611651565b60405162ffffff821681526001600160a01b0383169084907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237906020015b60405180910390a3505050565b610c7e7f0000000000000000000000000000000000000000000000000000000000000000333063b3fe472360e01b6116d8565b60008111610cce5760405162461bcd60e51b815260206004820152601d60248201527f48616c66206c696665206f66207a65726f206e6f7420616c6c6f7765640000006044820152606401610710565b60018190556040518181527fdae7136b6b1f9f3031d9536e8bdd02f1d223eb793054446ff278143abeafa21b9060200160405180910390a150565b6001600160a01b038116600090815260046020908152604080832085845290915281205460ff16610aa7565b610d4082823361115e565b6001600160a01b03811660009081526004602090815260408083208584529091528120610d70908490849061172d565b9050816001600160a01b0316837f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23783604051610c3e91815260200190565b6001600160a01b038116600090815260036020908152604080832085845290915281208054600160501b90046001600160581b031615159190606090829084610dfa5760009350610e2e565b805464ffffffffff164211610e22578054600160501b90046001600160581b03169350610e2e565b610e2b816111c5565b93505b6040518060400160405280600381526020016208aa8960eb1b8152509250600091505092959194509250565b610e6584843361115e565b6001600160a01b03831660009081526005602090815260408083208784529091529020610e939083836117d2565b826001600160a01b0316847f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced098484604051610b369291906126c9565b610eda86863361115e565b6001600160a01b03851660008181526003602090815260408083208a84528252808320938352600482528083208a8452909152902060015464ffffffffff86161015610f8e5760405162461bcd60e51b815260206004820152603e60248201527f50726963652064656361792068616c66206c696665206d75737420626520677260448201527f6561746572207468616e206d696e20616c6c6f7761626c652076616c756500006064820152608401610710565b6000610f9b825460ff1690565b9050610fbb838888610fac89611895565b610fb589611895565b86611901565b876001600160a01b0316897f7fbd78481800c1705ba89e4be2e8c979412fb121f7f3cbace9d7f5c3dd85c44e89898989604051610ffb94939291906126a2565b60405180910390a361100c82611a9e565b1561101b5761101b8989610d35565b505050505050505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b038616906110889085906127c2565b600060405180830381855afa9150503d80600081146110c3576040519150601f19603f3d011682016040523d82523d6000602084013e6110c8565b606091505b5091509150816110ea5760405162461bcd60e51b8152600401610710906127de565b805160c08190036111015750600095945050505050565b80610100036111165750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610710565b611169838383611abe565b6111a35760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610710565b505050565b6111b3858585611539565b6111be8583836117d2565b5050505050565b805460009064ffffffffff80821691600160281b810490911690600160a81b90046001600160581b03164283106112385760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b6044820152606401610710565b600082116112835760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b6044820152606401610710565b8454600160501b90046001600160581b0316428490038381816112a8576112a8612823565b0482901c91506002848583816112c0576112c0612823565b068402816112d0576112d0612823565b04816112de576112de612823565b0482039150828210156112f657509095945050505050565b5095945050505050565b600080611310620f42408461284f565b6001600160a01b038516600090815260208781526040808320938352929052205460ff169150509392505050565b8054620f4240830660010190610100900462ffffff16808211156113745760405162461bcd60e51b81526004016107109061274d565b80820361138757825460ff191660011783555b50505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa1580156113d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f99190612871565b9050816001600160a01b0316816001600160a01b0316146113875760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b6044820152606401610710565b8054600090610100900460ff161561146d5750805460ff16610aaa565b60006114798484611b47565b9150610aaa9050565b341561138757600080611495853461288e565b905080156115255760405133908290600081818185875af1925050503d80600081146114dd576040519150601f19603f3d011682016040523d82523d6000602084013e6114e2565b606091505b505080925050816115255760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610710565b61153186868686611c57565b505050505050565b805182511461155a5760405162461bcd60e51b8152600401610710906128a1565b60005b8251811015611387576001846000016000858481518110611580576115806128e2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008484815181106115bc576115bc6128e2565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115f4906128f8565b91505061155d565b61160884848484612022565b6113875760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610710565b60008061165e86866120aa565b91509150808462ffffff1611156116875760405162461bcd60e51b815260040161071090612911565b818462ffffff1610156116ac5760405162461bcd60e51b815260040161071090612911565b50815460ff1962ffffff90941661010081029490941663ffffffff199091161792149190911790555050565b6116e484848484612022565b6113875760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b6044820152606401610710565b6000806000846001600160a01b0316630ea5613f876040518263ffffffff1660e01b815260040161176091815260200190565b60c060405180830381865afa15801561177d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a19190612942565b5050875493831463ffffffff1990941661010062ffffff85160260ff19161793909317909655979650505050505050565b80518251146117f35760405162461bcd60e51b8152600401610710906128a1565b60005b8251811015611387576000846000016000858481518110611819576118196128e2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611855576118556128e2565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061188d906128f8565b9150506117f6565b60006001600160581b038211156118fd5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201526538206269747360d01b6064820152608401610710565b5090565b855464ffffffffff16158061191d5750855464ffffffffff1642105b806119255750805b6119705760405162461bcd60e51b815260206004820152601c60248201527b27379036b7b234b334b1b0ba34b7b7399036b4b216b0bab1ba34b7b760211b6044820152606401610710565b8464ffffffffff1642106119bd5760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b6044820152606401610710565b816001600160581b0316836001600160581b031611611a415760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d7573742062652067726561604482015279746572207468616e2061756374696f6e20656e6420707269636560301b6064820152608401610710565b50845464ffffffffff9485166001600160501b031990911617600160281b9390941692909202929092176001600160501b0316600160501b6001600160581b03938416026001600160a81b031617600160a81b9190921602179055565b8054600090610100900462ffffff16158015610aaa5750505460ff161590565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2a9190612871565b6001600160a01b0316826001600160a01b03161490509392505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03871690611ba99085906127c2565b6000604051808303816000865af19150503d8060008114611be6576040519150601f19603f3d011682016040523d82523d6000602084013e611beb565b606091505b509150915081611c0d5760405162461bcd60e51b8152600401610710906127de565b805160c0819003611c33575050835461ffff19166101001784555060009150610aaa9050565b8061010003611116575050835461ffff19166101011784555060019150610aaa9050565b82156113875760008060008060008060008715611da857604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038c1690638639415b9060440161010060405180830381865afa158015611cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce491906129a1565b969e50949c50909a50985091965091945090925090508115611da1576040516001600160a01b038216908390600081818185875af1925050503d8060008114611d49576040519150601f19603f3d011682016040523d82523d6000602084013e611d4e565b606091505b50508099505088611da15760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610710565b5050611e28565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b038a1690638639415b9060440160c060405180830381865afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190612a29565b949a509298509096509450925090505b8515611ecf576040516001600160a01b038616908790600081818185875af1925050503d8060008114611e77576040519150601f19603f3d011682016040523d82523d6000602084013e611e7c565b606091505b50508097505086611ecf5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610710565b8315611f6e576040516001600160a01b038416908590600081818185875af1925050503d8060008114611f1e576040519150601f19603f3d011682016040523d82523d6000602084013e611f23565b606091505b50508097505086611f6e5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610710565b8115612015576040516001600160a01b038216908390600081818185875af1925050503d8060008114611fbd576040519150601f19603f3d011682016040523d82523d6000602084013e611fc2565b606091505b505080975050866120155760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610710565b5050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015612086573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6f919061278e565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa1580156120f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121189190612942565b5093989297509195505050505050565b6001600160a01b038116811461213d57600080fd5b50565b803561214b81612128565b919050565b60006020828403121561216257600080fd5b81356105ee81612128565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156121ab576121ab61216d565b604052919050565b60006001600160401b038211156121cc576121cc61216d565b5060051b60200190565b600082601f8301126121e757600080fd5b813560206121fc6121f7836121b3565b612183565b82815260059290921b8401810191818101908684111561221b57600080fd5b8286015b8481101561223f57803561223281612128565b835291830191830161221f565b509695505050505050565b600082601f83011261225b57600080fd5b8135602061226b6121f7836121b3565b82815260059290921b8401810191818101908684111561228a57600080fd5b8286015b8481101561223f578035835291830191830161228e565b60008060008060008060c087890312156122be57600080fd5b863595506122ce60208801612140565b945060408701356001600160401b03808211156122ea57600080fd5b6122f68a838b016121d6565b9550606089013591508082111561230c57600080fd5b6123188a838b0161224a565b9450608089013591508082111561232e57600080fd5b61233a8a838b016121d6565b935060a089013591508082111561235057600080fd5b5061235d89828a0161224a565b9150509295509295509295565b60008060008060008060c0878903121561238357600080fd5b863561238e81612128565b95506020870135945060408701356123a581612128565b935060608701356123b581612128565b92506080870135915060a08701356123cc81612128565b809150509295509295509295565b600080600080608085870312156123f057600080fd5b84359350602085013561240281612128565b9250604085013561241281612128565b9396929550929360600135925050565b6000806040838503121561243557600080fd5b82359150602083013561244781612128565b809150509250929050565b6000806000806080858703121561246857600080fd5b84359350602085013561247a81612128565b925060408501356001600160401b038082111561249657600080fd5b6124a2888389016121d6565b935060608701359150808211156124b857600080fd5b506124c58782880161224a565b91505092959194509250565b600080600080600060a086880312156124e957600080fd5b85356124f481612128565b945060208601359350604086013561250b81612128565b9250606086013561251b81612128565b949793965091946080013592915050565b60008060006060848603121561254157600080fd5b83359250602084013561255381612128565b9150604084013562ffffff8116811461256b57600080fd5b809150509250925092565b60006020828403121561258857600080fd5b5035919050565b60005b838110156125aa578181015183820152602001612592565b50506000910152565b600081518084526125cb81602086016020860161258f565b601f01601f19169290920160200192915050565b602081526000610aa760208301846125b3565b841515815283602082015260806040820152600061261360808301856125b3565b905060018060a01b038316606083015295945050505050565b803564ffffffffff8116811461214b57600080fd5b60008060008060008060c0878903121561265a57600080fd5b86359550602087013561266c81612128565b945061267a6040880161262c565b93506126886060880161262c565b92506080870135915060a087013590509295509295509295565b64ffffffffff94851681529290931660208301526040820152606081019190915260800190565b604080825283519082018190526000906020906060840190828701845b8281101561270b5781516001600160a01b0316845292840192908401906001016126e6565b5050508381038285015284518082528583019183019060005b8181101561274057835183529284019291840191600101612724565b5090979650505050505050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b8051801515811461214b57600080fd5b6000602082840312156127a057600080fd5b610aa78261277e565b6000602082840312156127bb57600080fd5b5051919050565b600082516127d481846020870161258f565b9190910192915050565b60208082526025908201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604082015264185a5b195960da1b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008261286c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561288357600080fd5b81516105ee81612128565b81810381811115610aaa57610aaa612839565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161290a5761290a612839565b5060010190565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b60008060008060008060c0878903121561295b57600080fd5b86519550602087015194506129726040880161277e565b93506129806060880161277e565b92506080870151915061299560a0880161277e565b90509295509295509295565b600080600080600080600080610100898b0312156129be57600080fd5b8851975060208901516129d081612128565b60408a015160608b015191985096506129e881612128565b60808a015160a08b01519196509450612a0081612128565b60c08a015160e08b01519194509250612a1881612128565b809150509295985092959890939650565b60008060008060008060c08789031215612a4257600080fd5b865195506020870151612a5481612128565b604088015160608901519196509450612a6c81612128565b608088015160a089015191945092506123cc8161212856fea2646970667358221220130f5f5b0b6709c0e5b4dc89e36a629340c2076d55cbf5863e0464b8b83117a464736f6c63430008130033",
658
+ "bytecode": "0x610100604052602d6001553480156200001757600080fd5b5060405162002ab638038062002ab68339810160408190526200003a91620000f2565b60016000556001600160a01b03828116608081905260a052811660c081905260e08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a17fdae7136b6b1f9f3031d9536e8bdd02f1d223eb793054446ff278143abeafa21b600154604051620000c591815260200190565b60405180910390a150506200012a565b80516001600160a01b0381168114620000ed57600080fd5b919050565b600080604083850312156200010657600080fd5b6200011183620000d5565b91506200012160208401620000d5565b90509250929050565b60805160a05160c05160e05161294b6200016b60003960006106a4015260006102d2015260006107990152600081816103e30152610939015261294b6000f3fe60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e1461017757806339b87cf8146101985780634869f3df146101b85780637fbbc005146101d85780638a605b51146101eb57806395c575fa1461020b5780639a94488a1461022b5780639d923dff1461026d578063b000e33414610280578063b3fe4723146102a0578063bf5bf5f8146102c0578063cce7c9091461030c578063cf6681ea1461032c578063d3ddabe614610342578063d9bffbce14610381578063d9eb16db146103a1578063dd85582f146103d1578063e9d1e8ac14610405578063f7f5e9d014610444578063fca23f4e14610464578063fdca4cb814610484578063fea1d7b4146104a4575b600080fd5b34801561012c57600080fd5b5061014061013b36600461211f565b6104ed565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b50610175610170366004612187565b610525565b005b61018a610185366004612267565b61054e565b60405190815260200161014c565b3480156101a457600080fd5b506101406101b33660046122d7565b610837565b3480156101c457600080fd5b5061018a6101d336600461231f565b61084e565b61018a6101e63660046122d7565b610863565b3480156101f757600080fd5b5061017561020636600461234f565b610874565b34801561021757600080fd5b5061017561022636600461231f565b610895565b34801561023757600080fd5b5061024b61024636600461231f565b6108b6565b6040805182511515815260209283015162ffffff16928101929092520161014c565b61018a61027b3660046123da565b6108fe565b34801561028c57600080fd5b5061017561029b366004612435565b610919565b3480156102ac57600080fd5b506101756102bb36600461247f565b610934565b3480156102cc57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561031857600080fd5b5061014061032736600461231f565b6109f2565b34801561033857600080fd5b5061018a60015481565b34801561034e57600080fd5b5061037460405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c91906124e8565b34801561038d57600080fd5b5061017561039c36600461231f565b6109fe565b3480156103ad57600080fd5b506103c16103bc36600461231f565b610a13565b60405161014c94939291906124fb565b3480156103dd57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b34801561041157600080fd5b50610374604051806040016040528060138152602001724d696e7465724441457870486f6c646572563560681b81525081565b34801561045057600080fd5b5061017561045f36600461234f565b610aac565b34801561047057600080fd5b5061014061047f3660046122d7565b610ac5565b34801561049057600080fd5b5061017561049f36600461254a565b610aff565b3480156104b057600080fd5b506104c46104bf36600461231f565b610bd8565b6040805164ffffffffff958616815294909316602085015291830152606082015260800161014c565b6000806104f983610c28565b8054909150610100900460ff1615610515575460ff1692915050565b61051e83610c61565b9392505050565b6105308a8a33610dd7565b6105428a8a8a8a8a8a8a8a8a8a610e1c565b50505050505050505050565b60006002600054036105a75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556105b68686610e38565b60006105c28787610e69565b90508034101561060d5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b604482015260640161059e565b61061987878787610faa565b61065d5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b604482015260640161059e565b336001600160a01b0384161561076557604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528881166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071191906125bb565b9050806107605760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e670000604482015260640161059e565b849150505b6040516117cd60e21b81526001600160a01b038a81166004830152602482018a9052888116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af11580156107e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080491906125d6565b92506108108388610ff6565b61081b868683611062565b61082688838961112b565b505060016000559695505050505050565b600061084585858585610faa565b95945050505050565b600061085a83836111da565b90505b92915050565b60006108453386868686600061054e565b61087f868633610dd7565b61088d8686868686866111fa565b505050505050565b6108a8813330634ae2bafd60e11b611316565b6108b2828261136b565b5050565b60408051808201909152600080825260208201526108d483836113c6565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b600061090f8686868686600061054e565b9695505050505050565b610924838333610dd7565b61092f838383611411565b505050565b6109677f0000000000000000000000000000000000000000000000000000000000000000333063b3fe472360e01b6114e7565b600081116109b75760405162461bcd60e51b815260206004820152601d60248201527f48616c66206c696665206f66207a65726f206e6f7420616c6c6f776564000000604482015260640161059e565b60018190556040518181527fdae7136b6b1f9f3031d9536e8bdd02f1d223eb793054446ff278143abeafa21b9060200160405180910390a150565b600061085a838361153c565b610a09828233610dd7565b6108b28282611555565b6000806060600080610a2587876115f0565b8054600160501b90046001600160581b031615159550905084610a4b5760009350610a80565b805464ffffffffff164211610a73578054600160501b90046001600160581b03169350610a80565b610a7d8787610e69565b93505b6040518060400160405280600381526020016208aa8960eb1b8152509250600091505092959194509250565b610ab7868633610dd7565b61088d8686868686866115fa565b6000610ad18585611703565b6001600160a01b038416600090815260209182526040808220858352909252205460ff169050949350505050565b610b0a868633610dd7565b6001548364ffffffffff161015610b895760405162461bcd60e51b815260206004820152603e60248201527f50726963652064656361792068616c66206c696665206d75737420626520677260448201527f6561746572207468616e206d696e20616c6c6f7761626c652076616c75650000606482015260840161059e565b6000610b95878761153c565b9050610bb687878787610ba78861172b565b610bb08861172b565b87611797565b610bc087876119e1565b15610bcf57610bcf8787611555565b50505050505050565b6000806000806000610bea87876115f0565b5464ffffffffff80821699600160281b830490911698506001600160581b03600160501b830481169850600160a81b90920490911695509350505050565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610cc39085906125ef565b600060405180830381855afa9150503d8060008114610cfe576040519150601f19603f3d011682016040523d82523d6000602084013e610d03565b606091505b509150915081610d635760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840161059e565b805160c0819003610d7a5750600095945050505050565b8061010003610d8f5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640161059e565b610de2838383611a14565b61092f5760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b604482015260640161059e565b610e2a8a8a8a8a8a8a6111fa565b6105428a8a868686866115fa565b6000610e4483836113c6565b805490915060ff161561092f5760405162461bcd60e51b815260040161059e9061260b565b600080610e7684846115f0565b805490915064ffffffffff80821691600160281b90041680610ed55760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b604482015260640161059e565b81421015610f1f5760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b604482015260640161059e565b8254600160501b90046001600160581b031642839003828181610f4457610f4461263c565b0482901c9150600183848381610f5c57610f5c61263c565b06840281610f6c57610f6c61263c565b875491900490911c90920391600160a81b90046001600160581b031680831015610f9d57955061085d945050505050565b5090979650505050505050565b600080610fb78686611703565b90506000610fc484611a9d565b6001600160a01b038616600090815260209384526040808220928252919093529091205460ff16915050949350505050565b600061100183611a9d565b9050600061100f82846113c6565b8054909150620f4240850660010190610100900462ffffff16808211156110485760405162461bcd60e51b815260040161059e9061260b565b80820361088d57825460ff19166001178355505050505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa1580156110aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ce9190612652565b9050816001600160a01b0316816001600160a01b0316146111255760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b604482015260640161059e565b50505050565b341561092f57600061113d8334612685565b905080156111cf57604051600090339083908381818185875af1925050503d8060008114611187576040519150601f19603f3d011682016040523d82523d6000602084013e61118c565b606091505b50509050806111cd5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260640161059e565b505b611125848484611aac565b6000806111e784846113c6565b54610100900462ffffff16949350505050565b8281146112195760405162461bcd60e51b815260040161059e90612698565b60006112258787611703565b90508360005b818110156112c357600183600089898581811061124a5761124a6126d9565b905060200201602081019061125f919061211f565b6001600160a01b03166001600160a01b031681526020019081526020016000206000878785818110611293576112936126d9565b60209081029290920135835250810191909152604001600020805460ff191691151591909117905560010161122b565b50866001600160a01b0316887fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828888888860405161130494939291906126ef565b60405180910390a35050505050505050565b61132284848484611c6d565b6111255760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b604482015260640161059e565b611373611cf5565b6001600160a01b0382166000818152602092835260408082208683529093528281208190559151909184917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c809190a35050565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee5b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60008061141e8585611d19565b91509150808362ffffff1611156114475760405162461bcd60e51b815260040161059e9061276d565b818362ffffff16101561146c5760405162461bcd60e51b815260040161059e9061276d565b600061147886866113c6565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b6114f384848484611c6d565b6111255760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b604482015260640161059e565b60008061154984846113c6565b5460ff16949350505050565b6000806115628484611d19565b91509150600061157285856113c6565b905061157d82611d97565b815460ff1962ffffff92909216610100029190911663ffffffff19909116178383141781556040516001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237906115e19086815260200190565b60405180910390a35050505050565b60006113ea611cf5565b8281146116195760405162461bcd60e51b815260040161059e90612698565b60006116258787611703565b90508360005b818110156116c25760008381898985818110611649576116496126d9565b905060200201602081019061165e919061211f565b6001600160a01b03166001600160a01b031681526020019081526020016000206000878785818110611692576116926126d9565b60209081029290920135835250810191909152604001600020805460ff191691151591909117905560010161162b565b50866001600160a01b0316887f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced098888888860405161130494939291906126ef565b60007f7805f013cae363c49df6acca2dcd8a8f0bd9005c2f87b85d8dbbce9098e4afd76113ea565b60006001600160581b038211156117935760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201526538206269747360d01b606482015260840161059e565b5090565b60006117a388886115f0565b805490915064ffffffffff1615806117c25750805464ffffffffff1642105b806117ca5750815b6118155760405162461bcd60e51b815260206004820152601c60248201527b27379036b7b234b334b1b0ba34b7b7399036b4b216b0bab1ba34b7b760211b604482015260640161059e565b8564ffffffffff1642106118625760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b604482015260640161059e565b826001600160581b0316846001600160581b0316116118e65760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d7573742062652067726561604482015279746572207468616e2061756374696f6e20656e6420707269636560301b606482015260840161059e565b60008564ffffffffff16116119335760405162461bcd60e51b815260206004820152601360248201527204f6e6c792068616c66206c696665206774203606c1b604482015260640161059e565b805464ffffffffff8781166001600160501b03199092168217600160281b918816918202176001600160501b0316600160501b6001600160581b038881169182026001600160a81b031692909217600160a81b9288169283021785556040805194855260208501939093529183019190915260608201526001600160a01b0388169089907f7fbd78481800c1705ba89e4be2e8c979412fb121f7f3cbace9d7f5c3dd85c44e90608001611304565b6000806119ee84846113c6565b8054909150610100900462ffffff16158015611a0c5750805460ff16155b949350505050565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a809190612652565b6001600160a01b0316826001600160a01b03161490509392505050565b600061085d620f42408361279e565b81600003611ab957505050565b6000611ac482611dfb565b90506000806000806000806000808815611b6257604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa158015611b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4991906127c0565b969e50949c50929a509098509650945092509050611be2565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015611bae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd29190612848565b949c50929a509096509450925090505b8a8285611bef898c6128a3565b611bf991906128a3565b611c0391906128a3565b14611c4f5760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b604482015260640161059e565b611c5f86868a8a88888888611e49565b505050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015611cd1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084591906125bb565b7fd81cd75c069a2440f70df8647083d567d07e376316cc889f0f9fba1085bc5a0090565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611d63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8791906128b6565b5093989297509195505050505050565b600062ffffff8211156117935760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201526534206269747360d01b606482015260840161059e565b600080611e0783610c28565b8054909150610100900460ff1615611e23575460ff1692915050565b6000611e2e84610c61565b825481151561ffff1990911617610100179092555092915050565b8715611ef4576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114611e9c576040519150601f19603f3d011682016040523d82523d6000602084013e611ea1565b606091505b5050905080611ef25760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c6564604482015260640161059e565b505b8515611f9f576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611f47576040519150601f19603f3d011682016040523d82523d6000602084013e611f4c565b606091505b5050905080611f9d5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c65640000604482015260640161059e565b505b8315612042576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611ff2576040519150601f19603f3d011682016040523d82523d6000602084013e611ff7565b606091505b50509050806120405760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b604482015260640161059e565b505b81156120ed576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114612095576040519150601f19603f3d011682016040523d82523d6000602084013e61209a565b606091505b50509050806120eb5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c656400604482015260640161059e565b505b5050505050505050565b6001600160a01b038116811461210c57600080fd5b50565b803561211a816120f7565b919050565b60006020828403121561213157600080fd5b813561051e816120f7565b60008083601f84011261214e57600080fd5b5081356001600160401b0381111561216557600080fd5b6020830191508360208260051b850101111561218057600080fd5b9250929050565b60008060008060008060008060008060c08b8d0312156121a657600080fd5b8a3599506121b660208c0161210f565b985060408b01356001600160401b03808211156121d257600080fd5b6121de8e838f0161213c565b909a50985060608d01359150808211156121f757600080fd5b6122038e838f0161213c565b909850965060808d013591508082111561221c57600080fd5b6122288e838f0161213c565b909650945060a08d013591508082111561224157600080fd5b5061224e8d828e0161213c565b915080935050809150509295989b9194979a5092959850565b60008060008060008060c0878903121561228057600080fd5b863561228b816120f7565b95506020870135945060408701356122a2816120f7565b935060608701356122b2816120f7565b92506080870135915060a08701356122c9816120f7565b809150509295509295509295565b600080600080608085870312156122ed57600080fd5b8435935060208501356122ff816120f7565b9250604085013561230f816120f7565b9396929550929360600135925050565b6000806040838503121561233257600080fd5b823591506020830135612344816120f7565b809150509250929050565b6000806000806000806080878903121561236857600080fd5b86359550602087013561237a816120f7565b945060408701356001600160401b038082111561239657600080fd5b6123a28a838b0161213c565b909650945060608901359150808211156123bb57600080fd5b506123c889828a0161213c565b979a9699509497509295939492505050565b600080600080600060a086880312156123f257600080fd5b85356123fd816120f7565b9450602086013593506040860135612414816120f7565b92506060860135612424816120f7565b949793965091946080013592915050565b60008060006060848603121561244a57600080fd5b83359250602084013561245c816120f7565b9150604084013562ffffff8116811461247457600080fd5b809150509250925092565b60006020828403121561249157600080fd5b5035919050565b60005b838110156124b357818101518382015260200161249b565b50506000910152565b600081518084526124d4816020860160208601612498565b601f01601f19169290920160200192915050565b60208152600061085a60208301846124bc565b841515815283602082015260806040820152600061251c60808301856124bc565b905060018060a01b038316606083015295945050505050565b803564ffffffffff8116811461211a57600080fd5b60008060008060008060c0878903121561256357600080fd5b863595506020870135612575816120f7565b945061258360408801612535565b935061259160608801612535565b92506080870135915060a087013590509295509295509295565b8051801515811461211a57600080fd5b6000602082840312156125cd57600080fd5b61085a826125ab565b6000602082840312156125e857600080fd5b5051919050565b60008251612601818460208701612498565b9190910192915050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b60006020828403121561266457600080fd5b815161051e816120f7565b634e487b7160e01b600052601160045260246000fd5b8181038181111561085d5761085d61266f565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6040808252810184905260008560608301825b87811015612732578235612715816120f7565b6001600160a01b0316825260209283019290910190600101612702565b5083810360208501528481526001600160fb1b0385111561275257600080fd5b8460051b915081866020830137016020019695505050505050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b6000826127bb57634e487b7160e01b600052601260045260246000fd5b500490565b600080600080600080600080610100898b0312156127dd57600080fd5b8851975060208901516127ef816120f7565b60408a015160608b01519198509650612807816120f7565b60808a015160a08b0151919650945061281f816120f7565b60c08a015160e08b01519194509250612837816120f7565b809150509295985092959890939650565b60008060008060008060c0878903121561286157600080fd5b865195506020870151612873816120f7565b60408801516060890151919650945061288b816120f7565b608088015160a089015191945092506122c9816120f7565b8082018082111561085d5761085d61266f565b60008060008060008060c087890312156128cf57600080fd5b86519550602087015194506128e6604088016125ab565b93506128f4606088016125ab565b92506080870151915061290960a088016125ab565b9050929550929550929556fea2646970667358221220ac3f5e3b0b5344a227b44df0006f9bc8c6dbc3d4c5163b7dc6e3b65786820df564736f6c63430008130033",
659
+ "deployedBytecode": "0x60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e1461017757806339b87cf8146101985780634869f3df146101b85780637fbbc005146101d85780638a605b51146101eb57806395c575fa1461020b5780639a94488a1461022b5780639d923dff1461026d578063b000e33414610280578063b3fe4723146102a0578063bf5bf5f8146102c0578063cce7c9091461030c578063cf6681ea1461032c578063d3ddabe614610342578063d9bffbce14610381578063d9eb16db146103a1578063dd85582f146103d1578063e9d1e8ac14610405578063f7f5e9d014610444578063fca23f4e14610464578063fdca4cb814610484578063fea1d7b4146104a4575b600080fd5b34801561012c57600080fd5b5061014061013b36600461211f565b6104ed565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b50610175610170366004612187565b610525565b005b61018a610185366004612267565b61054e565b60405190815260200161014c565b3480156101a457600080fd5b506101406101b33660046122d7565b610837565b3480156101c457600080fd5b5061018a6101d336600461231f565b61084e565b61018a6101e63660046122d7565b610863565b3480156101f757600080fd5b5061017561020636600461234f565b610874565b34801561021757600080fd5b5061017561022636600461231f565b610895565b34801561023757600080fd5b5061024b61024636600461231f565b6108b6565b6040805182511515815260209283015162ffffff16928101929092520161014c565b61018a61027b3660046123da565b6108fe565b34801561028c57600080fd5b5061017561029b366004612435565b610919565b3480156102ac57600080fd5b506101756102bb36600461247f565b610934565b3480156102cc57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561031857600080fd5b5061014061032736600461231f565b6109f2565b34801561033857600080fd5b5061018a60015481565b34801561034e57600080fd5b5061037460405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c91906124e8565b34801561038d57600080fd5b5061017561039c36600461231f565b6109fe565b3480156103ad57600080fd5b506103c16103bc36600461231f565b610a13565b60405161014c94939291906124fb565b3480156103dd57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b34801561041157600080fd5b50610374604051806040016040528060138152602001724d696e7465724441457870486f6c646572563560681b81525081565b34801561045057600080fd5b5061017561045f36600461234f565b610aac565b34801561047057600080fd5b5061014061047f3660046122d7565b610ac5565b34801561049057600080fd5b5061017561049f36600461254a565b610aff565b3480156104b057600080fd5b506104c46104bf36600461231f565b610bd8565b6040805164ffffffffff958616815294909316602085015291830152606082015260800161014c565b6000806104f983610c28565b8054909150610100900460ff1615610515575460ff1692915050565b61051e83610c61565b9392505050565b6105308a8a33610dd7565b6105428a8a8a8a8a8a8a8a8a8a610e1c565b50505050505050505050565b60006002600054036105a75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556105b68686610e38565b60006105c28787610e69565b90508034101561060d5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b604482015260640161059e565b61061987878787610faa565b61065d5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b604482015260640161059e565b336001600160a01b0384161561076557604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528881166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071191906125bb565b9050806107605760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e670000604482015260640161059e565b849150505b6040516117cd60e21b81526001600160a01b038a81166004830152602482018a9052888116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af11580156107e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080491906125d6565b92506108108388610ff6565b61081b868683611062565b61082688838961112b565b505060016000559695505050505050565b600061084585858585610faa565b95945050505050565b600061085a83836111da565b90505b92915050565b60006108453386868686600061054e565b61087f868633610dd7565b61088d8686868686866111fa565b505050505050565b6108a8813330634ae2bafd60e11b611316565b6108b2828261136b565b5050565b60408051808201909152600080825260208201526108d483836113c6565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b600061090f8686868686600061054e565b9695505050505050565b610924838333610dd7565b61092f838383611411565b505050565b6109677f0000000000000000000000000000000000000000000000000000000000000000333063b3fe472360e01b6114e7565b600081116109b75760405162461bcd60e51b815260206004820152601d60248201527f48616c66206c696665206f66207a65726f206e6f7420616c6c6f776564000000604482015260640161059e565b60018190556040518181527fdae7136b6b1f9f3031d9536e8bdd02f1d223eb793054446ff278143abeafa21b9060200160405180910390a150565b600061085a838361153c565b610a09828233610dd7565b6108b28282611555565b6000806060600080610a2587876115f0565b8054600160501b90046001600160581b031615159550905084610a4b5760009350610a80565b805464ffffffffff164211610a73578054600160501b90046001600160581b03169350610a80565b610a7d8787610e69565b93505b6040518060400160405280600381526020016208aa8960eb1b8152509250600091505092959194509250565b610ab7868633610dd7565b61088d8686868686866115fa565b6000610ad18585611703565b6001600160a01b038416600090815260209182526040808220858352909252205460ff169050949350505050565b610b0a868633610dd7565b6001548364ffffffffff161015610b895760405162461bcd60e51b815260206004820152603e60248201527f50726963652064656361792068616c66206c696665206d75737420626520677260448201527f6561746572207468616e206d696e20616c6c6f7761626c652076616c75650000606482015260840161059e565b6000610b95878761153c565b9050610bb687878787610ba78861172b565b610bb08861172b565b87611797565b610bc087876119e1565b15610bcf57610bcf8787611555565b50505050505050565b6000806000806000610bea87876115f0565b5464ffffffffff80821699600160281b830490911698506001600160581b03600160501b830481169850600160a81b90920490911695509350505050565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610cc39085906125ef565b600060405180830381855afa9150503d8060008114610cfe576040519150601f19603f3d011682016040523d82523d6000602084013e610d03565b606091505b509150915081610d635760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840161059e565b805160c0819003610d7a5750600095945050505050565b8061010003610d8f5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640161059e565b610de2838383611a14565b61092f5760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b604482015260640161059e565b610e2a8a8a8a8a8a8a6111fa565b6105428a8a868686866115fa565b6000610e4483836113c6565b805490915060ff161561092f5760405162461bcd60e51b815260040161059e9061260b565b600080610e7684846115f0565b805490915064ffffffffff80821691600160281b90041680610ed55760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b604482015260640161059e565b81421015610f1f5760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b604482015260640161059e565b8254600160501b90046001600160581b031642839003828181610f4457610f4461263c565b0482901c9150600183848381610f5c57610f5c61263c565b06840281610f6c57610f6c61263c565b875491900490911c90920391600160a81b90046001600160581b031680831015610f9d57955061085d945050505050565b5090979650505050505050565b600080610fb78686611703565b90506000610fc484611a9d565b6001600160a01b038616600090815260209384526040808220928252919093529091205460ff16915050949350505050565b600061100183611a9d565b9050600061100f82846113c6565b8054909150620f4240850660010190610100900462ffffff16808211156110485760405162461bcd60e51b815260040161059e9061260b565b80820361088d57825460ff19166001178355505050505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa1580156110aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ce9190612652565b9050816001600160a01b0316816001600160a01b0316146111255760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b604482015260640161059e565b50505050565b341561092f57600061113d8334612685565b905080156111cf57604051600090339083908381818185875af1925050503d8060008114611187576040519150601f19603f3d011682016040523d82523d6000602084013e61118c565b606091505b50509050806111cd5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260640161059e565b505b611125848484611aac565b6000806111e784846113c6565b54610100900462ffffff16949350505050565b8281146112195760405162461bcd60e51b815260040161059e90612698565b60006112258787611703565b90508360005b818110156112c357600183600089898581811061124a5761124a6126d9565b905060200201602081019061125f919061211f565b6001600160a01b03166001600160a01b031681526020019081526020016000206000878785818110611293576112936126d9565b60209081029290920135835250810191909152604001600020805460ff191691151591909117905560010161122b565b50866001600160a01b0316887fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828888888860405161130494939291906126ef565b60405180910390a35050505050505050565b61132284848484611c6d565b6111255760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b604482015260640161059e565b611373611cf5565b6001600160a01b0382166000818152602092835260408082208683529093528281208190559151909184917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c809190a35050565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee5b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60008061141e8585611d19565b91509150808362ffffff1611156114475760405162461bcd60e51b815260040161059e9061276d565b818362ffffff16101561146c5760405162461bcd60e51b815260040161059e9061276d565b600061147886866113c6565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b6114f384848484611c6d565b6111255760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b604482015260640161059e565b60008061154984846113c6565b5460ff16949350505050565b6000806115628484611d19565b91509150600061157285856113c6565b905061157d82611d97565b815460ff1962ffffff92909216610100029190911663ffffffff19909116178383141781556040516001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237906115e19086815260200190565b60405180910390a35050505050565b60006113ea611cf5565b8281146116195760405162461bcd60e51b815260040161059e90612698565b60006116258787611703565b90508360005b818110156116c25760008381898985818110611649576116496126d9565b905060200201602081019061165e919061211f565b6001600160a01b03166001600160a01b031681526020019081526020016000206000878785818110611692576116926126d9565b60209081029290920135835250810191909152604001600020805460ff191691151591909117905560010161162b565b50866001600160a01b0316887f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced098888888860405161130494939291906126ef565b60007f7805f013cae363c49df6acca2dcd8a8f0bd9005c2f87b85d8dbbce9098e4afd76113ea565b60006001600160581b038211156117935760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201526538206269747360d01b606482015260840161059e565b5090565b60006117a388886115f0565b805490915064ffffffffff1615806117c25750805464ffffffffff1642105b806117ca5750815b6118155760405162461bcd60e51b815260206004820152601c60248201527b27379036b7b234b334b1b0ba34b7b7399036b4b216b0bab1ba34b7b760211b604482015260640161059e565b8564ffffffffff1642106118625760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b604482015260640161059e565b826001600160581b0316846001600160581b0316116118e65760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d7573742062652067726561604482015279746572207468616e2061756374696f6e20656e6420707269636560301b606482015260840161059e565b60008564ffffffffff16116119335760405162461bcd60e51b815260206004820152601360248201527204f6e6c792068616c66206c696665206774203606c1b604482015260640161059e565b805464ffffffffff8781166001600160501b03199092168217600160281b918816918202176001600160501b0316600160501b6001600160581b038881169182026001600160a81b031692909217600160a81b9288169283021785556040805194855260208501939093529183019190915260608201526001600160a01b0388169089907f7fbd78481800c1705ba89e4be2e8c979412fb121f7f3cbace9d7f5c3dd85c44e90608001611304565b6000806119ee84846113c6565b8054909150610100900462ffffff16158015611a0c5750805460ff16155b949350505050565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a809190612652565b6001600160a01b0316826001600160a01b03161490509392505050565b600061085d620f42408361279e565b81600003611ab957505050565b6000611ac482611dfb565b90506000806000806000806000808815611b6257604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa158015611b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4991906127c0565b969e50949c50929a509098509650945092509050611be2565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015611bae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd29190612848565b949c50929a509096509450925090505b8a8285611bef898c6128a3565b611bf991906128a3565b611c0391906128a3565b14611c4f5760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b604482015260640161059e565b611c5f86868a8a88888888611e49565b505050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015611cd1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084591906125bb565b7fd81cd75c069a2440f70df8647083d567d07e376316cc889f0f9fba1085bc5a0090565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611d63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8791906128b6565b5093989297509195505050505050565b600062ffffff8211156117935760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201526534206269747360d01b606482015260840161059e565b600080611e0783610c28565b8054909150610100900460ff1615611e23575460ff1692915050565b6000611e2e84610c61565b825481151561ffff1990911617610100179092555092915050565b8715611ef4576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114611e9c576040519150601f19603f3d011682016040523d82523d6000602084013e611ea1565b606091505b5050905080611ef25760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c6564604482015260640161059e565b505b8515611f9f576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611f47576040519150601f19603f3d011682016040523d82523d6000602084013e611f4c565b606091505b5050905080611f9d5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c65640000604482015260640161059e565b505b8315612042576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611ff2576040519150601f19603f3d011682016040523d82523d6000602084013e611ff7565b606091505b50509050806120405760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b604482015260640161059e565b505b81156120ed576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114612095576040519150601f19603f3d011682016040523d82523d6000602084013e61209a565b606091505b50509050806120eb5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c656400604482015260640161059e565b505b5050505050505050565b6001600160a01b038116811461210c57600080fd5b50565b803561211a816120f7565b919050565b60006020828403121561213157600080fd5b813561051e816120f7565b60008083601f84011261214e57600080fd5b5081356001600160401b0381111561216557600080fd5b6020830191508360208260051b850101111561218057600080fd5b9250929050565b60008060008060008060008060008060c08b8d0312156121a657600080fd5b8a3599506121b660208c0161210f565b985060408b01356001600160401b03808211156121d257600080fd5b6121de8e838f0161213c565b909a50985060608d01359150808211156121f757600080fd5b6122038e838f0161213c565b909850965060808d013591508082111561221c57600080fd5b6122288e838f0161213c565b909650945060a08d013591508082111561224157600080fd5b5061224e8d828e0161213c565b915080935050809150509295989b9194979a5092959850565b60008060008060008060c0878903121561228057600080fd5b863561228b816120f7565b95506020870135945060408701356122a2816120f7565b935060608701356122b2816120f7565b92506080870135915060a08701356122c9816120f7565b809150509295509295509295565b600080600080608085870312156122ed57600080fd5b8435935060208501356122ff816120f7565b9250604085013561230f816120f7565b9396929550929360600135925050565b6000806040838503121561233257600080fd5b823591506020830135612344816120f7565b809150509250929050565b6000806000806000806080878903121561236857600080fd5b86359550602087013561237a816120f7565b945060408701356001600160401b038082111561239657600080fd5b6123a28a838b0161213c565b909650945060608901359150808211156123bb57600080fd5b506123c889828a0161213c565b979a9699509497509295939492505050565b600080600080600060a086880312156123f257600080fd5b85356123fd816120f7565b9450602086013593506040860135612414816120f7565b92506060860135612424816120f7565b949793965091946080013592915050565b60008060006060848603121561244a57600080fd5b83359250602084013561245c816120f7565b9150604084013562ffffff8116811461247457600080fd5b809150509250925092565b60006020828403121561249157600080fd5b5035919050565b60005b838110156124b357818101518382015260200161249b565b50506000910152565b600081518084526124d4816020860160208601612498565b601f01601f19169290920160200192915050565b60208152600061085a60208301846124bc565b841515815283602082015260806040820152600061251c60808301856124bc565b905060018060a01b038316606083015295945050505050565b803564ffffffffff8116811461211a57600080fd5b60008060008060008060c0878903121561256357600080fd5b863595506020870135612575816120f7565b945061258360408801612535565b935061259160608801612535565b92506080870135915060a087013590509295509295509295565b8051801515811461211a57600080fd5b6000602082840312156125cd57600080fd5b61085a826125ab565b6000602082840312156125e857600080fd5b5051919050565b60008251612601818460208701612498565b9190910192915050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b60006020828403121561266457600080fd5b815161051e816120f7565b634e487b7160e01b600052601160045260246000fd5b8181038181111561085d5761085d61266f565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6040808252810184905260008560608301825b87811015612732578235612715816120f7565b6001600160a01b0316825260209283019290910190600101612702565b5083810360208501528481526001600160fb1b0385111561275257600080fd5b8460051b915081866020830137016020019695505050505050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b6000826127bb57634e487b7160e01b600052601260045260246000fd5b500490565b600080600080600080600080610100898b0312156127dd57600080fd5b8851975060208901516127ef816120f7565b60408a015160608b01519198509650612807816120f7565b60808a015160a08b0151919650945061281f816120f7565b60c08a015160e08b01519194509250612837816120f7565b809150509295985092959890939650565b60008060008060008060c0878903121561286157600080fd5b865195506020870151612873816120f7565b60408801516060890151919650945061288b816120f7565b608088015160a089015191945092506122c9816120f7565b8082018082111561085d5761085d61266f565b60008060008060008060c087890312156128cf57600080fd5b86519550602087015194506128e6604088016125ab565b93506128f4606088016125ab565b92506080870151915061290960a088016125ab565b9050929550929550929556fea2646970667358221220ac3f5e3b0b5344a227b44df0006f9bc8c6dbc3d4c5163b7dc6e3b65786820df564736f6c63430008130033",
1226
660
  "linkReferences": {},
1227
661
  "deployedLinkReferences": {}
1228
662
  }