@artblocks/contracts 1.0.2 → 1.0.4

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 (387) hide show
  1. package/README.md +56 -21
  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 +141 -15
  5. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +42 -5
  6. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV0.sol/MinterDAExpV0.json +2 -2
  7. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV1.sol/MinterDAExpV1.json +2 -2
  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/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV0.sol/MinterDALinV0.json +2 -2
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV1.sol/MinterDALinV1.json +2 -2
  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/archive/minter-suite/Minters/MinterHolder/MinterHolderV0.sol/MinterHolderV0.json +2 -2
  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/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV0.sol/MinterMerkleV0.json +2 -2
  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/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV0.sol/MinterSetPriceV0.json +2 -2
  26. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV1.sol/MinterSetPriceV1.json +2 -2
  27. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  28. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +2 -2
  31. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  33. package/artifacts/contracts/engine/{GenArt721CoreV2_ENGINE_FLEX.sol → V2/GenArt721CoreV2_ENGINE_FLEX.sol}/GenArt721CoreV2_ENGINE_FLEX.json +3 -3
  34. package/artifacts/contracts/engine/{GenArt721CoreV2_PBAB.sol → V2/GenArt721CoreV2_PBAB.sol}/GenArt721CoreV2_PBAB.json +3 -3
  35. package/artifacts/contracts/engine/{GenArt721CoreV2_PRTNR.sol → V2/GenArt721CoreV2_PRTNR.sol}/GenArt721CoreV2_PRTNR.json +3 -3
  36. package/artifacts/contracts/engine/{GenArt721MinterBurner_PBAB.sol → V2/GenArt721MinterBurner_PBAB.sol}/GenArt721MinterBurner_PBAB.json +3 -3
  37. package/artifacts/contracts/engine/{GenArt721MinterDAExp_PBAB.sol → V2/GenArt721MinterDAExp_PBAB.sol}/GenArt721MinterDAExp_PBAB.json +3 -3
  38. package/artifacts/contracts/engine/{GenArt721Minter_PBAB.sol → V2/GenArt721Minter_PBAB.sol}/GenArt721Minter_PBAB.json +3 -3
  39. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +1960 -0
  40. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +2247 -0
  41. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +2247 -0
  42. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +401 -0
  43. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +2281 -0
  44. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol/IAdminACLV0_PROHIBITION.json +359 -0
  45. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +1094 -0
  46. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +242 -0
  47. package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +2 -2
  48. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +41 -4
  49. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IBonusContract.sol/IBonusContract.json +1 -1
  50. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +1 -1
  51. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +1 -1
  52. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IRandomizer.sol/IRandomizer.json +1 -1
  53. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IAdminACLV0.sol/IAdminACLV0.json +1 -1
  54. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IArtblocksRoyaltyOverride.sol/IArtblocksRoyaltyOverride.json +1 -1
  55. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IBonusContract.sol/IBonusContract.json +1 -1
  56. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +111 -0
  57. package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +172 -0
  58. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDelegationRegistry.sol/IDelegationRegistry.json +1 -1
  59. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryCompatibleV0.sol/IDependencyRegistryCompatibleV0.json +1 -1
  60. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +3 -3
  61. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IEngineRegistryV0.sol/IEngineRegistryV0.json +1 -1
  62. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +1 -1
  63. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +1 -1
  64. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlement_Mixin.sol/IFilteredMinterDAExpSettlement_Mixin.json +1 -1
  65. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV0.sol/IFilteredMinterDAExpV0.json +1 -1
  66. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV1.sol/IFilteredMinterDAExpV1.json +1 -1
  67. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV0.sol/IFilteredMinterDALinV0.json +1 -1
  68. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV1.sol/IFilteredMinterDALinV1.json +1 -1
  69. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV0.sol/IFilteredMinterHolderV0.json +1 -1
  70. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV1.sol/IFilteredMinterHolderV1.json +1 -1
  71. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV2.sol/IFilteredMinterHolderV2.json +1 -1
  72. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV0.sol/IFilteredMinterMerkleV0.json +1 -1
  73. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV1.sol/IFilteredMinterMerkleV1.json +1 -1
  74. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV2.sol/IFilteredMinterMerkleV2.json +1 -1
  75. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterSEAV0.sol/IFilteredMinterSEAV0.json +56 -54
  76. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV0.sol/IFilteredMinterV0.json +1 -1
  77. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV1.sol/IFilteredMinterV1.json +1 -1
  78. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV2.sol/IFilteredMinterV2.json +1 -1
  79. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractExposesHashSeed.sol/IGenArt721CoreContractExposesHashSeed.json +30 -0
  80. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +1 -1
  81. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +14 -1
  82. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3WithSharedRandomizer.sol/IGenArt721CoreContractV3WithSharedRandomizer.json +24 -0
  83. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +14 -1
  84. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +8 -14
  85. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +8 -14
  86. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +1 -1
  87. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IManifold.sol/IManifold.json +1 -1
  88. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMinterBaseV0.sol/IMinterBaseV0.json +1 -1
  89. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV0.sol/IMinterFilterV0.json +1 -1
  90. package/artifacts/contracts/interfaces/v0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +514 -0
  91. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPICoreV0.sol/IMintingAPICoreV0.json +1 -1
  92. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPIMinterV0.sol/IMintingAPIMinterV0.json +1 -1
  93. package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +30 -0
  94. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizer.sol/IRandomizer.json +1 -1
  95. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerPolyptychV0.sol/IRandomizerPolyptychV0.json +1 -1
  96. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerV2.sol/IRandomizerV2.json +1 -1
  97. package/artifacts/contracts/interfaces/v0.8.x/IRandomizer_V3CoreBase.sol/IRandomizer_V3CoreBase.json +24 -0
  98. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +207 -0
  99. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +93 -0
  100. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +93 -0
  101. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +69 -0
  102. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +203 -0
  103. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +123 -0
  104. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +261 -0
  105. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +64 -0
  106. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +533 -0
  107. package/artifacts/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +223 -0
  108. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IWETH.sol/IWETH.json +1 -1
  109. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Address.json +2 -2
  110. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Counters.json +2 -2
  111. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/CustomERC721Metadata.json +2 -2
  112. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721.json +2 -2
  113. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721Enumerable.json +2 -2
  114. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/GenArt721CoreV1.json +2 -2
  115. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/SafeMath.json +2 -2
  116. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Strings.json +2 -2
  117. package/artifacts/contracts/legacy/GenArt721LegacyMinter.sol/GenArt721LegacyMinter.json +2 -2
  118. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  119. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
  120. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
  121. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
  122. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +2 -2
  123. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/CustomERC721Metadata.sol/CustomERC721Metadata.json +3 -3
  124. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/IERC20.sol/IERC20.json +1 -1
  125. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/SafeMath.sol/SafeMath.json +3 -3
  126. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/Strings.sol/Strings.json +3 -3
  127. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +10 -0
  128. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +10 -0
  129. package/artifacts/contracts/libs/{0.8.x/BytecodeStorage.sol → v0.8.x/BytecodeStorageV0.sol}/BytecodeStorage.json +3 -3
  130. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +163 -0
  131. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +10 -0
  132. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/Bytes32Strings.sol/Bytes32Strings.json +3 -3
  133. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +3 -3
  134. package/artifacts/contracts/libs/v0.8.x/SSTORE2.sol/SSTORE2.json +10 -0
  135. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +10 -0
  136. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +10 -0
  137. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +10 -0
  138. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +10 -0
  139. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +10 -0
  140. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +10 -0
  141. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +10 -0
  142. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +10 -0
  143. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +10 -0
  144. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +10 -0
  145. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV0.sol/MinterFilterV0.json +2 -2
  146. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  147. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +748 -0
  148. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +1228 -0
  149. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
  150. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +1146 -0
  151. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
  152. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +909 -0
  153. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +1228 -0
  154. package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +2 -2
  155. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +909 -0
  156. package/artifacts/contracts/minter-suite/Minters/MinterHolderV4.sol/MinterHolderV4.json +2 -2
  157. package/artifacts/contracts/minter-suite/Minters/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
  158. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +10 -160
  159. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
  160. package/artifacts/contracts/minter-suite/Minters/MinterSEAV0.sol/MinterSEAV0.json +59 -80
  161. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +1325 -0
  162. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
  163. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +848 -0
  164. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +1091 -0
  165. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +1075 -0
  166. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +1243 -0
  167. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +1167 -0
  168. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
  169. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +772 -0
  170. package/artifacts/contracts/mock/{BytecodeTextCR_DMock.sol/BytecodeTextCR_DMock.json → BytecodeV0TextCR_DMock.sol/BytecodeV0TextCR_DMock.json} +4 -4
  171. package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +135 -0
  172. package/artifacts/contracts/mock/BytecodeV1TextCR_DMock.sol/BytecodeV1TextCR_DMock.json +301 -0
  173. package/artifacts/contracts/mock/DeadReceiverBidderMock.sol/DeadReceiverBidderMock.json +25 -2
  174. package/artifacts/contracts/mock/DeadReceiverMock.sol/DeadReceiverMock.json +2 -2
  175. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +114 -0
  176. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +28 -2
  177. package/artifacts/contracts/mock/GasLimitReceiverBidderMock.sol/GasLimitReceiverBidderMock.json +2 -2
  178. package/artifacts/contracts/mock/GasLimitReceiverMock.sol/GasLimitReceiverMock.json +2 -2
  179. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +22 -4
  180. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +2 -2
  181. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +440 -0
  182. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +39 -0
  183. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  184. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  185. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  186. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  187. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
  188. package/artifacts/contracts/mock/SSTORE2Mock.sol/SSTORE2Mock.json +118 -0
  189. package/artifacts/contracts/randomizer/{BasicRandomizer.sol → deprecated/BasicRandomizer.sol}/BasicRandomizer.json +3 -3
  190. package/artifacts/contracts/randomizer/{BasicRandomizerBase_v0_0_0.sol → deprecated/BasicRandomizerBase_v0_0_0.sol}/RandomizerBase.json +1 -1
  191. package/artifacts/contracts/randomizer/{PolyptychRandomizerV0.sol → deprecated/PolyptychRandomizerV0.sol}/BasicPolyptychRandomizerV0.json +3 -3
  192. package/artifacts/contracts/randomizer/{RandomizerV2.sol → deprecated/RandomizerV2.sol}/BasicRandomizerV2.json +3 -3
  193. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +30 -0
  194. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +247 -0
  195. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +2 -2
  196. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +2 -2
  197. package/contracts/AdminACLV0.sol +2 -2
  198. package/contracts/AdminACLV1.sol +2 -2
  199. package/contracts/DependencyRegistryV0.sol +219 -123
  200. package/contracts/GenArt721CoreV3.sol +60 -42
  201. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV0.sol +3 -3
  202. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV1.sol +3 -3
  203. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +4 -4
  204. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +4 -4
  205. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +4 -4
  206. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +4 -4
  207. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV0.sol +3 -3
  208. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV1.sol +3 -3
  209. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +4 -4
  210. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +4 -4
  211. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV0.sol +3 -3
  212. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol +4 -4
  213. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +5 -5
  214. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +5 -5
  215. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV0.sol +3 -3
  216. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol +4 -4
  217. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol +5 -5
  218. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +5 -5
  219. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +5 -5
  220. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV0.sol +3 -3
  221. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV1.sol +3 -3
  222. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +4 -4
  223. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +4 -4
  224. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +3 -3
  225. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +3 -3
  226. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +4 -4
  227. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +4 -4
  228. package/contracts/engine/{GenArt721CoreV2_ENGINE_FLEX.sol → V2/GenArt721CoreV2_ENGINE_FLEX.sol} +2 -2
  229. package/contracts/engine/{GenArt721CoreV2_PBAB.sol → V2/GenArt721CoreV2_PBAB.sol} +2 -2
  230. package/contracts/engine/{GenArt721CoreV2_PRTNR.sol → V2/GenArt721CoreV2_PRTNR.sol} +3 -3
  231. package/contracts/engine/{GenArt721MinterBurner_PBAB.sol → V2/GenArt721MinterBurner_PBAB.sol} +2 -2
  232. package/contracts/engine/{GenArt721MinterDAExp_PBAB.sol → V2/GenArt721MinterDAExp_PBAB.sol} +2 -2
  233. package/contracts/engine/{GenArt721Minter_PBAB.sol → V2/GenArt721Minter_PBAB.sol} +2 -2
  234. package/contracts/{GenArt721CoreV3_Engine.sol → engine/V3/GenArt721CoreV3_Engine.sol} +48 -24
  235. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +2298 -0
  236. package/contracts/{GenArt721CoreV3_Engine_Flex.sol → engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol} +50 -31
  237. package/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol +281 -0
  238. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +2359 -0
  239. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol +123 -0
  240. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +29 -0
  241. package/contracts/engine-registry/CoreRegistryV1.sol +254 -0
  242. package/contracts/engine-registry/EngineRegistryV0.sol +2 -2
  243. package/contracts/explorations/GenArt721CoreV3_Explorations.sol +58 -40
  244. package/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol +62 -0
  245. package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +27 -0
  246. package/contracts/interfaces/{0.8.x → v0.8.x}/IDelegationRegistry.sol +1 -1
  247. package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryCompatibleV0.sol +1 -1
  248. package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryV0.sol +3 -3
  249. package/contracts/interfaces/{0.8.x → v0.8.x}/IEngineRegistryV0.sol +1 -1
  250. package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterSEAV0.sol +34 -15
  251. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractExposesHashSeed.sol +11 -0
  252. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3WithSharedRandomizer.sol +23 -0
  253. package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Base.sol +3 -0
  254. package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine.sol +0 -5
  255. package/contracts/interfaces/v0.8.x/IMinterFilterV1.sol +184 -0
  256. package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +16 -0
  257. package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerPolyptychV0.sol +1 -1
  258. package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerV2.sol +2 -5
  259. package/contracts/interfaces/v0.8.x/IRandomizer_V3CoreBase.sol +23 -0
  260. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +37 -0
  261. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +25 -0
  262. package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +26 -0
  263. package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +19 -0
  264. package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +69 -0
  265. package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +44 -0
  266. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +78 -0
  267. package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +28 -0
  268. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +191 -0
  269. package/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol +123 -0
  270. package/contracts/legacy/GenArt721CoreV1.sol +2 -2
  271. package/contracts/legacy/GenArt721LegacyMinter.sol +5 -5
  272. package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +2 -2
  273. package/contracts/libs/integration-refs/weth9/weth9.sol +2 -0
  274. package/contracts/libs/v0.8.x/ABHelpers.sol +55 -0
  275. package/contracts/libs/v0.8.x/AuthLib.sol +197 -0
  276. package/contracts/libs/v0.8.x/BytecodeStorageV1.sol +399 -0
  277. package/contracts/libs/v0.8.x/SSTORE2.sol +109 -0
  278. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +125 -0
  279. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +109 -0
  280. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +348 -0
  281. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +175 -0
  282. package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +160 -0
  283. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +320 -0
  284. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +44 -0
  285. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +390 -0
  286. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +583 -0
  287. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +153 -0
  288. package/contracts/minter-suite/MinterFilter/MinterFilterV0.sol +3 -3
  289. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +6 -6
  290. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +830 -0
  291. package/contracts/minter-suite/Minters/MinterBase_v0_1_1.sol +4 -4
  292. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +966 -0
  293. package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +4 -4
  294. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +1126 -0
  295. package/contracts/minter-suite/Minters/MinterDAExpV4.sol +4 -4
  296. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +606 -0
  297. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +952 -0
  298. package/contracts/minter-suite/Minters/MinterDALinV4.sol +4 -4
  299. package/contracts/minter-suite/Minters/MinterDALinV5.sol +591 -0
  300. package/contracts/minter-suite/Minters/MinterHolderV4.sol +5 -5
  301. package/contracts/minter-suite/Minters/MinterMerkleV5.sol +5 -5
  302. package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +18 -17
  303. package/contracts/minter-suite/Minters/MinterSEAV0.sol +235 -186
  304. package/contracts/minter-suite/Minters/MinterSEAV1.sol +1190 -0
  305. package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +6 -6
  306. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +570 -0
  307. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +821 -0
  308. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +802 -0
  309. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +1096 -0
  310. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +992 -0
  311. package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +4 -4
  312. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +461 -0
  313. package/contracts/mock/{BytecodeTextCR_DMock.sol → BytecodeV0TextCR_DMock.sol} +5 -5
  314. package/contracts/mock/BytecodeV1LibCallsMock.sol +114 -0
  315. package/contracts/mock/BytecodeV1TextCR_DMock.sol +233 -0
  316. package/contracts/mock/DeadReceiverBidderMock.sol +16 -1
  317. package/contracts/mock/DeadReceiverMock.sol +1 -1
  318. package/contracts/mock/DummySharedMinter.sol +75 -0
  319. package/contracts/mock/ERC20Mock.sol +16 -0
  320. package/contracts/mock/GasLimitReceiverBidderMock.sol +1 -1
  321. package/contracts/mock/GasLimitReceiverMock.sol +1 -1
  322. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +22 -35
  323. package/contracts/mock/MockAdminACLV0.sol +2 -2
  324. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +207 -0
  325. package/contracts/mock/OriginRegisterMock.sol +27 -0
  326. package/contracts/mock/RandomizerV2_NoAssignMock.sol +2 -2
  327. package/contracts/mock/ReentrancyHolderMock.sol +1 -1
  328. package/contracts/mock/ReentrancyMerkleMock.sol +1 -1
  329. package/contracts/mock/ReentrancyMock.sol +1 -1
  330. package/contracts/mock/ReentrancySEAMock.sol +1 -1
  331. package/contracts/mock/SSTORE2Mock.sol +93 -0
  332. package/contracts/randomizer/{BasicRandomizer.sol → deprecated/BasicRandomizer.sol} +1 -1
  333. package/contracts/randomizer/{BasicRandomizerBase_v0_0_0.sol → deprecated/BasicRandomizerBase_v0_0_0.sol} +1 -1
  334. package/contracts/randomizer/{PolyptychRandomizerV0.sol → deprecated/PolyptychRandomizerV0.sol} +3 -3
  335. package/contracts/randomizer/{RandomizerV2.sol → deprecated/RandomizerV2.sol} +3 -3
  336. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +30 -0
  337. package/contracts/randomizer/shared/SharedRandomizerV0.sol +260 -0
  338. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +2 -2
  339. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +2 -2
  340. package/package.json +51 -43
  341. package/.env.example +0 -17
  342. package/LICENSE +0 -165
  343. package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +0 -1942
  344. package/artifacts/contracts/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +0 -2229
  345. package/artifacts/contracts/engine-registry/future/EngineRegistryV1.sol/EngineRegistryV1.json +0 -109
  346. package/contracts/engine-registry/future/EngineRegistryV1.sol +0 -86
  347. /package/contracts/interfaces/{0.5.x → v0.5.x}/IBonusContract.sol +0 -0
  348. /package/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreContractV1.sol +0 -0
  349. /package/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreV2_PBAB.sol +0 -0
  350. /package/contracts/interfaces/{0.5.x → v0.5.x}/IRandomizer.sol +0 -0
  351. /package/contracts/interfaces/{0.8.x → v0.8.x}/IAdminACLV0.sol +0 -0
  352. /package/contracts/interfaces/{0.8.x → v0.8.x}/IArtblocksRoyaltyOverride.sol +0 -0
  353. /package/contracts/interfaces/{0.8.x → v0.8.x}/IBonusContract.sol +0 -0
  354. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV0.sol +0 -0
  355. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV1.sol +0 -0
  356. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlement_Mixin.sol +0 -0
  357. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV0.sol +0 -0
  358. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV1.sol +0 -0
  359. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV0.sol +0 -0
  360. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV1.sol +0 -0
  361. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV0.sol +0 -0
  362. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV1.sol +0 -0
  363. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV2.sol +0 -0
  364. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV0.sol +0 -0
  365. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV1.sol +0 -0
  366. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV2.sol +0 -0
  367. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV0.sol +0 -0
  368. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV1.sol +0 -0
  369. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV2.sol +0 -0
  370. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV1.sol +0 -0
  371. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3.sol +0 -0
  372. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine_Flex.sol +0 -0
  373. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreV2_PBAB.sol +0 -0
  374. /package/contracts/interfaces/{0.8.x → v0.8.x}/IManifold.sol +0 -0
  375. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterBaseV0.sol +0 -0
  376. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV0.sol +0 -0
  377. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPICoreV0.sol +0 -0
  378. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPIMinterV0.sol +0 -0
  379. /package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizer.sol +0 -0
  380. /package/contracts/interfaces/{0.8.x → v0.8.x}/IWETH.sol +0 -0
  381. /package/contracts/libs/{0.5.x → v0.5.x}/CustomERC721Metadata.sol +0 -0
  382. /package/contracts/libs/{0.5.x → v0.5.x}/IERC20.sol +0 -0
  383. /package/contracts/libs/{0.5.x → v0.5.x}/SafeMath.sol +0 -0
  384. /package/contracts/libs/{0.5.x → v0.5.x}/Strings.sol +0 -0
  385. /package/contracts/libs/{0.8.x/BytecodeStorage.sol → v0.8.x/BytecodeStorageV0.sol} +0 -0
  386. /package/contracts/libs/{0.8.x → v0.8.x}/Bytes32Strings.sol +0 -0
  387. /package/contracts/libs/{0.8.x → v0.8.x}/ERC721_PackedHashSeed.sol +0 -0
@@ -1261,8 +1261,8 @@
1261
1261
  "type": "function"
1262
1262
  }
1263
1263
  ],
1264
- "bytecode": "0x6101606040523480156200001257600080fd5b5060405162003d2e38038062003d2e833981016040819052620000359162000373565b6001600055826200004681620001d5565b1515608052506001600160a01b0383811660e081905261010052811660a08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a16001600160a01b0380821660c052828116610120819052610140819052604080516392a10f8360e01b81529051928616926392a10f839160048082019260209290919082900301816000875af1158015620000f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200011f9190620003bd565b6001600160a01b0316146200017b5760405162461bcd60e51b815260206004820152601860248201527f496c6c6567616c20636f6e74726163742070616972696e67000000000000000060448201526064015b60405180910390fd5b608051620001cc5760405162461bcd60e51b815260206004820152601c60248201527f4f6e6c7920737570706f72747320563320456e67696e6520636f726500000000604482015260640162000172565b50505062000413565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b0386169062000239908590620003e2565b6000604051808303816000865af19150503d806000811462000278576040519150601f19603f3d011682016040523d82523d6000602084013e6200027d565b606091505b509150915081620002df5760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840162000172565b805160c0819003620002f75750600095945050505050565b80610100036200030d5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640162000172565b80516001600160a01b03811681146200036e57600080fd5b919050565b6000806000606084860312156200038957600080fd5b620003948462000356565b9250620003a46020850162000356565b9150620003b46040850162000356565b90509250925092565b600060208284031215620003d057600080fd5b620003db8262000356565b9392505050565b6000825160005b81811015620004055760208186018101518583015201620003e9565b506000920191825250919050565b60805160a05160c05160e051610100516101205161014051613873620004bb6000396000610c170152600061062a015260008181610981015281816109ff01528181610b2701528181610cea0152818161139801528181611fbf015281816125b601526126a50152600081816104470152818161118a015261120a015260006108a7015260006105300152600081816105f6015281816121c201526127e601526138736000f3fe6080604052600436106101ab5760003560e01c806392a10f83116100e857806392a10f831461043557806399c0bbdc146104765780639ab7fb8a1461048b578063a647300c146104ab578063a9809600146104cb578063b00abb64146104eb578063bc8ff001146104fe578063bf5bf5f81461051e578063c71b1b7114610552578063d195b36514610585578063d3ddabe6146105a5578063db6921b2146105e4578063dd85582f14610618578063e2849bd51461064c578063e9d1e8ac1461066c578063efef39a1146106a9578063f4632103146106b7578063f7bd4b88146106d757600080fd5b806111cd146101b0578061aa52146101d65780630b4f2e28146101e95780630ed79c4e1461020b5780631607c9951461022b57806328c5c4e51461024b57806340d1397e1461025e578063462add461461027e57806347b14e03146102be5780634fd1b70e146102f95780634ff5759d1461031957806356690aaf14610339578063650e5d6d146101d65780636cb9b7ff14610371578063774159c6146103915780637994db09146103c1578063891407c0146103e157806390d355b7146103f4575b600080fd5b6101c36101be366004612d4e565b6106f7565b6040519081526020015b60405180910390f35b6101c36101e4366004612dad565b611246565b3480156101f557600080fd5b50610209610204366004612de5565b61125e565b005b34801561021757600080fd5b50610209610226366004612dfe565b6112af565b34801561023757600080fd5b50610209610246366004612e1b565b61136c565b6101c3610259366004612d4e565b611597565b34801561026a57600080fd5b50610209610279366004612de5565b6115b0565b34801561028a57600080fd5b506102ae610299366004612de5565b60009081526002602052604090205460ff1690565b60405190151581526020016101cd565b3480156102ca57600080fd5b506102ae6102d9366004612e53565b600160209081526000928352604080842090915290825290205460ff1681565b34801561030557600080fd5b50610209610314366004612fbb565b6115f8565b34801561032557600080fd5b50610209610334366004612dfe565b61161e565b34801561034557600080fd5b506101c3610354366004612de5565b60009081526002602052604090205462010000900462ffffff1690565b34801561037d57600080fd5b5061020961038c366004612e1b565b611671565b34801561039d57600080fd5b506103b16103ac366004612de5565b6116f7565b6040516101cd94939291906130c1565b3480156103cd57600080fd5b506102096103dc3660046130fb565b6117ec565b6101c36103ef366004613167565b6119ad565b34801561040057600080fd5b506102ae61040f366004612dad565b600560209081526000938452604080852082529284528284209052825290205460ff1681565b34801561044157600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b6040516101cd9190613193565b34801561048257600080fd5b506101c36119f3565b34801561049757600080fd5b506102ae6104a63660046131a7565b611a04565b3480156104b757600080fd5b506102096104c63660046130fb565b611afb565b3480156104d757600080fd5b506101c36104e6366004612de5565b611c3f565b6101c36104f93660046131df565b611cc8565b34801561050a57600080fd5b50610469610519366004612de5565b611ce1565b34801561052a57600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b34801561055e57600080fd5b5061057261056d366004612de5565b611cee565b6040516101cd9796959493929190613227565b34801561059157600080fd5b506102096105a0366004613282565b611dd1565b3480156105b157600080fd5b506105d760405180604001604052806006815260200165076302e312e360d41b81525081565b6040516101cd9190613330565b3480156105f057600080fd5b506102ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561062457600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b34801561065857600080fd5b506102ae610667366004612dad565b611f13565b34801561067857600080fd5b506105d76040518060400160405280601181526020017004d696e746572506f6c797074796368563607c1b81525081565b6101c36103ef366004612de5565b3480156106c357600080fd5b506101c36106d2366004612de5565b611f58565b3480156106e357600080fd5b506102096106f2366004612de5565b611f9c565b60006002600054036107505760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600081815586815260209190915260409020805460ff16156107c45760405162461bcd60e51b815260206004820152602560248201527f4d6178696d756d206e756d626572206f6620696e766f636174696f6e732072656044820152641858da195960da1b6064820152608401610747565b8054610100900460ff166108115760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610747565b61081c868686611f13565b6108605760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610747565b336001600160a01b0384161561096857604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528781166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109149190613353565b9050806109635760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610747565b849150505b604051630ea5613f60e01b8152600481018890526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630ea5613f9060240160c060405180830381865afa1580156109d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f4919061336e565b5050505050905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a47d29cb8a6040518263ffffffff1660e01b8152600401610a4b91815260200190565b602060405180830381865afa158015610a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8c91906133cd565b9050600082610a9e620f42408c613400565b610aa89190613417565b604051634d01727d60e11b8152600481018a905290915089906000906001600160a01b03831690639a02e4fa90602401602060405180830381865afa158015610af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b19919061342a565b9050610b258c82612098565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba991906133cd565b6040516359e4a2ad60e01b8152600481018590526001600160a01b0319831660248201526001600160a01b0391909116906359e4a2ad90604401600060405180830381600087803b158015610bfd57600080fd5b505af1158015610c11573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630d4d15138e8e896040518463ffffffff1660e01b8152600401610c83939291906001600160a01b0393841681526020810192909252909116604082015260600190565b6020604051808303816000875af1158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc69190613447565b604051634d01727d60e11b8152600481018290529098506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639a02e4fa90602401602060405180830381865afa158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d55919061342a565b90506001600160a01b031980821690831614610db05760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b6044820152606401610747565b8754620f42408a066001019062010000900462ffffff1680821115610e155760405162461bcd60e51b815260206004820152601b60248201527a13585e1a5b5d5b481a5b9d9bd8d85d1a5bdb9cc81c995858da1959602a1b6044820152606401610747565b808203610e2857895460ff19166001178a555b50506001600160a01b0385163303610ede578d6001600160a01b03168c6001600160a01b0316636352211e8d6040518263ffffffff1660e01b8152600401610e7291815260200190565b602060405180830381865afa158015610e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb391906133cd565b6001600160a01b031614610ed95760405162461bcd60e51b815260040161074790613460565b610f72565b6040516331a9108f60e11b8152600481018c90526001600160a01b0380891691908e1690636352211e90602401602060405180830381865afa158015610f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4c91906133cd565b6001600160a01b031614610f725760405162461bcd60e51b815260040161074790613460565b60018801548854600160401b90046001600160a01b031680156111b35734156110035760405162461bcd60e51b815260206004820152603f60248201527f746869732070726f6a6563742061636365707473206120646966666572656e7460448201527f2063757272656e637920616e642063616e6e6f742061636365707420455448006064820152608401610747565b604051636eb1769f60e11b815282906001600160a01b0383169063dd62ed3e90611033903390309060040161348b565b602060405180830381865afa158015611050573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110749190613447565b10156110cd5760405162461bcd60e51b815260206004820152602260248201527f496e73756666696369656e742046756e647320417070726f76656420666f72206044820152610a8b60f31b6064820152608401610747565b6040516370a0823160e01b815282906001600160a01b038316906370a08231906110fb903390600401613193565b602060405180830381865afa158015611118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113c9190613447565b10156111825760405162461bcd60e51b815260206004820152601560248201527424b739bab33334b1b4b2b73a103130b630b731b29760591b6044820152606401610747565b6111ae8f83837f00000000000000000000000000000000000000000000000000000000000000006121b8565b61122e565b813410156112035760405162461bcd60e51b815260206004820181905260248201527f4d7573742073656e64206d696e696d756d2076616c756520746f206d696e74216044820152606401610747565b61122e8f837f00000000000000000000000000000000000000000000000000000000000000006124f2565b50505050505050505050600160005595945050505050565b60006112563385858560006106f7565b949350505050565b611267816125a0565b60008181526002602052604090208054600160281b900462ffffff1690600561128f836134a5565b91906101000a81548162ffffff021916908362ffffff1602179055505050565b6112bf63076bce2760e11b61267a565b604051634d01727d60e11b8152600060048201526001600160a01b03821690639a02e4fa90602401602060405180830381865afa158015611304573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611328919061342a565b50611334600382612763565b506040516001600160a01b038216907f7475e948f72f2714b1984b09949d13da2ddbae9f91e31da0faa380c0095b971c90600090a250565b611375826125a0565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa1580156113df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611403919061336e565b50929550929350505050818311156114a35760405162461bcd60e51b815260206004820152605760248201527f43616e6e6f7420696e6372656173652070726f6a656374206d617820696e766f60448201527f636174696f6e732061626f766520636f726520636f6e7472616374207365742060648201527670726f6a656374206d617820696e766f636174696f6e7360481b608482015260a401610747565b808310156115255760405162461bcd60e51b815260206004820152604360248201527f43616e6e6f74207365742070726f6a656374206d617820696e766f636174696f60448201527f6e7320746f206c657373207468616e2063757272656e7420696e766f636174696064820152626f6e7360e81b608482015260a401610747565b60008481526002602052604090819020805460ff1962ffffff871662010000021664ffffff00ff19909116178386141790555184907f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906115899086815260200190565b60405180910390a250505050565b60006115a686868686866106f7565b9695505050505050565b6115b9816125a0565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b6044820152606401610747565b611601856125a0565b61160c8585856117ec565b611617858383611afb565b5050505050565b61162e634ff5759d60e01b61267a565b61163960038261277f565b506040516001600160a01b038216907f16e28d6cac0e892c58cee90af3dc883220abe36e25201d7117c4f3aaabf1c3f090600090a250565b61167a826125a0565b60008281526002602052604080822060018101849055805461ff00191661010017815590519091839185917f26118a27aca826f829f3bfe21b140b4455c00b434849bd0da50d1e1a9720fb5c91a3805462010000900462ffffff161580156116e45750805460ff16155b156116f2576116f283611f9c565b505050565b600081815260026020526040902080546001820154610100820460ff16929091606091600160401b9091046001600160a01b03169081611754576040518060400160405280600381526020016208aa8960eb1b81525092506117e4565b806002018054611763906134c7565b80601f016020809104026020016040519081016040528092919081815260200182805461178f906134c7565b80156117dc5780601f106117b1576101008083540402835291602001916117dc565b820191906000526020600020905b8154815290600101906020018083116117bf57829003601f168201915b505050505092505b509193509193565b6117f5836125a0565b80518251146118465760405162461bcd60e51b815260206004820152601f60248201527f4c656e677468206f662061646420617272617973206d757374206d61746368006044820152606401610747565b60005b825181101561196d5761187f83828151811061186757611867613501565b6020026020010151600361279490919063ffffffff16565b6118cb5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c792052656769737465726564204e4654204164647265737365730000006044820152606401610747565b60008481526005602052604081208451600192908690859081106118f1576118f1613501565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600084848151811061192d5761192d613501565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061196590613517565b915050611849565b50827fba2ec6d92cd62364c8e443b484b3e1f72f1ee9e161c1f871de1a60d83c89558b83836040516119a0929190613530565b60405180910390a2505050565b60405162461bcd60e51b815260206004820152601860248201527704d75737420636c61696d204e4654206f776e6572736869760441b6044820152600090606401610747565b60006119ff60036127b6565b905090565b604051634d01727d60e11b81526004810182905260009081906001600160a01b03851690639a02e4fa90602401602060405180830381865afa158015611a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a72919061342a565b90506001600160a01b03198116611ac55760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081d1bdad95b881a185cda081cd95959604a1b6044820152606401610747565b62ffffff851660009081526001602090815260408083206001600160a01b03199094168352929052205460ff1690509392505050565b611b04836125a0565b8051825114611b605760405162461bcd60e51b815260206004820152602260248201527f4c656e677468206f662072656d6f766520617272617973206d757374206d61746044820152610c6d60f31b6064820152608401610747565b60005b8251811015611c0c57600084815260056020526040812084518290869085908110611b9057611b90613501565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611bcc57611bcc613501565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611c0490613517565b915050611b63565b50827f2e3dced83b61aee20d72f4bdc7e6997a0f8616af4067d3aa92afe2b9b0532d1c83836040516119a0929190613530565b6000818152600260205260408082205490516370a0823160e01b8152600160401b9091046001600160a01b0316906370a0823190611c81903390600401613193565b602060405180830381865afa158015611c9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc29190613447565b92915050565b6000611cd88585858560006106f7565b95945050505050565b6000611cc26003836127c0565b600260208190526000918252604090912080546001820154928201805460ff8084169561010085049091169462010000850462ffffff90811695600160281b810490911694600160401b9091046001600160a01b031693611d4e906134c7565b80601f0160208091040260200160405190810160405280929190818152602001828054611d7a906134c7565b8015611dc75780601f10611d9c57610100808354040283529160200191611dc7565b820191906000526020600020905b815481529060010190602001808311611daa57829003601f168201915b5050505050905087565b611dda836125a0565b6040516208aa8960eb1b60208201526001600160a01b03821615906023016040516020818303038152906040528051906020012083604051602001611e1f91906135b4565b6040516020818303038152906040528051906020012014151514611e805760405162461bcd60e51b8152602060048201526018602482015277455448206973206f6e6c79206e756c6c206164647265737360401b6044820152606401610747565b600083815260026020819052604090912001611e9c838261361e565b50600083815260026020526040908190208054600160401b600160e01b031916600160401b6001600160a01b03851690810291909117909155905184907fe6c8c6160f844a27204e2b7fb4b7fb9f10e5d322fa850096bef29dc1d0f445c190611f06908690613330565b60405180910390a3505050565b600080611f23620f4240846136dd565b60009586526005602090815260408088206001600160a01b039790971688529581528587209187525250505090205460ff1690565b600081815260026020526040808220549051636eb1769f60e11b8152600160401b9091046001600160a01b03169063dd62ed3e90611c81903390309060040161348b565b604051630ea5613f60e01b81526004810182905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa158015612006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202a919061336e565b50505060008681526002602052604090819020805460ff1962ffffff861662010000021664ffffff00ff1990911617858514179055519194509192508491507f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906119a09085815260200190565b600082815260026020526040902054600160281b900462ffffff166001600160a01b0319821661211a5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206861766520616e20656d707479206861736820736565642074604482015266379031b7b83c9760c91b6064820152608401610747565b60008181526001602090815260408083206001600160a01b03198616845290915290205460ff16156121855760405162461bcd60e51b815260206004820152601460248201527314185b995b08185b1c9958591e481b5a5b9d195960621b6044820152606401610747565b60009081526001602081815260408084206001600160a01b03199095168452939052919020805460ff1916909117905550565b81600080808080807f0000000000000000000000000000000000000000000000000000000000000000156122f457604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa158015612238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225c91906136ff565b969e50949c50909a509850919650919450909250905081156122ed576040516323b872dd60e01b81526001600160a01b038a16906323b872dd906122a890339085908790600401613787565b6020604051808303816000875af11580156122c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122eb9190613353565b505b5050612374565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612340573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236491906137ab565b949a509298509096509450925090505b85156123ef576040516323b872dd60e01b81526001600160a01b038816906323b872dd906123aa90339089908b90600401613787565b6020604051808303816000875af11580156123c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ed9190613353565b505b831561246a576040516323b872dd60e01b81526001600160a01b038816906323b872dd9061242590339087908990600401613787565b6020604051808303816000875af1158015612444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124689190613353565b505b81156124e5576040516323b872dd60e01b81526001600160a01b038816906323b872dd906124a090339085908790600401613787565b6020604051808303816000875af11580156124bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e39190613353565b505b5050505050505050505050565b34156116f2576000806125058434613814565b905080156125955760405133908290600081818185875af1925050503d806000811461254d576040519150601f19603f3d011682016040523d82523d6000602084013e612552565b606091505b505080925050816125955760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610747565b6116178585856127cc565b60405163a47d29cb60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015612605573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262991906133cd565b6001600160a01b0316336001600160a01b0316146126775760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610747565b50565b60405163230448b160e01b81523360048201523060248201526001600160e01b0319821660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063230448b1906064016020604051808303816000875af11580156126f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271a9190613353565b6126775760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610747565b6000612778836001600160a01b038416612bbd565b9392505050565b6000612778836001600160a01b038416612c0c565b6001600160a01b03811660009081526001830160205260408120541515612778565b6000611cc2825490565b60006127788383612cff565b600082116127d957505050565b60008060008060008060007f00000000000000000000000000000000000000000000000000000000000000001561294457604051638639415b60e01b8152600481018b9052602481018a905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa15801561285c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061288091906136ff565b969e50949c50909a5098509196509194509092509050811561293d576040516001600160a01b038216908390600081818185875af1925050503d80600081146128e5576040519150601f19603f3d011682016040523d82523d6000602084013e6128ea565b606091505b5050809950508861293d5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610747565b50506129c4565b604051638639415b60e01b8152600481018b9052602481018a90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129b491906137ab565b949a509298509096509450925090505b8515612a6b576040516001600160a01b038616908790600081818185875af1925050503d8060008114612a13576040519150601f19603f3d011682016040523d82523d6000602084013e612a18565b606091505b50508097505086612a6b5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610747565b8315612b0a576040516001600160a01b038416908590600081818185875af1925050503d8060008114612aba576040519150601f19603f3d011682016040523d82523d6000602084013e612abf565b606091505b50508097505086612b0a5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610747565b8115612bb1576040516001600160a01b038216908390600081818185875af1925050503d8060008114612b59576040519150601f19603f3d011682016040523d82523d6000602084013e612b5e565b606091505b50508097505086612bb15760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610747565b50505050505050505050565b6000818152600183016020526040812054612c0457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611cc2565b506000611cc2565b60008181526001830160205260408120548015612cf5576000612c30600183613814565b8554909150600090612c4490600190613814565b9050818114612ca9576000866000018281548110612c6457612c64613501565b9060005260206000200154905080876000018481548110612c8757612c87613501565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612cba57612cba613827565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611cc2565b6000915050611cc2565b6000826000018281548110612d1657612d16613501565b9060005260206000200154905092915050565b6001600160a01b038116811461267757600080fd5b8035612d4981612d29565b919050565b600080600080600060a08688031215612d6657600080fd5b8535612d7181612d29565b9450602086013593506040860135612d8881612d29565b9250606086013591506080860135612d9f81612d29565b809150509295509295909350565b600080600060608486031215612dc257600080fd5b833592506020840135612dd481612d29565b929592945050506040919091013590565b600060208284031215612df757600080fd5b5035919050565b600060208284031215612e1057600080fd5b813561277881612d29565b60008060408385031215612e2e57600080fd5b50508035926020909101359150565b6001600160a01b03198116811461267757600080fd5b60008060408385031215612e6657600080fd5b823591506020830135612e7881612e3d565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612ec157612ec1612e83565b604052919050565b60006001600160401b03821115612ee257612ee2612e83565b5060051b60200190565b600082601f830112612efd57600080fd5b81356020612f12612f0d83612ec9565b612e99565b82815260059290921b84018101918181019086841115612f3157600080fd5b8286015b84811015612f55578035612f4881612d29565b8352918301918301612f35565b509695505050505050565b600082601f830112612f7157600080fd5b81356020612f81612f0d83612ec9565b82815260059290921b84018101918181019086841115612fa057600080fd5b8286015b84811015612f555780358352918301918301612fa4565b600080600080600060a08688031215612fd357600080fd5b8535945060208601356001600160401b0380821115612ff157600080fd5b612ffd89838a01612eec565b9550604088013591508082111561301357600080fd5b61301f89838a01612f60565b9450606088013591508082111561303557600080fd5b61304189838a01612eec565b9350608088013591508082111561305757600080fd5b5061306488828901612f60565b9150509295509295909350565b60005b8381101561308c578181015183820152602001613074565b50506000910152565b600081518084526130ad816020860160208601613071565b601f01601f19169290920160200192915050565b84151581528360208201526080604082015260006130e26080830185613095565b905060018060a01b038316606083015295945050505050565b60008060006060848603121561311057600080fd5b8335925060208401356001600160401b038082111561312e57600080fd5b61313a87838801612eec565b9350604086013591508082111561315057600080fd5b5061315d86828701612f60565b9150509250925092565b6000806040838503121561317a57600080fd5b823561318581612d29565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000806000606084860312156131bc57600080fd5b833562ffffff811681146131cf57600080fd5b92506020840135612dd481612d29565b600080600080608085870312156131f557600080fd5b843561320081612d29565b935060208501359250604085013561321781612d29565b9396929550929360600135925050565b8715158152861515602082015262ffffff8681166040830152851660608201526001600160a01b038416608082015260a0810183905260e060c0820181905260009061327590830184613095565b9998505050505050505050565b60008060006060848603121561329757600080fd5b833592506020808501356001600160401b03808211156132b657600080fd5b818701915087601f8301126132ca57600080fd5b8135818111156132dc576132dc612e83565b6132ee601f8201601f19168501612e99565b9150808252888482850101111561330457600080fd5b808484018584013760008482840101525080945050505061332760408501612d3e565b90509250925092565b6020815260006127786020830184613095565b80518015158114612d4957600080fd5b60006020828403121561336557600080fd5b61277882613343565b60008060008060008060c0878903121561338757600080fd5b865195506020870151945061339e60408801613343565b93506133ac60608801613343565b9250608087015191506133c160a08801613343565b90509295509295509295565b6000602082840312156133df57600080fd5b815161277881612d29565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417611cc257611cc26133ea565b80820180821115611cc257611cc26133ea565b60006020828403121561343c57600080fd5b815161277881612e3d565b60006020828403121561345957600080fd5b5051919050565b60208082526011908201527013db9b1e481bdddb995c881bd988139195607a1b604082015260600190565b6001600160a01b0392831681529116602082015260400190565b600062ffffff8083168181036134bd576134bd6133ea565b6001019392505050565b600181811c908216806134db57607f821691505b6020821081036134fb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201613529576135296133ea565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156135725781516001600160a01b03168452928401929084019060010161354d565b5050508381038285015284518082528583019183019060005b818110156135a75783518352928401929184019160010161358b565b5090979650505050505050565b600082516135c6818460208701613071565b9190910192915050565b601f8211156116f257600081815260208120601f850160051c810160208610156135f75750805b601f850160051c820191505b8181101561361657828155600101613603565b505050505050565b81516001600160401b0381111561363757613637612e83565b61364b8161364584546134c7565b846135d0565b602080601f83116001811461368057600084156136685750858301515b600019600386901b1c1916600185901b178555613616565b600085815260208120601f198616915b828110156136af57888601518255948401946001909101908401613690565b50858210156136cd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000826136fa57634e487b7160e01b600052601260045260246000fd5b500490565b600080600080600080600080610100898b03121561371c57600080fd5b88519750602089015161372e81612d29565b60408a015160608b0151919850965061374681612d29565b60808a015160a08b0151919650945061375e81612d29565b60c08a015160e08b0151919450925061377681612d29565b809150509295985092959890939650565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008060008060008060c087890312156137c457600080fd5b8651955060208701516137d681612d29565b6040880151606089015191965094506137ee81612d29565b608088015160a0890151919450925061380681612d29565b809150509295509295509295565b81810381811115611cc257611cc26133ea565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220fdd3090329877c2dc14cdc66c2e3b5ccd7f61e60ab523c7d399570d0b865f3a464736f6c63430008110033",
1265
- "deployedBytecode": "0x6080604052600436106101ab5760003560e01c806392a10f83116100e857806392a10f831461043557806399c0bbdc146104765780639ab7fb8a1461048b578063a647300c146104ab578063a9809600146104cb578063b00abb64146104eb578063bc8ff001146104fe578063bf5bf5f81461051e578063c71b1b7114610552578063d195b36514610585578063d3ddabe6146105a5578063db6921b2146105e4578063dd85582f14610618578063e2849bd51461064c578063e9d1e8ac1461066c578063efef39a1146106a9578063f4632103146106b7578063f7bd4b88146106d757600080fd5b806111cd146101b0578061aa52146101d65780630b4f2e28146101e95780630ed79c4e1461020b5780631607c9951461022b57806328c5c4e51461024b57806340d1397e1461025e578063462add461461027e57806347b14e03146102be5780634fd1b70e146102f95780634ff5759d1461031957806356690aaf14610339578063650e5d6d146101d65780636cb9b7ff14610371578063774159c6146103915780637994db09146103c1578063891407c0146103e157806390d355b7146103f4575b600080fd5b6101c36101be366004612d4e565b6106f7565b6040519081526020015b60405180910390f35b6101c36101e4366004612dad565b611246565b3480156101f557600080fd5b50610209610204366004612de5565b61125e565b005b34801561021757600080fd5b50610209610226366004612dfe565b6112af565b34801561023757600080fd5b50610209610246366004612e1b565b61136c565b6101c3610259366004612d4e565b611597565b34801561026a57600080fd5b50610209610279366004612de5565b6115b0565b34801561028a57600080fd5b506102ae610299366004612de5565b60009081526002602052604090205460ff1690565b60405190151581526020016101cd565b3480156102ca57600080fd5b506102ae6102d9366004612e53565b600160209081526000928352604080842090915290825290205460ff1681565b34801561030557600080fd5b50610209610314366004612fbb565b6115f8565b34801561032557600080fd5b50610209610334366004612dfe565b61161e565b34801561034557600080fd5b506101c3610354366004612de5565b60009081526002602052604090205462010000900462ffffff1690565b34801561037d57600080fd5b5061020961038c366004612e1b565b611671565b34801561039d57600080fd5b506103b16103ac366004612de5565b6116f7565b6040516101cd94939291906130c1565b3480156103cd57600080fd5b506102096103dc3660046130fb565b6117ec565b6101c36103ef366004613167565b6119ad565b34801561040057600080fd5b506102ae61040f366004612dad565b600560209081526000938452604080852082529284528284209052825290205460ff1681565b34801561044157600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b6040516101cd9190613193565b34801561048257600080fd5b506101c36119f3565b34801561049757600080fd5b506102ae6104a63660046131a7565b611a04565b3480156104b757600080fd5b506102096104c63660046130fb565b611afb565b3480156104d757600080fd5b506101c36104e6366004612de5565b611c3f565b6101c36104f93660046131df565b611cc8565b34801561050a57600080fd5b50610469610519366004612de5565b611ce1565b34801561052a57600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b34801561055e57600080fd5b5061057261056d366004612de5565b611cee565b6040516101cd9796959493929190613227565b34801561059157600080fd5b506102096105a0366004613282565b611dd1565b3480156105b157600080fd5b506105d760405180604001604052806006815260200165076302e312e360d41b81525081565b6040516101cd9190613330565b3480156105f057600080fd5b506102ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561062457600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b34801561065857600080fd5b506102ae610667366004612dad565b611f13565b34801561067857600080fd5b506105d76040518060400160405280601181526020017004d696e746572506f6c797074796368563607c1b81525081565b6101c36103ef366004612de5565b3480156106c357600080fd5b506101c36106d2366004612de5565b611f58565b3480156106e357600080fd5b506102096106f2366004612de5565b611f9c565b60006002600054036107505760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600081815586815260209190915260409020805460ff16156107c45760405162461bcd60e51b815260206004820152602560248201527f4d6178696d756d206e756d626572206f6620696e766f636174696f6e732072656044820152641858da195960da1b6064820152608401610747565b8054610100900460ff166108115760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610747565b61081c868686611f13565b6108605760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610747565b336001600160a01b0384161561096857604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528781166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109149190613353565b9050806109635760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610747565b849150505b604051630ea5613f60e01b8152600481018890526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630ea5613f9060240160c060405180830381865afa1580156109d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f4919061336e565b5050505050905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a47d29cb8a6040518263ffffffff1660e01b8152600401610a4b91815260200190565b602060405180830381865afa158015610a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8c91906133cd565b9050600082610a9e620f42408c613400565b610aa89190613417565b604051634d01727d60e11b8152600481018a905290915089906000906001600160a01b03831690639a02e4fa90602401602060405180830381865afa158015610af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b19919061342a565b9050610b258c82612098565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba991906133cd565b6040516359e4a2ad60e01b8152600481018590526001600160a01b0319831660248201526001600160a01b0391909116906359e4a2ad90604401600060405180830381600087803b158015610bfd57600080fd5b505af1158015610c11573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630d4d15138e8e896040518463ffffffff1660e01b8152600401610c83939291906001600160a01b0393841681526020810192909252909116604082015260600190565b6020604051808303816000875af1158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc69190613447565b604051634d01727d60e11b8152600481018290529098506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639a02e4fa90602401602060405180830381865afa158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d55919061342a565b90506001600160a01b031980821690831614610db05760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b6044820152606401610747565b8754620f42408a066001019062010000900462ffffff1680821115610e155760405162461bcd60e51b815260206004820152601b60248201527a13585e1a5b5d5b481a5b9d9bd8d85d1a5bdb9cc81c995858da1959602a1b6044820152606401610747565b808203610e2857895460ff19166001178a555b50506001600160a01b0385163303610ede578d6001600160a01b03168c6001600160a01b0316636352211e8d6040518263ffffffff1660e01b8152600401610e7291815260200190565b602060405180830381865afa158015610e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb391906133cd565b6001600160a01b031614610ed95760405162461bcd60e51b815260040161074790613460565b610f72565b6040516331a9108f60e11b8152600481018c90526001600160a01b0380891691908e1690636352211e90602401602060405180830381865afa158015610f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4c91906133cd565b6001600160a01b031614610f725760405162461bcd60e51b815260040161074790613460565b60018801548854600160401b90046001600160a01b031680156111b35734156110035760405162461bcd60e51b815260206004820152603f60248201527f746869732070726f6a6563742061636365707473206120646966666572656e7460448201527f2063757272656e637920616e642063616e6e6f742061636365707420455448006064820152608401610747565b604051636eb1769f60e11b815282906001600160a01b0383169063dd62ed3e90611033903390309060040161348b565b602060405180830381865afa158015611050573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110749190613447565b10156110cd5760405162461bcd60e51b815260206004820152602260248201527f496e73756666696369656e742046756e647320417070726f76656420666f72206044820152610a8b60f31b6064820152608401610747565b6040516370a0823160e01b815282906001600160a01b038316906370a08231906110fb903390600401613193565b602060405180830381865afa158015611118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113c9190613447565b10156111825760405162461bcd60e51b815260206004820152601560248201527424b739bab33334b1b4b2b73a103130b630b731b29760591b6044820152606401610747565b6111ae8f83837f00000000000000000000000000000000000000000000000000000000000000006121b8565b61122e565b813410156112035760405162461bcd60e51b815260206004820181905260248201527f4d7573742073656e64206d696e696d756d2076616c756520746f206d696e74216044820152606401610747565b61122e8f837f00000000000000000000000000000000000000000000000000000000000000006124f2565b50505050505050505050600160005595945050505050565b60006112563385858560006106f7565b949350505050565b611267816125a0565b60008181526002602052604090208054600160281b900462ffffff1690600561128f836134a5565b91906101000a81548162ffffff021916908362ffffff1602179055505050565b6112bf63076bce2760e11b61267a565b604051634d01727d60e11b8152600060048201526001600160a01b03821690639a02e4fa90602401602060405180830381865afa158015611304573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611328919061342a565b50611334600382612763565b506040516001600160a01b038216907f7475e948f72f2714b1984b09949d13da2ddbae9f91e31da0faa380c0095b971c90600090a250565b611375826125a0565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa1580156113df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611403919061336e565b50929550929350505050818311156114a35760405162461bcd60e51b815260206004820152605760248201527f43616e6e6f7420696e6372656173652070726f6a656374206d617820696e766f60448201527f636174696f6e732061626f766520636f726520636f6e7472616374207365742060648201527670726f6a656374206d617820696e766f636174696f6e7360481b608482015260a401610747565b808310156115255760405162461bcd60e51b815260206004820152604360248201527f43616e6e6f74207365742070726f6a656374206d617820696e766f636174696f60448201527f6e7320746f206c657373207468616e2063757272656e7420696e766f636174696064820152626f6e7360e81b608482015260a401610747565b60008481526002602052604090819020805460ff1962ffffff871662010000021664ffffff00ff19909116178386141790555184907f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906115899086815260200190565b60405180910390a250505050565b60006115a686868686866106f7565b9695505050505050565b6115b9816125a0565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b6044820152606401610747565b611601856125a0565b61160c8585856117ec565b611617858383611afb565b5050505050565b61162e634ff5759d60e01b61267a565b61163960038261277f565b506040516001600160a01b038216907f16e28d6cac0e892c58cee90af3dc883220abe36e25201d7117c4f3aaabf1c3f090600090a250565b61167a826125a0565b60008281526002602052604080822060018101849055805461ff00191661010017815590519091839185917f26118a27aca826f829f3bfe21b140b4455c00b434849bd0da50d1e1a9720fb5c91a3805462010000900462ffffff161580156116e45750805460ff16155b156116f2576116f283611f9c565b505050565b600081815260026020526040902080546001820154610100820460ff16929091606091600160401b9091046001600160a01b03169081611754576040518060400160405280600381526020016208aa8960eb1b81525092506117e4565b806002018054611763906134c7565b80601f016020809104026020016040519081016040528092919081815260200182805461178f906134c7565b80156117dc5780601f106117b1576101008083540402835291602001916117dc565b820191906000526020600020905b8154815290600101906020018083116117bf57829003601f168201915b505050505092505b509193509193565b6117f5836125a0565b80518251146118465760405162461bcd60e51b815260206004820152601f60248201527f4c656e677468206f662061646420617272617973206d757374206d61746368006044820152606401610747565b60005b825181101561196d5761187f83828151811061186757611867613501565b6020026020010151600361279490919063ffffffff16565b6118cb5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c792052656769737465726564204e4654204164647265737365730000006044820152606401610747565b60008481526005602052604081208451600192908690859081106118f1576118f1613501565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600084848151811061192d5761192d613501565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061196590613517565b915050611849565b50827fba2ec6d92cd62364c8e443b484b3e1f72f1ee9e161c1f871de1a60d83c89558b83836040516119a0929190613530565b60405180910390a2505050565b60405162461bcd60e51b815260206004820152601860248201527704d75737420636c61696d204e4654206f776e6572736869760441b6044820152600090606401610747565b60006119ff60036127b6565b905090565b604051634d01727d60e11b81526004810182905260009081906001600160a01b03851690639a02e4fa90602401602060405180830381865afa158015611a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a72919061342a565b90506001600160a01b03198116611ac55760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081d1bdad95b881a185cda081cd95959604a1b6044820152606401610747565b62ffffff851660009081526001602090815260408083206001600160a01b03199094168352929052205460ff1690509392505050565b611b04836125a0565b8051825114611b605760405162461bcd60e51b815260206004820152602260248201527f4c656e677468206f662072656d6f766520617272617973206d757374206d61746044820152610c6d60f31b6064820152608401610747565b60005b8251811015611c0c57600084815260056020526040812084518290869085908110611b9057611b90613501565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611bcc57611bcc613501565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611c0490613517565b915050611b63565b50827f2e3dced83b61aee20d72f4bdc7e6997a0f8616af4067d3aa92afe2b9b0532d1c83836040516119a0929190613530565b6000818152600260205260408082205490516370a0823160e01b8152600160401b9091046001600160a01b0316906370a0823190611c81903390600401613193565b602060405180830381865afa158015611c9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc29190613447565b92915050565b6000611cd88585858560006106f7565b95945050505050565b6000611cc26003836127c0565b600260208190526000918252604090912080546001820154928201805460ff8084169561010085049091169462010000850462ffffff90811695600160281b810490911694600160401b9091046001600160a01b031693611d4e906134c7565b80601f0160208091040260200160405190810160405280929190818152602001828054611d7a906134c7565b8015611dc75780601f10611d9c57610100808354040283529160200191611dc7565b820191906000526020600020905b815481529060010190602001808311611daa57829003601f168201915b5050505050905087565b611dda836125a0565b6040516208aa8960eb1b60208201526001600160a01b03821615906023016040516020818303038152906040528051906020012083604051602001611e1f91906135b4565b6040516020818303038152906040528051906020012014151514611e805760405162461bcd60e51b8152602060048201526018602482015277455448206973206f6e6c79206e756c6c206164647265737360401b6044820152606401610747565b600083815260026020819052604090912001611e9c838261361e565b50600083815260026020526040908190208054600160401b600160e01b031916600160401b6001600160a01b03851690810291909117909155905184907fe6c8c6160f844a27204e2b7fb4b7fb9f10e5d322fa850096bef29dc1d0f445c190611f06908690613330565b60405180910390a3505050565b600080611f23620f4240846136dd565b60009586526005602090815260408088206001600160a01b039790971688529581528587209187525250505090205460ff1690565b600081815260026020526040808220549051636eb1769f60e11b8152600160401b9091046001600160a01b03169063dd62ed3e90611c81903390309060040161348b565b604051630ea5613f60e01b81526004810182905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa158015612006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202a919061336e565b50505060008681526002602052604090819020805460ff1962ffffff861662010000021664ffffff00ff1990911617858514179055519194509192508491507f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906119a09085815260200190565b600082815260026020526040902054600160281b900462ffffff166001600160a01b0319821661211a5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206861766520616e20656d707479206861736820736565642074604482015266379031b7b83c9760c91b6064820152608401610747565b60008181526001602090815260408083206001600160a01b03198616845290915290205460ff16156121855760405162461bcd60e51b815260206004820152601460248201527314185b995b08185b1c9958591e481b5a5b9d195960621b6044820152606401610747565b60009081526001602081815260408084206001600160a01b03199095168452939052919020805460ff1916909117905550565b81600080808080807f0000000000000000000000000000000000000000000000000000000000000000156122f457604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa158015612238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225c91906136ff565b969e50949c50909a509850919650919450909250905081156122ed576040516323b872dd60e01b81526001600160a01b038a16906323b872dd906122a890339085908790600401613787565b6020604051808303816000875af11580156122c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122eb9190613353565b505b5050612374565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612340573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236491906137ab565b949a509298509096509450925090505b85156123ef576040516323b872dd60e01b81526001600160a01b038816906323b872dd906123aa90339089908b90600401613787565b6020604051808303816000875af11580156123c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ed9190613353565b505b831561246a576040516323b872dd60e01b81526001600160a01b038816906323b872dd9061242590339087908990600401613787565b6020604051808303816000875af1158015612444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124689190613353565b505b81156124e5576040516323b872dd60e01b81526001600160a01b038816906323b872dd906124a090339085908790600401613787565b6020604051808303816000875af11580156124bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e39190613353565b505b5050505050505050505050565b34156116f2576000806125058434613814565b905080156125955760405133908290600081818185875af1925050503d806000811461254d576040519150601f19603f3d011682016040523d82523d6000602084013e612552565b606091505b505080925050816125955760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610747565b6116178585856127cc565b60405163a47d29cb60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015612605573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262991906133cd565b6001600160a01b0316336001600160a01b0316146126775760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610747565b50565b60405163230448b160e01b81523360048201523060248201526001600160e01b0319821660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063230448b1906064016020604051808303816000875af11580156126f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271a9190613353565b6126775760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610747565b6000612778836001600160a01b038416612bbd565b9392505050565b6000612778836001600160a01b038416612c0c565b6001600160a01b03811660009081526001830160205260408120541515612778565b6000611cc2825490565b60006127788383612cff565b600082116127d957505050565b60008060008060008060007f00000000000000000000000000000000000000000000000000000000000000001561294457604051638639415b60e01b8152600481018b9052602481018a905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa15801561285c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061288091906136ff565b969e50949c50909a5098509196509194509092509050811561293d576040516001600160a01b038216908390600081818185875af1925050503d80600081146128e5576040519150601f19603f3d011682016040523d82523d6000602084013e6128ea565b606091505b5050809950508861293d5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610747565b50506129c4565b604051638639415b60e01b8152600481018b9052602481018a90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129b491906137ab565b949a509298509096509450925090505b8515612a6b576040516001600160a01b038616908790600081818185875af1925050503d8060008114612a13576040519150601f19603f3d011682016040523d82523d6000602084013e612a18565b606091505b50508097505086612a6b5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610747565b8315612b0a576040516001600160a01b038416908590600081818185875af1925050503d8060008114612aba576040519150601f19603f3d011682016040523d82523d6000602084013e612abf565b606091505b50508097505086612b0a5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610747565b8115612bb1576040516001600160a01b038216908390600081818185875af1925050503d8060008114612b59576040519150601f19603f3d011682016040523d82523d6000602084013e612b5e565b606091505b50508097505086612bb15760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610747565b50505050505050505050565b6000818152600183016020526040812054612c0457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611cc2565b506000611cc2565b60008181526001830160205260408120548015612cf5576000612c30600183613814565b8554909150600090612c4490600190613814565b9050818114612ca9576000866000018281548110612c6457612c64613501565b9060005260206000200154905080876000018481548110612c8757612c87613501565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612cba57612cba613827565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611cc2565b6000915050611cc2565b6000826000018281548110612d1657612d16613501565b9060005260206000200154905092915050565b6001600160a01b038116811461267757600080fd5b8035612d4981612d29565b919050565b600080600080600060a08688031215612d6657600080fd5b8535612d7181612d29565b9450602086013593506040860135612d8881612d29565b9250606086013591506080860135612d9f81612d29565b809150509295509295909350565b600080600060608486031215612dc257600080fd5b833592506020840135612dd481612d29565b929592945050506040919091013590565b600060208284031215612df757600080fd5b5035919050565b600060208284031215612e1057600080fd5b813561277881612d29565b60008060408385031215612e2e57600080fd5b50508035926020909101359150565b6001600160a01b03198116811461267757600080fd5b60008060408385031215612e6657600080fd5b823591506020830135612e7881612e3d565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612ec157612ec1612e83565b604052919050565b60006001600160401b03821115612ee257612ee2612e83565b5060051b60200190565b600082601f830112612efd57600080fd5b81356020612f12612f0d83612ec9565b612e99565b82815260059290921b84018101918181019086841115612f3157600080fd5b8286015b84811015612f55578035612f4881612d29565b8352918301918301612f35565b509695505050505050565b600082601f830112612f7157600080fd5b81356020612f81612f0d83612ec9565b82815260059290921b84018101918181019086841115612fa057600080fd5b8286015b84811015612f555780358352918301918301612fa4565b600080600080600060a08688031215612fd357600080fd5b8535945060208601356001600160401b0380821115612ff157600080fd5b612ffd89838a01612eec565b9550604088013591508082111561301357600080fd5b61301f89838a01612f60565b9450606088013591508082111561303557600080fd5b61304189838a01612eec565b9350608088013591508082111561305757600080fd5b5061306488828901612f60565b9150509295509295909350565b60005b8381101561308c578181015183820152602001613074565b50506000910152565b600081518084526130ad816020860160208601613071565b601f01601f19169290920160200192915050565b84151581528360208201526080604082015260006130e26080830185613095565b905060018060a01b038316606083015295945050505050565b60008060006060848603121561311057600080fd5b8335925060208401356001600160401b038082111561312e57600080fd5b61313a87838801612eec565b9350604086013591508082111561315057600080fd5b5061315d86828701612f60565b9150509250925092565b6000806040838503121561317a57600080fd5b823561318581612d29565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000806000606084860312156131bc57600080fd5b833562ffffff811681146131cf57600080fd5b92506020840135612dd481612d29565b600080600080608085870312156131f557600080fd5b843561320081612d29565b935060208501359250604085013561321781612d29565b9396929550929360600135925050565b8715158152861515602082015262ffffff8681166040830152851660608201526001600160a01b038416608082015260a0810183905260e060c0820181905260009061327590830184613095565b9998505050505050505050565b60008060006060848603121561329757600080fd5b833592506020808501356001600160401b03808211156132b657600080fd5b818701915087601f8301126132ca57600080fd5b8135818111156132dc576132dc612e83565b6132ee601f8201601f19168501612e99565b9150808252888482850101111561330457600080fd5b808484018584013760008482840101525080945050505061332760408501612d3e565b90509250925092565b6020815260006127786020830184613095565b80518015158114612d4957600080fd5b60006020828403121561336557600080fd5b61277882613343565b60008060008060008060c0878903121561338757600080fd5b865195506020870151945061339e60408801613343565b93506133ac60608801613343565b9250608087015191506133c160a08801613343565b90509295509295509295565b6000602082840312156133df57600080fd5b815161277881612d29565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417611cc257611cc26133ea565b80820180821115611cc257611cc26133ea565b60006020828403121561343c57600080fd5b815161277881612e3d565b60006020828403121561345957600080fd5b5051919050565b60208082526011908201527013db9b1e481bdddb995c881bd988139195607a1b604082015260600190565b6001600160a01b0392831681529116602082015260400190565b600062ffffff8083168181036134bd576134bd6133ea565b6001019392505050565b600181811c908216806134db57607f821691505b6020821081036134fb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201613529576135296133ea565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156135725781516001600160a01b03168452928401929084019060010161354d565b5050508381038285015284518082528583019183019060005b818110156135a75783518352928401929184019160010161358b565b5090979650505050505050565b600082516135c6818460208701613071565b9190910192915050565b601f8211156116f257600081815260208120601f850160051c810160208610156135f75750805b601f850160051c820191505b8181101561361657828155600101613603565b505050505050565b81516001600160401b0381111561363757613637612e83565b61364b8161364584546134c7565b846135d0565b602080601f83116001811461368057600084156136685750858301515b600019600386901b1c1916600185901b178555613616565b600085815260208120601f198616915b828110156136af57888601518255948401946001909101908401613690565b50858210156136cd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000826136fa57634e487b7160e01b600052601260045260246000fd5b500490565b600080600080600080600080610100898b03121561371c57600080fd5b88519750602089015161372e81612d29565b60408a015160608b0151919850965061374681612d29565b60808a015160a08b0151919650945061375e81612d29565b60c08a015160e08b0151919450925061377681612d29565b809150509295985092959890939650565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008060008060008060c087890312156137c457600080fd5b8651955060208701516137d681612d29565b6040880151606089015191965094506137ee81612d29565b608088015160a0890151919450925061380681612d29565b809150509295509295509295565b81810381811115611cc257611cc26133ea565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220fdd3090329877c2dc14cdc66c2e3b5ccd7f61e60ab523c7d399570d0b865f3a464736f6c63430008110033",
1264
+ "bytecode": "0x6101606040523480156200001257600080fd5b5060405162003d2e38038062003d2e833981016040819052620000359162000373565b6001600055826200004681620001d5565b1515608052506001600160a01b0383811660e081905261010052811660a08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a16001600160a01b0380821660c052828116610120819052610140819052604080516392a10f8360e01b81529051928616926392a10f839160048082019260209290919082900301816000875af1158015620000f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200011f9190620003bd565b6001600160a01b0316146200017b5760405162461bcd60e51b815260206004820152601860248201527f496c6c6567616c20636f6e74726163742070616972696e67000000000000000060448201526064015b60405180910390fd5b608051620001cc5760405162461bcd60e51b815260206004820152601c60248201527f4f6e6c7920737570706f72747320563320456e67696e6520636f726500000000604482015260640162000172565b50505062000413565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b0386169062000239908590620003e2565b6000604051808303816000865af19150503d806000811462000278576040519150601f19603f3d011682016040523d82523d6000602084013e6200027d565b606091505b509150915081620002df5760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840162000172565b805160c0819003620002f75750600095945050505050565b80610100036200030d5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640162000172565b80516001600160a01b03811681146200036e57600080fd5b919050565b6000806000606084860312156200038957600080fd5b620003948462000356565b9250620003a46020850162000356565b9150620003b46040850162000356565b90509250925092565b600060208284031215620003d057600080fd5b620003db8262000356565b9392505050565b6000825160005b81811015620004055760208186018101518583015201620003e9565b506000920191825250919050565b60805160a05160c05160e051610100516101205161014051613873620004bb6000396000610c170152600061062a015260008181610981015281816109ff01528181610b2701528181610cea0152818161139801528181611fbf015281816125b601526126a50152600081816104470152818161118a015261120a015260006108a7015260006105300152600081816105f6015281816121c201526127e601526138736000f3fe6080604052600436106101ab5760003560e01c806392a10f83116100e857806392a10f831461043557806399c0bbdc146104765780639ab7fb8a1461048b578063a647300c146104ab578063a9809600146104cb578063b00abb64146104eb578063bc8ff001146104fe578063bf5bf5f81461051e578063c71b1b7114610552578063d195b36514610585578063d3ddabe6146105a5578063db6921b2146105e4578063dd85582f14610618578063e2849bd51461064c578063e9d1e8ac1461066c578063efef39a1146106a9578063f4632103146106b7578063f7bd4b88146106d757600080fd5b806111cd146101b0578061aa52146101d65780630b4f2e28146101e95780630ed79c4e1461020b5780631607c9951461022b57806328c5c4e51461024b57806340d1397e1461025e578063462add461461027e57806347b14e03146102be5780634fd1b70e146102f95780634ff5759d1461031957806356690aaf14610339578063650e5d6d146101d65780636cb9b7ff14610371578063774159c6146103915780637994db09146103c1578063891407c0146103e157806390d355b7146103f4575b600080fd5b6101c36101be366004612d4e565b6106f7565b6040519081526020015b60405180910390f35b6101c36101e4366004612dad565b611246565b3480156101f557600080fd5b50610209610204366004612de5565b61125e565b005b34801561021757600080fd5b50610209610226366004612dfe565b6112af565b34801561023757600080fd5b50610209610246366004612e1b565b61136c565b6101c3610259366004612d4e565b611597565b34801561026a57600080fd5b50610209610279366004612de5565b6115b0565b34801561028a57600080fd5b506102ae610299366004612de5565b60009081526002602052604090205460ff1690565b60405190151581526020016101cd565b3480156102ca57600080fd5b506102ae6102d9366004612e53565b600160209081526000928352604080842090915290825290205460ff1681565b34801561030557600080fd5b50610209610314366004612fbb565b6115f8565b34801561032557600080fd5b50610209610334366004612dfe565b61161e565b34801561034557600080fd5b506101c3610354366004612de5565b60009081526002602052604090205462010000900462ffffff1690565b34801561037d57600080fd5b5061020961038c366004612e1b565b611671565b34801561039d57600080fd5b506103b16103ac366004612de5565b6116f7565b6040516101cd94939291906130c1565b3480156103cd57600080fd5b506102096103dc3660046130fb565b6117ec565b6101c36103ef366004613167565b6119ad565b34801561040057600080fd5b506102ae61040f366004612dad565b600560209081526000938452604080852082529284528284209052825290205460ff1681565b34801561044157600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b6040516101cd9190613193565b34801561048257600080fd5b506101c36119f3565b34801561049757600080fd5b506102ae6104a63660046131a7565b611a04565b3480156104b757600080fd5b506102096104c63660046130fb565b611afb565b3480156104d757600080fd5b506101c36104e6366004612de5565b611c3f565b6101c36104f93660046131df565b611cc8565b34801561050a57600080fd5b50610469610519366004612de5565b611ce1565b34801561052a57600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b34801561055e57600080fd5b5061057261056d366004612de5565b611cee565b6040516101cd9796959493929190613227565b34801561059157600080fd5b506102096105a0366004613282565b611dd1565b3480156105b157600080fd5b506105d760405180604001604052806006815260200165076302e312e360d41b81525081565b6040516101cd9190613330565b3480156105f057600080fd5b506102ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561062457600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b34801561065857600080fd5b506102ae610667366004612dad565b611f13565b34801561067857600080fd5b506105d76040518060400160405280601181526020017004d696e746572506f6c797074796368563607c1b81525081565b6101c36103ef366004612de5565b3480156106c357600080fd5b506101c36106d2366004612de5565b611f58565b3480156106e357600080fd5b506102096106f2366004612de5565b611f9c565b60006002600054036107505760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600081815586815260209190915260409020805460ff16156107c45760405162461bcd60e51b815260206004820152602560248201527f4d6178696d756d206e756d626572206f6620696e766f636174696f6e732072656044820152641858da195960da1b6064820152608401610747565b8054610100900460ff166108115760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610747565b61081c868686611f13565b6108605760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610747565b336001600160a01b0384161561096857604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528781166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109149190613353565b9050806109635760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610747565b849150505b604051630ea5613f60e01b8152600481018890526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630ea5613f9060240160c060405180830381865afa1580156109d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f4919061336e565b5050505050905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a47d29cb8a6040518263ffffffff1660e01b8152600401610a4b91815260200190565b602060405180830381865afa158015610a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8c91906133cd565b9050600082610a9e620f42408c613400565b610aa89190613417565b604051634d01727d60e11b8152600481018a905290915089906000906001600160a01b03831690639a02e4fa90602401602060405180830381865afa158015610af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b19919061342a565b9050610b258c82612098565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba991906133cd565b6040516359e4a2ad60e01b8152600481018590526001600160a01b0319831660248201526001600160a01b0391909116906359e4a2ad90604401600060405180830381600087803b158015610bfd57600080fd5b505af1158015610c11573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630d4d15138e8e896040518463ffffffff1660e01b8152600401610c83939291906001600160a01b0393841681526020810192909252909116604082015260600190565b6020604051808303816000875af1158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc69190613447565b604051634d01727d60e11b8152600481018290529098506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639a02e4fa90602401602060405180830381865afa158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d55919061342a565b90506001600160a01b031980821690831614610db05760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b6044820152606401610747565b8754620f42408a066001019062010000900462ffffff1680821115610e155760405162461bcd60e51b815260206004820152601b60248201527a13585e1a5b5d5b481a5b9d9bd8d85d1a5bdb9cc81c995858da1959602a1b6044820152606401610747565b808203610e2857895460ff19166001178a555b50506001600160a01b0385163303610ede578d6001600160a01b03168c6001600160a01b0316636352211e8d6040518263ffffffff1660e01b8152600401610e7291815260200190565b602060405180830381865afa158015610e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb391906133cd565b6001600160a01b031614610ed95760405162461bcd60e51b815260040161074790613460565b610f72565b6040516331a9108f60e11b8152600481018c90526001600160a01b0380891691908e1690636352211e90602401602060405180830381865afa158015610f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4c91906133cd565b6001600160a01b031614610f725760405162461bcd60e51b815260040161074790613460565b60018801548854600160401b90046001600160a01b031680156111b35734156110035760405162461bcd60e51b815260206004820152603f60248201527f746869732070726f6a6563742061636365707473206120646966666572656e7460448201527f2063757272656e637920616e642063616e6e6f742061636365707420455448006064820152608401610747565b604051636eb1769f60e11b815282906001600160a01b0383169063dd62ed3e90611033903390309060040161348b565b602060405180830381865afa158015611050573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110749190613447565b10156110cd5760405162461bcd60e51b815260206004820152602260248201527f496e73756666696369656e742046756e647320417070726f76656420666f72206044820152610a8b60f31b6064820152608401610747565b6040516370a0823160e01b815282906001600160a01b038316906370a08231906110fb903390600401613193565b602060405180830381865afa158015611118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113c9190613447565b10156111825760405162461bcd60e51b815260206004820152601560248201527424b739bab33334b1b4b2b73a103130b630b731b29760591b6044820152606401610747565b6111ae8f83837f00000000000000000000000000000000000000000000000000000000000000006121b8565b61122e565b813410156112035760405162461bcd60e51b815260206004820181905260248201527f4d7573742073656e64206d696e696d756d2076616c756520746f206d696e74216044820152606401610747565b61122e8f837f00000000000000000000000000000000000000000000000000000000000000006124f2565b50505050505050505050600160005595945050505050565b60006112563385858560006106f7565b949350505050565b611267816125a0565b60008181526002602052604090208054600160281b900462ffffff1690600561128f836134a5565b91906101000a81548162ffffff021916908362ffffff1602179055505050565b6112bf63076bce2760e11b61267a565b604051634d01727d60e11b8152600060048201526001600160a01b03821690639a02e4fa90602401602060405180830381865afa158015611304573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611328919061342a565b50611334600382612763565b506040516001600160a01b038216907f7475e948f72f2714b1984b09949d13da2ddbae9f91e31da0faa380c0095b971c90600090a250565b611375826125a0565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa1580156113df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611403919061336e565b50929550929350505050818311156114a35760405162461bcd60e51b815260206004820152605760248201527f43616e6e6f7420696e6372656173652070726f6a656374206d617820696e766f60448201527f636174696f6e732061626f766520636f726520636f6e7472616374207365742060648201527670726f6a656374206d617820696e766f636174696f6e7360481b608482015260a401610747565b808310156115255760405162461bcd60e51b815260206004820152604360248201527f43616e6e6f74207365742070726f6a656374206d617820696e766f636174696f60448201527f6e7320746f206c657373207468616e2063757272656e7420696e766f636174696064820152626f6e7360e81b608482015260a401610747565b60008481526002602052604090819020805460ff1962ffffff871662010000021664ffffff00ff19909116178386141790555184907f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906115899086815260200190565b60405180910390a250505050565b60006115a686868686866106f7565b9695505050505050565b6115b9816125a0565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b6044820152606401610747565b611601856125a0565b61160c8585856117ec565b611617858383611afb565b5050505050565b61162e634ff5759d60e01b61267a565b61163960038261277f565b506040516001600160a01b038216907f16e28d6cac0e892c58cee90af3dc883220abe36e25201d7117c4f3aaabf1c3f090600090a250565b61167a826125a0565b60008281526002602052604080822060018101849055805461ff00191661010017815590519091839185917f26118a27aca826f829f3bfe21b140b4455c00b434849bd0da50d1e1a9720fb5c91a3805462010000900462ffffff161580156116e45750805460ff16155b156116f2576116f283611f9c565b505050565b600081815260026020526040902080546001820154610100820460ff16929091606091600160401b9091046001600160a01b03169081611754576040518060400160405280600381526020016208aa8960eb1b81525092506117e4565b806002018054611763906134c7565b80601f016020809104026020016040519081016040528092919081815260200182805461178f906134c7565b80156117dc5780601f106117b1576101008083540402835291602001916117dc565b820191906000526020600020905b8154815290600101906020018083116117bf57829003601f168201915b505050505092505b509193509193565b6117f5836125a0565b80518251146118465760405162461bcd60e51b815260206004820152601f60248201527f4c656e677468206f662061646420617272617973206d757374206d61746368006044820152606401610747565b60005b825181101561196d5761187f83828151811061186757611867613501565b6020026020010151600361279490919063ffffffff16565b6118cb5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c792052656769737465726564204e4654204164647265737365730000006044820152606401610747565b60008481526005602052604081208451600192908690859081106118f1576118f1613501565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600084848151811061192d5761192d613501565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061196590613517565b915050611849565b50827fba2ec6d92cd62364c8e443b484b3e1f72f1ee9e161c1f871de1a60d83c89558b83836040516119a0929190613530565b60405180910390a2505050565b60405162461bcd60e51b815260206004820152601860248201527704d75737420636c61696d204e4654206f776e6572736869760441b6044820152600090606401610747565b60006119ff60036127b6565b905090565b604051634d01727d60e11b81526004810182905260009081906001600160a01b03851690639a02e4fa90602401602060405180830381865afa158015611a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a72919061342a565b90506001600160a01b03198116611ac55760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081d1bdad95b881a185cda081cd95959604a1b6044820152606401610747565b62ffffff851660009081526001602090815260408083206001600160a01b03199094168352929052205460ff1690509392505050565b611b04836125a0565b8051825114611b605760405162461bcd60e51b815260206004820152602260248201527f4c656e677468206f662072656d6f766520617272617973206d757374206d61746044820152610c6d60f31b6064820152608401610747565b60005b8251811015611c0c57600084815260056020526040812084518290869085908110611b9057611b90613501565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611bcc57611bcc613501565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611c0490613517565b915050611b63565b50827f2e3dced83b61aee20d72f4bdc7e6997a0f8616af4067d3aa92afe2b9b0532d1c83836040516119a0929190613530565b6000818152600260205260408082205490516370a0823160e01b8152600160401b9091046001600160a01b0316906370a0823190611c81903390600401613193565b602060405180830381865afa158015611c9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc29190613447565b92915050565b6000611cd88585858560006106f7565b95945050505050565b6000611cc26003836127c0565b600260208190526000918252604090912080546001820154928201805460ff8084169561010085049091169462010000850462ffffff90811695600160281b810490911694600160401b9091046001600160a01b031693611d4e906134c7565b80601f0160208091040260200160405190810160405280929190818152602001828054611d7a906134c7565b8015611dc75780601f10611d9c57610100808354040283529160200191611dc7565b820191906000526020600020905b815481529060010190602001808311611daa57829003601f168201915b5050505050905087565b611dda836125a0565b6040516208aa8960eb1b60208201526001600160a01b03821615906023016040516020818303038152906040528051906020012083604051602001611e1f91906135b4565b6040516020818303038152906040528051906020012014151514611e805760405162461bcd60e51b8152602060048201526018602482015277455448206973206f6e6c79206e756c6c206164647265737360401b6044820152606401610747565b600083815260026020819052604090912001611e9c838261361e565b50600083815260026020526040908190208054600160401b600160e01b031916600160401b6001600160a01b03851690810291909117909155905184907fe6c8c6160f844a27204e2b7fb4b7fb9f10e5d322fa850096bef29dc1d0f445c190611f06908690613330565b60405180910390a3505050565b600080611f23620f4240846136dd565b60009586526005602090815260408088206001600160a01b039790971688529581528587209187525250505090205460ff1690565b600081815260026020526040808220549051636eb1769f60e11b8152600160401b9091046001600160a01b03169063dd62ed3e90611c81903390309060040161348b565b604051630ea5613f60e01b81526004810182905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa158015612006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202a919061336e565b50505060008681526002602052604090819020805460ff1962ffffff861662010000021664ffffff00ff1990911617858514179055519194509192508491507f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906119a09085815260200190565b600082815260026020526040902054600160281b900462ffffff166001600160a01b0319821661211a5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206861766520616e20656d707479206861736820736565642074604482015266379031b7b83c9760c91b6064820152608401610747565b60008181526001602090815260408083206001600160a01b03198616845290915290205460ff16156121855760405162461bcd60e51b815260206004820152601460248201527314185b995b08185b1c9958591e481b5a5b9d195960621b6044820152606401610747565b60009081526001602081815260408084206001600160a01b03199095168452939052919020805460ff1916909117905550565b81600080808080807f0000000000000000000000000000000000000000000000000000000000000000156122f457604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa158015612238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225c91906136ff565b969e50949c50909a509850919650919450909250905081156122ed576040516323b872dd60e01b81526001600160a01b038a16906323b872dd906122a890339085908790600401613787565b6020604051808303816000875af11580156122c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122eb9190613353565b505b5050612374565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612340573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236491906137ab565b949a509298509096509450925090505b85156123ef576040516323b872dd60e01b81526001600160a01b038816906323b872dd906123aa90339089908b90600401613787565b6020604051808303816000875af11580156123c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ed9190613353565b505b831561246a576040516323b872dd60e01b81526001600160a01b038816906323b872dd9061242590339087908990600401613787565b6020604051808303816000875af1158015612444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124689190613353565b505b81156124e5576040516323b872dd60e01b81526001600160a01b038816906323b872dd906124a090339085908790600401613787565b6020604051808303816000875af11580156124bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e39190613353565b505b5050505050505050505050565b34156116f2576000806125058434613814565b905080156125955760405133908290600081818185875af1925050503d806000811461254d576040519150601f19603f3d011682016040523d82523d6000602084013e612552565b606091505b505080925050816125955760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610747565b6116178585856127cc565b60405163a47d29cb60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015612605573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262991906133cd565b6001600160a01b0316336001600160a01b0316146126775760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610747565b50565b60405163230448b160e01b81523360048201523060248201526001600160e01b0319821660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063230448b1906064016020604051808303816000875af11580156126f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271a9190613353565b6126775760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610747565b6000612778836001600160a01b038416612bbd565b9392505050565b6000612778836001600160a01b038416612c0c565b6001600160a01b03811660009081526001830160205260408120541515612778565b6000611cc2825490565b60006127788383612cff565b600082116127d957505050565b60008060008060008060007f00000000000000000000000000000000000000000000000000000000000000001561294457604051638639415b60e01b8152600481018b9052602481018a905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa15801561285c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061288091906136ff565b969e50949c50909a5098509196509194509092509050811561293d576040516001600160a01b038216908390600081818185875af1925050503d80600081146128e5576040519150601f19603f3d011682016040523d82523d6000602084013e6128ea565b606091505b5050809950508861293d5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610747565b50506129c4565b604051638639415b60e01b8152600481018b9052602481018a90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129b491906137ab565b949a509298509096509450925090505b8515612a6b576040516001600160a01b038616908790600081818185875af1925050503d8060008114612a13576040519150601f19603f3d011682016040523d82523d6000602084013e612a18565b606091505b50508097505086612a6b5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610747565b8315612b0a576040516001600160a01b038416908590600081818185875af1925050503d8060008114612aba576040519150601f19603f3d011682016040523d82523d6000602084013e612abf565b606091505b50508097505086612b0a5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610747565b8115612bb1576040516001600160a01b038216908390600081818185875af1925050503d8060008114612b59576040519150601f19603f3d011682016040523d82523d6000602084013e612b5e565b606091505b50508097505086612bb15760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610747565b50505050505050505050565b6000818152600183016020526040812054612c0457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611cc2565b506000611cc2565b60008181526001830160205260408120548015612cf5576000612c30600183613814565b8554909150600090612c4490600190613814565b9050818114612ca9576000866000018281548110612c6457612c64613501565b9060005260206000200154905080876000018481548110612c8757612c87613501565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612cba57612cba613827565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611cc2565b6000915050611cc2565b6000826000018281548110612d1657612d16613501565b9060005260206000200154905092915050565b6001600160a01b038116811461267757600080fd5b8035612d4981612d29565b919050565b600080600080600060a08688031215612d6657600080fd5b8535612d7181612d29565b9450602086013593506040860135612d8881612d29565b9250606086013591506080860135612d9f81612d29565b809150509295509295909350565b600080600060608486031215612dc257600080fd5b833592506020840135612dd481612d29565b929592945050506040919091013590565b600060208284031215612df757600080fd5b5035919050565b600060208284031215612e1057600080fd5b813561277881612d29565b60008060408385031215612e2e57600080fd5b50508035926020909101359150565b6001600160a01b03198116811461267757600080fd5b60008060408385031215612e6657600080fd5b823591506020830135612e7881612e3d565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612ec157612ec1612e83565b604052919050565b60006001600160401b03821115612ee257612ee2612e83565b5060051b60200190565b600082601f830112612efd57600080fd5b81356020612f12612f0d83612ec9565b612e99565b82815260059290921b84018101918181019086841115612f3157600080fd5b8286015b84811015612f55578035612f4881612d29565b8352918301918301612f35565b509695505050505050565b600082601f830112612f7157600080fd5b81356020612f81612f0d83612ec9565b82815260059290921b84018101918181019086841115612fa057600080fd5b8286015b84811015612f555780358352918301918301612fa4565b600080600080600060a08688031215612fd357600080fd5b8535945060208601356001600160401b0380821115612ff157600080fd5b612ffd89838a01612eec565b9550604088013591508082111561301357600080fd5b61301f89838a01612f60565b9450606088013591508082111561303557600080fd5b61304189838a01612eec565b9350608088013591508082111561305757600080fd5b5061306488828901612f60565b9150509295509295909350565b60005b8381101561308c578181015183820152602001613074565b50506000910152565b600081518084526130ad816020860160208601613071565b601f01601f19169290920160200192915050565b84151581528360208201526080604082015260006130e26080830185613095565b905060018060a01b038316606083015295945050505050565b60008060006060848603121561311057600080fd5b8335925060208401356001600160401b038082111561312e57600080fd5b61313a87838801612eec565b9350604086013591508082111561315057600080fd5b5061315d86828701612f60565b9150509250925092565b6000806040838503121561317a57600080fd5b823561318581612d29565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000806000606084860312156131bc57600080fd5b833562ffffff811681146131cf57600080fd5b92506020840135612dd481612d29565b600080600080608085870312156131f557600080fd5b843561320081612d29565b935060208501359250604085013561321781612d29565b9396929550929360600135925050565b8715158152861515602082015262ffffff8681166040830152851660608201526001600160a01b038416608082015260a0810183905260e060c0820181905260009061327590830184613095565b9998505050505050505050565b60008060006060848603121561329757600080fd5b833592506020808501356001600160401b03808211156132b657600080fd5b818701915087601f8301126132ca57600080fd5b8135818111156132dc576132dc612e83565b6132ee601f8201601f19168501612e99565b9150808252888482850101111561330457600080fd5b808484018584013760008482840101525080945050505061332760408501612d3e565b90509250925092565b6020815260006127786020830184613095565b80518015158114612d4957600080fd5b60006020828403121561336557600080fd5b61277882613343565b60008060008060008060c0878903121561338757600080fd5b865195506020870151945061339e60408801613343565b93506133ac60608801613343565b9250608087015191506133c160a08801613343565b90509295509295509295565b6000602082840312156133df57600080fd5b815161277881612d29565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417611cc257611cc26133ea565b80820180821115611cc257611cc26133ea565b60006020828403121561343c57600080fd5b815161277881612e3d565b60006020828403121561345957600080fd5b5051919050565b60208082526011908201527013db9b1e481bdddb995c881bd988139195607a1b604082015260600190565b6001600160a01b0392831681529116602082015260400190565b600062ffffff8083168181036134bd576134bd6133ea565b6001019392505050565b600181811c908216806134db57607f821691505b6020821081036134fb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201613529576135296133ea565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156135725781516001600160a01b03168452928401929084019060010161354d565b5050508381038285015284518082528583019183019060005b818110156135a75783518352928401929184019160010161358b565b5090979650505050505050565b600082516135c6818460208701613071565b9190910192915050565b601f8211156116f257600081815260208120601f850160051c810160208610156135f75750805b601f850160051c820191505b8181101561361657828155600101613603565b505050505050565b81516001600160401b0381111561363757613637612e83565b61364b8161364584546134c7565b846135d0565b602080601f83116001811461368057600084156136685750858301515b600019600386901b1c1916600185901b178555613616565b600085815260208120601f198616915b828110156136af57888601518255948401946001909101908401613690565b50858210156136cd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000826136fa57634e487b7160e01b600052601260045260246000fd5b500490565b600080600080600080600080610100898b03121561371c57600080fd5b88519750602089015161372e81612d29565b60408a015160608b0151919850965061374681612d29565b60808a015160a08b0151919650945061375e81612d29565b60c08a015160e08b0151919450925061377681612d29565b809150509295985092959890939650565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008060008060008060c087890312156137c457600080fd5b8651955060208701516137d681612d29565b6040880151606089015191965094506137ee81612d29565b608088015160a0890151919450925061380681612d29565b809150509295509295509295565b81810381811115611cc257611cc26133ea565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220515d44298744ae69be83d28f490a9bf18506d6ecebbabf70408de10f382ab54464736f6c63430008130033",
1265
+ "deployedBytecode": "0x6080604052600436106101ab5760003560e01c806392a10f83116100e857806392a10f831461043557806399c0bbdc146104765780639ab7fb8a1461048b578063a647300c146104ab578063a9809600146104cb578063b00abb64146104eb578063bc8ff001146104fe578063bf5bf5f81461051e578063c71b1b7114610552578063d195b36514610585578063d3ddabe6146105a5578063db6921b2146105e4578063dd85582f14610618578063e2849bd51461064c578063e9d1e8ac1461066c578063efef39a1146106a9578063f4632103146106b7578063f7bd4b88146106d757600080fd5b806111cd146101b0578061aa52146101d65780630b4f2e28146101e95780630ed79c4e1461020b5780631607c9951461022b57806328c5c4e51461024b57806340d1397e1461025e578063462add461461027e57806347b14e03146102be5780634fd1b70e146102f95780634ff5759d1461031957806356690aaf14610339578063650e5d6d146101d65780636cb9b7ff14610371578063774159c6146103915780637994db09146103c1578063891407c0146103e157806390d355b7146103f4575b600080fd5b6101c36101be366004612d4e565b6106f7565b6040519081526020015b60405180910390f35b6101c36101e4366004612dad565b611246565b3480156101f557600080fd5b50610209610204366004612de5565b61125e565b005b34801561021757600080fd5b50610209610226366004612dfe565b6112af565b34801561023757600080fd5b50610209610246366004612e1b565b61136c565b6101c3610259366004612d4e565b611597565b34801561026a57600080fd5b50610209610279366004612de5565b6115b0565b34801561028a57600080fd5b506102ae610299366004612de5565b60009081526002602052604090205460ff1690565b60405190151581526020016101cd565b3480156102ca57600080fd5b506102ae6102d9366004612e53565b600160209081526000928352604080842090915290825290205460ff1681565b34801561030557600080fd5b50610209610314366004612fbb565b6115f8565b34801561032557600080fd5b50610209610334366004612dfe565b61161e565b34801561034557600080fd5b506101c3610354366004612de5565b60009081526002602052604090205462010000900462ffffff1690565b34801561037d57600080fd5b5061020961038c366004612e1b565b611671565b34801561039d57600080fd5b506103b16103ac366004612de5565b6116f7565b6040516101cd94939291906130c1565b3480156103cd57600080fd5b506102096103dc3660046130fb565b6117ec565b6101c36103ef366004613167565b6119ad565b34801561040057600080fd5b506102ae61040f366004612dad565b600560209081526000938452604080852082529284528284209052825290205460ff1681565b34801561044157600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b6040516101cd9190613193565b34801561048257600080fd5b506101c36119f3565b34801561049757600080fd5b506102ae6104a63660046131a7565b611a04565b3480156104b757600080fd5b506102096104c63660046130fb565b611afb565b3480156104d757600080fd5b506101c36104e6366004612de5565b611c3f565b6101c36104f93660046131df565b611cc8565b34801561050a57600080fd5b50610469610519366004612de5565b611ce1565b34801561052a57600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b34801561055e57600080fd5b5061057261056d366004612de5565b611cee565b6040516101cd9796959493929190613227565b34801561059157600080fd5b506102096105a0366004613282565b611dd1565b3480156105b157600080fd5b506105d760405180604001604052806006815260200165076302e312e360d41b81525081565b6040516101cd9190613330565b3480156105f057600080fd5b506102ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561062457600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b34801561065857600080fd5b506102ae610667366004612dad565b611f13565b34801561067857600080fd5b506105d76040518060400160405280601181526020017004d696e746572506f6c797074796368563607c1b81525081565b6101c36103ef366004612de5565b3480156106c357600080fd5b506101c36106d2366004612de5565b611f58565b3480156106e357600080fd5b506102096106f2366004612de5565b611f9c565b60006002600054036107505760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600081815586815260209190915260409020805460ff16156107c45760405162461bcd60e51b815260206004820152602560248201527f4d6178696d756d206e756d626572206f6620696e766f636174696f6e732072656044820152641858da195960da1b6064820152608401610747565b8054610100900460ff166108115760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610747565b61081c868686611f13565b6108605760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610747565b336001600160a01b0384161561096857604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528781166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109149190613353565b9050806109635760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610747565b849150505b604051630ea5613f60e01b8152600481018890526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630ea5613f9060240160c060405180830381865afa1580156109d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f4919061336e565b5050505050905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a47d29cb8a6040518263ffffffff1660e01b8152600401610a4b91815260200190565b602060405180830381865afa158015610a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8c91906133cd565b9050600082610a9e620f42408c613400565b610aa89190613417565b604051634d01727d60e11b8152600481018a905290915089906000906001600160a01b03831690639a02e4fa90602401602060405180830381865afa158015610af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b19919061342a565b9050610b258c82612098565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba991906133cd565b6040516359e4a2ad60e01b8152600481018590526001600160a01b0319831660248201526001600160a01b0391909116906359e4a2ad90604401600060405180830381600087803b158015610bfd57600080fd5b505af1158015610c11573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630d4d15138e8e896040518463ffffffff1660e01b8152600401610c83939291906001600160a01b0393841681526020810192909252909116604082015260600190565b6020604051808303816000875af1158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc69190613447565b604051634d01727d60e11b8152600481018290529098506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639a02e4fa90602401602060405180830381865afa158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d55919061342a565b90506001600160a01b031980821690831614610db05760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b6044820152606401610747565b8754620f42408a066001019062010000900462ffffff1680821115610e155760405162461bcd60e51b815260206004820152601b60248201527a13585e1a5b5d5b481a5b9d9bd8d85d1a5bdb9cc81c995858da1959602a1b6044820152606401610747565b808203610e2857895460ff19166001178a555b50506001600160a01b0385163303610ede578d6001600160a01b03168c6001600160a01b0316636352211e8d6040518263ffffffff1660e01b8152600401610e7291815260200190565b602060405180830381865afa158015610e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb391906133cd565b6001600160a01b031614610ed95760405162461bcd60e51b815260040161074790613460565b610f72565b6040516331a9108f60e11b8152600481018c90526001600160a01b0380891691908e1690636352211e90602401602060405180830381865afa158015610f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4c91906133cd565b6001600160a01b031614610f725760405162461bcd60e51b815260040161074790613460565b60018801548854600160401b90046001600160a01b031680156111b35734156110035760405162461bcd60e51b815260206004820152603f60248201527f746869732070726f6a6563742061636365707473206120646966666572656e7460448201527f2063757272656e637920616e642063616e6e6f742061636365707420455448006064820152608401610747565b604051636eb1769f60e11b815282906001600160a01b0383169063dd62ed3e90611033903390309060040161348b565b602060405180830381865afa158015611050573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110749190613447565b10156110cd5760405162461bcd60e51b815260206004820152602260248201527f496e73756666696369656e742046756e647320417070726f76656420666f72206044820152610a8b60f31b6064820152608401610747565b6040516370a0823160e01b815282906001600160a01b038316906370a08231906110fb903390600401613193565b602060405180830381865afa158015611118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113c9190613447565b10156111825760405162461bcd60e51b815260206004820152601560248201527424b739bab33334b1b4b2b73a103130b630b731b29760591b6044820152606401610747565b6111ae8f83837f00000000000000000000000000000000000000000000000000000000000000006121b8565b61122e565b813410156112035760405162461bcd60e51b815260206004820181905260248201527f4d7573742073656e64206d696e696d756d2076616c756520746f206d696e74216044820152606401610747565b61122e8f837f00000000000000000000000000000000000000000000000000000000000000006124f2565b50505050505050505050600160005595945050505050565b60006112563385858560006106f7565b949350505050565b611267816125a0565b60008181526002602052604090208054600160281b900462ffffff1690600561128f836134a5565b91906101000a81548162ffffff021916908362ffffff1602179055505050565b6112bf63076bce2760e11b61267a565b604051634d01727d60e11b8152600060048201526001600160a01b03821690639a02e4fa90602401602060405180830381865afa158015611304573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611328919061342a565b50611334600382612763565b506040516001600160a01b038216907f7475e948f72f2714b1984b09949d13da2ddbae9f91e31da0faa380c0095b971c90600090a250565b611375826125a0565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa1580156113df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611403919061336e565b50929550929350505050818311156114a35760405162461bcd60e51b815260206004820152605760248201527f43616e6e6f7420696e6372656173652070726f6a656374206d617820696e766f60448201527f636174696f6e732061626f766520636f726520636f6e7472616374207365742060648201527670726f6a656374206d617820696e766f636174696f6e7360481b608482015260a401610747565b808310156115255760405162461bcd60e51b815260206004820152604360248201527f43616e6e6f74207365742070726f6a656374206d617820696e766f636174696f60448201527f6e7320746f206c657373207468616e2063757272656e7420696e766f636174696064820152626f6e7360e81b608482015260a401610747565b60008481526002602052604090819020805460ff1962ffffff871662010000021664ffffff00ff19909116178386141790555184907f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906115899086815260200190565b60405180910390a250505050565b60006115a686868686866106f7565b9695505050505050565b6115b9816125a0565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b6044820152606401610747565b611601856125a0565b61160c8585856117ec565b611617858383611afb565b5050505050565b61162e634ff5759d60e01b61267a565b61163960038261277f565b506040516001600160a01b038216907f16e28d6cac0e892c58cee90af3dc883220abe36e25201d7117c4f3aaabf1c3f090600090a250565b61167a826125a0565b60008281526002602052604080822060018101849055805461ff00191661010017815590519091839185917f26118a27aca826f829f3bfe21b140b4455c00b434849bd0da50d1e1a9720fb5c91a3805462010000900462ffffff161580156116e45750805460ff16155b156116f2576116f283611f9c565b505050565b600081815260026020526040902080546001820154610100820460ff16929091606091600160401b9091046001600160a01b03169081611754576040518060400160405280600381526020016208aa8960eb1b81525092506117e4565b806002018054611763906134c7565b80601f016020809104026020016040519081016040528092919081815260200182805461178f906134c7565b80156117dc5780601f106117b1576101008083540402835291602001916117dc565b820191906000526020600020905b8154815290600101906020018083116117bf57829003601f168201915b505050505092505b509193509193565b6117f5836125a0565b80518251146118465760405162461bcd60e51b815260206004820152601f60248201527f4c656e677468206f662061646420617272617973206d757374206d61746368006044820152606401610747565b60005b825181101561196d5761187f83828151811061186757611867613501565b6020026020010151600361279490919063ffffffff16565b6118cb5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c792052656769737465726564204e4654204164647265737365730000006044820152606401610747565b60008481526005602052604081208451600192908690859081106118f1576118f1613501565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600084848151811061192d5761192d613501565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061196590613517565b915050611849565b50827fba2ec6d92cd62364c8e443b484b3e1f72f1ee9e161c1f871de1a60d83c89558b83836040516119a0929190613530565b60405180910390a2505050565b60405162461bcd60e51b815260206004820152601860248201527704d75737420636c61696d204e4654206f776e6572736869760441b6044820152600090606401610747565b60006119ff60036127b6565b905090565b604051634d01727d60e11b81526004810182905260009081906001600160a01b03851690639a02e4fa90602401602060405180830381865afa158015611a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a72919061342a565b90506001600160a01b03198116611ac55760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081d1bdad95b881a185cda081cd95959604a1b6044820152606401610747565b62ffffff851660009081526001602090815260408083206001600160a01b03199094168352929052205460ff1690509392505050565b611b04836125a0565b8051825114611b605760405162461bcd60e51b815260206004820152602260248201527f4c656e677468206f662072656d6f766520617272617973206d757374206d61746044820152610c6d60f31b6064820152608401610747565b60005b8251811015611c0c57600084815260056020526040812084518290869085908110611b9057611b90613501565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611bcc57611bcc613501565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611c0490613517565b915050611b63565b50827f2e3dced83b61aee20d72f4bdc7e6997a0f8616af4067d3aa92afe2b9b0532d1c83836040516119a0929190613530565b6000818152600260205260408082205490516370a0823160e01b8152600160401b9091046001600160a01b0316906370a0823190611c81903390600401613193565b602060405180830381865afa158015611c9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc29190613447565b92915050565b6000611cd88585858560006106f7565b95945050505050565b6000611cc26003836127c0565b600260208190526000918252604090912080546001820154928201805460ff8084169561010085049091169462010000850462ffffff90811695600160281b810490911694600160401b9091046001600160a01b031693611d4e906134c7565b80601f0160208091040260200160405190810160405280929190818152602001828054611d7a906134c7565b8015611dc75780601f10611d9c57610100808354040283529160200191611dc7565b820191906000526020600020905b815481529060010190602001808311611daa57829003601f168201915b5050505050905087565b611dda836125a0565b6040516208aa8960eb1b60208201526001600160a01b03821615906023016040516020818303038152906040528051906020012083604051602001611e1f91906135b4565b6040516020818303038152906040528051906020012014151514611e805760405162461bcd60e51b8152602060048201526018602482015277455448206973206f6e6c79206e756c6c206164647265737360401b6044820152606401610747565b600083815260026020819052604090912001611e9c838261361e565b50600083815260026020526040908190208054600160401b600160e01b031916600160401b6001600160a01b03851690810291909117909155905184907fe6c8c6160f844a27204e2b7fb4b7fb9f10e5d322fa850096bef29dc1d0f445c190611f06908690613330565b60405180910390a3505050565b600080611f23620f4240846136dd565b60009586526005602090815260408088206001600160a01b039790971688529581528587209187525250505090205460ff1690565b600081815260026020526040808220549051636eb1769f60e11b8152600160401b9091046001600160a01b03169063dd62ed3e90611c81903390309060040161348b565b604051630ea5613f60e01b81526004810182905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa158015612006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202a919061336e565b50505060008681526002602052604090819020805460ff1962ffffff861662010000021664ffffff00ff1990911617858514179055519194509192508491507f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906119a09085815260200190565b600082815260026020526040902054600160281b900462ffffff166001600160a01b0319821661211a5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206861766520616e20656d707479206861736820736565642074604482015266379031b7b83c9760c91b6064820152608401610747565b60008181526001602090815260408083206001600160a01b03198616845290915290205460ff16156121855760405162461bcd60e51b815260206004820152601460248201527314185b995b08185b1c9958591e481b5a5b9d195960621b6044820152606401610747565b60009081526001602081815260408084206001600160a01b03199095168452939052919020805460ff1916909117905550565b81600080808080807f0000000000000000000000000000000000000000000000000000000000000000156122f457604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa158015612238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225c91906136ff565b969e50949c50909a509850919650919450909250905081156122ed576040516323b872dd60e01b81526001600160a01b038a16906323b872dd906122a890339085908790600401613787565b6020604051808303816000875af11580156122c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122eb9190613353565b505b5050612374565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612340573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236491906137ab565b949a509298509096509450925090505b85156123ef576040516323b872dd60e01b81526001600160a01b038816906323b872dd906123aa90339089908b90600401613787565b6020604051808303816000875af11580156123c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ed9190613353565b505b831561246a576040516323b872dd60e01b81526001600160a01b038816906323b872dd9061242590339087908990600401613787565b6020604051808303816000875af1158015612444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124689190613353565b505b81156124e5576040516323b872dd60e01b81526001600160a01b038816906323b872dd906124a090339085908790600401613787565b6020604051808303816000875af11580156124bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e39190613353565b505b5050505050505050505050565b34156116f2576000806125058434613814565b905080156125955760405133908290600081818185875af1925050503d806000811461254d576040519150601f19603f3d011682016040523d82523d6000602084013e612552565b606091505b505080925050816125955760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610747565b6116178585856127cc565b60405163a47d29cb60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015612605573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262991906133cd565b6001600160a01b0316336001600160a01b0316146126775760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610747565b50565b60405163230448b160e01b81523360048201523060248201526001600160e01b0319821660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063230448b1906064016020604051808303816000875af11580156126f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271a9190613353565b6126775760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610747565b6000612778836001600160a01b038416612bbd565b9392505050565b6000612778836001600160a01b038416612c0c565b6001600160a01b03811660009081526001830160205260408120541515612778565b6000611cc2825490565b60006127788383612cff565b600082116127d957505050565b60008060008060008060007f00000000000000000000000000000000000000000000000000000000000000001561294457604051638639415b60e01b8152600481018b9052602481018a905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa15801561285c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061288091906136ff565b969e50949c50909a5098509196509194509092509050811561293d576040516001600160a01b038216908390600081818185875af1925050503d80600081146128e5576040519150601f19603f3d011682016040523d82523d6000602084013e6128ea565b606091505b5050809950508861293d5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610747565b50506129c4565b604051638639415b60e01b8152600481018b9052602481018a90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129b491906137ab565b949a509298509096509450925090505b8515612a6b576040516001600160a01b038616908790600081818185875af1925050503d8060008114612a13576040519150601f19603f3d011682016040523d82523d6000602084013e612a18565b606091505b50508097505086612a6b5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610747565b8315612b0a576040516001600160a01b038416908590600081818185875af1925050503d8060008114612aba576040519150601f19603f3d011682016040523d82523d6000602084013e612abf565b606091505b50508097505086612b0a5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610747565b8115612bb1576040516001600160a01b038216908390600081818185875af1925050503d8060008114612b59576040519150601f19603f3d011682016040523d82523d6000602084013e612b5e565b606091505b50508097505086612bb15760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610747565b50505050505050505050565b6000818152600183016020526040812054612c0457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611cc2565b506000611cc2565b60008181526001830160205260408120548015612cf5576000612c30600183613814565b8554909150600090612c4490600190613814565b9050818114612ca9576000866000018281548110612c6457612c64613501565b9060005260206000200154905080876000018481548110612c8757612c87613501565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612cba57612cba613827565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611cc2565b6000915050611cc2565b6000826000018281548110612d1657612d16613501565b9060005260206000200154905092915050565b6001600160a01b038116811461267757600080fd5b8035612d4981612d29565b919050565b600080600080600060a08688031215612d6657600080fd5b8535612d7181612d29565b9450602086013593506040860135612d8881612d29565b9250606086013591506080860135612d9f81612d29565b809150509295509295909350565b600080600060608486031215612dc257600080fd5b833592506020840135612dd481612d29565b929592945050506040919091013590565b600060208284031215612df757600080fd5b5035919050565b600060208284031215612e1057600080fd5b813561277881612d29565b60008060408385031215612e2e57600080fd5b50508035926020909101359150565b6001600160a01b03198116811461267757600080fd5b60008060408385031215612e6657600080fd5b823591506020830135612e7881612e3d565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612ec157612ec1612e83565b604052919050565b60006001600160401b03821115612ee257612ee2612e83565b5060051b60200190565b600082601f830112612efd57600080fd5b81356020612f12612f0d83612ec9565b612e99565b82815260059290921b84018101918181019086841115612f3157600080fd5b8286015b84811015612f55578035612f4881612d29565b8352918301918301612f35565b509695505050505050565b600082601f830112612f7157600080fd5b81356020612f81612f0d83612ec9565b82815260059290921b84018101918181019086841115612fa057600080fd5b8286015b84811015612f555780358352918301918301612fa4565b600080600080600060a08688031215612fd357600080fd5b8535945060208601356001600160401b0380821115612ff157600080fd5b612ffd89838a01612eec565b9550604088013591508082111561301357600080fd5b61301f89838a01612f60565b9450606088013591508082111561303557600080fd5b61304189838a01612eec565b9350608088013591508082111561305757600080fd5b5061306488828901612f60565b9150509295509295909350565b60005b8381101561308c578181015183820152602001613074565b50506000910152565b600081518084526130ad816020860160208601613071565b601f01601f19169290920160200192915050565b84151581528360208201526080604082015260006130e26080830185613095565b905060018060a01b038316606083015295945050505050565b60008060006060848603121561311057600080fd5b8335925060208401356001600160401b038082111561312e57600080fd5b61313a87838801612eec565b9350604086013591508082111561315057600080fd5b5061315d86828701612f60565b9150509250925092565b6000806040838503121561317a57600080fd5b823561318581612d29565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000806000606084860312156131bc57600080fd5b833562ffffff811681146131cf57600080fd5b92506020840135612dd481612d29565b600080600080608085870312156131f557600080fd5b843561320081612d29565b935060208501359250604085013561321781612d29565b9396929550929360600135925050565b8715158152861515602082015262ffffff8681166040830152851660608201526001600160a01b038416608082015260a0810183905260e060c0820181905260009061327590830184613095565b9998505050505050505050565b60008060006060848603121561329757600080fd5b833592506020808501356001600160401b03808211156132b657600080fd5b818701915087601f8301126132ca57600080fd5b8135818111156132dc576132dc612e83565b6132ee601f8201601f19168501612e99565b9150808252888482850101111561330457600080fd5b808484018584013760008482840101525080945050505061332760408501612d3e565b90509250925092565b6020815260006127786020830184613095565b80518015158114612d4957600080fd5b60006020828403121561336557600080fd5b61277882613343565b60008060008060008060c0878903121561338757600080fd5b865195506020870151945061339e60408801613343565b93506133ac60608801613343565b9250608087015191506133c160a08801613343565b90509295509295509295565b6000602082840312156133df57600080fd5b815161277881612d29565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417611cc257611cc26133ea565b80820180821115611cc257611cc26133ea565b60006020828403121561343c57600080fd5b815161277881612e3d565b60006020828403121561345957600080fd5b5051919050565b60208082526011908201527013db9b1e481bdddb995c881bd988139195607a1b604082015260600190565b6001600160a01b0392831681529116602082015260400190565b600062ffffff8083168181036134bd576134bd6133ea565b6001019392505050565b600181811c908216806134db57607f821691505b6020821081036134fb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201613529576135296133ea565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156135725781516001600160a01b03168452928401929084019060010161354d565b5050508381038285015284518082528583019183019060005b818110156135a75783518352928401929184019160010161358b565b5090979650505050505050565b600082516135c6818460208701613071565b9190910192915050565b601f8211156116f257600081815260208120601f850160051c810160208610156135f75750805b601f850160051c820191505b8181101561361657828155600101613603565b505050505050565b81516001600160401b0381111561363757613637612e83565b61364b8161364584546134c7565b846135d0565b602080601f83116001811461368057600084156136685750858301515b600019600386901b1c1916600185901b178555613616565b600085815260208120601f198616915b828110156136af57888601518255948401946001909101908401613690565b50858210156136cd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000826136fa57634e487b7160e01b600052601260045260246000fd5b500490565b600080600080600080600080610100898b03121561371c57600080fd5b88519750602089015161372e81612d29565b60408a015160608b0151919850965061374681612d29565b60808a015160a08b0151919650945061375e81612d29565b60c08a015160e08b0151919450925061377681612d29565b809150509295985092959890939650565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008060008060008060c087890312156137c457600080fd5b8651955060208701516137d681612d29565b6040880151606089015191965094506137ee81612d29565b608088015160a0890151919450925061380681612d29565b809150509295509295509295565b81810381811115611cc257611cc26133ea565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220515d44298744ae69be83d28f490a9bf18506d6ecebbabf70408de10f382ab54464736f6c63430008130033",
1266
1266
  "linkReferences": {},
1267
1267
  "deployedLinkReferences": {}
1268
1268
  }