@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,679 +7,13 @@
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
  "stateMutability": "nonpayable",
15
15
  "type": "constructor"
16
16
  },
17
- {
18
- "anonymous": false,
19
- "inputs": [
20
- {
21
- "indexed": true,
22
- "internalType": "uint256",
23
- "name": "tokenId",
24
- "type": "uint256"
25
- },
26
- {
27
- "indexed": true,
28
- "internalType": "address",
29
- "name": "coreContract",
30
- "type": "address"
31
- },
32
- {
33
- "indexed": true,
34
- "internalType": "address",
35
- "name": "bidder",
36
- "type": "address"
37
- },
38
- {
39
- "indexed": false,
40
- "internalType": "uint256",
41
- "name": "bidAmount",
42
- "type": "uint256"
43
- }
44
- ],
45
- "name": "AuctionBid",
46
- "type": "event"
47
- },
48
- {
49
- "anonymous": false,
50
- "inputs": [
51
- {
52
- "indexed": true,
53
- "internalType": "uint256",
54
- "name": "tokenId",
55
- "type": "uint256"
56
- },
57
- {
58
- "indexed": true,
59
- "internalType": "address",
60
- "name": "coreContract",
61
- "type": "address"
62
- },
63
- {
64
- "indexed": true,
65
- "internalType": "address",
66
- "name": "bidder",
67
- "type": "address"
68
- },
69
- {
70
- "indexed": false,
71
- "internalType": "uint256",
72
- "name": "bidAmount",
73
- "type": "uint256"
74
- },
75
- {
76
- "indexed": false,
77
- "internalType": "uint64",
78
- "name": "endTime",
79
- "type": "uint64"
80
- },
81
- {
82
- "indexed": false,
83
- "internalType": "uint8",
84
- "name": "minBidIncrementPercentage",
85
- "type": "uint8"
86
- }
87
- ],
88
- "name": "AuctionInitialized",
89
- "type": "event"
90
- },
91
- {
92
- "anonymous": false,
93
- "inputs": [
94
- {
95
- "indexed": true,
96
- "internalType": "uint256",
97
- "name": "tokenId",
98
- "type": "uint256"
99
- },
100
- {
101
- "indexed": true,
102
- "internalType": "address",
103
- "name": "coreContract",
104
- "type": "address"
105
- },
106
- {
107
- "indexed": true,
108
- "internalType": "address",
109
- "name": "winner",
110
- "type": "address"
111
- },
112
- {
113
- "indexed": false,
114
- "internalType": "uint256",
115
- "name": "price",
116
- "type": "uint256"
117
- }
118
- ],
119
- "name": "AuctionSettled",
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
- "name": "ConfigKeyRemoved",
145
- "type": "event"
146
- },
147
- {
148
- "anonymous": false,
149
- "inputs": [
150
- {
151
- "indexed": true,
152
- "internalType": "uint256",
153
- "name": "_projectId",
154
- "type": "uint256"
155
- },
156
- {
157
- "indexed": true,
158
- "internalType": "address",
159
- "name": "_coreContract",
160
- "type": "address"
161
- },
162
- {
163
- "indexed": false,
164
- "internalType": "bytes32",
165
- "name": "_key",
166
- "type": "bytes32"
167
- },
168
- {
169
- "indexed": false,
170
- "internalType": "uint256",
171
- "name": "_value",
172
- "type": "uint256"
173
- }
174
- ],
175
- "name": "ConfigValueAddedToSet",
176
- "type": "event"
177
- },
178
- {
179
- "anonymous": false,
180
- "inputs": [
181
- {
182
- "indexed": true,
183
- "internalType": "uint256",
184
- "name": "_projectId",
185
- "type": "uint256"
186
- },
187
- {
188
- "indexed": true,
189
- "internalType": "address",
190
- "name": "_coreContract",
191
- "type": "address"
192
- },
193
- {
194
- "indexed": false,
195
- "internalType": "bytes32",
196
- "name": "_key",
197
- "type": "bytes32"
198
- },
199
- {
200
- "indexed": false,
201
- "internalType": "address",
202
- "name": "_value",
203
- "type": "address"
204
- }
205
- ],
206
- "name": "ConfigValueAddedToSet",
207
- "type": "event"
208
- },
209
- {
210
- "anonymous": false,
211
- "inputs": [
212
- {
213
- "indexed": true,
214
- "internalType": "uint256",
215
- "name": "_projectId",
216
- "type": "uint256"
217
- },
218
- {
219
- "indexed": true,
220
- "internalType": "address",
221
- "name": "_coreContract",
222
- "type": "address"
223
- },
224
- {
225
- "indexed": false,
226
- "internalType": "bytes32",
227
- "name": "_key",
228
- "type": "bytes32"
229
- },
230
- {
231
- "indexed": false,
232
- "internalType": "bytes32",
233
- "name": "_value",
234
- "type": "bytes32"
235
- }
236
- ],
237
- "name": "ConfigValueAddedToSet",
238
- "type": "event"
239
- },
240
- {
241
- "anonymous": false,
242
- "inputs": [
243
- {
244
- "indexed": true,
245
- "internalType": "uint256",
246
- "name": "_projectId",
247
- "type": "uint256"
248
- },
249
- {
250
- "indexed": true,
251
- "internalType": "address",
252
- "name": "_coreContract",
253
- "type": "address"
254
- },
255
- {
256
- "indexed": false,
257
- "internalType": "bytes32",
258
- "name": "_key",
259
- "type": "bytes32"
260
- },
261
- {
262
- "indexed": false,
263
- "internalType": "uint256",
264
- "name": "_value",
265
- "type": "uint256"
266
- }
267
- ],
268
- "name": "ConfigValueRemovedFromSet",
269
- "type": "event"
270
- },
271
- {
272
- "anonymous": false,
273
- "inputs": [
274
- {
275
- "indexed": true,
276
- "internalType": "uint256",
277
- "name": "_projectId",
278
- "type": "uint256"
279
- },
280
- {
281
- "indexed": true,
282
- "internalType": "address",
283
- "name": "_coreContract",
284
- "type": "address"
285
- },
286
- {
287
- "indexed": false,
288
- "internalType": "bytes32",
289
- "name": "_key",
290
- "type": "bytes32"
291
- },
292
- {
293
- "indexed": false,
294
- "internalType": "address",
295
- "name": "_value",
296
- "type": "address"
297
- }
298
- ],
299
- "name": "ConfigValueRemovedFromSet",
300
- "type": "event"
301
- },
302
- {
303
- "anonymous": false,
304
- "inputs": [
305
- {
306
- "indexed": true,
307
- "internalType": "uint256",
308
- "name": "_projectId",
309
- "type": "uint256"
310
- },
311
- {
312
- "indexed": true,
313
- "internalType": "address",
314
- "name": "_coreContract",
315
- "type": "address"
316
- },
317
- {
318
- "indexed": false,
319
- "internalType": "bytes32",
320
- "name": "_key",
321
- "type": "bytes32"
322
- },
323
- {
324
- "indexed": false,
325
- "internalType": "bytes32",
326
- "name": "_value",
327
- "type": "bytes32"
328
- }
329
- ],
330
- "name": "ConfigValueRemovedFromSet",
331
- "type": "event"
332
- },
333
- {
334
- "anonymous": false,
335
- "inputs": [
336
- {
337
- "indexed": true,
338
- "internalType": "uint256",
339
- "name": "_projectId",
340
- "type": "uint256"
341
- },
342
- {
343
- "indexed": true,
344
- "internalType": "address",
345
- "name": "_coreContract",
346
- "type": "address"
347
- },
348
- {
349
- "indexed": false,
350
- "internalType": "bytes32",
351
- "name": "_key",
352
- "type": "bytes32"
353
- },
354
- {
355
- "indexed": false,
356
- "internalType": "bool",
357
- "name": "_value",
358
- "type": "bool"
359
- }
360
- ],
361
- "name": "ConfigValueSet",
362
- "type": "event"
363
- },
364
- {
365
- "anonymous": false,
366
- "inputs": [
367
- {
368
- "indexed": true,
369
- "internalType": "uint256",
370
- "name": "_projectId",
371
- "type": "uint256"
372
- },
373
- {
374
- "indexed": true,
375
- "internalType": "address",
376
- "name": "_coreContract",
377
- "type": "address"
378
- },
379
- {
380
- "indexed": false,
381
- "internalType": "bytes32",
382
- "name": "_key",
383
- "type": "bytes32"
384
- },
385
- {
386
- "indexed": false,
387
- "internalType": "uint256",
388
- "name": "_value",
389
- "type": "uint256"
390
- }
391
- ],
392
- "name": "ConfigValueSet",
393
- "type": "event"
394
- },
395
- {
396
- "anonymous": false,
397
- "inputs": [
398
- {
399
- "indexed": true,
400
- "internalType": "uint256",
401
- "name": "_projectId",
402
- "type": "uint256"
403
- },
404
- {
405
- "indexed": true,
406
- "internalType": "address",
407
- "name": "_coreContract",
408
- "type": "address"
409
- },
410
- {
411
- "indexed": false,
412
- "internalType": "bytes32",
413
- "name": "_key",
414
- "type": "bytes32"
415
- },
416
- {
417
- "indexed": false,
418
- "internalType": "address",
419
- "name": "_value",
420
- "type": "address"
421
- }
422
- ],
423
- "name": "ConfigValueSet",
424
- "type": "event"
425
- },
426
- {
427
- "anonymous": false,
428
- "inputs": [
429
- {
430
- "indexed": true,
431
- "internalType": "uint256",
432
- "name": "_projectId",
433
- "type": "uint256"
434
- },
435
- {
436
- "indexed": true,
437
- "internalType": "address",
438
- "name": "_coreContract",
439
- "type": "address"
440
- },
441
- {
442
- "indexed": false,
443
- "internalType": "bytes32",
444
- "name": "_key",
445
- "type": "bytes32"
446
- },
447
- {
448
- "indexed": false,
449
- "internalType": "bytes32",
450
- "name": "_value",
451
- "type": "bytes32"
452
- }
453
- ],
454
- "name": "ConfigValueSet",
455
- "type": "event"
456
- },
457
- {
458
- "anonymous": false,
459
- "inputs": [
460
- {
461
- "indexed": true,
462
- "internalType": "uint256",
463
- "name": "projectId",
464
- "type": "uint256"
465
- },
466
- {
467
- "indexed": true,
468
- "internalType": "address",
469
- "name": "coreContract",
470
- "type": "address"
471
- },
472
- {
473
- "indexed": false,
474
- "internalType": "uint64",
475
- "name": "timestampStart",
476
- "type": "uint64"
477
- },
478
- {
479
- "indexed": false,
480
- "internalType": "uint32",
481
- "name": "auctionDurationSeconds",
482
- "type": "uint32"
483
- },
484
- {
485
- "indexed": false,
486
- "internalType": "uint256",
487
- "name": "basePrice",
488
- "type": "uint256"
489
- },
490
- {
491
- "indexed": false,
492
- "internalType": "uint8",
493
- "name": "minBidIncrementPercentage",
494
- "type": "uint8"
495
- }
496
- ],
497
- "name": "ConfiguredFutureAuctions",
498
- "type": "event"
499
- },
500
- {
501
- "anonymous": false,
502
- "inputs": [
503
- {
504
- "indexed": false,
505
- "internalType": "uint256",
506
- "name": "minAuctionDurationSeconds",
507
- "type": "uint256"
508
- }
509
- ],
510
- "name": "MinAuctionDurationSecondsUpdated",
511
- "type": "event"
512
- },
513
- {
514
- "anonymous": false,
515
- "inputs": [
516
- {
517
- "indexed": false,
518
- "internalType": "uint24",
519
- "name": "refundGasLimit",
520
- "type": "uint24"
521
- }
522
- ],
523
- "name": "MinterRefundGasLimitUpdated",
524
- "type": "event"
525
- },
526
- {
527
- "anonymous": false,
528
- "inputs": [
529
- {
530
- "indexed": false,
531
- "internalType": "uint32",
532
- "name": "minterTimeBufferSeconds",
533
- "type": "uint32"
534
- }
535
- ],
536
- "name": "MinterTimeBufferUpdated",
537
- "type": "event"
538
- },
539
- {
540
- "anonymous": false,
541
- "inputs": [
542
- {
543
- "indexed": true,
544
- "internalType": "uint256",
545
- "name": "_projectId",
546
- "type": "uint256"
547
- },
548
- {
549
- "indexed": true,
550
- "internalType": "address",
551
- "name": "_coreContract",
552
- "type": "address"
553
- },
554
- {
555
- "indexed": true,
556
- "internalType": "uint256",
557
- "name": "_pricePerTokenInWei",
558
- "type": "uint256"
559
- }
560
- ],
561
- "name": "PricePerTokenInWeiUpdated",
562
- "type": "event"
563
- },
564
- {
565
- "anonymous": false,
566
- "inputs": [
567
- {
568
- "indexed": true,
569
- "internalType": "uint256",
570
- "name": "_projectId",
571
- "type": "uint256"
572
- },
573
- {
574
- "indexed": true,
575
- "internalType": "address",
576
- "name": "_coreContract",
577
- "type": "address"
578
- },
579
- {
580
- "indexed": true,
581
- "internalType": "address",
582
- "name": "_currencyAddress",
583
- "type": "address"
584
- },
585
- {
586
- "indexed": false,
587
- "internalType": "string",
588
- "name": "_currencySymbol",
589
- "type": "string"
590
- }
591
- ],
592
- "name": "ProjectCurrencyInfoUpdated",
593
- "type": "event"
594
- },
595
- {
596
- "anonymous": false,
597
- "inputs": [
598
- {
599
- "indexed": true,
600
- "internalType": "uint256",
601
- "name": "_projectId",
602
- "type": "uint256"
603
- },
604
- {
605
- "indexed": true,
606
- "internalType": "address",
607
- "name": "_coreContract",
608
- "type": "address"
609
- },
610
- {
611
- "indexed": false,
612
- "internalType": "uint256",
613
- "name": "_maxInvocations",
614
- "type": "uint256"
615
- }
616
- ],
617
- "name": "ProjectMaxInvocationsLimitUpdated",
618
- "type": "event"
619
- },
620
- {
621
- "anonymous": false,
622
- "inputs": [
623
- {
624
- "indexed": true,
625
- "internalType": "uint256",
626
- "name": "projectId",
627
- "type": "uint256"
628
- },
629
- {
630
- "indexed": true,
631
- "internalType": "address",
632
- "name": "coreContract",
633
- "type": "address"
634
- }
635
- ],
636
- "name": "ProjectNextTokenEjected",
637
- "type": "event"
638
- },
639
- {
640
- "anonymous": false,
641
- "inputs": [
642
- {
643
- "indexed": true,
644
- "internalType": "uint256",
645
- "name": "projectId",
646
- "type": "uint256"
647
- },
648
- {
649
- "indexed": true,
650
- "internalType": "address",
651
- "name": "coreContract",
652
- "type": "address"
653
- },
654
- {
655
- "indexed": false,
656
- "internalType": "uint256",
657
- "name": "tokenId",
658
- "type": "uint256"
659
- }
660
- ],
661
- "name": "ProjectNextTokenUpdated",
662
- "type": "event"
663
- },
664
- {
665
- "anonymous": false,
666
- "inputs": [
667
- {
668
- "indexed": true,
669
- "internalType": "uint256",
670
- "name": "projectId",
671
- "type": "uint256"
672
- },
673
- {
674
- "indexed": true,
675
- "internalType": "address",
676
- "name": "coreContract",
677
- "type": "address"
678
- }
679
- ],
680
- "name": "ResetAuctionDetails",
681
- "type": "event"
682
- },
683
17
  {
684
18
  "inputs": [],
685
19
  "name": "MIN_AUCTION_DURATION_SECONDS",
@@ -697,12 +31,12 @@
697
31
  "inputs": [
698
32
  {
699
33
  "internalType": "uint256",
700
- "name": "_projectId",
34
+ "name": "projectId",
701
35
  "type": "uint256"
702
36
  },
703
37
  {
704
38
  "internalType": "address",
705
- "name": "_coreContract",
39
+ "name": "coreContract",
706
40
  "type": "address"
707
41
  }
708
42
  ],
@@ -710,6 +44,11 @@
710
44
  "outputs": [
711
45
  {
712
46
  "components": [
47
+ {
48
+ "internalType": "bool",
49
+ "name": "nextTokenNumberIsPopulated",
50
+ "type": "bool"
51
+ },
713
52
  {
714
53
  "internalType": "uint64",
715
54
  "name": "timestampStart",
@@ -730,11 +69,6 @@
730
69
  "name": "nextTokenNumber",
731
70
  "type": "uint24"
732
71
  },
733
- {
734
- "internalType": "bool",
735
- "name": "nextTokenNumberIsPopulated",
736
- "type": "bool"
737
- },
738
72
  {
739
73
  "internalType": "uint256",
740
74
  "name": "basePrice",
@@ -779,7 +113,7 @@
779
113
  }
780
114
  ],
781
115
  "internalType": "struct SEALib.SEAProjectConfig",
782
- "name": "_SEAProjectConfig",
116
+ "name": "SEAProjectConfig_",
783
117
  "type": "tuple"
784
118
  }
785
119
  ],
@@ -790,32 +124,32 @@
790
124
  "inputs": [
791
125
  {
792
126
  "internalType": "uint256",
793
- "name": "_projectId",
127
+ "name": "projectId",
794
128
  "type": "uint256"
795
129
  },
796
130
  {
797
131
  "internalType": "address",
798
- "name": "_coreContract",
132
+ "name": "coreContract",
799
133
  "type": "address"
800
134
  },
801
135
  {
802
136
  "internalType": "uint256",
803
- "name": "_timestampStart",
137
+ "name": "timestampStart",
804
138
  "type": "uint256"
805
139
  },
806
140
  {
807
141
  "internalType": "uint256",
808
- "name": "_auctionDurationSeconds",
142
+ "name": "auctionDurationSeconds",
809
143
  "type": "uint256"
810
144
  },
811
145
  {
812
146
  "internalType": "uint256",
813
- "name": "_basePrice",
147
+ "name": "basePrice",
814
148
  "type": "uint256"
815
149
  },
816
150
  {
817
151
  "internalType": "uint8",
818
- "name": "_minBidIncrementPercentage",
152
+ "name": "minBidIncrementPercentage",
819
153
  "type": "uint8"
820
154
  }
821
155
  ],
@@ -828,12 +162,12 @@
828
162
  "inputs": [
829
163
  {
830
164
  "internalType": "uint256",
831
- "name": "_tokenId",
165
+ "name": "tokenId",
832
166
  "type": "uint256"
833
167
  },
834
168
  {
835
169
  "internalType": "address",
836
- "name": "_coreContract",
170
+ "name": "coreContract",
837
171
  "type": "address"
838
172
  }
839
173
  ],
@@ -846,17 +180,17 @@
846
180
  "inputs": [
847
181
  {
848
182
  "internalType": "uint256",
849
- "name": "_projectId",
183
+ "name": "projectId",
850
184
  "type": "uint256"
851
185
  },
852
186
  {
853
187
  "internalType": "address",
854
- "name": "_coreContract",
188
+ "name": "coreContract",
855
189
  "type": "address"
856
190
  },
857
191
  {
858
192
  "internalType": "address",
859
- "name": "_to",
193
+ "name": "to",
860
194
  "type": "address"
861
195
  }
862
196
  ],
@@ -869,12 +203,12 @@
869
203
  "inputs": [
870
204
  {
871
205
  "internalType": "uint256",
872
- "name": "_projectId",
206
+ "name": "projectId",
873
207
  "type": "uint256"
874
208
  },
875
209
  {
876
210
  "internalType": "address",
877
- "name": "_coreContract",
211
+ "name": "coreContract",
878
212
  "type": "address"
879
213
  }
880
214
  ],
@@ -893,12 +227,12 @@
893
227
  "inputs": [
894
228
  {
895
229
  "internalType": "uint256",
896
- "name": "_projectId",
230
+ "name": "projectId",
897
231
  "type": "uint256"
898
232
  },
899
233
  {
900
234
  "internalType": "address",
901
- "name": "_coreContract",
235
+ "name": "coreContract",
902
236
  "type": "address"
903
237
  }
904
238
  ],
@@ -932,12 +266,12 @@
932
266
  "inputs": [
933
267
  {
934
268
  "internalType": "uint256",
935
- "name": "_projectId",
269
+ "name": "projectId",
936
270
  "type": "uint256"
937
271
  },
938
272
  {
939
273
  "internalType": "address",
940
- "name": "_coreContract",
274
+ "name": "coreContract",
941
275
  "type": "address"
942
276
  }
943
277
  ],
@@ -956,7 +290,7 @@
956
290
  "inputs": [
957
291
  {
958
292
  "internalType": "address",
959
- "name": "_coreContract",
293
+ "name": "coreContract",
960
294
  "type": "address"
961
295
  }
962
296
  ],
@@ -975,17 +309,17 @@
975
309
  "inputs": [
976
310
  {
977
311
  "internalType": "uint256",
978
- "name": "_projectId",
312
+ "name": "projectId",
979
313
  "type": "uint256"
980
314
  },
981
315
  {
982
316
  "internalType": "address",
983
- "name": "_coreContract",
317
+ "name": "coreContract",
984
318
  "type": "address"
985
319
  },
986
320
  {
987
321
  "internalType": "uint24",
988
- "name": "_maxInvocations",
322
+ "name": "maxInvocations",
989
323
  "type": "uint24"
990
324
  }
991
325
  ],
@@ -998,12 +332,12 @@
998
332
  "inputs": [
999
333
  {
1000
334
  "internalType": "uint256",
1001
- "name": "_projectId",
335
+ "name": "projectId",
1002
336
  "type": "uint256"
1003
337
  },
1004
338
  {
1005
339
  "internalType": "address",
1006
- "name": "_coreContract",
340
+ "name": "coreContract",
1007
341
  "type": "address"
1008
342
  }
1009
343
  ],
@@ -1036,17 +370,17 @@
1036
370
  "outputs": [
1037
371
  {
1038
372
  "internalType": "uint256",
1039
- "name": "minAuctionDurationSeconds_",
373
+ "name": "minAuctionDurationSeconds",
1040
374
  "type": "uint256"
1041
375
  },
1042
376
  {
1043
377
  "internalType": "uint32",
1044
- "name": "minterTimeBufferSeconds_",
378
+ "name": "minterTimeBufferSeconds",
1045
379
  "type": "uint32"
1046
380
  },
1047
381
  {
1048
382
  "internalType": "uint24",
1049
- "name": "minterRefundGasLimit_",
383
+ "name": "minterRefundGasLimit",
1050
384
  "type": "uint24"
1051
385
  }
1052
386
  ],
@@ -1096,12 +430,12 @@
1096
430
  "inputs": [
1097
431
  {
1098
432
  "internalType": "uint256",
1099
- "name": "_projectId",
433
+ "name": "projectId",
1100
434
  "type": "uint256"
1101
435
  },
1102
436
  {
1103
437
  "internalType": "address",
1104
- "name": "_coreContract",
438
+ "name": "coreContract",
1105
439
  "type": "address"
1106
440
  }
1107
441
  ],
@@ -1152,12 +486,12 @@
1152
486
  "inputs": [
1153
487
  {
1154
488
  "internalType": "uint256",
1155
- "name": "_projectId",
489
+ "name": "projectId",
1156
490
  "type": "uint256"
1157
491
  },
1158
492
  {
1159
493
  "internalType": "address",
1160
- "name": "_coreContract",
494
+ "name": "coreContract",
1161
495
  "type": "address"
1162
496
  }
1163
497
  ],
@@ -1176,12 +510,12 @@
1176
510
  "inputs": [
1177
511
  {
1178
512
  "internalType": "uint256",
1179
- "name": "_projectId",
513
+ "name": "projectId",
1180
514
  "type": "uint256"
1181
515
  },
1182
516
  {
1183
517
  "internalType": "address",
1184
- "name": "_coreContract",
518
+ "name": "coreContract",
1185
519
  "type": "address"
1186
520
  }
1187
521
  ],
@@ -1200,12 +534,12 @@
1200
534
  "inputs": [
1201
535
  {
1202
536
  "internalType": "uint256",
1203
- "name": "_projectId",
537
+ "name": "projectId",
1204
538
  "type": "uint256"
1205
539
  },
1206
540
  {
1207
541
  "internalType": "address",
1208
- "name": "_coreContract",
542
+ "name": "coreContract",
1209
543
  "type": "address"
1210
544
  }
1211
545
  ],
@@ -1218,12 +552,12 @@
1218
552
  "inputs": [
1219
553
  {
1220
554
  "internalType": "uint256",
1221
- "name": "_tokenId",
555
+ "name": "tokenId",
1222
556
  "type": "uint256"
1223
557
  },
1224
558
  {
1225
559
  "internalType": "address",
1226
- "name": "_coreContract",
560
+ "name": "coreContract",
1227
561
  "type": "address"
1228
562
  }
1229
563
  ],
@@ -1236,17 +570,17 @@
1236
570
  "inputs": [
1237
571
  {
1238
572
  "internalType": "uint256",
1239
- "name": "_settleTokenId",
573
+ "name": "settleTokenId",
1240
574
  "type": "uint256"
1241
575
  },
1242
576
  {
1243
577
  "internalType": "uint256",
1244
- "name": "_bidTokenId",
578
+ "name": "bidTokenId",
1245
579
  "type": "uint256"
1246
580
  },
1247
581
  {
1248
582
  "internalType": "address",
1249
- "name": "_coreContract",
583
+ "name": "coreContract",
1250
584
  "type": "address"
1251
585
  }
1252
586
  ],
@@ -1259,12 +593,12 @@
1259
593
  "inputs": [
1260
594
  {
1261
595
  "internalType": "uint256",
1262
- "name": "_projectId",
596
+ "name": "projectId",
1263
597
  "type": "uint256"
1264
598
  },
1265
599
  {
1266
600
  "internalType": "address",
1267
- "name": "_coreContract",
601
+ "name": "coreContract",
1268
602
  "type": "address"
1269
603
  }
1270
604
  ],
@@ -1277,12 +611,12 @@
1277
611
  "inputs": [
1278
612
  {
1279
613
  "internalType": "uint256",
1280
- "name": "_projectId",
614
+ "name": "projectId",
1281
615
  "type": "uint256"
1282
616
  },
1283
617
  {
1284
618
  "internalType": "address",
1285
- "name": "_coreContract",
619
+ "name": "coreContract",
1286
620
  "type": "address"
1287
621
  }
1288
622
  ],
@@ -1295,7 +629,7 @@
1295
629
  "inputs": [
1296
630
  {
1297
631
  "internalType": "uint32",
1298
- "name": "_minterTimeBufferSeconds",
632
+ "name": "minterTimeBufferSeconds",
1299
633
  "type": "uint32"
1300
634
  }
1301
635
  ],
@@ -1308,7 +642,7 @@
1308
642
  "inputs": [
1309
643
  {
1310
644
  "internalType": "uint24",
1311
- "name": "_minterRefundGasLimit",
645
+ "name": "minterRefundGasLimit",
1312
646
  "type": "uint24"
1313
647
  }
1314
648
  ],
@@ -1318,8 +652,8 @@
1318
652
  "type": "function"
1319
653
  }
1320
654
  ],
1321
- "bytecode": "0x60c06040526001805466ffffffffffffff1916657530000000781790553480156200002957600080fd5b506040516200318b3803806200318b8339810160408190526200004c916200011e565b60016000556001600160a01b038116608081905260a052604051603c81527f4ef0f5aca00c220a4058c318e0dd5526680003d4e6fceb9ad65087452a8313fa9060200160405180910390a160015460405163ffffffff90911681527f8b3c10d428bd990a6450cefb1c55333a8e7ad39e44e310574b6357014c8fcbae9060200160405180910390a160015460405164010000000090910462ffffff1681527ff28602592f2788507e76a86523ec8d5ef26873807e258d4cae31571370c0e6c89060200160405180910390a15062000150565b6000602082840312156200013157600080fd5b81516001600160a01b03811681146200014957600080fd5b9392505050565b60805160a0516130076200018460003960006118f8015260008181610498015281816105eb015261128901526130076000f3fe6080604052600436106101265760003560e01c806301000da71461012b578063217748bb146101605780633c496a3e146101825780634869f3df146101b05780634b1614ba146101fa57806355ec841c1461021a578063630766801461023a5780637a1b838f1461027757806390748d28146102975780639a94488a146102c45780639b7b55851461035c578063b000e33414610371578063b8bd1b1d14610391578063b945c4e0146103a4578063cce7c909146103b7578063cf76e1b0146103d7578063d3ddabe6146103f7578063d9bffbce14610436578063d9eb16db14610456578063dd85582f14610486578063e4566f2d146104d2578063e624db9f146104f2578063e9d1e8ac14610512578063f1d1a7fa14610549578063ff83e64914610569575b600080fd5b34801561013757600080fd5b5061014b610146366004612958565b610596565b60405190151581526020015b60405180910390f35b34801561016c57600080fd5b5061018061017b366004612975565b6105d7565b005b34801561018e57600080fd5b506101a261019d36600461299b565b610668565b604051908152602001610157565b3480156101bc57600080fd5b506101a26101cb36600461299b565b6001600160a01b031660009081526003602090815260408083209383529290522054610100900462ffffff1690565b34801561020657600080fd5b506101a261021536600461299b565b61069f565b34801561022657600080fd5b506101806102353660046129cb565b6106cc565b34801561024657600080fd5b5060015460408051603c815263ffffffff83166020820152600160201b90920462ffffff1690820152606001610157565b34801561028357600080fd5b50610180610292366004612a0d565b61086f565b3480156102a357600080fd5b506102b76102b236600461299b565b610a7b565b6040516101579190612abf565b3480156102d057600080fd5b5061033a6102df36600461299b565b6040805180820190915260008082526020820152506001600160a01b031660009081526003602090815260408083209383529281529082902082518084019093525460ff811615158352610100900462ffffff169082015290565b6040805182511515815260209283015162ffffff169281019290925201610157565b34801561036857600080fd5b506101a2603c81565b34801561037d57600080fd5b5061018061038c366004612b48565b610b9c565b61018061039f36600461299b565b610c2e565b6101806103b2366004612b86565b610e60565b3480156103c357600080fd5b5061014b6103d236600461299b565b610ecb565b3480156103e357600080fd5b506101806103f236600461299b565b610ef7565b34801561040357600080fd5b5061042960405180604001604052806006815260200165076312e302e360d41b81525081565b6040516101579190612c04565b34801561044257600080fd5b5061018061045136600461299b565b610f85565b34801561046257600080fd5b5061047661047136600461299b565b610ffe565b6040516101579493929190612c17565b34801561049257600080fd5b506104ba7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610157565b3480156104de57600080fd5b506101806104ed36600461299b565b61105e565b3480156104fe57600080fd5b5061018061050d366004612c51565b611284565b34801561051e57600080fd5b506104296040518060400160405280600b81526020016a4d696e746572534541563160a81b81525081565b34801561055557600080fd5b5061018061056436600461299b565b611351565b34801561057557600080fd5b5061058961058436600461299b565b6113de565b6040516101579190612c6c565b6001600160a01b03811660009081526002602052604081208054610100900460ff16156105c7575460ff1692915050565b6105d083611412565b9392505050565b6105e68163ffffffff1661154a565b6106197f0000000000000000000000000000000000000000000000000000000000000000333063217748bb60e01b61158d565b6001805463ffffffff191663ffffffff83169081179091556040519081527f8b3c10d428bd990a6450cefb1c55333a8e7ad39e44e310574b6357014c8fcbae906020015b60405180910390a150565b6001600160a01b0381166000908152600460209081526040808320858452909152812061069581856115e8565b9150505b92915050565b6001600160a01b03811660009081526004602090815260408083208584529091528120610695818561162a565b6106df82333063157b210760e21b6116a5565b6001600160a01b0382166000908152600460209081526040808320868452909152902061070b816116fa565b1561075a5760405162461bcd60e51b815260206004820152601a6024820152794f6e6c7920756e636f6e666967757265642070726f6a6563747360301b60448201526064015b60405180910390fd5b8054600160801b900460ff1615156001146107a75760405162461bcd60e51b815260206004820152600d60248201526c2737903732bc3a103a37b5b2b760991b6044820152606401610751565b805460ff60801b19168082556000906107cd908690600160681b900462ffffff1661170d565b6040516323b872dd60e01b81529091506001600160a01b038516906323b872dd9061080090309087908690600401612c7a565b600060405180830381600087803b15801561081a57600080fd5b505af115801561082e573d6000803e3d6000fd5b50506040516001600160a01b03871692508791507f10cd4451a553c43379019750f57f76e7b32c27d28019cc64e1cb457c678cfef690600090a35050505050565b6108788261154a565b6108848160ff1661154a565b61088f86863361171d565b6001600160a01b03851660008181526004602090815260408083208a84528252808320938352600382528083208a845290915290208515806108d057508542105b61091b5760405162461bcd60e51b815260206004820152601c60248201527b04f6e6c79206675747572652073746172742074696d6573206f7220360241b6044820152606401610751565b603c85101561096c5760405162461bcd60e51b815260206004820152601e60248201527f41756374696f6e206475726174696f6e2062656c6f77206d696e696d756d00006044820152606401610751565b61097586611762565b825467ffffffffffffffff19166001600160401b039190911617825561099a856117ce565b82546001840186905564ffffffffff60401b1916600160401b63ffffffff929092169190910260ff60601b191617600160601b60ff8516021782556001600160a01b038716887f62be165a67549c68012bfe757f102930d89f0efb86df6ccd057cb526e2097780610a0a89611762565b610a13896117ce565b604080516001600160401b03909316835263ffffffff9091166020830152810188905260ff8716606082015260800160405180910390a3610a5381611833565b15610a6757610a628888610f85565b610a71565b610a718888611853565b5050505050505050565b610a836128cb565b506001600160a01b038082166000908152600460208181526040808420878552825292839020835160e08101855281546001600160401b03808216835263ffffffff600160401b8304168386015260ff600160601b830481168489015262ffffff600160681b840416606080860191909152600160801b909304811615156080808601918252600187015460a0808801919091528a5160c08181018d5260028a0154825260038a01549a82019a909a5297909901549a8b1699870199909952600160a01b8a0490921692850192909252600160e01b8804821696840196909652600160e81b90960490951615159281019290925283015251610b86576000610b8c565b80606001515b62ffffff16606082015292915050565b610ba783833361171d565b6001600160a01b03821660009081526003602090815260408083208684529091529020610bd9908490849084906119e3565b60405162ffffff821681526001600160a01b0383169084907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237906020015b60405180910390a3610c298383611853565b505050565b600260005403610c505760405162461bcd60e51b815260040161075190612c9e565b60026000908155620f424083046001600160a01b038316600090815260046020818152604080842085855290915290912090810154600382015492935090916002830191600160a01b90046001600160401b031690610cae83611a6a565b1580610cc557506002830154600160e81b900460ff165b15610cdf57610cd5858789611a7c565b5050505050610e57565b82548714610d2f5760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e20494420646f6573206e6f74206d617463682061756374696f6e006044820152606401610751565b428211610d765760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb88185b1c9958591e48195b991959605a1b6044820152606401610751565b610d7f83611d32565b341015610dbf5760405162461bcd60e51b815260206004820152600e60248201526d42696420697320746f6f206c6f7760901b6044820152606401610751565b60028301546001546001600160a01b0390911690610de690859063ffffffff163433611d6d565b600154610e029082908490600160201b900462ffffff16611df5565b336001600160a01b0316876001600160a01b0316897f3bb6f40a8aeb5dda33c401527cd8f6bd335757d2b1ed2827f0321a090c66b82434604051610e4891815260200190565b60405180910390a45050505050505b50506001600055565b620f42408204620f4240840414610eb75760405162461bcd60e51b815260206004820152601b60248201527a13db9b1e481d1bdad95b9cc81a5b881cd85b59481c1c9bda9958dd602a1b6044820152606401610751565b610ec1838261105e565b610c298282610c2e565b6001600160a01b038116600090815260036020908152604080832085845290915281205460ff166105d0565b600260005403610f195760405162461bcd60e51b815260040161075190612c9e565b6002600055610f2982823361171d565b6001600160a01b03811660009081526004602090815260408083208584529091529020610f55816116fa565b610f715760405162461bcd60e51b815260040161075190612cd5565b610f7b8383611853565b5050600160005550565b610f9082823361171d565b6001600160a01b03811660009081526003602090815260408083208584529091528120610fc09084908490611e2a565b9050816001600160a01b0316837f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23783604051610c1791815260200190565b6001600160a01b038116600090815260046020908152604080832085845290915281208190606090829061103181611ecf565b60408051808201909152600381526208aa8960eb1b60208201529199909850909650600095509350505050565b6002600054036110805760405162461bcd60e51b815260040161075190612c9e565b600260008181556001600160a01b038381168252600460208181526040808520620f424089048087529252909320908101546003820154939491939184019216906110ca83611a6a565b6111105760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081a5b9a5d1a585b1a5e9959604a1b6044820152606401610751565b6002830154600160e81b900460ff168061112b575082548714155b1561113a575050505050610e57565b6002830154600160a01b90046001600160401b03164210156111965760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb881b9bdd081e595d08195b991959605a1b6044820152606401610751565b60028301805460ff60e81b1916600160e81b1790556040516323b872dd60e01b81526001600160a01b038716906323b872dd906111db90309086908c90600401612c7a565b600060405180830381600087803b1580156111f557600080fd5b505af1158015611209573d6000803e3d6000fd5b505050506001600160a01b0386166000908152600260205260408120611230908890611f26565b905061123e86838984611f58565b826001600160a01b0316876001600160a01b0316897f3e25c3675d003af5184b628dd8bd4775b9b3abc7351c3574c90870ca25b55f1185604051610e4891815260200190565b6112b77f0000000000000000000000000000000000000000000000000000000000000000333063e624db9f60e01b61158d565b611b588162ffffff1610156112ff5760405162461bcd60e51b815260206004820152600e60248201526d04f6e6c792067746520375f3030360941b6044820152606401610751565b6001805462ffffff60201b1916600160201b62ffffff8416908102919091179091556040519081527ff28602592f2788507e76a86523ec8d5ef26873807e258d4cae31571370c0e6c89060200161065d565b611365828233306378e8d3fd60e11b612323565b6001600160a01b038116600090815260046020908152604080832085845290915290206113a3818054600060018301556001600160681b0319169055565b6040516001600160a01b0383169084907f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c8090600090a3505050565b6113e661290e565b6001600160a01b038216600090815260046020908152604080832086845290915290206106958161238c565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690611474908590612d05565b600060405180830381855afa9150503d80600081146114af576040519150601f19603f3d011682016040523d82523d6000602084013e6114b4565b606091505b5091509150816114d65760405162461bcd60e51b815260040161075190612d21565b805160c08190036114ed5750600095945050505050565b80610100036115025750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610751565b8060000361158a5760405162461bcd60e51b815260206004820152600d60248201526c4f6e6c79206e6f6e2d7a65726f60981b6044820152606401610751565b50565b61159984848484612458565b6115e25760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b6044820152606401610751565b50505050565b6000600283016115f781611a6a565b80156116175750600281015442600160a01b9091046001600160401b0316115b1561162457549050610699565b61069584845b8154600090600160801b900460ff166116805760405162461bcd60e51b815260206004820152601860248201527713995e1d081d1bdad95b881b9bdd081c1bdc1d5b185d195960421b6044820152606401610751565b8254600160681b900462ffffff1661169b620f424084612d7c565b6105d09190612d93565b6116b184848484612458565b6115e25760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610751565b54600160401b900463ffffffff16151590565b60008161169b620f424085612d7c565b6117288383836124e9565b610c295760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610751565b60006001600160401b038211156117ca5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610751565b5090565b600063ffffffff8211156117ca5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610751565b8054600090610100900462ffffff161580156106995750505460ff161590565b6001600160a01b038116600081815260046020908152604080832086845282528083209383526003825280832086845290915290208154600160801b900460ff161561189f5750505050565b6118aa818585612572565b6118b45750505050565b815460ff60801b1916600160801b1782556040516117cd60e21b8152306004820152602481018590526001600160a01b0384811660448301523360648301526000917f000000000000000000000000000000000000000000000000000000000000000090911690615f34906084016020604051808303816000875af1158015611941573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119659190612da6565b9050611970816125ac565b835462ffffff91909116600160681b0262ffffff60681b1990911617835561199881836125bb565b836001600160a01b0316857f0ebdd7cad7efd438492c42bc712f64b1f41b046cd6cb52382c4d1b513459194a836040516119d491815260200190565b60405180910390a35050505050565b6000806119f08686612633565b91509150808462ffffff161115611a195760405162461bcd60e51b815260040161075190612dbf565b818462ffffff161015611a3e5760405162461bcd60e51b815260040161075190612dbf565b50815460ff1962ffffff90941661010081029490941663ffffffff199091161792149190911790555050565b600201546001600160a01b0316151590565b6001600160a01b0382166000908152600460209081526040808320868452909152902060028101611aac826116fa565b611ac85760405162461bcd60e51b815260040161075190612cd5565b81546001600160401b0316421015611b205760405162461bcd60e51b815260206004820152601b60248201527a4f6e6c79206774652070726f6a6563742073746172742074696d6560281b6044820152606401610751565b611b2981611a6a565b1580611b4057506002810154600160e81b900460ff165b611b8b5760405162461bcd60e51b815260206004820152601c60248201527b115e1a5cdd1a5b99c8185d58dd1a5bdb881b9bdd081cd95d1d1b195960221b6044820152606401610751565b8160010154341015611bda5760405162461bcd60e51b8152602060048201526018602482015277125b9cdd59999a58da595b9d081a5b9a5d1a585b08189a5960421b6044820152606401610751565b8154600160801b900460ff16611c3e5760405162461bcd60e51b8152602060048201526024808201527f4e6f206e65787420746f6b656e2c20636865636b206d617820696e766f636174604482015263696f6e7360e01b6064820152608401610751565b611c47836125ac565b8254600160681b900462ffffff1614611c9e5760405162461bcd60e51b8152602060048201526019602482015278125b98dbdc9c9958dd081d185c99d95d081d1bdad95b881251603a1b6044820152606401610751565b6000611cac838534336126b1565b835460ff60801b191684556004840154604080513481526001600160401b0384166020820152600160e01b90920460ff169082015290915033906001600160a01b0387169086907fb35324b0305f7c72581844f61b571e7136827ec4b3bcd716a1b8a8b7d42e1e549060600160405180910390a4611d2a8686611853565b505050505050565b6002810154600090606490611d5190600160e01b900460ff1682612e06565b60ff168360010154611d639190612d7c565b6106999190612e1f565b600184018290556002840180546001600160a01b0319166001600160a01b0383161790556000611d9d8442612d93565b6002860154909150600160a01b90046001600160401b0316811115611dee57611dc581611762565b8560020160146101000a8154816001600160401b0302191690836001600160401b031602179055505b5050505050565b600080600080858786f1610c2957826000526073600b5360ff6020536016600b83f0610c2957620f42405a11610c2957600080fd5b6000806000846001600160a01b0316630ea5613f876040518263ffffffff1660e01b8152600401611e5d91815260200190565b60c060405180830381865afa158015611e7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9e9190612e43565b5050875493831463ffffffff1990941661010062ffffff85160260ff19161793909317909655979650505050505050565b6000806002830181611ee0856116fa565b90506000611eed83612779565b90508180611ef85750805b94508415611f1e578015611f1657611f0f83611d32565b9350611f1e565b856001015493505b505050915091565b8054600090610100900460ff1615611f435750805460ff16610699565b6000611f4f84846127a5565b91506106999050565b82156115e257600080600080600080600087156120a957604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038c1690638639415b9060440161010060405180830381865afa158015611fc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe59190612ea2565b969e50949c50909a509850919650919450909250905081156120a2576040516001600160a01b038216908390600081818185875af1925050503d806000811461204a576040519150601f19603f3d011682016040523d82523d6000602084013e61204f565b606091505b505080995050886120a25760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610751565b5050612129565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b038a1690638639415b9060440160c060405180830381865afa1580156120f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121199190612f2a565b949a509298509096509450925090505b85156121d0576040516001600160a01b038616908790600081818185875af1925050503d8060008114612178576040519150601f19603f3d011682016040523d82523d6000602084013e61217d565b606091505b505080975050866121d05760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610751565b831561226f576040516001600160a01b038416908590600081818185875af1925050503d806000811461221f576040519150601f19603f3d011682016040523d82523d6000602084013e612224565b606091505b5050809750508661226f5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610751565b8115612316576040516001600160a01b038216908390600081818185875af1925050503d80600081146122be576040519150601f19603f3d011682016040523d82523d6000602084013e6122c3565b606091505b505080975050866123165760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610751565b5050505050505050505050565b61232e8585856124e9565b80612340575061234084848484612458565b611dee5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c7920417274697374206f7220436f72652041646d696e2041434c0000006044820152606401610751565b61239461290e565b600282016123a181611a6a565b6123ec5760405162461bcd60e51b815260206004820152601c60248201527b139bc8185d58dd1a5bdb88195e1a5cdd1cc81bdb881c1c9bda9958dd60221b6044820152606401610751565b50506040805160c08101825260028301548152600383015460208201526004909201546001600160a01b038116918301919091526001600160401b03600160a01b820416606083015260ff600160e01b820481166080840152600160e81b90910416151560a082015290565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af11580156124bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e09190612f85565b95945050505050565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015612531573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125559190612fa0565b6001600160a01b0316826001600160a01b03161490509392505050565b60008060006125818585612633565b87549193509150610100900462ffffff16600061259e83836128b5565b909310979650505050505050565b6000610699620f424083612fbd565b8054620f4240830660010190610100900462ffffff168082111561261b5760405162461bcd60e51b815260206004820152601760248201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b6044820152606401610751565b8082036115e257825460ff1916600117835550505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa15801561267d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a19190612e43565b5093989297509195505050505050565b83546000906126d6906126d190600160401b900463ffffffff1642612d93565b611762565b6040805160c081018252868152602081018690526001600160a01b03949094169084018190526001600160401b038216606085018190528754600160601b900460ff1660808601819052600060a09096019590955260028801969096556003870194909455600490950180546001600160e01b031916909317600160a01b9094029390931761ffff60e01b1916600160e01b90910260ff60e81b19161790555090565b600061278482611a6a565b801561069957505060020154600160a01b90046001600160401b0316421090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03871690612807908590612d05565b6000604051808303816000865af19150503d8060008114612844576040519150601f19603f3d011682016040523d82523d6000602084013e612849565b606091505b50915091508161286b5760405162461bcd60e51b815260040161075190612d21565b805160c0819003612891575050835461ffff191661010017845550600091506106999050565b8061010003611502575050835461ffff191661010117845550600191506106999050565b60008183106128c457816105d0565b5090919050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260c0810161290961290e565b905290565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6001600160a01b038116811461158a57600080fd5b60006020828403121561296a57600080fd5b81356105d081612943565b60006020828403121561298757600080fd5b813563ffffffff811681146105d057600080fd5b600080604083850312156129ae57600080fd5b8235915060208301356129c081612943565b809150509250929050565b6000806000606084860312156129e057600080fd5b8335925060208401356129f281612943565b91506040840135612a0281612943565b809150509250925092565b60008060008060008060c08789031215612a2657600080fd5b863595506020870135612a3881612943565b945060408701359350606087013592506080870135915060a087013560ff81168114612a6357600080fd5b809150509295509295509295565b80518252602080820151908301526040808201516001600160a01b0316908301526060808201516001600160401b03169083015260808082015160ff169083015260a0908101511515910152565b6000610180820190506001600160401b03835116825263ffffffff602084015116602083015260ff604084015116604083015262ffffff606084015116606083015260808301511515608083015260a083015160a083015260c0830151612b2960c0840182612a71565b5092915050565b803562ffffff81168114612b4357600080fd5b919050565b600080600060608486031215612b5d57600080fd5b833592506020840135612b6f81612943565b9150612b7d60408501612b30565b90509250925092565b600080600060608486031215612b9b57600080fd5b83359250602084013591506040840135612a0281612943565b60005b83811015612bcf578181015183820152602001612bb7565b50506000910152565b60008151808452612bf0816020860160208601612bb4565b601f01601f19169290920160200192915050565b6020815260006105d06020830184612bd8565b8415158152836020820152608060408201526000612c386080830185612bd8565b905060018060a01b038316606083015295945050505050565b600060208284031215612c6357600080fd5b6105d082612b30565b60c081016106998284612a71565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b602080825260169082015275141c9bda9958dd081b9bdd0818dbdb999a59dd5c995960521b604082015260600190565b60008251612d17818460208701612bb4565b9190910192915050565b60208082526025908201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604082015264185a5b195960da1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761069957610699612d66565b8082018082111561069957610699612d66565b600060208284031215612db857600080fd5b5051919050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b60ff818116838216019081111561069957610699612d66565b600082612e2e57612e2e612df0565b500490565b80518015158114612b4357600080fd5b60008060008060008060c08789031215612e5c57600080fd5b8651955060208701519450612e7360408801612e33565b9350612e8160608801612e33565b925060808701519150612e9660a08801612e33565b90509295509295509295565b600080600080600080600080610100898b031215612ebf57600080fd5b885197506020890151612ed181612943565b60408a015160608b01519198509650612ee981612943565b60808a015160a08b01519196509450612f0181612943565b60c08a015160e08b01519194509250612f1981612943565b809150509295985092959890939650565b60008060008060008060c08789031215612f4357600080fd5b865195506020870151612f5581612943565b604088015160608901519196509450612f6d81612943565b608088015160a08901519194509250612a6381612943565b600060208284031215612f9757600080fd5b6105d082612e33565b600060208284031215612fb257600080fd5b81516105d081612943565b600082612fcc57612fcc612df0565b50069056fea26469706673582212205ac2682e3d7f1d57f9eab47cd1cfd0c7cf0a688a26bd3f2877c7f3393fda9dce64736f6c63430008130033",
1322
- "deployedBytecode": "0x6080604052600436106101265760003560e01c806301000da71461012b578063217748bb146101605780633c496a3e146101825780634869f3df146101b05780634b1614ba146101fa57806355ec841c1461021a578063630766801461023a5780637a1b838f1461027757806390748d28146102975780639a94488a146102c45780639b7b55851461035c578063b000e33414610371578063b8bd1b1d14610391578063b945c4e0146103a4578063cce7c909146103b7578063cf76e1b0146103d7578063d3ddabe6146103f7578063d9bffbce14610436578063d9eb16db14610456578063dd85582f14610486578063e4566f2d146104d2578063e624db9f146104f2578063e9d1e8ac14610512578063f1d1a7fa14610549578063ff83e64914610569575b600080fd5b34801561013757600080fd5b5061014b610146366004612958565b610596565b60405190151581526020015b60405180910390f35b34801561016c57600080fd5b5061018061017b366004612975565b6105d7565b005b34801561018e57600080fd5b506101a261019d36600461299b565b610668565b604051908152602001610157565b3480156101bc57600080fd5b506101a26101cb36600461299b565b6001600160a01b031660009081526003602090815260408083209383529290522054610100900462ffffff1690565b34801561020657600080fd5b506101a261021536600461299b565b61069f565b34801561022657600080fd5b506101806102353660046129cb565b6106cc565b34801561024657600080fd5b5060015460408051603c815263ffffffff83166020820152600160201b90920462ffffff1690820152606001610157565b34801561028357600080fd5b50610180610292366004612a0d565b61086f565b3480156102a357600080fd5b506102b76102b236600461299b565b610a7b565b6040516101579190612abf565b3480156102d057600080fd5b5061033a6102df36600461299b565b6040805180820190915260008082526020820152506001600160a01b031660009081526003602090815260408083209383529281529082902082518084019093525460ff811615158352610100900462ffffff169082015290565b6040805182511515815260209283015162ffffff169281019290925201610157565b34801561036857600080fd5b506101a2603c81565b34801561037d57600080fd5b5061018061038c366004612b48565b610b9c565b61018061039f36600461299b565b610c2e565b6101806103b2366004612b86565b610e60565b3480156103c357600080fd5b5061014b6103d236600461299b565b610ecb565b3480156103e357600080fd5b506101806103f236600461299b565b610ef7565b34801561040357600080fd5b5061042960405180604001604052806006815260200165076312e302e360d41b81525081565b6040516101579190612c04565b34801561044257600080fd5b5061018061045136600461299b565b610f85565b34801561046257600080fd5b5061047661047136600461299b565b610ffe565b6040516101579493929190612c17565b34801561049257600080fd5b506104ba7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610157565b3480156104de57600080fd5b506101806104ed36600461299b565b61105e565b3480156104fe57600080fd5b5061018061050d366004612c51565b611284565b34801561051e57600080fd5b506104296040518060400160405280600b81526020016a4d696e746572534541563160a81b81525081565b34801561055557600080fd5b5061018061056436600461299b565b611351565b34801561057557600080fd5b5061058961058436600461299b565b6113de565b6040516101579190612c6c565b6001600160a01b03811660009081526002602052604081208054610100900460ff16156105c7575460ff1692915050565b6105d083611412565b9392505050565b6105e68163ffffffff1661154a565b6106197f0000000000000000000000000000000000000000000000000000000000000000333063217748bb60e01b61158d565b6001805463ffffffff191663ffffffff83169081179091556040519081527f8b3c10d428bd990a6450cefb1c55333a8e7ad39e44e310574b6357014c8fcbae906020015b60405180910390a150565b6001600160a01b0381166000908152600460209081526040808320858452909152812061069581856115e8565b9150505b92915050565b6001600160a01b03811660009081526004602090815260408083208584529091528120610695818561162a565b6106df82333063157b210760e21b6116a5565b6001600160a01b0382166000908152600460209081526040808320868452909152902061070b816116fa565b1561075a5760405162461bcd60e51b815260206004820152601a6024820152794f6e6c7920756e636f6e666967757265642070726f6a6563747360301b60448201526064015b60405180910390fd5b8054600160801b900460ff1615156001146107a75760405162461bcd60e51b815260206004820152600d60248201526c2737903732bc3a103a37b5b2b760991b6044820152606401610751565b805460ff60801b19168082556000906107cd908690600160681b900462ffffff1661170d565b6040516323b872dd60e01b81529091506001600160a01b038516906323b872dd9061080090309087908690600401612c7a565b600060405180830381600087803b15801561081a57600080fd5b505af115801561082e573d6000803e3d6000fd5b50506040516001600160a01b03871692508791507f10cd4451a553c43379019750f57f76e7b32c27d28019cc64e1cb457c678cfef690600090a35050505050565b6108788261154a565b6108848160ff1661154a565b61088f86863361171d565b6001600160a01b03851660008181526004602090815260408083208a84528252808320938352600382528083208a845290915290208515806108d057508542105b61091b5760405162461bcd60e51b815260206004820152601c60248201527b04f6e6c79206675747572652073746172742074696d6573206f7220360241b6044820152606401610751565b603c85101561096c5760405162461bcd60e51b815260206004820152601e60248201527f41756374696f6e206475726174696f6e2062656c6f77206d696e696d756d00006044820152606401610751565b61097586611762565b825467ffffffffffffffff19166001600160401b039190911617825561099a856117ce565b82546001840186905564ffffffffff60401b1916600160401b63ffffffff929092169190910260ff60601b191617600160601b60ff8516021782556001600160a01b038716887f62be165a67549c68012bfe757f102930d89f0efb86df6ccd057cb526e2097780610a0a89611762565b610a13896117ce565b604080516001600160401b03909316835263ffffffff9091166020830152810188905260ff8716606082015260800160405180910390a3610a5381611833565b15610a6757610a628888610f85565b610a71565b610a718888611853565b5050505050505050565b610a836128cb565b506001600160a01b038082166000908152600460208181526040808420878552825292839020835160e08101855281546001600160401b03808216835263ffffffff600160401b8304168386015260ff600160601b830481168489015262ffffff600160681b840416606080860191909152600160801b909304811615156080808601918252600187015460a0808801919091528a5160c08181018d5260028a0154825260038a01549a82019a909a5297909901549a8b1699870199909952600160a01b8a0490921692850192909252600160e01b8804821696840196909652600160e81b90960490951615159281019290925283015251610b86576000610b8c565b80606001515b62ffffff16606082015292915050565b610ba783833361171d565b6001600160a01b03821660009081526003602090815260408083208684529091529020610bd9908490849084906119e3565b60405162ffffff821681526001600160a01b0383169084907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237906020015b60405180910390a3610c298383611853565b505050565b600260005403610c505760405162461bcd60e51b815260040161075190612c9e565b60026000908155620f424083046001600160a01b038316600090815260046020818152604080842085855290915290912090810154600382015492935090916002830191600160a01b90046001600160401b031690610cae83611a6a565b1580610cc557506002830154600160e81b900460ff165b15610cdf57610cd5858789611a7c565b5050505050610e57565b82548714610d2f5760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e20494420646f6573206e6f74206d617463682061756374696f6e006044820152606401610751565b428211610d765760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb88185b1c9958591e48195b991959605a1b6044820152606401610751565b610d7f83611d32565b341015610dbf5760405162461bcd60e51b815260206004820152600e60248201526d42696420697320746f6f206c6f7760901b6044820152606401610751565b60028301546001546001600160a01b0390911690610de690859063ffffffff163433611d6d565b600154610e029082908490600160201b900462ffffff16611df5565b336001600160a01b0316876001600160a01b0316897f3bb6f40a8aeb5dda33c401527cd8f6bd335757d2b1ed2827f0321a090c66b82434604051610e4891815260200190565b60405180910390a45050505050505b50506001600055565b620f42408204620f4240840414610eb75760405162461bcd60e51b815260206004820152601b60248201527a13db9b1e481d1bdad95b9cc81a5b881cd85b59481c1c9bda9958dd602a1b6044820152606401610751565b610ec1838261105e565b610c298282610c2e565b6001600160a01b038116600090815260036020908152604080832085845290915281205460ff166105d0565b600260005403610f195760405162461bcd60e51b815260040161075190612c9e565b6002600055610f2982823361171d565b6001600160a01b03811660009081526004602090815260408083208584529091529020610f55816116fa565b610f715760405162461bcd60e51b815260040161075190612cd5565b610f7b8383611853565b5050600160005550565b610f9082823361171d565b6001600160a01b03811660009081526003602090815260408083208584529091528120610fc09084908490611e2a565b9050816001600160a01b0316837f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23783604051610c1791815260200190565b6001600160a01b038116600090815260046020908152604080832085845290915281208190606090829061103181611ecf565b60408051808201909152600381526208aa8960eb1b60208201529199909850909650600095509350505050565b6002600054036110805760405162461bcd60e51b815260040161075190612c9e565b600260008181556001600160a01b038381168252600460208181526040808520620f424089048087529252909320908101546003820154939491939184019216906110ca83611a6a565b6111105760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081a5b9a5d1a585b1a5e9959604a1b6044820152606401610751565b6002830154600160e81b900460ff168061112b575082548714155b1561113a575050505050610e57565b6002830154600160a01b90046001600160401b03164210156111965760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb881b9bdd081e595d08195b991959605a1b6044820152606401610751565b60028301805460ff60e81b1916600160e81b1790556040516323b872dd60e01b81526001600160a01b038716906323b872dd906111db90309086908c90600401612c7a565b600060405180830381600087803b1580156111f557600080fd5b505af1158015611209573d6000803e3d6000fd5b505050506001600160a01b0386166000908152600260205260408120611230908890611f26565b905061123e86838984611f58565b826001600160a01b0316876001600160a01b0316897f3e25c3675d003af5184b628dd8bd4775b9b3abc7351c3574c90870ca25b55f1185604051610e4891815260200190565b6112b77f0000000000000000000000000000000000000000000000000000000000000000333063e624db9f60e01b61158d565b611b588162ffffff1610156112ff5760405162461bcd60e51b815260206004820152600e60248201526d04f6e6c792067746520375f3030360941b6044820152606401610751565b6001805462ffffff60201b1916600160201b62ffffff8416908102919091179091556040519081527ff28602592f2788507e76a86523ec8d5ef26873807e258d4cae31571370c0e6c89060200161065d565b611365828233306378e8d3fd60e11b612323565b6001600160a01b038116600090815260046020908152604080832085845290915290206113a3818054600060018301556001600160681b0319169055565b6040516001600160a01b0383169084907f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c8090600090a3505050565b6113e661290e565b6001600160a01b038216600090815260046020908152604080832086845290915290206106958161238c565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690611474908590612d05565b600060405180830381855afa9150503d80600081146114af576040519150601f19603f3d011682016040523d82523d6000602084013e6114b4565b606091505b5091509150816114d65760405162461bcd60e51b815260040161075190612d21565b805160c08190036114ed5750600095945050505050565b80610100036115025750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610751565b8060000361158a5760405162461bcd60e51b815260206004820152600d60248201526c4f6e6c79206e6f6e2d7a65726f60981b6044820152606401610751565b50565b61159984848484612458565b6115e25760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b6044820152606401610751565b50505050565b6000600283016115f781611a6a565b80156116175750600281015442600160a01b9091046001600160401b0316115b1561162457549050610699565b61069584845b8154600090600160801b900460ff166116805760405162461bcd60e51b815260206004820152601860248201527713995e1d081d1bdad95b881b9bdd081c1bdc1d5b185d195960421b6044820152606401610751565b8254600160681b900462ffffff1661169b620f424084612d7c565b6105d09190612d93565b6116b184848484612458565b6115e25760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610751565b54600160401b900463ffffffff16151590565b60008161169b620f424085612d7c565b6117288383836124e9565b610c295760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610751565b60006001600160401b038211156117ca5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610751565b5090565b600063ffffffff8211156117ca5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610751565b8054600090610100900462ffffff161580156106995750505460ff161590565b6001600160a01b038116600081815260046020908152604080832086845282528083209383526003825280832086845290915290208154600160801b900460ff161561189f5750505050565b6118aa818585612572565b6118b45750505050565b815460ff60801b1916600160801b1782556040516117cd60e21b8152306004820152602481018590526001600160a01b0384811660448301523360648301526000917f000000000000000000000000000000000000000000000000000000000000000090911690615f34906084016020604051808303816000875af1158015611941573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119659190612da6565b9050611970816125ac565b835462ffffff91909116600160681b0262ffffff60681b1990911617835561199881836125bb565b836001600160a01b0316857f0ebdd7cad7efd438492c42bc712f64b1f41b046cd6cb52382c4d1b513459194a836040516119d491815260200190565b60405180910390a35050505050565b6000806119f08686612633565b91509150808462ffffff161115611a195760405162461bcd60e51b815260040161075190612dbf565b818462ffffff161015611a3e5760405162461bcd60e51b815260040161075190612dbf565b50815460ff1962ffffff90941661010081029490941663ffffffff199091161792149190911790555050565b600201546001600160a01b0316151590565b6001600160a01b0382166000908152600460209081526040808320868452909152902060028101611aac826116fa565b611ac85760405162461bcd60e51b815260040161075190612cd5565b81546001600160401b0316421015611b205760405162461bcd60e51b815260206004820152601b60248201527a4f6e6c79206774652070726f6a6563742073746172742074696d6560281b6044820152606401610751565b611b2981611a6a565b1580611b4057506002810154600160e81b900460ff165b611b8b5760405162461bcd60e51b815260206004820152601c60248201527b115e1a5cdd1a5b99c8185d58dd1a5bdb881b9bdd081cd95d1d1b195960221b6044820152606401610751565b8160010154341015611bda5760405162461bcd60e51b8152602060048201526018602482015277125b9cdd59999a58da595b9d081a5b9a5d1a585b08189a5960421b6044820152606401610751565b8154600160801b900460ff16611c3e5760405162461bcd60e51b8152602060048201526024808201527f4e6f206e65787420746f6b656e2c20636865636b206d617820696e766f636174604482015263696f6e7360e01b6064820152608401610751565b611c47836125ac565b8254600160681b900462ffffff1614611c9e5760405162461bcd60e51b8152602060048201526019602482015278125b98dbdc9c9958dd081d185c99d95d081d1bdad95b881251603a1b6044820152606401610751565b6000611cac838534336126b1565b835460ff60801b191684556004840154604080513481526001600160401b0384166020820152600160e01b90920460ff169082015290915033906001600160a01b0387169086907fb35324b0305f7c72581844f61b571e7136827ec4b3bcd716a1b8a8b7d42e1e549060600160405180910390a4611d2a8686611853565b505050505050565b6002810154600090606490611d5190600160e01b900460ff1682612e06565b60ff168360010154611d639190612d7c565b6106999190612e1f565b600184018290556002840180546001600160a01b0319166001600160a01b0383161790556000611d9d8442612d93565b6002860154909150600160a01b90046001600160401b0316811115611dee57611dc581611762565b8560020160146101000a8154816001600160401b0302191690836001600160401b031602179055505b5050505050565b600080600080858786f1610c2957826000526073600b5360ff6020536016600b83f0610c2957620f42405a11610c2957600080fd5b6000806000846001600160a01b0316630ea5613f876040518263ffffffff1660e01b8152600401611e5d91815260200190565b60c060405180830381865afa158015611e7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9e9190612e43565b5050875493831463ffffffff1990941661010062ffffff85160260ff19161793909317909655979650505050505050565b6000806002830181611ee0856116fa565b90506000611eed83612779565b90508180611ef85750805b94508415611f1e578015611f1657611f0f83611d32565b9350611f1e565b856001015493505b505050915091565b8054600090610100900460ff1615611f435750805460ff16610699565b6000611f4f84846127a5565b91506106999050565b82156115e257600080600080600080600087156120a957604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038c1690638639415b9060440161010060405180830381865afa158015611fc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe59190612ea2565b969e50949c50909a509850919650919450909250905081156120a2576040516001600160a01b038216908390600081818185875af1925050503d806000811461204a576040519150601f19603f3d011682016040523d82523d6000602084013e61204f565b606091505b505080995050886120a25760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610751565b5050612129565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b038a1690638639415b9060440160c060405180830381865afa1580156120f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121199190612f2a565b949a509298509096509450925090505b85156121d0576040516001600160a01b038616908790600081818185875af1925050503d8060008114612178576040519150601f19603f3d011682016040523d82523d6000602084013e61217d565b606091505b505080975050866121d05760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610751565b831561226f576040516001600160a01b038416908590600081818185875af1925050503d806000811461221f576040519150601f19603f3d011682016040523d82523d6000602084013e612224565b606091505b5050809750508661226f5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610751565b8115612316576040516001600160a01b038216908390600081818185875af1925050503d80600081146122be576040519150601f19603f3d011682016040523d82523d6000602084013e6122c3565b606091505b505080975050866123165760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610751565b5050505050505050505050565b61232e8585856124e9565b80612340575061234084848484612458565b611dee5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c7920417274697374206f7220436f72652041646d696e2041434c0000006044820152606401610751565b61239461290e565b600282016123a181611a6a565b6123ec5760405162461bcd60e51b815260206004820152601c60248201527b139bc8185d58dd1a5bdb88195e1a5cdd1cc81bdb881c1c9bda9958dd60221b6044820152606401610751565b50506040805160c08101825260028301548152600383015460208201526004909201546001600160a01b038116918301919091526001600160401b03600160a01b820416606083015260ff600160e01b820481166080840152600160e81b90910416151560a082015290565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af11580156124bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e09190612f85565b95945050505050565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015612531573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125559190612fa0565b6001600160a01b0316826001600160a01b03161490509392505050565b60008060006125818585612633565b87549193509150610100900462ffffff16600061259e83836128b5565b909310979650505050505050565b6000610699620f424083612fbd565b8054620f4240830660010190610100900462ffffff168082111561261b5760405162461bcd60e51b815260206004820152601760248201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b6044820152606401610751565b8082036115e257825460ff1916600117835550505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa15801561267d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a19190612e43565b5093989297509195505050505050565b83546000906126d6906126d190600160401b900463ffffffff1642612d93565b611762565b6040805160c081018252868152602081018690526001600160a01b03949094169084018190526001600160401b038216606085018190528754600160601b900460ff1660808601819052600060a09096019590955260028801969096556003870194909455600490950180546001600160e01b031916909317600160a01b9094029390931761ffff60e01b1916600160e01b90910260ff60e81b19161790555090565b600061278482611a6a565b801561069957505060020154600160a01b90046001600160401b0316421090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03871690612807908590612d05565b6000604051808303816000865af19150503d8060008114612844576040519150601f19603f3d011682016040523d82523d6000602084013e612849565b606091505b50915091508161286b5760405162461bcd60e51b815260040161075190612d21565b805160c0819003612891575050835461ffff191661010017845550600091506106999050565b8061010003611502575050835461ffff191661010117845550600191506106999050565b60008183106128c457816105d0565b5090919050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260c0810161290961290e565b905290565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6001600160a01b038116811461158a57600080fd5b60006020828403121561296a57600080fd5b81356105d081612943565b60006020828403121561298757600080fd5b813563ffffffff811681146105d057600080fd5b600080604083850312156129ae57600080fd5b8235915060208301356129c081612943565b809150509250929050565b6000806000606084860312156129e057600080fd5b8335925060208401356129f281612943565b91506040840135612a0281612943565b809150509250925092565b60008060008060008060c08789031215612a2657600080fd5b863595506020870135612a3881612943565b945060408701359350606087013592506080870135915060a087013560ff81168114612a6357600080fd5b809150509295509295509295565b80518252602080820151908301526040808201516001600160a01b0316908301526060808201516001600160401b03169083015260808082015160ff169083015260a0908101511515910152565b6000610180820190506001600160401b03835116825263ffffffff602084015116602083015260ff604084015116604083015262ffffff606084015116606083015260808301511515608083015260a083015160a083015260c0830151612b2960c0840182612a71565b5092915050565b803562ffffff81168114612b4357600080fd5b919050565b600080600060608486031215612b5d57600080fd5b833592506020840135612b6f81612943565b9150612b7d60408501612b30565b90509250925092565b600080600060608486031215612b9b57600080fd5b83359250602084013591506040840135612a0281612943565b60005b83811015612bcf578181015183820152602001612bb7565b50506000910152565b60008151808452612bf0816020860160208601612bb4565b601f01601f19169290920160200192915050565b6020815260006105d06020830184612bd8565b8415158152836020820152608060408201526000612c386080830185612bd8565b905060018060a01b038316606083015295945050505050565b600060208284031215612c6357600080fd5b6105d082612b30565b60c081016106998284612a71565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b602080825260169082015275141c9bda9958dd081b9bdd0818dbdb999a59dd5c995960521b604082015260600190565b60008251612d17818460208701612bb4565b9190910192915050565b60208082526025908201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604082015264185a5b195960da1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761069957610699612d66565b8082018082111561069957610699612d66565b600060208284031215612db857600080fd5b5051919050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b60ff818116838216019081111561069957610699612d66565b600082612e2e57612e2e612df0565b500490565b80518015158114612b4357600080fd5b60008060008060008060c08789031215612e5c57600080fd5b8651955060208701519450612e7360408801612e33565b9350612e8160608801612e33565b925060808701519150612e9660a08801612e33565b90509295509295509295565b600080600080600080600080610100898b031215612ebf57600080fd5b885197506020890151612ed181612943565b60408a015160608b01519198509650612ee981612943565b60808a015160a08b01519196509450612f0181612943565b60c08a015160e08b01519194509250612f1981612943565b809150509295985092959890939650565b60008060008060008060c08789031215612f4357600080fd5b865195506020870151612f5581612943565b604088015160608901519196509450612f6d81612943565b608088015160a08901519194509250612a6381612943565b600060208284031215612f9757600080fd5b6105d082612e33565b600060208284031215612fb257600080fd5b81516105d081612943565b600082612fcc57612fcc612df0565b50069056fea26469706673582212205ac2682e3d7f1d57f9eab47cd1cfd0c7cf0a688a26bd3f2877c7f3393fda9dce64736f6c63430008130033",
655
+ "bytecode": "0x60c06040526001805466ffffffffffffff1916657530000000781790553480156200002957600080fd5b506040516200325d3803806200325d8339810160408190526200004c916200011e565b60016000556001600160a01b038116608081905260a052604051603c81527f4ef0f5aca00c220a4058c318e0dd5526680003d4e6fceb9ad65087452a8313fa9060200160405180910390a160015460405163ffffffff90911681527f8b3c10d428bd990a6450cefb1c55333a8e7ad39e44e310574b6357014c8fcbae9060200160405180910390a160015460405164010000000090910462ffffff1681527ff28602592f2788507e76a86523ec8d5ef26873807e258d4cae31571370c0e6c89060200160405180910390a15062000150565b6000602082840312156200013157600080fd5b81516001600160a01b03811681146200014957600080fd5b9392505050565b60805160a0516130bd620001a0600039600081816106af0152818161085a015281816108c6015281816109cf0152610a0f015260008181610418015281816105620152610aaa01526130bd6000f3fe6080604052600436106101265760003560e01c806301000da71461012b578063217748bb146101605780633c496a3e146101825780634869f3df146101b05780634b1614ba146101d057806355ec841c146101f057806363076680146102105780637a1b838f1461024d57806390748d281461026d5780639a94488a1461029a5780639b7b5585146102dc578063b000e334146102f1578063b8bd1b1d14610311578063b945c4e014610324578063cce7c90914610337578063cf76e1b014610357578063d3ddabe614610377578063d9bffbce146103b6578063d9eb16db146103d6578063dd85582f14610406578063e4566f2d14610452578063e624db9f14610472578063e9d1e8ac14610492578063f1d1a7fa146104c9578063ff83e649146104e9575b600080fd5b34801561013757600080fd5b5061014b610146366004612a12565b610516565b60405190151581526020015b60405180910390f35b34801561016c57600080fd5b5061018061017b366004612a2f565b61054e565b005b34801561018e57600080fd5b506101a261019d366004612a55565b6105df565b604051908152602001610157565b3480156101bc57600080fd5b506101a26101cb366004612a55565b6105f4565b3480156101dc57600080fd5b506101a26101eb366004612a55565b610600565b3480156101fc57600080fd5b5061018061020b366004612a85565b61060c565b34801561021c57600080fd5b5060015460408051603c815263ffffffff83166020820152600160201b90920462ffffff1690820152606001610157565b34801561025957600080fd5b50610180610268366004612ac7565b61062f565b34801561027957600080fd5b5061028d610288366004612a55565b6106db565b6040516101579190612b79565b3480156102a657600080fd5b506102ba6102b5366004612a55565b6107f5565b6040805182511515815260209283015162ffffff169281019290925201610157565b3480156102e857600080fd5b506101a2603c81565b3480156102fd57600080fd5b5061018061030c366004612c02565b61083d565b61018061031f366004612a55565b61087e565b610180610332366004612c40565b6108f3565b34801561034357600080fd5b5061014b610352366004612a55565b610964565b34801561036357600080fd5b50610180610372366004612a55565b610970565b34801561038357600080fd5b506103a960405180604001604052806006815260200165076312e302e360d41b81525081565b6040516101579190612cbe565b3480156103c257600080fd5b506101806103d1366004612a55565b6109f3565b3480156103e257600080fd5b506103f66103f1366004612a55565b610a37565b6040516101579493929190612cd1565b34801561041257600080fd5b5061043a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610157565b34801561045e57600080fd5b5061018061046d366004612a55565b610a74565b34801561047e57600080fd5b5061018061048d366004612d0b565b610aa5565b34801561049e57600080fd5b506103a96040518060400160405280600b81526020016a4d696e746572534541563160a81b81525081565b3480156104d557600080fd5b506101806104e4366004612a55565b610b72565b3480156104f557600080fd5b50610509610504366004612a55565b610b90565b6040516101579190612d26565b60008061052283610ba2565b8054909150610100900460ff161561053e575460ff1692915050565b61054783610bdb565b9392505050565b61055d8163ffffffff16610d51565b6105907f0000000000000000000000000000000000000000000000000000000000000000333063217748bb60e01b610d74565b6001805463ffffffff191663ffffffff83169081179091556040519081527f8b3c10d428bd990a6450cefb1c55333a8e7ad39e44e310574b6357014c8fcbae906020015b60405180910390a150565b60006105eb8383610dcf565b90505b92915050565b60006105eb8383610e0d565b60006105eb8383610e2d565b61061f82333063157b210760e21b610eaa565b61062a838383610eff565b505050565b61063a86863361106c565b603c8310156106905760405162461bcd60e51b815260206004820152601e60248201527f41756374696f6e206475726174696f6e2062656c6f77206d696e696d756d000060448201526064015b60405180910390fd5b61069e8686868686866110b1565b6106a8868661122f565b6106d386867f00000000000000000000000000000000000000000000000000000000000000006112e9565b505050505050565b6106e3612985565b6106ed8383611424565b6040805160e081018252825460ff8082161515835261010082046001600160401b03908116602080860191909152600160481b840463ffffffff1685870152600160681b84048316606080870191909152600160701b90940462ffffff16608080870191909152600188015460a080880191909152875160c08082018a5260028b0154825260038b0154948201949094526004909901546001600160a01b038116988a0198909852600160a01b880490931694880194909452600160e01b8604831693870193909352600160e81b909404161515928401929092529081019190915280519091506107df5760006107e5565b80608001515b62ffffff16608082015292915050565b6040805180820190915260008082526020820152610813838361146f565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b61084883833361106c565b610853838383611497565b61062a83837f00000000000000000000000000000000000000000000000000000000000000006112e9565b6002600054036108a05760405162461bcd60e51b815260040161068790612d34565b60026000556001546108ea908390839063ffffffff811690600160201b900462ffffff167f000000000000000000000000000000000000000000000000000000000000000061155b565b50506001600055565b6108fc82611730565b61090584611730565b146109505760405162461bcd60e51b815260206004820152601b60248201527a13db9b1e481d1bdad95b9cc81a5b881cd85b59481c1c9bda9958dd602a1b6044820152606401610687565b61095a8382610a74565b61062a828261087e565b60006105eb838361173f565b6002600054036109925760405162461bcd60e51b815260040161068790612d34565b60026000556109a282823361106c565b6109ac8282611758565b6109c85760405162461bcd60e51b815260040161068790612d6b565b6108ea82827f00000000000000000000000000000000000000000000000000000000000000006112e9565b6109fe82823361106c565b610a08828261177d565b610a3382827f00000000000000000000000000000000000000000000000000000000000000006112e9565b5050565b60008060606000610a4886866117f7565b60408051808201909152600381526208aa8960eb1b602082015291989097509095506000945092505050565b600260005403610a965760405162461bcd60e51b815260040161068790612d34565b60026000556108ea8282611861565b610ad87f0000000000000000000000000000000000000000000000000000000000000000333063e624db9f60e01b610d74565b611b588162ffffff161015610b205760405162461bcd60e51b815260206004820152600e60248201526d04f6e6c792067746520375f3030360941b6044820152606401610687565b6001805462ffffff60201b1916600160201b62ffffff8416908102919091179091556040519081527ff28602592f2788507e76a86523ec8d5ef26873807e258d4cae31571370c0e6c8906020016105d4565b610b86828233306378e8d3fd60e11b611a45565b610a338282611aae565b610b986129c8565b6105eb8383611b0f565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610c3d908590612d9b565b600060405180830381855afa9150503d8060008114610c78576040519150601f19603f3d011682016040523d82523d6000602084013e610c7d565b606091505b509150915081610cdd5760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b6064820152608401610687565b805160c0819003610cf45750600095945050505050565b8061010003610d095750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610687565b80600003610d715760405162461bcd60e51b815260040161068790612db7565b50565b610d8084848484611bec565b610dc95760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b6044820152606401610687565b50505050565b600080610ddc8484611424565b905060028101610deb81611c74565b15610dfa575491506105ee9050565b610e048585610e2d565b95945050505050565b600080610e1a848461146f565b54610100900462ffffff16949350505050565b600080610e3a8484611424565b805490915060ff16610e895760405162461bcd60e51b815260206004820152601860248201527713995e1d081d1bdad95b881b9bdd081c1bdc1d5b185d195960421b6044820152606401610687565b8054610ea2908590600160701b900462ffffff16611ca0565b949350505050565b610eb684848484611bec565b610dc95760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610687565b6000610f0b8484611424565b9050610f178484611758565b15610f615760405162461bcd60e51b815260206004820152601a6024820152794f6e6c7920756e636f6e666967757265642070726f6a6563747360301b6044820152606401610687565b805460ff161515600114610fa75760405162461bcd60e51b815260206004820152600d60248201526c2737903732bc3a103a37b5b2b760991b6044820152606401610687565b805460ff1916808255600090610fca908690600160701b900462ffffff16611ca0565b6040516323b872dd60e01b81529091506001600160a01b038516906323b872dd90610ffd90309087908690600401612dde565b600060405180830381600087803b15801561101757600080fd5b505af115801561102b573d6000803e3d6000fd5b50506040516001600160a01b03871692508791507f10cd4451a553c43379019750f57f76e7b32c27d28019cc64e1cb457c678cfef690600090a35050505050565b611077838383611cba565b61062a5760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610687565b60006110bd8787611424565b9050826000036110df5760405162461bcd60e51b815260040161068790612db7565b8160ff166000036111025760405162461bcd60e51b815260040161068790612db7565b84158061110e57508442105b6111595760405162461bcd60e51b815260206004820152601c60248201527b04f6e6c79206675747572652073746172742074696d6573206f7220360241b6044820152606401610687565b61116285611d43565b81546001600160401b03919091166101000268ffffffffffffffff001990911617815561118e84611daf565b81546001830185905564ffffffffff60481b1916600160481b63ffffffff9283160260ff60681b191617600160681b60ff8516908102919091178355604080516001600160401b03891681529287166020840152820185905260608201526001600160a01b0387169088907f62be165a67549c68012bfe757f102930d89f0efb86df6ccd057cb526e20977809060800160405180910390a350505050505050565b600061123b838361146f565b90506112478383611e14565b156112565761062a838361177d565b6000806112638585611e44565b84549193509150610100900462ffffff16818111156112cf57835483831463ffffffff1990911661010062ffffff85160260ff1916171784556040518281526001600160a01b0386169087906000805160206130688339815191529060200160405180910390a36106d3565b8083106106d357835460ff19166001178455505050505050565b60006112f58484611424565b805490915060ff16156113085750505050565b6113128484611ec2565b61131c5750505050565b805460ff191660011781556040516117cd60e21b8152306004820152602481018590526001600160a01b03848116604483015233606483015260009190841690615f34906084016020604051808303816000875af1158015611382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a69190612e02565b90506113b181611ed7565b825462ffffff91909116600160701b0262ffffff60701b199091161782556113d98185611ee6565b836001600160a01b0316857f0ebdd7cad7efd438492c42bc712f64b1f41b046cd6cb52382c4d1b513459194a8360405161141591815260200190565b60405180910390a35050505050565b60007fb698a63e219028aca483ec97b2ed711e6f9df51e5b3e29937e410d30ec34c4695b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee611448565b6000806114a48585611e44565b91509150808362ffffff1611156114cd5760405162461bcd60e51b815260040161068790612e1b565b818362ffffff1610156114f25760405162461bcd60e51b815260040161068790612e1b565b60006114fe868661146f565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087906000805160206130688339815191529060200160405180910390a3505050505050565b600061156686611730565b905060006115748287611424565b90506002810161158381611f7c565b158061159a57506002810154600160e81b900460ff165b156115b3576115ab83888a87611f8e565b505050611729565b805488146116035760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e20494420646f6573206e6f74206d617463682061756374696f6e006044820152606401610687565b600281015442600160a01b9091046001600160401b03161161165f5760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb88185b1c9958591e48195b991959605a1b6044820152606401610687565b6116688161222d565b3410156116a85760405162461bcd60e51b815260206004820152600e60248201526d42696420697320746f6f206c6f7760901b6044820152606401610687565b600281015460018201546001600160a01b03909116906116ca83893433612263565b6116d58282896122ea565b336001600160a01b0316896001600160a01b03168b7f3bb6f40a8aeb5dda33c401527cd8f6bd335757d2b1ed2827f0321a090c66b8243460405161171b91815260200190565b60405180910390a450505050505b5050505050565b60006105ee620f424083612e78565b60008061174c848461146f565b5460ff16949350505050565b6000806117658484611424565b54600160481b900463ffffffff161515949350505050565b60008061178a8484611e44565b91509150600061179a858561146f565b90506117a58261231f565b815460ff1962ffffff92909216610100029190911663ffffffff19909116178383141781556040516001600160a01b038516908690600080516020613068833981519152906114159086815260200190565b60008060006118068585611424565b90506002810160006118188787611758565b9050600061182583611c74565b905081806118305750805b9550851561185657801561184e576118478361222d565b9450611856565b836001015494505b505050509250929050565b600061186c83611730565b9050600061187a8284611424565b6004810154600382015491925060028301916001600160a01b03909116906118a183611f7c565b6118e75760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081a5b9a5d1a585b1a5e9959604a1b6044820152606401610687565b6002830154600160e81b900460ff1680611902575082548714155b156119105750505050505050565b6002830154600160a01b90046001600160401b031642101561196c5760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb881b9bdd081e595d08195b991959605a1b6044820152606401610687565b60028301805460ff60e81b1916600160e81b1790556040516323b872dd60e01b81526001600160a01b038716906323b872dd906119b190309086908c90600401612dde565b600060405180830381600087803b1580156119cb57600080fd5b505af11580156119df573d6000803e3d6000fd5b505050506119ee858288612383565b816001600160a01b0316866001600160a01b0316887f3e25c3675d003af5184b628dd8bd4775b9b3abc7351c3574c90870ca25b55f1184604051611a3491815260200190565b60405180910390a450505050505050565b611a50858585611cba565b80611a625750611a6284848484611bec565b6117295760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c7920417274697374206f7220436f72652041646d696e2041434c0000006044820152606401610687565b6000611aba8383611424565b8054600060018301819055610100600160701b031990911682556040519192506001600160a01b0384169185917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c8091a3505050565b611b176129c8565b6000611b238484611424565b905060028101611b3281611f7c565b611b7d5760405162461bcd60e51b815260206004820152601c60248201527b139bc8185d58dd1a5bdb88195e1a5cdd1cc81bdb881c1c9bda9958dd60221b6044820152606401610687565b506040805160c08101825260028301548152600383015460208201526004909201546001600160a01b038116918301919091526001600160401b03600160a01b820416606083015260ff600160e01b820481166080840152600160e81b90910416151560a08201529392505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015611c50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e049190612e9c565b6000611c7f82611f7c565b80156105ee57505060020154600160a01b90046001600160401b0316421090565b600081611cb0620f424085612eb7565b6105eb9190612ece565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d269190612ee1565b6001600160a01b0316826001600160a01b03161490509392505050565b60006001600160401b03821115611dab5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610687565b5090565b600063ffffffff821115611dab5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610687565b600080611e21848461146f565b8054909150610100900462ffffff16158015610ea257505460ff16159392505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb29190612efe565b5093989297509195505050505050565b6000611ece8383612544565b15159392505050565b60006105ee620f424083612f5d565b6000611ef183611730565b90506000611eff828461146f565b8054909150620f4240850660010190610100900462ffffff1680821115611f625760405162461bcd60e51b815260206004820152601760248201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b6044820152606401610687565b8082036106d357825460ff19166001178355505050505050565b600201546001600160a01b0316151590565b6000611f9a8585611424565b905060028101611faa8686611758565b611fc65760405162461bcd60e51b815260040161068790612d6b565b815461010090046001600160401b03164210156120235760405162461bcd60e51b815260206004820152601b60248201527a4f6e6c79206774652070726f6a6563742073746172742074696d6560281b6044820152606401610687565b61202c81611f7c565b158061204357506002810154600160e81b900460ff165b61208e5760405162461bcd60e51b815260206004820152601c60248201527b115e1a5cdd1a5b99c8185d58dd1a5bdb881b9bdd081cd95d1d1b195960221b6044820152606401610687565b81600101543410156120dd5760405162461bcd60e51b8152602060048201526018602482015277125b9cdd59999a58da595b9d081a5b9a5d1a585b08189a5960421b6044820152606401610687565b815460ff1661213a5760405162461bcd60e51b8152602060048201526024808201527f4e6f206e65787420746f6b656e2c20636865636b206d617820696e766f636174604482015263696f6e7360e01b6064820152608401610687565b61214384611ed7565b8254600160701b900462ffffff161461219a5760405162461bcd60e51b8152602060048201526019602482015278125b98dbdc9c9958dd081d185c99d95d081d1bdad95b881251603a1b6044820152606401610687565b60006121a8838634336125ab565b835460ff191684556004840154604080513481526001600160401b0384166020820152600160e01b90920460ff169082015290915033906001600160a01b0388169087907fb35324b0305f7c72581844f61b571e7136827ec4b3bcd716a1b8a8b7d42e1e549060600160405180910390a46122248787866112e9565b50505050505050565b6000606482600201601c9054906101000a900460ff1660640160ff168360010154028161225c5761225c612e4c565b0492915050565b600184018290556002840180546001600160a01b0319166001600160a01b03831617905560006122938442612ece565b6002860154909150600160a01b90046001600160401b0316811115611729576122bb81611d43565b8560020160146101000a8154816001600160401b0302191690836001600160401b031602179055505050505050565b600080600080858786f161062a57826000526073600b5360ff6020536016600b83f061062a57620f42405a1161062a57600080fd5b600062ffffff821115611dab5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201526534206269747360d01b6064820152608401610687565b8160000361239057505050565b600061239b82612673565b9050600080600080600080600080881561243957604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa1580156123fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124209190612f71565b969e50949c50929a5090985096509450925090506124b9565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015612485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a99190612ff9565b949c50929a509096509450925090505b8a82856124c6898c612ece565b6124d09190612ece565b6124da9190612ece565b146125265760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b6044820152606401610687565b61253686868a8a888888886126c1565b505050505050505050505050565b60008060006125538585611e44565b915091506000612563868661146f565b8054909150600090612580908490610100900462ffffff1661296f565b90508084106125965760009450505050506105ee565b6125a08482613054565b979650505050505050565b83546000906125d0906125cb90600160481b900463ffffffff1642612ece565b611d43565b6040805160c081018252868152602081018690526001600160a01b03949094169084018190526001600160401b038216606085018190528754600160681b900460ff1660808601819052600060a09096019590955260028801969096556003870194909455600490950180546001600160e01b031916909317600160a01b9094029390931761ffff60e01b1916600160e01b90910260ff60e81b19161790555090565b60008061267f83610ba2565b8054909150610100900460ff161561269b575460ff1692915050565b60006126a684610bdb565b825481151561ffff1990911617610100179092555092915050565b871561276c576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114612714576040519150601f19603f3d011682016040523d82523d6000602084013e612719565b606091505b505090508061276a5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610687565b505b8515612817576000856001600160a01b03168760405160006040518083038185875af1925050503d80600081146127bf576040519150601f19603f3d011682016040523d82523d6000602084013e6127c4565b606091505b50509050806128155760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610687565b505b83156128ba576000836001600160a01b03168560405160006040518083038185875af1925050503d806000811461286a576040519150601f19603f3d011682016040523d82523d6000602084013e61286f565b606091505b50509050806128b85760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610687565b505b8115612965576000816001600160a01b03168360405160006040518083038185875af1925050503d806000811461290d576040519150601f19603f3d011682016040523d82523d6000602084013e612912565b606091505b50509050806129635760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610687565b505b5050505050505050565b600081831061297e57816105eb565b5090919050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260c081016129c36129c8565b905290565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6001600160a01b0381168114610d7157600080fd5b600060208284031215612a2457600080fd5b8135610547816129fd565b600060208284031215612a4157600080fd5b813563ffffffff8116811461054757600080fd5b60008060408385031215612a6857600080fd5b823591506020830135612a7a816129fd565b809150509250929050565b600080600060608486031215612a9a57600080fd5b833592506020840135612aac816129fd565b91506040840135612abc816129fd565b809150509250925092565b60008060008060008060c08789031215612ae057600080fd5b863595506020870135612af2816129fd565b945060408701359350606087013592506080870135915060a087013560ff81168114612b1d57600080fd5b809150509295509295509295565b80518252602080820151908301526040808201516001600160a01b0316908301526060808201516001600160401b03169083015260808082015160ff169083015260a0908101511515910152565b6000610180820190508251151582526001600160401b03602084015116602083015263ffffffff604084015116604083015260ff606084015116606083015262ffffff608084015116608083015260a083015160a083015260c0830151612be360c0840182612b2b565b5092915050565b803562ffffff81168114612bfd57600080fd5b919050565b600080600060608486031215612c1757600080fd5b833592506020840135612c29816129fd565b9150612c3760408501612bea565b90509250925092565b600080600060608486031215612c5557600080fd5b83359250602084013591506040840135612abc816129fd565b60005b83811015612c89578181015183820152602001612c71565b50506000910152565b60008151808452612caa816020860160208601612c6e565b601f01601f19169290920160200192915050565b6020815260006105eb6020830184612c92565b8415158152836020820152608060408201526000612cf26080830185612c92565b905060018060a01b038316606083015295945050505050565b600060208284031215612d1d57600080fd5b6105eb82612bea565b60c081016105ee8284612b2b565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b602080825260169082015275141c9bda9958dd081b9bdd0818dbdb999a59dd5c995960521b604082015260600190565b60008251612dad818460208701612c6e565b9190910192915050565b6020808252600d908201526c4f6e6c79206e6f6e2d7a65726f60981b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208284031215612e1457600080fd5b5051919050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082612e8757612e87612e4c565b500490565b80518015158114612bfd57600080fd5b600060208284031215612eae57600080fd5b6105eb82612e8c565b80820281158282048414176105ee576105ee612e62565b808201808211156105ee576105ee612e62565b600060208284031215612ef357600080fd5b8151610547816129fd565b60008060008060008060c08789031215612f1757600080fd5b8651955060208701519450612f2e60408801612e8c565b9350612f3c60608801612e8c565b925060808701519150612f5160a08801612e8c565b90509295509295509295565b600082612f6c57612f6c612e4c565b500690565b600080600080600080600080610100898b031215612f8e57600080fd5b885197506020890151612fa0816129fd565b60408a015160608b01519198509650612fb8816129fd565b60808a015160a08b01519196509450612fd0816129fd565b60c08a015160e08b01519194509250612fe8816129fd565b809150509295985092959890939650565b60008060008060008060c0878903121561301257600080fd5b865195506020870151613024816129fd565b60408801516060890151919650945061303c816129fd565b608088015160a08901519194509250612b1d816129fd565b818103818111156105ee576105ee612e6256fe1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237a264697066735822122098e9f93be94c97074f4a9c1aab49f3ee5afee93712e9aaa74f71b2daa1141abc64736f6c63430008130033",
656
+ "deployedBytecode": "0x6080604052600436106101265760003560e01c806301000da71461012b578063217748bb146101605780633c496a3e146101825780634869f3df146101b05780634b1614ba146101d057806355ec841c146101f057806363076680146102105780637a1b838f1461024d57806390748d281461026d5780639a94488a1461029a5780639b7b5585146102dc578063b000e334146102f1578063b8bd1b1d14610311578063b945c4e014610324578063cce7c90914610337578063cf76e1b014610357578063d3ddabe614610377578063d9bffbce146103b6578063d9eb16db146103d6578063dd85582f14610406578063e4566f2d14610452578063e624db9f14610472578063e9d1e8ac14610492578063f1d1a7fa146104c9578063ff83e649146104e9575b600080fd5b34801561013757600080fd5b5061014b610146366004612a12565b610516565b60405190151581526020015b60405180910390f35b34801561016c57600080fd5b5061018061017b366004612a2f565b61054e565b005b34801561018e57600080fd5b506101a261019d366004612a55565b6105df565b604051908152602001610157565b3480156101bc57600080fd5b506101a26101cb366004612a55565b6105f4565b3480156101dc57600080fd5b506101a26101eb366004612a55565b610600565b3480156101fc57600080fd5b5061018061020b366004612a85565b61060c565b34801561021c57600080fd5b5060015460408051603c815263ffffffff83166020820152600160201b90920462ffffff1690820152606001610157565b34801561025957600080fd5b50610180610268366004612ac7565b61062f565b34801561027957600080fd5b5061028d610288366004612a55565b6106db565b6040516101579190612b79565b3480156102a657600080fd5b506102ba6102b5366004612a55565b6107f5565b6040805182511515815260209283015162ffffff169281019290925201610157565b3480156102e857600080fd5b506101a2603c81565b3480156102fd57600080fd5b5061018061030c366004612c02565b61083d565b61018061031f366004612a55565b61087e565b610180610332366004612c40565b6108f3565b34801561034357600080fd5b5061014b610352366004612a55565b610964565b34801561036357600080fd5b50610180610372366004612a55565b610970565b34801561038357600080fd5b506103a960405180604001604052806006815260200165076312e302e360d41b81525081565b6040516101579190612cbe565b3480156103c257600080fd5b506101806103d1366004612a55565b6109f3565b3480156103e257600080fd5b506103f66103f1366004612a55565b610a37565b6040516101579493929190612cd1565b34801561041257600080fd5b5061043a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610157565b34801561045e57600080fd5b5061018061046d366004612a55565b610a74565b34801561047e57600080fd5b5061018061048d366004612d0b565b610aa5565b34801561049e57600080fd5b506103a96040518060400160405280600b81526020016a4d696e746572534541563160a81b81525081565b3480156104d557600080fd5b506101806104e4366004612a55565b610b72565b3480156104f557600080fd5b50610509610504366004612a55565b610b90565b6040516101579190612d26565b60008061052283610ba2565b8054909150610100900460ff161561053e575460ff1692915050565b61054783610bdb565b9392505050565b61055d8163ffffffff16610d51565b6105907f0000000000000000000000000000000000000000000000000000000000000000333063217748bb60e01b610d74565b6001805463ffffffff191663ffffffff83169081179091556040519081527f8b3c10d428bd990a6450cefb1c55333a8e7ad39e44e310574b6357014c8fcbae906020015b60405180910390a150565b60006105eb8383610dcf565b90505b92915050565b60006105eb8383610e0d565b60006105eb8383610e2d565b61061f82333063157b210760e21b610eaa565b61062a838383610eff565b505050565b61063a86863361106c565b603c8310156106905760405162461bcd60e51b815260206004820152601e60248201527f41756374696f6e206475726174696f6e2062656c6f77206d696e696d756d000060448201526064015b60405180910390fd5b61069e8686868686866110b1565b6106a8868661122f565b6106d386867f00000000000000000000000000000000000000000000000000000000000000006112e9565b505050505050565b6106e3612985565b6106ed8383611424565b6040805160e081018252825460ff8082161515835261010082046001600160401b03908116602080860191909152600160481b840463ffffffff1685870152600160681b84048316606080870191909152600160701b90940462ffffff16608080870191909152600188015460a080880191909152875160c08082018a5260028b0154825260038b0154948201949094526004909901546001600160a01b038116988a0198909852600160a01b880490931694880194909452600160e01b8604831693870193909352600160e81b909404161515928401929092529081019190915280519091506107df5760006107e5565b80608001515b62ffffff16608082015292915050565b6040805180820190915260008082526020820152610813838361146f565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b61084883833361106c565b610853838383611497565b61062a83837f00000000000000000000000000000000000000000000000000000000000000006112e9565b6002600054036108a05760405162461bcd60e51b815260040161068790612d34565b60026000556001546108ea908390839063ffffffff811690600160201b900462ffffff167f000000000000000000000000000000000000000000000000000000000000000061155b565b50506001600055565b6108fc82611730565b61090584611730565b146109505760405162461bcd60e51b815260206004820152601b60248201527a13db9b1e481d1bdad95b9cc81a5b881cd85b59481c1c9bda9958dd602a1b6044820152606401610687565b61095a8382610a74565b61062a828261087e565b60006105eb838361173f565b6002600054036109925760405162461bcd60e51b815260040161068790612d34565b60026000556109a282823361106c565b6109ac8282611758565b6109c85760405162461bcd60e51b815260040161068790612d6b565b6108ea82827f00000000000000000000000000000000000000000000000000000000000000006112e9565b6109fe82823361106c565b610a08828261177d565b610a3382827f00000000000000000000000000000000000000000000000000000000000000006112e9565b5050565b60008060606000610a4886866117f7565b60408051808201909152600381526208aa8960eb1b602082015291989097509095506000945092505050565b600260005403610a965760405162461bcd60e51b815260040161068790612d34565b60026000556108ea8282611861565b610ad87f0000000000000000000000000000000000000000000000000000000000000000333063e624db9f60e01b610d74565b611b588162ffffff161015610b205760405162461bcd60e51b815260206004820152600e60248201526d04f6e6c792067746520375f3030360941b6044820152606401610687565b6001805462ffffff60201b1916600160201b62ffffff8416908102919091179091556040519081527ff28602592f2788507e76a86523ec8d5ef26873807e258d4cae31571370c0e6c8906020016105d4565b610b86828233306378e8d3fd60e11b611a45565b610a338282611aae565b610b986129c8565b6105eb8383611b0f565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610c3d908590612d9b565b600060405180830381855afa9150503d8060008114610c78576040519150601f19603f3d011682016040523d82523d6000602084013e610c7d565b606091505b509150915081610cdd5760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b6064820152608401610687565b805160c0819003610cf45750600095945050505050565b8061010003610d095750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610687565b80600003610d715760405162461bcd60e51b815260040161068790612db7565b50565b610d8084848484611bec565b610dc95760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b6044820152606401610687565b50505050565b600080610ddc8484611424565b905060028101610deb81611c74565b15610dfa575491506105ee9050565b610e048585610e2d565b95945050505050565b600080610e1a848461146f565b54610100900462ffffff16949350505050565b600080610e3a8484611424565b805490915060ff16610e895760405162461bcd60e51b815260206004820152601860248201527713995e1d081d1bdad95b881b9bdd081c1bdc1d5b185d195960421b6044820152606401610687565b8054610ea2908590600160701b900462ffffff16611ca0565b949350505050565b610eb684848484611bec565b610dc95760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610687565b6000610f0b8484611424565b9050610f178484611758565b15610f615760405162461bcd60e51b815260206004820152601a6024820152794f6e6c7920756e636f6e666967757265642070726f6a6563747360301b6044820152606401610687565b805460ff161515600114610fa75760405162461bcd60e51b815260206004820152600d60248201526c2737903732bc3a103a37b5b2b760991b6044820152606401610687565b805460ff1916808255600090610fca908690600160701b900462ffffff16611ca0565b6040516323b872dd60e01b81529091506001600160a01b038516906323b872dd90610ffd90309087908690600401612dde565b600060405180830381600087803b15801561101757600080fd5b505af115801561102b573d6000803e3d6000fd5b50506040516001600160a01b03871692508791507f10cd4451a553c43379019750f57f76e7b32c27d28019cc64e1cb457c678cfef690600090a35050505050565b611077838383611cba565b61062a5760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610687565b60006110bd8787611424565b9050826000036110df5760405162461bcd60e51b815260040161068790612db7565b8160ff166000036111025760405162461bcd60e51b815260040161068790612db7565b84158061110e57508442105b6111595760405162461bcd60e51b815260206004820152601c60248201527b04f6e6c79206675747572652073746172742074696d6573206f7220360241b6044820152606401610687565b61116285611d43565b81546001600160401b03919091166101000268ffffffffffffffff001990911617815561118e84611daf565b81546001830185905564ffffffffff60481b1916600160481b63ffffffff9283160260ff60681b191617600160681b60ff8516908102919091178355604080516001600160401b03891681529287166020840152820185905260608201526001600160a01b0387169088907f62be165a67549c68012bfe757f102930d89f0efb86df6ccd057cb526e20977809060800160405180910390a350505050505050565b600061123b838361146f565b90506112478383611e14565b156112565761062a838361177d565b6000806112638585611e44565b84549193509150610100900462ffffff16818111156112cf57835483831463ffffffff1990911661010062ffffff85160260ff1916171784556040518281526001600160a01b0386169087906000805160206130688339815191529060200160405180910390a36106d3565b8083106106d357835460ff19166001178455505050505050565b60006112f58484611424565b805490915060ff16156113085750505050565b6113128484611ec2565b61131c5750505050565b805460ff191660011781556040516117cd60e21b8152306004820152602481018590526001600160a01b03848116604483015233606483015260009190841690615f34906084016020604051808303816000875af1158015611382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a69190612e02565b90506113b181611ed7565b825462ffffff91909116600160701b0262ffffff60701b199091161782556113d98185611ee6565b836001600160a01b0316857f0ebdd7cad7efd438492c42bc712f64b1f41b046cd6cb52382c4d1b513459194a8360405161141591815260200190565b60405180910390a35050505050565b60007fb698a63e219028aca483ec97b2ed711e6f9df51e5b3e29937e410d30ec34c4695b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee611448565b6000806114a48585611e44565b91509150808362ffffff1611156114cd5760405162461bcd60e51b815260040161068790612e1b565b818362ffffff1610156114f25760405162461bcd60e51b815260040161068790612e1b565b60006114fe868661146f565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087906000805160206130688339815191529060200160405180910390a3505050505050565b600061156686611730565b905060006115748287611424565b90506002810161158381611f7c565b158061159a57506002810154600160e81b900460ff165b156115b3576115ab83888a87611f8e565b505050611729565b805488146116035760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e20494420646f6573206e6f74206d617463682061756374696f6e006044820152606401610687565b600281015442600160a01b9091046001600160401b03161161165f5760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb88185b1c9958591e48195b991959605a1b6044820152606401610687565b6116688161222d565b3410156116a85760405162461bcd60e51b815260206004820152600e60248201526d42696420697320746f6f206c6f7760901b6044820152606401610687565b600281015460018201546001600160a01b03909116906116ca83893433612263565b6116d58282896122ea565b336001600160a01b0316896001600160a01b03168b7f3bb6f40a8aeb5dda33c401527cd8f6bd335757d2b1ed2827f0321a090c66b8243460405161171b91815260200190565b60405180910390a450505050505b5050505050565b60006105ee620f424083612e78565b60008061174c848461146f565b5460ff16949350505050565b6000806117658484611424565b54600160481b900463ffffffff161515949350505050565b60008061178a8484611e44565b91509150600061179a858561146f565b90506117a58261231f565b815460ff1962ffffff92909216610100029190911663ffffffff19909116178383141781556040516001600160a01b038516908690600080516020613068833981519152906114159086815260200190565b60008060006118068585611424565b90506002810160006118188787611758565b9050600061182583611c74565b905081806118305750805b9550851561185657801561184e576118478361222d565b9450611856565b836001015494505b505050509250929050565b600061186c83611730565b9050600061187a8284611424565b6004810154600382015491925060028301916001600160a01b03909116906118a183611f7c565b6118e75760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081a5b9a5d1a585b1a5e9959604a1b6044820152606401610687565b6002830154600160e81b900460ff1680611902575082548714155b156119105750505050505050565b6002830154600160a01b90046001600160401b031642101561196c5760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb881b9bdd081e595d08195b991959605a1b6044820152606401610687565b60028301805460ff60e81b1916600160e81b1790556040516323b872dd60e01b81526001600160a01b038716906323b872dd906119b190309086908c90600401612dde565b600060405180830381600087803b1580156119cb57600080fd5b505af11580156119df573d6000803e3d6000fd5b505050506119ee858288612383565b816001600160a01b0316866001600160a01b0316887f3e25c3675d003af5184b628dd8bd4775b9b3abc7351c3574c90870ca25b55f1184604051611a3491815260200190565b60405180910390a450505050505050565b611a50858585611cba565b80611a625750611a6284848484611bec565b6117295760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c7920417274697374206f7220436f72652041646d696e2041434c0000006044820152606401610687565b6000611aba8383611424565b8054600060018301819055610100600160701b031990911682556040519192506001600160a01b0384169185917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c8091a3505050565b611b176129c8565b6000611b238484611424565b905060028101611b3281611f7c565b611b7d5760405162461bcd60e51b815260206004820152601c60248201527b139bc8185d58dd1a5bdb88195e1a5cdd1cc81bdb881c1c9bda9958dd60221b6044820152606401610687565b506040805160c08101825260028301548152600383015460208201526004909201546001600160a01b038116918301919091526001600160401b03600160a01b820416606083015260ff600160e01b820481166080840152600160e81b90910416151560a08201529392505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015611c50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e049190612e9c565b6000611c7f82611f7c565b80156105ee57505060020154600160a01b90046001600160401b0316421090565b600081611cb0620f424085612eb7565b6105eb9190612ece565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d269190612ee1565b6001600160a01b0316826001600160a01b03161490509392505050565b60006001600160401b03821115611dab5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610687565b5090565b600063ffffffff821115611dab5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610687565b600080611e21848461146f565b8054909150610100900462ffffff16158015610ea257505460ff16159392505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb29190612efe565b5093989297509195505050505050565b6000611ece8383612544565b15159392505050565b60006105ee620f424083612f5d565b6000611ef183611730565b90506000611eff828461146f565b8054909150620f4240850660010190610100900462ffffff1680821115611f625760405162461bcd60e51b815260206004820152601760248201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b6044820152606401610687565b8082036106d357825460ff19166001178355505050505050565b600201546001600160a01b0316151590565b6000611f9a8585611424565b905060028101611faa8686611758565b611fc65760405162461bcd60e51b815260040161068790612d6b565b815461010090046001600160401b03164210156120235760405162461bcd60e51b815260206004820152601b60248201527a4f6e6c79206774652070726f6a6563742073746172742074696d6560281b6044820152606401610687565b61202c81611f7c565b158061204357506002810154600160e81b900460ff165b61208e5760405162461bcd60e51b815260206004820152601c60248201527b115e1a5cdd1a5b99c8185d58dd1a5bdb881b9bdd081cd95d1d1b195960221b6044820152606401610687565b81600101543410156120dd5760405162461bcd60e51b8152602060048201526018602482015277125b9cdd59999a58da595b9d081a5b9a5d1a585b08189a5960421b6044820152606401610687565b815460ff1661213a5760405162461bcd60e51b8152602060048201526024808201527f4e6f206e65787420746f6b656e2c20636865636b206d617820696e766f636174604482015263696f6e7360e01b6064820152608401610687565b61214384611ed7565b8254600160701b900462ffffff161461219a5760405162461bcd60e51b8152602060048201526019602482015278125b98dbdc9c9958dd081d185c99d95d081d1bdad95b881251603a1b6044820152606401610687565b60006121a8838634336125ab565b835460ff191684556004840154604080513481526001600160401b0384166020820152600160e01b90920460ff169082015290915033906001600160a01b0388169087907fb35324b0305f7c72581844f61b571e7136827ec4b3bcd716a1b8a8b7d42e1e549060600160405180910390a46122248787866112e9565b50505050505050565b6000606482600201601c9054906101000a900460ff1660640160ff168360010154028161225c5761225c612e4c565b0492915050565b600184018290556002840180546001600160a01b0319166001600160a01b03831617905560006122938442612ece565b6002860154909150600160a01b90046001600160401b0316811115611729576122bb81611d43565b8560020160146101000a8154816001600160401b0302191690836001600160401b031602179055505050505050565b600080600080858786f161062a57826000526073600b5360ff6020536016600b83f061062a57620f42405a1161062a57600080fd5b600062ffffff821115611dab5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201526534206269747360d01b6064820152608401610687565b8160000361239057505050565b600061239b82612673565b9050600080600080600080600080881561243957604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa1580156123fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124209190612f71565b969e50949c50929a5090985096509450925090506124b9565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015612485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a99190612ff9565b949c50929a509096509450925090505b8a82856124c6898c612ece565b6124d09190612ece565b6124da9190612ece565b146125265760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b6044820152606401610687565b61253686868a8a888888886126c1565b505050505050505050505050565b60008060006125538585611e44565b915091506000612563868661146f565b8054909150600090612580908490610100900462ffffff1661296f565b90508084106125965760009450505050506105ee565b6125a08482613054565b979650505050505050565b83546000906125d0906125cb90600160481b900463ffffffff1642612ece565b611d43565b6040805160c081018252868152602081018690526001600160a01b03949094169084018190526001600160401b038216606085018190528754600160681b900460ff1660808601819052600060a09096019590955260028801969096556003870194909455600490950180546001600160e01b031916909317600160a01b9094029390931761ffff60e01b1916600160e01b90910260ff60e81b19161790555090565b60008061267f83610ba2565b8054909150610100900460ff161561269b575460ff1692915050565b60006126a684610bdb565b825481151561ffff1990911617610100179092555092915050565b871561276c576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114612714576040519150601f19603f3d011682016040523d82523d6000602084013e612719565b606091505b505090508061276a5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610687565b505b8515612817576000856001600160a01b03168760405160006040518083038185875af1925050503d80600081146127bf576040519150601f19603f3d011682016040523d82523d6000602084013e6127c4565b606091505b50509050806128155760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610687565b505b83156128ba576000836001600160a01b03168560405160006040518083038185875af1925050503d806000811461286a576040519150601f19603f3d011682016040523d82523d6000602084013e61286f565b606091505b50509050806128b85760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610687565b505b8115612965576000816001600160a01b03168360405160006040518083038185875af1925050503d806000811461290d576040519150601f19603f3d011682016040523d82523d6000602084013e612912565b606091505b50509050806129635760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610687565b505b5050505050505050565b600081831061297e57816105eb565b5090919050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260c081016129c36129c8565b905290565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6001600160a01b0381168114610d7157600080fd5b600060208284031215612a2457600080fd5b8135610547816129fd565b600060208284031215612a4157600080fd5b813563ffffffff8116811461054757600080fd5b60008060408385031215612a6857600080fd5b823591506020830135612a7a816129fd565b809150509250929050565b600080600060608486031215612a9a57600080fd5b833592506020840135612aac816129fd565b91506040840135612abc816129fd565b809150509250925092565b60008060008060008060c08789031215612ae057600080fd5b863595506020870135612af2816129fd565b945060408701359350606087013592506080870135915060a087013560ff81168114612b1d57600080fd5b809150509295509295509295565b80518252602080820151908301526040808201516001600160a01b0316908301526060808201516001600160401b03169083015260808082015160ff169083015260a0908101511515910152565b6000610180820190508251151582526001600160401b03602084015116602083015263ffffffff604084015116604083015260ff606084015116606083015262ffffff608084015116608083015260a083015160a083015260c0830151612be360c0840182612b2b565b5092915050565b803562ffffff81168114612bfd57600080fd5b919050565b600080600060608486031215612c1757600080fd5b833592506020840135612c29816129fd565b9150612c3760408501612bea565b90509250925092565b600080600060608486031215612c5557600080fd5b83359250602084013591506040840135612abc816129fd565b60005b83811015612c89578181015183820152602001612c71565b50506000910152565b60008151808452612caa816020860160208601612c6e565b601f01601f19169290920160200192915050565b6020815260006105eb6020830184612c92565b8415158152836020820152608060408201526000612cf26080830185612c92565b905060018060a01b038316606083015295945050505050565b600060208284031215612d1d57600080fd5b6105eb82612bea565b60c081016105ee8284612b2b565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b602080825260169082015275141c9bda9958dd081b9bdd0818dbdb999a59dd5c995960521b604082015260600190565b60008251612dad818460208701612c6e565b9190910192915050565b6020808252600d908201526c4f6e6c79206e6f6e2d7a65726f60981b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208284031215612e1457600080fd5b5051919050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082612e8757612e87612e4c565b500490565b80518015158114612bfd57600080fd5b600060208284031215612eae57600080fd5b6105eb82612e8c565b80820281158282048414176105ee576105ee612e62565b808201808211156105ee576105ee612e62565b600060208284031215612ef357600080fd5b8151610547816129fd565b60008060008060008060c08789031215612f1757600080fd5b8651955060208701519450612f2e60408801612e8c565b9350612f3c60608801612e8c565b925060808701519150612f5160a08801612e8c565b90509295509295509295565b600082612f6c57612f6c612e4c565b500690565b600080600080600080600080610100898b031215612f8e57600080fd5b885197506020890151612fa0816129fd565b60408a015160608b01519198509650612fb8816129fd565b60808a015160a08b01519196509450612fd0816129fd565b60c08a015160e08b01519194509250612fe8816129fd565b809150509295985092959890939650565b60008060008060008060c0878903121561301257600080fd5b865195506020870151613024816129fd565b60408801516060890151919650945061303c816129fd565b608088015160a08901519194509250612b1d816129fd565b818103818111156105ee576105ee612e6256fe1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237a264697066735822122098e9f93be94c97074f4a9c1aab49f3ee5afee93712e9aaa74f71b2daa1141abc64736f6c63430008130033",
1323
657
  "linkReferences": {},
1324
658
  "deployedLinkReferences": {}
1325
659
  }