@superfluid-finance/sdk-core 0.6.14-dev.b40ca0a.0 → 0.6.14-dev.bb5ba5e.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/dist/index.umd.js +1925 -1940
  2. package/dist/main/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts +65 -1
  3. package/dist/main/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts.map +1 -1
  4. package/dist/main/typechain-types/contracts/agreements/gdav1/SuperfluidPool.d.ts +18 -22
  5. package/dist/main/typechain-types/contracts/agreements/gdav1/SuperfluidPool.d.ts.map +1 -1
  6. package/dist/main/typechain-types/contracts/apps/{SuperAppBaseFlow.d.ts → CFASuperAppBase.d.ts} +31 -5
  7. package/dist/main/typechain-types/contracts/apps/CFASuperAppBase.d.ts.map +1 -0
  8. package/dist/main/typechain-types/contracts/apps/{SuperAppBaseFlow.js → CFASuperAppBase.js} +1 -1
  9. package/dist/main/typechain-types/contracts/apps/CFASuperAppBase.js.map +1 -0
  10. package/dist/main/typechain-types/contracts/apps/index.d.ts +1 -1
  11. package/dist/main/typechain-types/contracts/apps/index.d.ts.map +1 -1
  12. package/dist/main/typechain-types/contracts/interfaces/agreements/gdav1/IGeneralDistributionAgreementV1.d.ts +65 -1
  13. package/dist/main/typechain-types/contracts/interfaces/agreements/gdav1/IGeneralDistributionAgreementV1.d.ts.map +1 -1
  14. package/dist/main/typechain-types/contracts/interfaces/agreements/gdav1/ISuperfluidPool.d.ts +21 -11
  15. package/dist/main/typechain-types/contracts/interfaces/agreements/gdav1/ISuperfluidPool.d.ts.map +1 -1
  16. package/dist/main/typechain-types/contracts/mocks/{SuperAppBaseFlowTester.d.ts → CFASuperAppBaseTester.d.ts} +31 -5
  17. package/dist/main/typechain-types/contracts/mocks/CFASuperAppBaseTester.d.ts.map +1 -0
  18. package/dist/main/typechain-types/contracts/mocks/{SuperAppBaseFlowTester.js → CFASuperAppBaseTester.js} +1 -1
  19. package/dist/main/typechain-types/contracts/mocks/CFASuperAppBaseTester.js.map +1 -0
  20. package/dist/main/typechain-types/contracts/mocks/CrossStreamSuperApp.d.ts +27 -1
  21. package/dist/main/typechain-types/contracts/mocks/CrossStreamSuperApp.d.ts.map +1 -1
  22. package/dist/main/typechain-types/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock.d.ts +18 -22
  23. package/dist/main/typechain-types/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock.d.ts.map +1 -1
  24. package/dist/main/typechain-types/contracts/mocks/index.d.ts +1 -1
  25. package/dist/main/typechain-types/contracts/mocks/index.d.ts.map +1 -1
  26. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts +1 -1
  27. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js +1 -1
  28. package/dist/main/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.d.ts +1 -1
  29. package/dist/main/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.js +1 -1
  30. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts +57 -1
  31. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts.map +1 -1
  32. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js +74 -1
  33. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js.map +1 -1
  34. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.d.ts +1 -1
  35. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.js +1 -1
  36. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolMemberNFT__factory.d.ts +1 -1
  37. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolMemberNFT__factory.js +1 -1
  38. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts +18 -57
  39. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts.map +1 -1
  40. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js +20 -71
  41. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js.map +1 -1
  42. package/dist/{module/typechain-types/factories/contracts/apps/SuperAppBaseFlow__factory.d.ts → main/typechain-types/factories/contracts/apps/CFASuperAppBase__factory.d.ts} +45 -5
  43. package/dist/main/typechain-types/factories/contracts/apps/CFASuperAppBase__factory.d.ts.map +1 -0
  44. package/dist/main/typechain-types/factories/contracts/apps/{SuperAppBaseFlow__factory.js → CFASuperAppBase__factory.js} +57 -5
  45. package/dist/main/typechain-types/factories/contracts/apps/CFASuperAppBase__factory.js.map +1 -0
  46. package/dist/main/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.d.ts +1 -1
  47. package/dist/main/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.d.ts.map +1 -1
  48. package/dist/main/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.js +1 -1
  49. package/dist/main/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.js.map +1 -1
  50. package/dist/main/typechain-types/factories/contracts/apps/index.d.ts +1 -1
  51. package/dist/main/typechain-types/factories/contracts/apps/index.d.ts.map +1 -1
  52. package/dist/main/typechain-types/factories/contracts/apps/index.js +3 -3
  53. package/dist/main/typechain-types/factories/contracts/apps/index.js.map +1 -1
  54. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.d.ts +1 -1
  55. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.js +1 -1
  56. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.d.ts +1 -1
  57. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.js +1 -1
  58. package/dist/main/typechain-types/factories/contracts/interfaces/agreements/gdav1/IGeneralDistributionAgreementV1__factory.d.ts +56 -0
  59. package/dist/main/typechain-types/factories/contracts/interfaces/agreements/gdav1/IGeneralDistributionAgreementV1__factory.d.ts.map +1 -1
  60. package/dist/main/typechain-types/factories/contracts/interfaces/agreements/gdav1/IGeneralDistributionAgreementV1__factory.js +73 -0
  61. package/dist/main/typechain-types/factories/contracts/interfaces/agreements/gdav1/IGeneralDistributionAgreementV1__factory.js.map +1 -1
  62. package/dist/main/typechain-types/factories/contracts/interfaces/agreements/gdav1/ISuperfluidPool__factory.d.ts +16 -2
  63. package/dist/main/typechain-types/factories/contracts/interfaces/agreements/gdav1/ISuperfluidPool__factory.d.ts.map +1 -1
  64. package/dist/main/typechain-types/factories/contracts/interfaces/agreements/gdav1/ISuperfluidPool__factory.js +21 -2
  65. package/dist/main/typechain-types/factories/contracts/interfaces/agreements/gdav1/ISuperfluidPool__factory.js.map +1 -1
  66. package/dist/main/typechain-types/factories/contracts/mocks/AgreementMock__factory.d.ts +1 -1
  67. package/dist/main/typechain-types/factories/contracts/mocks/AgreementMock__factory.js +1 -1
  68. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ClosingOnUpdateFlowTestApp__factory.d.ts +1 -1
  69. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ClosingOnUpdateFlowTestApp__factory.js +1 -1
  70. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ExclusiveInflowTestApp__factory.d.ts +1 -1
  71. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ExclusiveInflowTestApp__factory.js +1 -1
  72. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/FlowExchangeTestApp__factory.d.ts +1 -1
  73. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/FlowExchangeTestApp__factory.js +1 -1
  74. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/NonClosableOutflowTestApp__factory.d.ts +1 -1
  75. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/NonClosableOutflowTestApp__factory.js +1 -1
  76. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/SelfDeletingFlowTestApp__factory.d.ts +1 -1
  77. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/SelfDeletingFlowTestApp__factory.js +1 -1
  78. package/dist/main/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibraryMock__factory.d.ts +1 -1
  79. package/dist/main/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibraryMock__factory.js +1 -1
  80. package/dist/main/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibrarySuperAppMock__factory.d.ts +1 -1
  81. package/dist/main/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibrarySuperAppMock__factory.js +1 -1
  82. package/dist/main/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.d.ts +379 -0
  83. package/dist/main/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.d.ts.map +1 -0
  84. package/dist/main/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.js +508 -0
  85. package/dist/main/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.js.map +1 -0
  86. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.d.ts +1 -1
  87. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.js +1 -1
  88. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.d.ts +1 -1
  89. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.js +1 -1
  90. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/FlowNFTBaseMock__factory.d.ts +1 -1
  91. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/FlowNFTBaseMock__factory.js +1 -1
  92. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.d.ts +1 -1
  93. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.js +1 -1
  94. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.d.ts +1 -1
  95. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.js +1 -1
  96. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.d.ts +1 -1
  97. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.js +1 -1
  98. package/dist/main/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.d.ts +41 -1
  99. package/dist/main/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.d.ts.map +1 -1
  100. package/dist/main/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.js +53 -1
  101. package/dist/main/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.js.map +1 -1
  102. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientDrainingGas__factory.d.ts +1 -1
  103. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientDrainingGas__factory.js +1 -1
  104. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientReverting__factory.d.ts +1 -1
  105. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientReverting__factory.js +1 -1
  106. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777SenderRecipientMock__factory.d.ts +1 -1
  107. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777SenderRecipientMock__factory.js +1 -1
  108. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.d.ts +1 -1
  109. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.js +1 -1
  110. package/dist/main/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibraryMock__factory.d.ts +1 -1
  111. package/dist/main/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibraryMock__factory.js +1 -1
  112. package/dist/main/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibrarySuperAppMock__factory.d.ts +1 -1
  113. package/dist/main/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibrarySuperAppMock__factory.js +1 -1
  114. package/dist/main/typechain-types/factories/contracts/mocks/MockSmartWallet__factory.d.ts +1 -1
  115. package/dist/main/typechain-types/factories/contracts/mocks/MockSmartWallet__factory.js +1 -1
  116. package/dist/main/typechain-types/factories/contracts/mocks/MultiFlowTesterApp__factory.d.ts +1 -1
  117. package/dist/main/typechain-types/factories/contracts/mocks/MultiFlowTesterApp__factory.js +1 -1
  118. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolAdminNFTMock__factory.d.ts +1 -1
  119. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolAdminNFTMock__factory.js +1 -1
  120. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolMemberNFTMock__factory.d.ts +1 -1
  121. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolMemberNFTMock__factory.js +1 -1
  122. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolNFTBaseMock__factory.d.ts +1 -1
  123. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolNFTBaseMock__factory.js +1 -1
  124. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolAdminNFTStorageLayoutMock__factory.d.ts +1 -1
  125. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolAdminNFTStorageLayoutMock__factory.js +1 -1
  126. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolMemberNFTStorageLayoutMock__factory.d.ts +1 -1
  127. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolMemberNFTStorageLayoutMock__factory.js +1 -1
  128. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolNFTBaseStorageLayoutMock__factory.d.ts +1 -1
  129. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolNFTBaseStorageLayoutMock__factory.js +1 -1
  130. package/dist/main/typechain-types/factories/contracts/mocks/StreamRedirector__factory.d.ts +1 -1
  131. package/dist/main/typechain-types/factories/contracts/mocks/StreamRedirector__factory.js +1 -1
  132. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  133. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.js +1 -1
  134. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  135. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.js +1 -1
  136. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.d.ts +1 -1
  137. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.js +1 -1
  138. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  139. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  140. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  141. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  142. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.d.ts +1 -1
  143. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.js +1 -1
  144. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  145. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  146. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.d.ts +1 -1
  147. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.js +1 -1
  148. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock42__factory.d.ts +1 -1
  149. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock42__factory.js +1 -1
  150. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock__factory.d.ts +1 -1
  151. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock__factory.js +1 -1
  152. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryStorageLayoutTester__factory.d.ts +1 -1
  153. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryStorageLayoutTester__factory.js +1 -1
  154. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.d.ts +1 -1
  155. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.js +1 -1
  156. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.d.ts +1 -1
  157. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.d.ts.map +1 -1
  158. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.js +1 -1
  159. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.js.map +1 -1
  160. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFASuperAppMock__factory.d.ts +1 -1
  161. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFASuperAppMock__factory.js +1 -1
  162. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDAMock__factory.d.ts +1 -1
  163. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDAMock__factory.js +1 -1
  164. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDASuperAppMock__factory.d.ts +1 -1
  165. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDASuperAppMock__factory.js +1 -1
  166. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDAMock__factory.d.ts +1 -1
  167. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDAMock__factory.js +1 -1
  168. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDASuperAppMock__factory.d.ts +1 -1
  169. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDASuperAppMock__factory.js +1 -1
  170. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/NoNFTSuperTokenMock__factory.d.ts +1 -1
  171. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/NoNFTSuperTokenMock__factory.js +1 -1
  172. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenMock__factory.d.ts +1 -1
  173. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenMock__factory.js +1 -1
  174. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenStorageLayoutTester__factory.d.ts +1 -1
  175. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenStorageLayoutTester__factory.js +1 -1
  176. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.d.ts +1 -1
  177. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.js +1 -1
  178. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.d.ts +1 -1
  179. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.js +1 -1
  180. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.d.ts +1 -1
  181. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.js +1 -1
  182. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.d.ts +18 -57
  183. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.d.ts.map +1 -1
  184. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.js +20 -71
  185. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.js.map +1 -1
  186. package/dist/main/typechain-types/factories/contracts/mocks/index.d.ts +1 -1
  187. package/dist/main/typechain-types/factories/contracts/mocks/index.d.ts.map +1 -1
  188. package/dist/main/typechain-types/factories/contracts/mocks/index.js +3 -3
  189. package/dist/main/typechain-types/factories/contracts/mocks/index.js.map +1 -1
  190. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.d.ts +1 -1
  191. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.js +1 -1
  192. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.d.ts +1 -1
  193. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.js +1 -1
  194. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.d.ts +1 -1
  195. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.js +1 -1
  196. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts +1 -1
  197. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.js +1 -1
  198. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +1 -1
  199. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +1 -1
  200. package/dist/main/typechain-types/factories/contracts/utils/BatchLiquidator__factory.d.ts +1 -1
  201. package/dist/main/typechain-types/factories/contracts/utils/BatchLiquidator__factory.js +1 -1
  202. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts +1 -1
  203. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js +1 -1
  204. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts +1 -1
  205. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js +1 -1
  206. package/dist/main/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.d.ts +1 -1
  207. package/dist/main/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.js +1 -1
  208. package/dist/main/typechain-types/factories/contracts/utils/MacroForwarder__factory.d.ts +1 -1
  209. package/dist/main/typechain-types/factories/contracts/utils/MacroForwarder__factory.js +1 -1
  210. package/dist/main/typechain-types/factories/contracts/utils/SuperUpgrader__factory.d.ts +1 -1
  211. package/dist/main/typechain-types/factories/contracts/utils/SuperUpgrader__factory.js +1 -1
  212. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.d.ts +1 -1
  213. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.js +1 -1
  214. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.d.ts +1 -1
  215. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.js +1 -1
  216. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.d.ts +1 -1
  217. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.js +1 -1
  218. package/dist/main/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.d.ts +1 -1
  219. package/dist/main/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.js +1 -1
  220. package/dist/main/typechain-types/factories/contracts/utils/TestGovernance__factory.d.ts +1 -1
  221. package/dist/main/typechain-types/factories/contracts/utils/TestGovernance__factory.js +1 -1
  222. package/dist/main/typechain-types/index.d.ts +4 -4
  223. package/dist/main/typechain-types/index.d.ts.map +1 -1
  224. package/dist/main/typechain-types/index.js +7 -7
  225. package/dist/main/typechain-types/index.js.map +1 -1
  226. package/dist/module/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts +65 -1
  227. package/dist/module/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts.map +1 -1
  228. package/dist/module/typechain-types/contracts/agreements/gdav1/SuperfluidPool.d.ts +18 -22
  229. package/dist/module/typechain-types/contracts/agreements/gdav1/SuperfluidPool.d.ts.map +1 -1
  230. package/dist/module/typechain-types/contracts/apps/{SuperAppBaseFlow.d.ts → CFASuperAppBase.d.ts} +31 -5
  231. package/dist/module/typechain-types/contracts/apps/CFASuperAppBase.d.ts.map +1 -0
  232. package/dist/module/typechain-types/contracts/apps/CFASuperAppBase.js +2 -0
  233. package/dist/module/typechain-types/contracts/apps/CFASuperAppBase.js.map +1 -0
  234. package/dist/module/typechain-types/contracts/apps/index.d.ts +1 -1
  235. package/dist/module/typechain-types/contracts/apps/index.d.ts.map +1 -1
  236. package/dist/module/typechain-types/contracts/interfaces/agreements/gdav1/IGeneralDistributionAgreementV1.d.ts +65 -1
  237. package/dist/module/typechain-types/contracts/interfaces/agreements/gdav1/IGeneralDistributionAgreementV1.d.ts.map +1 -1
  238. package/dist/module/typechain-types/contracts/interfaces/agreements/gdav1/ISuperfluidPool.d.ts +21 -11
  239. package/dist/module/typechain-types/contracts/interfaces/agreements/gdav1/ISuperfluidPool.d.ts.map +1 -1
  240. package/dist/module/typechain-types/contracts/mocks/{SuperAppBaseFlowTester.d.ts → CFASuperAppBaseTester.d.ts} +31 -5
  241. package/dist/module/typechain-types/contracts/mocks/CFASuperAppBaseTester.d.ts.map +1 -0
  242. package/dist/module/typechain-types/contracts/mocks/CFASuperAppBaseTester.js +2 -0
  243. package/dist/module/typechain-types/contracts/mocks/CFASuperAppBaseTester.js.map +1 -0
  244. package/dist/module/typechain-types/contracts/mocks/CrossStreamSuperApp.d.ts +27 -1
  245. package/dist/module/typechain-types/contracts/mocks/CrossStreamSuperApp.d.ts.map +1 -1
  246. package/dist/module/typechain-types/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock.d.ts +18 -22
  247. package/dist/module/typechain-types/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock.d.ts.map +1 -1
  248. package/dist/module/typechain-types/contracts/mocks/index.d.ts +1 -1
  249. package/dist/module/typechain-types/contracts/mocks/index.d.ts.map +1 -1
  250. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts +1 -1
  251. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js +1 -1
  252. package/dist/module/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.d.ts +1 -1
  253. package/dist/module/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.js +1 -1
  254. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts +57 -1
  255. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts.map +1 -1
  256. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js +74 -1
  257. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js.map +1 -1
  258. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.d.ts +1 -1
  259. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.js +1 -1
  260. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolMemberNFT__factory.d.ts +1 -1
  261. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolMemberNFT__factory.js +1 -1
  262. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts +18 -57
  263. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts.map +1 -1
  264. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js +20 -71
  265. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js.map +1 -1
  266. package/dist/{main/typechain-types/factories/contracts/apps/SuperAppBaseFlow__factory.d.ts → module/typechain-types/factories/contracts/apps/CFASuperAppBase__factory.d.ts} +45 -5
  267. package/dist/module/typechain-types/factories/contracts/apps/CFASuperAppBase__factory.d.ts.map +1 -0
  268. package/dist/module/typechain-types/factories/contracts/apps/{SuperAppBaseFlow__factory.js → CFASuperAppBase__factory.js} +55 -3
  269. package/dist/module/typechain-types/factories/contracts/apps/CFASuperAppBase__factory.js.map +1 -0
  270. package/dist/module/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.d.ts +1 -1
  271. package/dist/module/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.d.ts.map +1 -1
  272. package/dist/module/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.js +1 -1
  273. package/dist/module/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.js.map +1 -1
  274. package/dist/module/typechain-types/factories/contracts/apps/index.d.ts +1 -1
  275. package/dist/module/typechain-types/factories/contracts/apps/index.d.ts.map +1 -1
  276. package/dist/module/typechain-types/factories/contracts/apps/index.js +1 -1
  277. package/dist/module/typechain-types/factories/contracts/apps/index.js.map +1 -1
  278. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.d.ts +1 -1
  279. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.js +1 -1
  280. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.d.ts +1 -1
  281. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.js +1 -1
  282. package/dist/module/typechain-types/factories/contracts/interfaces/agreements/gdav1/IGeneralDistributionAgreementV1__factory.d.ts +56 -0
  283. package/dist/module/typechain-types/factories/contracts/interfaces/agreements/gdav1/IGeneralDistributionAgreementV1__factory.d.ts.map +1 -1
  284. package/dist/module/typechain-types/factories/contracts/interfaces/agreements/gdav1/IGeneralDistributionAgreementV1__factory.js +73 -0
  285. package/dist/module/typechain-types/factories/contracts/interfaces/agreements/gdav1/IGeneralDistributionAgreementV1__factory.js.map +1 -1
  286. package/dist/module/typechain-types/factories/contracts/interfaces/agreements/gdav1/ISuperfluidPool__factory.d.ts +16 -2
  287. package/dist/module/typechain-types/factories/contracts/interfaces/agreements/gdav1/ISuperfluidPool__factory.d.ts.map +1 -1
  288. package/dist/module/typechain-types/factories/contracts/interfaces/agreements/gdav1/ISuperfluidPool__factory.js +21 -2
  289. package/dist/module/typechain-types/factories/contracts/interfaces/agreements/gdav1/ISuperfluidPool__factory.js.map +1 -1
  290. package/dist/module/typechain-types/factories/contracts/mocks/AgreementMock__factory.d.ts +1 -1
  291. package/dist/module/typechain-types/factories/contracts/mocks/AgreementMock__factory.js +1 -1
  292. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ClosingOnUpdateFlowTestApp__factory.d.ts +1 -1
  293. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ClosingOnUpdateFlowTestApp__factory.js +1 -1
  294. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ExclusiveInflowTestApp__factory.d.ts +1 -1
  295. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ExclusiveInflowTestApp__factory.js +1 -1
  296. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/FlowExchangeTestApp__factory.d.ts +1 -1
  297. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/FlowExchangeTestApp__factory.js +1 -1
  298. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/NonClosableOutflowTestApp__factory.d.ts +1 -1
  299. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/NonClosableOutflowTestApp__factory.js +1 -1
  300. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/SelfDeletingFlowTestApp__factory.d.ts +1 -1
  301. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/SelfDeletingFlowTestApp__factory.js +1 -1
  302. package/dist/module/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibraryMock__factory.d.ts +1 -1
  303. package/dist/module/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibraryMock__factory.js +1 -1
  304. package/dist/module/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibrarySuperAppMock__factory.d.ts +1 -1
  305. package/dist/module/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibrarySuperAppMock__factory.js +1 -1
  306. package/dist/module/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.d.ts +379 -0
  307. package/dist/module/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.d.ts.map +1 -0
  308. package/dist/module/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.js +504 -0
  309. package/dist/module/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.js.map +1 -0
  310. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.d.ts +1 -1
  311. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.js +1 -1
  312. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.d.ts +1 -1
  313. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.js +1 -1
  314. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/FlowNFTBaseMock__factory.d.ts +1 -1
  315. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/FlowNFTBaseMock__factory.js +1 -1
  316. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.d.ts +1 -1
  317. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.js +1 -1
  318. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.d.ts +1 -1
  319. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.js +1 -1
  320. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.d.ts +1 -1
  321. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.js +1 -1
  322. package/dist/module/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.d.ts +41 -1
  323. package/dist/module/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.d.ts.map +1 -1
  324. package/dist/module/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.js +53 -1
  325. package/dist/module/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.js.map +1 -1
  326. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientDrainingGas__factory.d.ts +1 -1
  327. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientDrainingGas__factory.js +1 -1
  328. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientReverting__factory.d.ts +1 -1
  329. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientReverting__factory.js +1 -1
  330. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777SenderRecipientMock__factory.d.ts +1 -1
  331. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777SenderRecipientMock__factory.js +1 -1
  332. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.d.ts +1 -1
  333. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.js +1 -1
  334. package/dist/module/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibraryMock__factory.d.ts +1 -1
  335. package/dist/module/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibraryMock__factory.js +1 -1
  336. package/dist/module/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibrarySuperAppMock__factory.d.ts +1 -1
  337. package/dist/module/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibrarySuperAppMock__factory.js +1 -1
  338. package/dist/module/typechain-types/factories/contracts/mocks/MockSmartWallet__factory.d.ts +1 -1
  339. package/dist/module/typechain-types/factories/contracts/mocks/MockSmartWallet__factory.js +1 -1
  340. package/dist/module/typechain-types/factories/contracts/mocks/MultiFlowTesterApp__factory.d.ts +1 -1
  341. package/dist/module/typechain-types/factories/contracts/mocks/MultiFlowTesterApp__factory.js +1 -1
  342. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolAdminNFTMock__factory.d.ts +1 -1
  343. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolAdminNFTMock__factory.js +1 -1
  344. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolMemberNFTMock__factory.d.ts +1 -1
  345. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolMemberNFTMock__factory.js +1 -1
  346. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolNFTBaseMock__factory.d.ts +1 -1
  347. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolNFTBaseMock__factory.js +1 -1
  348. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolAdminNFTStorageLayoutMock__factory.d.ts +1 -1
  349. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolAdminNFTStorageLayoutMock__factory.js +1 -1
  350. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolMemberNFTStorageLayoutMock__factory.d.ts +1 -1
  351. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolMemberNFTStorageLayoutMock__factory.js +1 -1
  352. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolNFTBaseStorageLayoutMock__factory.d.ts +1 -1
  353. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolNFTBaseStorageLayoutMock__factory.js +1 -1
  354. package/dist/module/typechain-types/factories/contracts/mocks/StreamRedirector__factory.d.ts +1 -1
  355. package/dist/module/typechain-types/factories/contracts/mocks/StreamRedirector__factory.js +1 -1
  356. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  357. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.js +1 -1
  358. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  359. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.js +1 -1
  360. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.d.ts +1 -1
  361. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.js +1 -1
  362. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  363. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  364. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  365. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  366. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.d.ts +1 -1
  367. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.js +1 -1
  368. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  369. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  370. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.d.ts +1 -1
  371. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.js +1 -1
  372. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock42__factory.d.ts +1 -1
  373. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock42__factory.js +1 -1
  374. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock__factory.d.ts +1 -1
  375. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock__factory.js +1 -1
  376. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryStorageLayoutTester__factory.d.ts +1 -1
  377. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryStorageLayoutTester__factory.js +1 -1
  378. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.d.ts +1 -1
  379. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.js +1 -1
  380. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.d.ts +1 -1
  381. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.d.ts.map +1 -1
  382. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.js +1 -1
  383. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.js.map +1 -1
  384. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFASuperAppMock__factory.d.ts +1 -1
  385. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFASuperAppMock__factory.js +1 -1
  386. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDAMock__factory.d.ts +1 -1
  387. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDAMock__factory.js +1 -1
  388. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDASuperAppMock__factory.d.ts +1 -1
  389. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDASuperAppMock__factory.js +1 -1
  390. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDAMock__factory.d.ts +1 -1
  391. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDAMock__factory.js +1 -1
  392. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDASuperAppMock__factory.d.ts +1 -1
  393. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDASuperAppMock__factory.js +1 -1
  394. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/NoNFTSuperTokenMock__factory.d.ts +1 -1
  395. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/NoNFTSuperTokenMock__factory.js +1 -1
  396. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenMock__factory.d.ts +1 -1
  397. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenMock__factory.js +1 -1
  398. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenStorageLayoutTester__factory.d.ts +1 -1
  399. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenStorageLayoutTester__factory.js +1 -1
  400. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.d.ts +1 -1
  401. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.js +1 -1
  402. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.d.ts +1 -1
  403. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.js +1 -1
  404. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.d.ts +1 -1
  405. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.js +1 -1
  406. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.d.ts +18 -57
  407. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.d.ts.map +1 -1
  408. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.js +20 -71
  409. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.js.map +1 -1
  410. package/dist/module/typechain-types/factories/contracts/mocks/index.d.ts +1 -1
  411. package/dist/module/typechain-types/factories/contracts/mocks/index.d.ts.map +1 -1
  412. package/dist/module/typechain-types/factories/contracts/mocks/index.js +1 -1
  413. package/dist/module/typechain-types/factories/contracts/mocks/index.js.map +1 -1
  414. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.d.ts +1 -1
  415. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.js +1 -1
  416. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.d.ts +1 -1
  417. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.js +1 -1
  418. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.d.ts +1 -1
  419. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.js +1 -1
  420. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts +1 -1
  421. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.js +1 -1
  422. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +1 -1
  423. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +1 -1
  424. package/dist/module/typechain-types/factories/contracts/utils/BatchLiquidator__factory.d.ts +1 -1
  425. package/dist/module/typechain-types/factories/contracts/utils/BatchLiquidator__factory.js +1 -1
  426. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts +1 -1
  427. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js +1 -1
  428. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts +1 -1
  429. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js +1 -1
  430. package/dist/module/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.d.ts +1 -1
  431. package/dist/module/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.js +1 -1
  432. package/dist/module/typechain-types/factories/contracts/utils/MacroForwarder__factory.d.ts +1 -1
  433. package/dist/module/typechain-types/factories/contracts/utils/MacroForwarder__factory.js +1 -1
  434. package/dist/module/typechain-types/factories/contracts/utils/SuperUpgrader__factory.d.ts +1 -1
  435. package/dist/module/typechain-types/factories/contracts/utils/SuperUpgrader__factory.js +1 -1
  436. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.d.ts +1 -1
  437. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.js +1 -1
  438. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.d.ts +1 -1
  439. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.js +1 -1
  440. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.d.ts +1 -1
  441. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.js +1 -1
  442. package/dist/module/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.d.ts +1 -1
  443. package/dist/module/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.js +1 -1
  444. package/dist/module/typechain-types/factories/contracts/utils/TestGovernance__factory.d.ts +1 -1
  445. package/dist/module/typechain-types/factories/contracts/utils/TestGovernance__factory.js +1 -1
  446. package/dist/module/typechain-types/index.d.ts +4 -4
  447. package/dist/module/typechain-types/index.d.ts.map +1 -1
  448. package/dist/module/typechain-types/index.js +2 -2
  449. package/dist/module/typechain-types/index.js.map +1 -1
  450. package/package.json +5 -5
  451. package/dist/main/typechain-types/contracts/apps/SuperAppBaseFlow.d.ts.map +0 -1
  452. package/dist/main/typechain-types/contracts/apps/SuperAppBaseFlow.js.map +0 -1
  453. package/dist/main/typechain-types/contracts/mocks/SuperAppBaseFlowTester.d.ts.map +0 -1
  454. package/dist/main/typechain-types/contracts/mocks/SuperAppBaseFlowTester.js.map +0 -1
  455. package/dist/main/typechain-types/factories/contracts/apps/SuperAppBaseFlow__factory.d.ts.map +0 -1
  456. package/dist/main/typechain-types/factories/contracts/apps/SuperAppBaseFlow__factory.js.map +0 -1
  457. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts +0 -351
  458. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts.map +0 -1
  459. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js +0 -471
  460. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js.map +0 -1
  461. package/dist/module/typechain-types/contracts/apps/SuperAppBaseFlow.d.ts.map +0 -1
  462. package/dist/module/typechain-types/contracts/apps/SuperAppBaseFlow.js +0 -2
  463. package/dist/module/typechain-types/contracts/apps/SuperAppBaseFlow.js.map +0 -1
  464. package/dist/module/typechain-types/contracts/mocks/SuperAppBaseFlowTester.d.ts.map +0 -1
  465. package/dist/module/typechain-types/contracts/mocks/SuperAppBaseFlowTester.js +0 -2
  466. package/dist/module/typechain-types/contracts/mocks/SuperAppBaseFlowTester.js.map +0 -1
  467. package/dist/module/typechain-types/factories/contracts/apps/SuperAppBaseFlow__factory.d.ts.map +0 -1
  468. package/dist/module/typechain-types/factories/contracts/apps/SuperAppBaseFlow__factory.js.map +0 -1
  469. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts +0 -351
  470. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts.map +0 -1
  471. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js +0 -467
  472. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js.map +0 -1
@@ -12,7 +12,7 @@ export declare class SuperTokenMock__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): SuperTokenMock;
14
14
  connect(signer: Signer): SuperTokenMock__factory;
15
- static readonly bytecode = "0x6101406040523480156200001257600080fd5b50604051620054243803806200542483398101604081905262000035916200015f565b6001600160a01b0380871660805280851660a081905281851660c0528184166101005290821660e05260405187918691869186918691907fcf554eb342edf010a94e07701ae91e99e90b769f649f03aeb1153654ddd43c0190600090a26040516001600160a01b038416907f8837af285f4d380af9227df9ebafa13d992b487fa6d7a4366bd4154576085b8990600090a26040516001600160a01b038316907feb87fb34067547f3dc0b85096c3da73c99d4fbb08ff41212b8d7c0b5008b42e690600090a26040516001600160a01b038216907fc1050c54a299c837fe281a2623c29ec8e34b455daef48760b6a29f4b6cc9906090600090a25050506101209690965250620001e795505050505050565b6001600160a01b03811681146200015c57600080fd5b50565b60008060008060008060c087890312156200017957600080fd5b8651620001868162000146565b602088015160408901519197509550620001a08162000146565b6060880151909450620001b38162000146565b6080880151909350620001c68162000146565b60a0880151909250620001d98162000146565b809150509295509295509295565b60805160a05160c05160e051610100516101205161515a620002ca600039600061072b015260006108ac01526000610a300152600081816106a90152611640015260008181610a0901526115a30152600081816104f801528181610d0c01528181610d7b015281816110c3015281816111f3015281816112c2015281816114e201528181611690015281816117dd0152818161197d01528181611a5c01528181611e5d01528181611f2701528181611fbf01528181612027015281816120af0152818161295f015281816129f601528181613b770152613db6015261515a6000f3fe608060405234801561001057600080fd5b50600436106104285760003560e01c80636c2d9f2f1161022b578063b84cdd4a11610130578063dd62ed3e116100b8578063ef43d2c611610087578063ef43d2c614610a04578063f5a8b4dd14610a2b578063fad8b32a14610a52578063fc673c4f14610a65578063fe9d930314610a7857600080fd5b8063dd62ed3e14610979578063eb3537cc146109b2578063ec0d6343146109e0578063ee719bc8146109f357600080fd5b8063ca0c1e7f116100ff578063ca0c1e7f1461091a578063ca7894641461092d578063cf97256d14610940578063d95b637114610953578063d9d078d61461096657600080fd5b8063b84cdd4a146108ce578063bb0d196e146108e1578063c68d4283146108f4578063c780fd821461090757600080fd5b80639903ad38116101b3578063a3a7e7f311610182578063a3a7e7f31461085b578063a457c2d71461086e578063a9059cbb14610881578063b1f0b5be14610894578063b20db1ac146108a757600080fd5b80639903ad381461081a5780639bd9bbc6146108225780639d87674114610835578063a1b2bf8b1461084857600080fd5b806383ba2525116101fa57806383ba2525146107c75780638f283970146107da57806392081a47146107ed578063959b8c3f146107ff57806395d89b411461081257600080fd5b80636c2d9f2f146107865780636e9960c31461079957806370a08231146107a157806379359f6f146107b457600080fd5b8063395093511161033157806350d75d25116102b95780635b9d09cc116102885780635b9d09cc146107135780636154b1021461072657806362aa52871461074d57806362ad1b831461076057806366a12fb61461077357600080fd5b806350d75d25146106cb57806352d1902d146106d3578063556f0dc7146106f957806356189cb41461070057600080fd5b806345977d031161030057806345977d031461064b578063469519541461065e5780634b2763b3146106715780634b61cc33146106845780634c5c0c85146106a457600080fd5b806339509351146105ff578063397be9311461061257806341b706be1461062557806342fe09801461063857600080fd5b806320bc4425116103b457806327048397116103835780632704839714610569578063282a050b1461057c5780632ec8eec7146105a4578063313ce567146105d7578063386fa221146105ec57600080fd5b806320bc4425146104f6578063222f5be01461053057806323b872dd14610543578063245887fc1461055657600080fd5b806311bcc81e116103fb57806311bcc81e1461049857806312a6a3f8146104ab57806316d055d6146104be57806318160ddd146104d15780631863e809146104e357600080fd5b806306e485381461042d57806306fdde031461044b578063090c415e14610460578063095ea7b314610475575b600080fd5b610435610a8b565b6040516104429190614041565b60405180910390f35b610453610a9c565b60405161044291906140de565b61047361046e366004614151565b610b2e565b005b6104886104833660046141ac565b610be1565b6040519015158152602001610442565b6104736104a63660046141d8565b610bf8565b6104736104b93660046141f1565b610c27565b6104736104cc36600461423c565b610d0a565b6003545b604051908152602001610442565b6104736104f1366004614350565b610d66565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610442565b61047361053e3660046143e2565b611099565b6104886105513660046143e2565b6110ab565b6104736105643660046141ac565b6110c1565b610473610577366004614423565b61113a565b61058f61058a3660046141d8565b6111d6565b60408051928352602083019190915201610442565b6105b76105b2366004614445565b6111eb565b604080519485526020850193909352918301526060820152608001610442565b60125b60405160ff9091168152602001610442565b6104356105fa366004614445565b61128e565b61048861060d3660046141ac565b611331565b610473610620366004614485565b61136d565b61047361063336600461423c565b611376565b61047361064636600461456f565b6113a2565b6104736106593660046141d8565b611483565b61047361066c366004614445565b6114af565b61047361067f3660046143e2565b61168e565b610697610692366004614601565b611710565b6040516104429190614647565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b610518611755565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104d5565b60016104d5565b61047361070e3660046143e2565b61177f565b61047361072136600461467f565b61178a565b6104d57f000000000000000000000000000000000000000000000000000000000000000081565b61047361075b3660046143e2565b6117db565b61047361076e3660046146ce565b611824565b6104736107813660046143e2565b6118d2565b61069761079436600461476c565b6118f2565b610518611934565b6104d56107af366004614445565b61194c565b6104886107c2366004614445565b611975565b6104736107d53660046141ac565b6119fd565b6104736107e8366004614445565b611a29565b600e54600160a01b900460ff166105da565b61047361080d366004614445565b611b1d565b610453611b6e565b610473611b7d565b61047361083036600461467f565b611c3f565b6104736108433660046147a1565b611c93565b6104736108563660046141f1565b611cd9565b610473610869366004614445565b611d83565b61048861087c3660046141ac565b611d97565b61048861088f3660046141ac565b611de6565b6104736108a23660046147f9565b611df4565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b6104886108dc3660046141ac565b611e04565b6104886108ef366004614445565b611e55565b6104736109023660046147a1565b611edd565b6104736109153660046143e2565b611f25565b610473610928366004614878565b611fbd565b61047361093b3660046141ac565b612025565b61047361094e3660046141ac565b61209a565b6104886109613660046148d7565b612183565b6104886109743660046141ac565b612191565b6104d56109873660046148d7565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b6109c56109c03660046141ac565b6121ab565b60408051938452602084019290925290820152606001610442565b6104736109ee366004614910565b6122df565b600e546001600160a01b0316610518565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b610473610a60366004614445565b6123b6565b610473610a733660046149b6565b612407565b610473610a863660046149fd565b6124a8565b6060610a9760126124f9565b905090565b6060600f8054610aab90614a3b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad790614a3b565b8015610b245780601f10610af957610100808354040283529160200191610b24565b820191906000526020600020905b815481529060010190602001808311610b0757829003601f168201915b5050505050905090565b6000338585604051602001610b4593929190614a75565b604051602081830303815290604052805190602001209050610b9a8184848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061255f92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b6000610bee338484612597565b5060015b92915050565b610c24333333846040518060200160405280600081525060405180602001604052806000815250612646565b50565b6040513390600090610c3f9083908790602001614abe565b60408051601f1981840301815291905280516020909101209050610c638184612806565b15610c815760405163782a90fb60e11b815260040160405180910390fd5b610cbe8185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061255f92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610cfb93929190614afb565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d535760405163c51efddd60e01b815260040160405180910390fd5b610d5f8484848461283a565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dee9190614b3c565b610e0b5760405163327fd99160e21b815260040160405180910390fd5b6000610e1561295a565b90506001600160a01b038116610e285750845b600085610e355786610e37565b815b905060008313610f0557610e4a83614b6f565b610e5385612a9f565b14610e6057610e60614b8b565b610e6984612a9f565b6001600160a01b03821660009081526002602052604081208054909190610e91908490614ba1565b90915550506001600160a01b03851660009081526002602052604081208054859290610ebe908490614ba1565b92505081905550806001600160a01b0316856001600160a01b03166000805160206150d883398151915286604051610ef891815260200190565b60405180910390a3611031565b8515610f1357610f13614b8b565b82610f1d85612a9f565b610f279190614ba1565b6001600160a01b03831660009081526002602052604081208054909190610f4f908490614bc9565b90915550610f5e905084612a9f565b6001600160a01b03881660009081526002602052604081208054909190610f86908490614ba1565b90915550506001600160a01b03851660009081526002602052604081208054859290610fb3908490614ba1565b92505081905550866001600160a01b0316826001600160a01b03166000805160206150d883398151915286604051610fed91815260200190565b60405180910390a3846001600160a01b0316826001600160a01b03166000805160206150d88339815191528560405161102891815260200190565b60405180910390a35b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051611086959493929190614be9565b60405180910390a4505050505050505050565b6110a58384848461283a565b50505050565b60006110b93385858561283a565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461110a5760405163c51efddd60e01b815260040160405180910390fd5b611136338384846040518060200160405280600081525060405180602001604052806000815250612646565b5050565b60405133906000906111529083908690602001614abe565b6040516020818303038152906040528051906020012090506111748184612806565b6111915760405163dae1880960e01b815260040160405180910390fd5b61119b8184612b0d565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806111e283612b26565b91509150915091565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190614c1c565b905061127f85826121ab565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611309573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bf29190810190614c35565b3360008181526011602090815260408083206001600160a01b03871684529091528120549091610bee918590611368908690614cc3565b612597565b610c2481612be2565b33301461139657604051630fff4cc960e31b815260040160405180910390fd5b610d5f8385848461283a565b600054610100900460ff16158080156113c25750600054600160ff909116105b806113dc5750303b1580156113dc575060005460ff166001145b6114015760405162461bcd60e51b81526004016113f890614cd6565b60405180910390fd5b6000805460ff191660011790558015611424576000805461ff0019166101001790555b6114348787878787876000612bed565b801561147a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610c24333333846040518060200160405280600081525060405180602001604052806000815250612cb5565b60006114c760008051602061508e8339815191525490565b905060006001600160a01b038216156114e05781611502565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461152d57604051630484acab60e01b815260040160405180910390fd5b61153683612e68565b826001600160a01b031663ef43d2c66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611574573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115989190614d24565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614158061166b5750826001600160a01b0316634c5c0c856040518163ffffffff1660e01b8152600401602060405180830381865afa158015611611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116359190614d24565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614155b156116895760405163ef1b6ddf60e01b815260040160405180910390fd5b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116d75760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084166000908152601160209081526040808320938616835292905220546116899084908490611368908590614cc3565b6060600085858560405160200161172993929190614a75565b60405160208183030381529060405280519060200120905061174b81846130a2565b9695505050505050565b6000610a977f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b611689838383612597565b6110a53333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612cb5915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461177f5760405163c51efddd60e01b815260040160405180910390fd5b336118316012828a613129565b61184e5760405163f7f0222760e01b815260040160405180910390fd5b6118c88189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600092019190915250600192506131d2915050565b5050505050505050565b33301461177f57604051630fff4cc960e31b815260040160405180910390fd5b606060008484604051602001611909929190614abe565b60405160208183030381529060405280519060200120905061192b81846130a2565b95945050505050565b6000610a9760008051602061508e8339815191525490565b600080611958836111eb565b50505090506000811261196b578061196e565b60005b9392505050565b6000610bf2827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109749190614c1c565b611136333384846040518060200160405280600081525060405180602001604052806000815250612646565b6000611a4160008051602061508e8339815191525490565b905060006001600160a01b03821615611a5a5781611a7c565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b03821614611aa757604051630484acab60e01b815260040160405180910390fd5b6000611abf60008051602061508e8339815191525490565b9050611ad78460008051602061508e83398151915255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611b2a6012828461324b565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610aab90614a3b565b600054610100900460ff1615808015611b9d5750600054600160ff909116105b80611bb75750303b158015611bb7575060005460ff166001145b611bd35760405162461bcd60e51b81526004016113f890614cd6565b6000805460ff191660011790558015611bf6576000805461ff0019166101001790555b8015610c24576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6110a53333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506131d29050565b333014611cb357604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526116899133918691869190151590869061334f565b6040513390600090611cf19083908790602001614abe565b604051602081830303815290604052805190602001209050611d468185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061255f92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610cfb93929190614afb565b611136333383611d923361194c565b61283a565b6000610bee3384611368856040518060600160405280602a81526020016150ae602a91393360009081526011602090815260408083206001600160a01b038d168452909152902054919061341c565b600061196e3333858561283a565b6110a53385856001808787613448565b600080600080611e1486866121ab565b9250925092506000611e3c828411611e2d576000612a9f565b611e378385614d41565b612a9f565b611e469085614ba1565b60001315979650505050505050565b6000610bf2827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eb9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dc9190614c1c565b333014611efd57604051630fff4cc960e31b815260040160405180910390fd5b8051604080516000815260208101909152611689913391869186919015159081908790613448565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611f6e5760405163c51efddd60e01b815260040160405180910390fd5b6116898383611368846040518060600160405280602a81526020016150ae602a91396001600160a01b03808a166000908152601160209081526040808320938c1683529290522054919061341c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146120065760405163c51efddd60e01b815260040160405180910390fd5b6110a533858585856040518060200160405280600081525060016131d2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461206e5760405163c51efddd60e01b815260040160405180910390fd5b611136338384846040518060200160405280600081525060405180602001604052806000815250612cb5565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190614b3c565b61213f5760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b038216600090815260026020526040902054612163908290614ba1565b6001600160a01b0390921660009081526002602052604090209190915550565b600061196e60128484613129565b60008061219e84846121ab565b5050600013949350505050565b6001600160a01b0382166000908152600260205260408120549080806121d08661128e565b905060005b81518110156122d65760008060008484815181106121f5576121f5614d54565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015612254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122789190614d6a565b919450925090506122898288614cc3565b96506122958187614cc3565b95506122b28183116122a8576000612a9f565b611e378284614d41565b6122bc848a614ba1565b6122c69190614bc9565b97505050508060010190506121d5565b50509250925092565b600054610100900460ff16158080156122ff5750600054600160ff909116105b806123195750303b158015612319575060005460ff166001145b6123355760405162461bcd60e51b81526004016113f890614cd6565b6000805460ff191660011790558015612358576000805461ff0019166101001790555b61236788888888888888612bed565b80156118c8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336123c360128284613516565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b3361241460128289613129565b6124315760405163f7f0222760e01b815260040160405180910390fd5b61147a8188898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525061264692505050565b6116893333338686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612646915050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561255357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612535575b50505050509050919050565b60005b815181101561168957600082828151811061257f5761257f614d54565b60209081029190910101518483015550600101612562565b6001600160a01b0383166125be57604051638163862760e01b815260040160405180910390fd5b6001600160a01b0382166125e5576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b031661266f57604051637bce7b2b60e11b815260040160405180910390fd5b60008061267b85612b26565b91509150612692888883875160001415888861334f565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156126db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ff9190614c1c565b600e54909150612719906001600160a01b0316888561360e565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127869190614c1c565b905060006127948284614d41565b90508085146127b657604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d856040516127f191815260200190565b60405180910390a25050505050505050505050565b6000805b828110156128305783810154801561282757600192505050610bf2565b5060010161280a565b5060009392505050565b60006001600160a01b0384166128635760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b03831661288a5760405163e219bd3960e01b815260040160405180910390fd5b60003390506128bb818686866040518060200160405280600081525060405180602001604052806000815250613671565b846001600160a01b0316866001600160a01b03161461294e5761294e8587611368866040518060600160405280602d81526020016150f8602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b031681526020019081526020016000205461341c9092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129df9190614d24565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a999190614d24565b91505090565b60006001600160ff1b03821115612b095760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016113f8565b5090565b60005b8181101561168957600083820155600101612b10565b600e54600090819081906012600160a01b90910460ff161015612b8557600e54612b5b90600160a01b900460ff166012614d98565b612b6690600a614e95565b9050612b728185614ea4565b9250612b7e8184614ec6565b9150612bdc565b600e546012600160a01b90910460ff161115612bd557600e54612bb490601290600160a01b900460ff16614d98565b612bbf90600a614e95565b9050612bcb8185614ec6565b9250839150612bdc565b8391508192505b50915091565b610c24601282613710565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612c22858783614f2d565b506010612c30838583614f2d565b50612c478160008051602061508e83398151915255565b612c5030613792565b60405160008082529081906000805160206150d88339815191529060200160405180910390a36040516001600160a01b038216906000907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b600e546001600160a01b0316612cde57604051637bce7b2b60e11b815260040160405180910390fd5b600080612cea85612b26565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5f9190614c1c565b600e54909150612d7a906001600160a01b03168930866138c0565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de79190614c1c565b90506000612df58383614d41565b9050808514612e1757604051631c7c26d360e31b815260040160405180910390fd5b8651612e2d908c908b9087901515808c8c613448565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df856040516127f191815260200190565b6000612e927f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603612ee85760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016113f8565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4a9190614c1c565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001914612fc45760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016113f8565b6001600160a01b038116300361301c5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016113f8565b613044817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611c34565b6060816001600160401b038111156130bc576130bc61428d565b6040519080825280602002602001820160405280156130e5578160200160208202803683370190505b50905060005b828110156131225760008185015490508083838151811061310e5761310e614d54565b6020908102919091010152506001016130eb565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061319857506001600160a01b038316600090815260018501602052604090205460ff16801561319857506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b806110b957506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166131f95760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166132205760405163e219bd3960e01b815260040160405180910390fd5b61322e8787878787876138f8565b61323c878787878787613671565b61147a87878787878787613a1f565b806001600160a01b0316826001600160a01b0316036132c25760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016113f8565b6001600160a01b038116600090815260018401602052604090205460ff1615613318576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03851661337657604051632e8aac6160e21b815260040160405180910390fd5b821561338b5761338b868660008786866138f8565b6133958585613b6f565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a40988685856040516133dc93929190614fec565b60405180910390a36040518481526000906001600160a01b038716906000805160206150d8833981519152906020015b60405180910390a3505050505050565b600081848411156134405760405162461bcd60e51b81526004016113f891906140de565b505050900390565b6001600160a01b03861661346f57604051630d24315760e01b815260040160405180910390fd5b6134798686613c7f565b831561348f5761348f8760008888868689613a1f565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d8785856040516134d693929190614fec565b60405180910390a36040518581526001600160a01b038716906000906000805160206150d88339815191529060200160405180910390a350505050505050565b336001600160a01b038216036135815760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016113f8565b6001600160a01b038116600090815260018401602052604090205460ff16156135db576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b03831660248201526044810182905261168990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613cd9565b613684858561367f86612a9f565b613dae565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc826146779878686866040516136d593929190614fec565b60405180910390a4836001600160a01b0316856001600160a01b03166000805160206150d88339815191528560405161340c91815260200190565b81541561371f5761371f614b8b565b80516137319083906020840190613fd0565b5060005b815181101561168957600183600101600084848151811061375857613758614d54565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101613735565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561381357600080fd5b505af1158015613827573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156138ac57600080fd5b505af1158015610d5f573d6000803e3d6000fd5b6040516001600160a01b03808516602483015283166044820152606481018290526110a59085906323b872dd60e01b9060840161363a565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399d9190614d24565b90506001600160a01b0381161561147a57604051633ad5cbc160e11b81526001600160a01b038216906375ab9782906139e4908a908a908a908a908a908a90600401615017565b600060405180830381600087803b1580156139fe57600080fd5b505af1158015613a12573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613aa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ac49190614d24565b90506001600160a01b03811615613b40576040516223de2960e01b81526001600160a01b038216906223de2990613b09908b908b908b908b908b908b90600401615017565b600060405180830381600087803b158015613b2357600080fd5b505af1158015613b37573d6000803e3d6000fd5b505050506118c8565b81156118c8576001600160a01b0386163b156118c85760405163fe737d0560e01b815260040160405180910390fd5b6000613bf7837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bd3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c09190614c1c565b50509050613c0482612a9f565b811215613c245760405163043b37d160e21b815260040160405180910390fd5b613c2d82612a9f565b6001600160a01b038416600090815260026020526040902054613c509190614bc9565b6001600160a01b038416600090815260026020526040902055600354613c77908390614d41565b600355505050565b613c8881612a9f565b6001600160a01b038316600090815260026020526040902054613cab9190614ba1565b6001600160a01b038316600090815260026020526040902055600354613cd2908290614cc3565b6003555050565b6000613d2e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613ead9092919063ffffffff16565b9050805160001480613d4f575080806020019051810190613d4f9190614b3c565b6116895760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016113f8565b6000613e12847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bd3573d6000803e3d6000fd5b5050905081811215613e3757604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b038416600090815260026020526040902054613e5b908390614bc9565b6001600160a01b038086166000908152600260205260408082209390935590851681522054613e8b908390614ba1565b6001600160a01b03909316600090815260026020526040902092909255505050565b60606110b9848460008585600080866001600160a01b03168587604051613ed49190615071565b60006040518083038185875af1925050503d8060008114613f11576040519150601f19603f3d011682016040523d82523d6000602084013e613f16565b606091505b5091509150613f2787838387613f32565b979650505050505050565b60608315613fa1578251600003613f9a576001600160a01b0385163b613f9a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016113f8565b50816110b9565b6110b98383815115613fb65781518083602001fd5b8060405162461bcd60e51b81526004016113f891906140de565b828054828255906000526020600020908101928215614025579160200282015b8281111561402557825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613ff0565b50612b099291505b80821115612b09576000815560010161402d565b6020808252825182820181905260009190848201906040850190845b818110156140825783516001600160a01b03168352928401929184019160010161405d565b50909695505050505050565b60005b838110156140a9578181015183820152602001614091565b50506000910152565b600081518084526140ca81602086016020860161408e565b601f01601f19169290920160200192915050565b60208152600061196e60208301846140b2565b6001600160a01b0381168114610c2457600080fd5b60008083601f84011261411857600080fd5b5081356001600160401b0381111561412f57600080fd5b6020830191508360208260051b850101111561414a57600080fd5b9250929050565b6000806000806060858703121561416757600080fd5b8435614172816140f1565b93506020850135925060408501356001600160401b0381111561419457600080fd5b6141a087828801614106565b95989497509550505050565b600080604083850312156141bf57600080fd5b82356141ca816140f1565b946020939093013593505050565b6000602082840312156141ea57600080fd5b5035919050565b60008060006040848603121561420657600080fd5b8335925060208401356001600160401b0381111561422357600080fd5b61422f86828701614106565b9497909650939450505050565b6000806000806080858703121561425257600080fd5b843561425d816140f1565b9350602085013561426d816140f1565b9250604085013561427d816140f1565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156142cb576142cb61428d565b604052919050565b600082601f8301126142e457600080fd5b81356001600160401b038111156142fd576142fd61428d565b614310601f8201601f19166020016142a3565b81815284602083860101111561432557600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c2457600080fd5b600080600080600080600060e0888a03121561436b57600080fd5b8735965060208801356001600160401b0381111561438857600080fd5b6143948a828b016142d3565b96505060408801356143a5816140f1565b945060608801356143b581614342565b935060808801356143c5816140f1565b9699959850939692959460a0840135945060c09093013592915050565b6000806000606084860312156143f757600080fd5b8335614402816140f1565b92506020840135614412816140f1565b929592945050506040919091013590565b6000806040838503121561443657600080fd5b50508035926020909101359150565b60006020828403121561445757600080fd5b813561196e816140f1565b60006001600160401b0382111561447b5761447b61428d565b5060051b60200190565b6000602080838503121561449857600080fd5b82356001600160401b038111156144ae57600080fd5b8301601f810185136144bf57600080fd5b80356144d26144cd82614462565b6142a3565b81815260059190911b820183019083810190878311156144f157600080fd5b928401925b82841015613f27578335614509816140f1565b825292840192908401906144f6565b803560ff8116811461452957600080fd5b919050565b60008083601f84011261454057600080fd5b5081356001600160401b0381111561455757600080fd5b60208301915083602082850101111561414a57600080fd5b6000806000806000806080878903121561458857600080fd5b8635614593816140f1565b95506145a160208801614518565b945060408701356001600160401b03808211156145bd57600080fd5b6145c98a838b0161452e565b909650945060608901359150808211156145e257600080fd5b506145ef89828a0161452e565b979a9699509497509295939492505050565b6000806000806080858703121561461757600080fd5b8435614622816140f1565b93506020850135614632816140f1565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b8181101561408257835183529284019291840191600101614663565b6000806000806060858703121561469557600080fd5b84356146a0816140f1565b93506020850135925060408501356001600160401b038111156146c257600080fd5b6141a08782880161452e565b600080600080600080600060a0888a0312156146e957600080fd5b87356146f4816140f1565b96506020880135614704816140f1565b95506040880135945060608801356001600160401b038082111561472757600080fd5b6147338b838c0161452e565b909650945060808a013591508082111561474c57600080fd5b506147598a828b0161452e565b989b979a50959850939692959293505050565b60008060006060848603121561478157600080fd5b833561478c816140f1565b95602085013595506040909401359392505050565b6000806000606084860312156147b657600080fd5b83356147c1816140f1565b92506020840135915060408401356001600160401b038111156147e357600080fd5b6147ef868287016142d3565b9150509250925092565b6000806000806080858703121561480f57600080fd5b843561481a816140f1565b93506020850135925060408501356001600160401b038082111561483d57600080fd5b614849888389016142d3565b9350606087013591508082111561485f57600080fd5b5061486c878288016142d3565b91505092959194509250565b6000806000806080858703121561488e57600080fd5b8435614899816140f1565b935060208501356148a9816140f1565b92506040850135915060608501356001600160401b038111156148cb57600080fd5b61486c878288016142d3565b600080604083850312156148ea57600080fd5b82356148f5816140f1565b91506020830135614905816140f1565b809150509250929050565b600080600080600080600060a0888a03121561492b57600080fd5b8735614936816140f1565b965061494460208901614518565b955060408801356001600160401b038082111561496057600080fd5b61496c8b838c0161452e565b909750955060608a013591508082111561498557600080fd5b506149928a828b0161452e565b90945092505060808801356149a6816140f1565b8091505092959891949750929550565b600080600080600080608087890312156149cf57600080fd5b86356149da816140f1565b95506020870135945060408701356001600160401b03808211156145bd57600080fd5b600080600060408486031215614a1257600080fd5b8335925060208401356001600160401b03811115614a2f57600080fd5b61422f8682870161452e565b600181811c90821680614a4f57607f821691505b602082108103614a6f57634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b03831115614b2257600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215614b4e57600080fd5b815161196e81614342565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201614b8457614b84614b59565b5060000390565b634e487b7160e01b600052600160045260246000fd5b8082018281126000831280158216821582161715614bc157614bc1614b59565b505092915050565b818103600083128015838313168383128216171561312257613122614b59565b85815260018060a01b038516602082015283604082015282606082015260a060808201526000613f2760a08301846140b2565b600060208284031215614c2e57600080fd5b5051919050565b60006020808385031215614c4857600080fd5b82516001600160401b03811115614c5e57600080fd5b8301601f81018513614c6f57600080fd5b8051614c7d6144cd82614462565b81815260059190911b82018301908381019087831115614c9c57600080fd5b928401925b82841015613f27578351614cb4816140f1565b82529284019290840190614ca1565b80820180821115610bf257610bf2614b59565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600060208284031215614d3657600080fd5b815161196e816140f1565b81810381811115610bf257610bf2614b59565b634e487b7160e01b600052603260045260246000fd5b600080600060608486031215614d7f57600080fd5b8351925060208401519150604084015190509250925092565b60ff8281168282160390811115610bf257610bf2614b59565b600181815b80851115614dec578160001904821115614dd257614dd2614b59565b80851615614ddf57918102915b93841c9390800290614db6565b509250929050565b600082614e0357506001610bf2565b81614e1057506000610bf2565b8160018114614e265760028114614e3057614e4c565b6001915050610bf2565b60ff841115614e4157614e41614b59565b50506001821b610bf2565b5060208310610133831016604e8410600b8410161715614e6f575081810a610bf2565b614e798383614db1565b8060001904821115614e8d57614e8d614b59565b029392505050565b600061196e60ff841683614df4565b600082614ec157634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610bf257610bf2614b59565b601f821115611689576000816000526020600020601f850160051c81016020861015614f065750805b601f850160051c820191505b81811015614f2557828155600101614f12565b505050505050565b6001600160401b03831115614f4457614f4461428d565b614f5883614f528354614a3b565b83614edd565b6000601f841160018114614f8c5760008515614f745750838201355b600019600387901b1c1916600186901b178355610d5f565b600083815260209020601f19861690835b82811015614fbd5786850135825560209485019460019092019101614f9d565b5086821015614fda5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b83815260606020820152600061500560608301856140b2565b828103604084015261174b81856140b2565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c060808201819052600090615052908301856140b2565b82810360a084015261506481856140b2565b9998505050505050505050565b6000825161508381846020870161408e565b919091019291505056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f42195f9c6be35ce6ef79bd835ba193edd1e40070b77d1f42ef173b52d09516e64736f6c63430008170033";
15
+ static readonly bytecode = "0x6101406040523480156200001257600080fd5b50604051620054243803806200542483398101604081905262000035916200015f565b6001600160a01b0380871660805280851660a081905281851660c0528184166101005290821660e05260405187918691869186918691907fcf554eb342edf010a94e07701ae91e99e90b769f649f03aeb1153654ddd43c0190600090a26040516001600160a01b038416907f8837af285f4d380af9227df9ebafa13d992b487fa6d7a4366bd4154576085b8990600090a26040516001600160a01b038316907feb87fb34067547f3dc0b85096c3da73c99d4fbb08ff41212b8d7c0b5008b42e690600090a26040516001600160a01b038216907fc1050c54a299c837fe281a2623c29ec8e34b455daef48760b6a29f4b6cc9906090600090a25050506101209690965250620001e795505050505050565b6001600160a01b03811681146200015c57600080fd5b50565b60008060008060008060c087890312156200017957600080fd5b8651620001868162000146565b602088015160408901519197509550620001a08162000146565b6060880151909450620001b38162000146565b6080880151909350620001c68162000146565b60a0880151909250620001d98162000146565b809150509295509295509295565b60805160a05160c05160e051610100516101205161515a620002ca600039600061072b015260006108ac01526000610a300152600081816106a90152611640015260008181610a0901526115a30152600081816104f801528181610d0c01528181610d7b015281816110c3015281816111f3015281816112c2015281816114e201528181611690015281816117dd0152818161197d01528181611a5c01528181611e5d01528181611f2701528181611fbf01528181612027015281816120af0152818161295f015281816129f601528181613b770152613db6015261515a6000f3fe608060405234801561001057600080fd5b50600436106104285760003560e01c80636c2d9f2f1161022b578063b84cdd4a11610130578063dd62ed3e116100b8578063ef43d2c611610087578063ef43d2c614610a04578063f5a8b4dd14610a2b578063fad8b32a14610a52578063fc673c4f14610a65578063fe9d930314610a7857600080fd5b8063dd62ed3e14610979578063eb3537cc146109b2578063ec0d6343146109e0578063ee719bc8146109f357600080fd5b8063ca0c1e7f116100ff578063ca0c1e7f1461091a578063ca7894641461092d578063cf97256d14610940578063d95b637114610953578063d9d078d61461096657600080fd5b8063b84cdd4a146108ce578063bb0d196e146108e1578063c68d4283146108f4578063c780fd821461090757600080fd5b80639903ad38116101b3578063a3a7e7f311610182578063a3a7e7f31461085b578063a457c2d71461086e578063a9059cbb14610881578063b1f0b5be14610894578063b20db1ac146108a757600080fd5b80639903ad381461081a5780639bd9bbc6146108225780639d87674114610835578063a1b2bf8b1461084857600080fd5b806383ba2525116101fa57806383ba2525146107c75780638f283970146107da57806392081a47146107ed578063959b8c3f146107ff57806395d89b411461081257600080fd5b80636c2d9f2f146107865780636e9960c31461079957806370a08231146107a157806379359f6f146107b457600080fd5b8063395093511161033157806350d75d25116102b95780635b9d09cc116102885780635b9d09cc146107135780636154b1021461072657806362aa52871461074d57806362ad1b831461076057806366a12fb61461077357600080fd5b806350d75d25146106cb57806352d1902d146106d3578063556f0dc7146106f957806356189cb41461070057600080fd5b806345977d031161030057806345977d031461064b578063469519541461065e5780634b2763b3146106715780634b61cc33146106845780634c5c0c85146106a457600080fd5b806339509351146105ff578063397be9311461061257806341b706be1461062557806342fe09801461063857600080fd5b806320bc4425116103b457806327048397116103835780632704839714610569578063282a050b1461057c5780632ec8eec7146105a4578063313ce567146105d7578063386fa221146105ec57600080fd5b806320bc4425146104f6578063222f5be01461053057806323b872dd14610543578063245887fc1461055657600080fd5b806311bcc81e116103fb57806311bcc81e1461049857806312a6a3f8146104ab57806316d055d6146104be57806318160ddd146104d15780631863e809146104e357600080fd5b806306e485381461042d57806306fdde031461044b578063090c415e14610460578063095ea7b314610475575b600080fd5b610435610a8b565b6040516104429190614041565b60405180910390f35b610453610a9c565b60405161044291906140de565b61047361046e366004614151565b610b2e565b005b6104886104833660046141ac565b610be1565b6040519015158152602001610442565b6104736104a63660046141d8565b610bf8565b6104736104b93660046141f1565b610c27565b6104736104cc36600461423c565b610d0a565b6003545b604051908152602001610442565b6104736104f1366004614350565b610d66565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610442565b61047361053e3660046143e2565b611099565b6104886105513660046143e2565b6110ab565b6104736105643660046141ac565b6110c1565b610473610577366004614423565b61113a565b61058f61058a3660046141d8565b6111d6565b60408051928352602083019190915201610442565b6105b76105b2366004614445565b6111eb565b604080519485526020850193909352918301526060820152608001610442565b60125b60405160ff9091168152602001610442565b6104356105fa366004614445565b61128e565b61048861060d3660046141ac565b611331565b610473610620366004614485565b61136d565b61047361063336600461423c565b611376565b61047361064636600461456f565b6113a2565b6104736106593660046141d8565b611483565b61047361066c366004614445565b6114af565b61047361067f3660046143e2565b61168e565b610697610692366004614601565b611710565b6040516104429190614647565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b610518611755565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104d5565b60016104d5565b61047361070e3660046143e2565b61177f565b61047361072136600461467f565b61178a565b6104d57f000000000000000000000000000000000000000000000000000000000000000081565b61047361075b3660046143e2565b6117db565b61047361076e3660046146ce565b611824565b6104736107813660046143e2565b6118d2565b61069761079436600461476c565b6118f2565b610518611934565b6104d56107af366004614445565b61194c565b6104886107c2366004614445565b611975565b6104736107d53660046141ac565b6119fd565b6104736107e8366004614445565b611a29565b600e54600160a01b900460ff166105da565b61047361080d366004614445565b611b1d565b610453611b6e565b610473611b7d565b61047361083036600461467f565b611c3f565b6104736108433660046147a1565b611c93565b6104736108563660046141f1565b611cd9565b610473610869366004614445565b611d83565b61048861087c3660046141ac565b611d97565b61048861088f3660046141ac565b611de6565b6104736108a23660046147f9565b611df4565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b6104886108dc3660046141ac565b611e04565b6104886108ef366004614445565b611e55565b6104736109023660046147a1565b611edd565b6104736109153660046143e2565b611f25565b610473610928366004614878565b611fbd565b61047361093b3660046141ac565b612025565b61047361094e3660046141ac565b61209a565b6104886109613660046148d7565b612183565b6104886109743660046141ac565b612191565b6104d56109873660046148d7565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b6109c56109c03660046141ac565b6121ab565b60408051938452602084019290925290820152606001610442565b6104736109ee366004614910565b6122df565b600e546001600160a01b0316610518565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b610473610a60366004614445565b6123b6565b610473610a733660046149b6565b612407565b610473610a863660046149fd565b6124a8565b6060610a9760126124f9565b905090565b6060600f8054610aab90614a3b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad790614a3b565b8015610b245780601f10610af957610100808354040283529160200191610b24565b820191906000526020600020905b815481529060010190602001808311610b0757829003601f168201915b5050505050905090565b6000338585604051602001610b4593929190614a75565b604051602081830303815290604052805190602001209050610b9a8184848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061255f92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b6000610bee338484612597565b5060015b92915050565b610c24333333846040518060200160405280600081525060405180602001604052806000815250612646565b50565b6040513390600090610c3f9083908790602001614abe565b60408051601f1981840301815291905280516020909101209050610c638184612806565b15610c815760405163782a90fb60e11b815260040160405180910390fd5b610cbe8185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061255f92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610cfb93929190614afb565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d535760405163c51efddd60e01b815260040160405180910390fd5b610d5f8484848461283a565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dee9190614b3c565b610e0b5760405163327fd99160e21b815260040160405180910390fd5b6000610e1561295a565b90506001600160a01b038116610e285750845b600085610e355786610e37565b815b905060008313610f0557610e4a83614b6f565b610e5385612a9f565b14610e6057610e60614b8b565b610e6984612a9f565b6001600160a01b03821660009081526002602052604081208054909190610e91908490614ba1565b90915550506001600160a01b03851660009081526002602052604081208054859290610ebe908490614ba1565b92505081905550806001600160a01b0316856001600160a01b03166000805160206150d883398151915286604051610ef891815260200190565b60405180910390a3611031565b8515610f1357610f13614b8b565b82610f1d85612a9f565b610f279190614ba1565b6001600160a01b03831660009081526002602052604081208054909190610f4f908490614bc9565b90915550610f5e905084612a9f565b6001600160a01b03881660009081526002602052604081208054909190610f86908490614ba1565b90915550506001600160a01b03851660009081526002602052604081208054859290610fb3908490614ba1565b92505081905550866001600160a01b0316826001600160a01b03166000805160206150d883398151915286604051610fed91815260200190565b60405180910390a3846001600160a01b0316826001600160a01b03166000805160206150d88339815191528560405161102891815260200190565b60405180910390a35b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051611086959493929190614be9565b60405180910390a4505050505050505050565b6110a58384848461283a565b50505050565b60006110b93385858561283a565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461110a5760405163c51efddd60e01b815260040160405180910390fd5b611136338384846040518060200160405280600081525060405180602001604052806000815250612646565b5050565b60405133906000906111529083908690602001614abe565b6040516020818303038152906040528051906020012090506111748184612806565b6111915760405163dae1880960e01b815260040160405180910390fd5b61119b8184612b0d565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806111e283612b26565b91509150915091565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190614c1c565b905061127f85826121ab565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611309573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bf29190810190614c35565b3360008181526011602090815260408083206001600160a01b03871684529091528120549091610bee918590611368908690614cc3565b612597565b610c2481612be2565b33301461139657604051630fff4cc960e31b815260040160405180910390fd5b610d5f8385848461283a565b600054610100900460ff16158080156113c25750600054600160ff909116105b806113dc5750303b1580156113dc575060005460ff166001145b6114015760405162461bcd60e51b81526004016113f890614cd6565b60405180910390fd5b6000805460ff191660011790558015611424576000805461ff0019166101001790555b6114348787878787876000612bed565b801561147a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610c24333333846040518060200160405280600081525060405180602001604052806000815250612cb5565b60006114c760008051602061508e8339815191525490565b905060006001600160a01b038216156114e05781611502565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461152d57604051630484acab60e01b815260040160405180910390fd5b61153683612e68565b826001600160a01b031663ef43d2c66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611574573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115989190614d24565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614158061166b5750826001600160a01b0316634c5c0c856040518163ffffffff1660e01b8152600401602060405180830381865afa158015611611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116359190614d24565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614155b156116895760405163ef1b6ddf60e01b815260040160405180910390fd5b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116d75760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084166000908152601160209081526040808320938616835292905220546116899084908490611368908590614cc3565b6060600085858560405160200161172993929190614a75565b60405160208183030381529060405280519060200120905061174b81846130a2565b9695505050505050565b6000610a977f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b611689838383612597565b6110a53333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612cb5915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461177f5760405163c51efddd60e01b815260040160405180910390fd5b336118316012828a613129565b61184e5760405163f7f0222760e01b815260040160405180910390fd5b6118c88189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600092019190915250600192506131d2915050565b5050505050505050565b33301461177f57604051630fff4cc960e31b815260040160405180910390fd5b606060008484604051602001611909929190614abe565b60405160208183030381529060405280519060200120905061192b81846130a2565b95945050505050565b6000610a9760008051602061508e8339815191525490565b600080611958836111eb565b50505090506000811261196b578061196e565b60005b9392505050565b6000610bf2827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109749190614c1c565b611136333384846040518060200160405280600081525060405180602001604052806000815250612646565b6000611a4160008051602061508e8339815191525490565b905060006001600160a01b03821615611a5a5781611a7c565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b03821614611aa757604051630484acab60e01b815260040160405180910390fd5b6000611abf60008051602061508e8339815191525490565b9050611ad78460008051602061508e83398151915255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611b2a6012828461324b565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610aab90614a3b565b600054610100900460ff1615808015611b9d5750600054600160ff909116105b80611bb75750303b158015611bb7575060005460ff166001145b611bd35760405162461bcd60e51b81526004016113f890614cd6565b6000805460ff191660011790558015611bf6576000805461ff0019166101001790555b8015610c24576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6110a53333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506131d29050565b333014611cb357604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526116899133918691869190151590869061334f565b6040513390600090611cf19083908790602001614abe565b604051602081830303815290604052805190602001209050611d468185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061255f92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610cfb93929190614afb565b611136333383611d923361194c565b61283a565b6000610bee3384611368856040518060600160405280602a81526020016150ae602a91393360009081526011602090815260408083206001600160a01b038d168452909152902054919061341c565b600061196e3333858561283a565b6110a53385856001808787613448565b600080600080611e1486866121ab565b9250925092506000611e3c828411611e2d576000612a9f565b611e378385614d41565b612a9f565b611e469085614ba1565b60001315979650505050505050565b6000610bf2827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eb9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dc9190614c1c565b333014611efd57604051630fff4cc960e31b815260040160405180910390fd5b8051604080516000815260208101909152611689913391869186919015159081908790613448565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611f6e5760405163c51efddd60e01b815260040160405180910390fd5b6116898383611368846040518060600160405280602a81526020016150ae602a91396001600160a01b03808a166000908152601160209081526040808320938c1683529290522054919061341c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146120065760405163c51efddd60e01b815260040160405180910390fd5b6110a533858585856040518060200160405280600081525060016131d2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461206e5760405163c51efddd60e01b815260040160405180910390fd5b611136338384846040518060200160405280600081525060405180602001604052806000815250612cb5565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190614b3c565b61213f5760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b038216600090815260026020526040902054612163908290614ba1565b6001600160a01b0390921660009081526002602052604090209190915550565b600061196e60128484613129565b60008061219e84846121ab565b5050600013949350505050565b6001600160a01b0382166000908152600260205260408120549080806121d08661128e565b905060005b81518110156122d65760008060008484815181106121f5576121f5614d54565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015612254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122789190614d6a565b919450925090506122898288614cc3565b96506122958187614cc3565b95506122b28183116122a8576000612a9f565b611e378284614d41565b6122bc848a614ba1565b6122c69190614bc9565b97505050508060010190506121d5565b50509250925092565b600054610100900460ff16158080156122ff5750600054600160ff909116105b806123195750303b158015612319575060005460ff166001145b6123355760405162461bcd60e51b81526004016113f890614cd6565b6000805460ff191660011790558015612358576000805461ff0019166101001790555b61236788888888888888612bed565b80156118c8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336123c360128284613516565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b3361241460128289613129565b6124315760405163f7f0222760e01b815260040160405180910390fd5b61147a8188898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525061264692505050565b6116893333338686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612646915050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561255357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612535575b50505050509050919050565b60005b815181101561168957600082828151811061257f5761257f614d54565b60209081029190910101518483015550600101612562565b6001600160a01b0383166125be57604051638163862760e01b815260040160405180910390fd5b6001600160a01b0382166125e5576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b031661266f57604051637bce7b2b60e11b815260040160405180910390fd5b60008061267b85612b26565b91509150612692888883875160001415888861334f565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156126db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ff9190614c1c565b600e54909150612719906001600160a01b0316888561360e565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127869190614c1c565b905060006127948284614d41565b90508085146127b657604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d856040516127f191815260200190565b60405180910390a25050505050505050505050565b6000805b828110156128305783810154801561282757600192505050610bf2565b5060010161280a565b5060009392505050565b60006001600160a01b0384166128635760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b03831661288a5760405163e219bd3960e01b815260040160405180910390fd5b60003390506128bb818686866040518060200160405280600081525060405180602001604052806000815250613671565b846001600160a01b0316866001600160a01b03161461294e5761294e8587611368866040518060600160405280602d81526020016150f8602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b031681526020019081526020016000205461341c9092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129df9190614d24565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a999190614d24565b91505090565b60006001600160ff1b03821115612b095760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016113f8565b5090565b60005b8181101561168957600083820155600101612b10565b600e54600090819081906012600160a01b90910460ff161015612b8557600e54612b5b90600160a01b900460ff166012614d98565b612b6690600a614e95565b9050612b728185614ea4565b9250612b7e8184614ec6565b9150612bdc565b600e546012600160a01b90910460ff161115612bd557600e54612bb490601290600160a01b900460ff16614d98565b612bbf90600a614e95565b9050612bcb8185614ec6565b9250839150612bdc565b8391508192505b50915091565b610c24601282613710565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612c22858783614f2d565b506010612c30838583614f2d565b50612c478160008051602061508e83398151915255565b612c5030613792565b60405160008082529081906000805160206150d88339815191529060200160405180910390a36040516001600160a01b038216906000907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b600e546001600160a01b0316612cde57604051637bce7b2b60e11b815260040160405180910390fd5b600080612cea85612b26565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5f9190614c1c565b600e54909150612d7a906001600160a01b03168930866138c0565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de79190614c1c565b90506000612df58383614d41565b9050808514612e1757604051631c7c26d360e31b815260040160405180910390fd5b8651612e2d908c908b9087901515808c8c613448565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df856040516127f191815260200190565b6000612e927f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603612ee85760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016113f8565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4a9190614c1c565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001914612fc45760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016113f8565b6001600160a01b038116300361301c5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016113f8565b613044817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611c34565b6060816001600160401b038111156130bc576130bc61428d565b6040519080825280602002602001820160405280156130e5578160200160208202803683370190505b50905060005b828110156131225760008185015490508083838151811061310e5761310e614d54565b6020908102919091010152506001016130eb565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061319857506001600160a01b038316600090815260018501602052604090205460ff16801561319857506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b806110b957506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166131f95760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166132205760405163e219bd3960e01b815260040160405180910390fd5b61322e8787878787876138f8565b61323c878787878787613671565b61147a87878787878787613a1f565b806001600160a01b0316826001600160a01b0316036132c25760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016113f8565b6001600160a01b038116600090815260018401602052604090205460ff1615613318576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03851661337657604051632e8aac6160e21b815260040160405180910390fd5b821561338b5761338b868660008786866138f8565b6133958585613b6f565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a40988685856040516133dc93929190614fec565b60405180910390a36040518481526000906001600160a01b038716906000805160206150d8833981519152906020015b60405180910390a3505050505050565b600081848411156134405760405162461bcd60e51b81526004016113f891906140de565b505050900390565b6001600160a01b03861661346f57604051630d24315760e01b815260040160405180910390fd5b6134798686613c7f565b831561348f5761348f8760008888868689613a1f565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d8785856040516134d693929190614fec565b60405180910390a36040518581526001600160a01b038716906000906000805160206150d88339815191529060200160405180910390a350505050505050565b336001600160a01b038216036135815760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016113f8565b6001600160a01b038116600090815260018401602052604090205460ff16156135db576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b03831660248201526044810182905261168990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613cd9565b613684858561367f86612a9f565b613dae565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc826146779878686866040516136d593929190614fec565b60405180910390a4836001600160a01b0316856001600160a01b03166000805160206150d88339815191528560405161340c91815260200190565b81541561371f5761371f614b8b565b80516137319083906020840190613fd0565b5060005b815181101561168957600183600101600084848151811061375857613758614d54565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101613735565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561381357600080fd5b505af1158015613827573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156138ac57600080fd5b505af1158015610d5f573d6000803e3d6000fd5b6040516001600160a01b03808516602483015283166044820152606481018290526110a59085906323b872dd60e01b9060840161363a565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399d9190614d24565b90506001600160a01b0381161561147a57604051633ad5cbc160e11b81526001600160a01b038216906375ab9782906139e4908a908a908a908a908a908a90600401615017565b600060405180830381600087803b1580156139fe57600080fd5b505af1158015613a12573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613aa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ac49190614d24565b90506001600160a01b03811615613b40576040516223de2960e01b81526001600160a01b038216906223de2990613b09908b908b908b908b908b908b90600401615017565b600060405180830381600087803b158015613b2357600080fd5b505af1158015613b37573d6000803e3d6000fd5b505050506118c8565b81156118c8576001600160a01b0386163b156118c85760405163fe737d0560e01b815260040160405180910390fd5b6000613bf7837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bd3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c09190614c1c565b50509050613c0482612a9f565b811215613c245760405163043b37d160e21b815260040160405180910390fd5b613c2d82612a9f565b6001600160a01b038416600090815260026020526040902054613c509190614bc9565b6001600160a01b038416600090815260026020526040902055600354613c77908390614d41565b600355505050565b613c8881612a9f565b6001600160a01b038316600090815260026020526040902054613cab9190614ba1565b6001600160a01b038316600090815260026020526040902055600354613cd2908290614cc3565b6003555050565b6000613d2e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613ead9092919063ffffffff16565b9050805160001480613d4f575080806020019051810190613d4f9190614b3c565b6116895760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016113f8565b6000613e12847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bd3573d6000803e3d6000fd5b5050905081811215613e3757604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b038416600090815260026020526040902054613e5b908390614bc9565b6001600160a01b038086166000908152600260205260408082209390935590851681522054613e8b908390614ba1565b6001600160a01b03909316600090815260026020526040902092909255505050565b60606110b9848460008585600080866001600160a01b03168587604051613ed49190615071565b60006040518083038185875af1925050503d8060008114613f11576040519150601f19603f3d011682016040523d82523d6000602084013e613f16565b606091505b5091509150613f2787838387613f32565b979650505050505050565b60608315613fa1578251600003613f9a576001600160a01b0385163b613f9a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016113f8565b50816110b9565b6110b98383815115613fb65781518083602001fd5b8060405162461bcd60e51b81526004016113f891906140de565b828054828255906000526020600020908101928215614025579160200282015b8281111561402557825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613ff0565b50612b099291505b80821115612b09576000815560010161402d565b6020808252825182820181905260009190848201906040850190845b818110156140825783516001600160a01b03168352928401929184019160010161405d565b50909695505050505050565b60005b838110156140a9578181015183820152602001614091565b50506000910152565b600081518084526140ca81602086016020860161408e565b601f01601f19169290920160200192915050565b60208152600061196e60208301846140b2565b6001600160a01b0381168114610c2457600080fd5b60008083601f84011261411857600080fd5b5081356001600160401b0381111561412f57600080fd5b6020830191508360208260051b850101111561414a57600080fd5b9250929050565b6000806000806060858703121561416757600080fd5b8435614172816140f1565b93506020850135925060408501356001600160401b0381111561419457600080fd5b6141a087828801614106565b95989497509550505050565b600080604083850312156141bf57600080fd5b82356141ca816140f1565b946020939093013593505050565b6000602082840312156141ea57600080fd5b5035919050565b60008060006040848603121561420657600080fd5b8335925060208401356001600160401b0381111561422357600080fd5b61422f86828701614106565b9497909650939450505050565b6000806000806080858703121561425257600080fd5b843561425d816140f1565b9350602085013561426d816140f1565b9250604085013561427d816140f1565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156142cb576142cb61428d565b604052919050565b600082601f8301126142e457600080fd5b81356001600160401b038111156142fd576142fd61428d565b614310601f8201601f19166020016142a3565b81815284602083860101111561432557600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c2457600080fd5b600080600080600080600060e0888a03121561436b57600080fd5b8735965060208801356001600160401b0381111561438857600080fd5b6143948a828b016142d3565b96505060408801356143a5816140f1565b945060608801356143b581614342565b935060808801356143c5816140f1565b9699959850939692959460a0840135945060c09093013592915050565b6000806000606084860312156143f757600080fd5b8335614402816140f1565b92506020840135614412816140f1565b929592945050506040919091013590565b6000806040838503121561443657600080fd5b50508035926020909101359150565b60006020828403121561445757600080fd5b813561196e816140f1565b60006001600160401b0382111561447b5761447b61428d565b5060051b60200190565b6000602080838503121561449857600080fd5b82356001600160401b038111156144ae57600080fd5b8301601f810185136144bf57600080fd5b80356144d26144cd82614462565b6142a3565b81815260059190911b820183019083810190878311156144f157600080fd5b928401925b82841015613f27578335614509816140f1565b825292840192908401906144f6565b803560ff8116811461452957600080fd5b919050565b60008083601f84011261454057600080fd5b5081356001600160401b0381111561455757600080fd5b60208301915083602082850101111561414a57600080fd5b6000806000806000806080878903121561458857600080fd5b8635614593816140f1565b95506145a160208801614518565b945060408701356001600160401b03808211156145bd57600080fd5b6145c98a838b0161452e565b909650945060608901359150808211156145e257600080fd5b506145ef89828a0161452e565b979a9699509497509295939492505050565b6000806000806080858703121561461757600080fd5b8435614622816140f1565b93506020850135614632816140f1565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b8181101561408257835183529284019291840191600101614663565b6000806000806060858703121561469557600080fd5b84356146a0816140f1565b93506020850135925060408501356001600160401b038111156146c257600080fd5b6141a08782880161452e565b600080600080600080600060a0888a0312156146e957600080fd5b87356146f4816140f1565b96506020880135614704816140f1565b95506040880135945060608801356001600160401b038082111561472757600080fd5b6147338b838c0161452e565b909650945060808a013591508082111561474c57600080fd5b506147598a828b0161452e565b989b979a50959850939692959293505050565b60008060006060848603121561478157600080fd5b833561478c816140f1565b95602085013595506040909401359392505050565b6000806000606084860312156147b657600080fd5b83356147c1816140f1565b92506020840135915060408401356001600160401b038111156147e357600080fd5b6147ef868287016142d3565b9150509250925092565b6000806000806080858703121561480f57600080fd5b843561481a816140f1565b93506020850135925060408501356001600160401b038082111561483d57600080fd5b614849888389016142d3565b9350606087013591508082111561485f57600080fd5b5061486c878288016142d3565b91505092959194509250565b6000806000806080858703121561488e57600080fd5b8435614899816140f1565b935060208501356148a9816140f1565b92506040850135915060608501356001600160401b038111156148cb57600080fd5b61486c878288016142d3565b600080604083850312156148ea57600080fd5b82356148f5816140f1565b91506020830135614905816140f1565b809150509250929050565b600080600080600080600060a0888a03121561492b57600080fd5b8735614936816140f1565b965061494460208901614518565b955060408801356001600160401b038082111561496057600080fd5b61496c8b838c0161452e565b909750955060608a013591508082111561498557600080fd5b506149928a828b0161452e565b90945092505060808801356149a6816140f1565b8091505092959891949750929550565b600080600080600080608087890312156149cf57600080fd5b86356149da816140f1565b95506020870135945060408701356001600160401b03808211156145bd57600080fd5b600080600060408486031215614a1257600080fd5b8335925060208401356001600160401b03811115614a2f57600080fd5b61422f8682870161452e565b600181811c90821680614a4f57607f821691505b602082108103614a6f57634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b03831115614b2257600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215614b4e57600080fd5b815161196e81614342565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201614b8457614b84614b59565b5060000390565b634e487b7160e01b600052600160045260246000fd5b8082018281126000831280158216821582161715614bc157614bc1614b59565b505092915050565b818103600083128015838313168383128216171561312257613122614b59565b85815260018060a01b038516602082015283604082015282606082015260a060808201526000613f2760a08301846140b2565b600060208284031215614c2e57600080fd5b5051919050565b60006020808385031215614c4857600080fd5b82516001600160401b03811115614c5e57600080fd5b8301601f81018513614c6f57600080fd5b8051614c7d6144cd82614462565b81815260059190911b82018301908381019087831115614c9c57600080fd5b928401925b82841015613f27578351614cb4816140f1565b82529284019290840190614ca1565b80820180821115610bf257610bf2614b59565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600060208284031215614d3657600080fd5b815161196e816140f1565b81810381811115610bf257610bf2614b59565b634e487b7160e01b600052603260045260246000fd5b600080600060608486031215614d7f57600080fd5b8351925060208401519150604084015190509250925092565b60ff8281168282160390811115610bf257610bf2614b59565b600181815b80851115614dec578160001904821115614dd257614dd2614b59565b80851615614ddf57918102915b93841c9390800290614db6565b509250929050565b600082614e0357506001610bf2565b81614e1057506000610bf2565b8160018114614e265760028114614e3057614e4c565b6001915050610bf2565b60ff841115614e4157614e41614b59565b50506001821b610bf2565b5060208310610133831016604e8410600b8410161715614e6f575081810a610bf2565b614e798383614db1565b8060001904821115614e8d57614e8d614b59565b029392505050565b600061196e60ff841683614df4565b600082614ec157634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610bf257610bf2614b59565b601f821115611689576000816000526020600020601f850160051c81016020861015614f065750805b601f850160051c820191505b81811015614f2557828155600101614f12565b505050505050565b6001600160401b03831115614f4457614f4461428d565b614f5883614f528354614a3b565b83614edd565b6000601f841160018114614f8c5760008515614f745750838201355b600019600387901b1c1916600186901b178355610d5f565b600083815260209020601f19861690835b82811015614fbd5786850135825560209485019460019092019101614f9d565b5086821015614fda5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b83815260606020820152600061500560608301856140b2565b828103604084015261174b81856140b2565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c060808201819052600090615052908301856140b2565b82810360a084015261506481856140b2565b9998505050505050505050565b6000825161508381846020870161408e565b919091019291505056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207113998c3f289916d0409de6d6459a6ed5af6684d9fba3ed913d28e03b195ae364736f6c63430008170033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "contract ISuperfluid";
@@ -2201,7 +2201,7 @@ const _abi = [
2201
2201
  type: "function",
2202
2202
  },
2203
2203
  ];
2204
- const _bytecode = "0x6101406040523480156200001257600080fd5b50604051620054243803806200542483398101604081905262000035916200015f565b6001600160a01b0380871660805280851660a081905281851660c0528184166101005290821660e05260405187918691869186918691907fcf554eb342edf010a94e07701ae91e99e90b769f649f03aeb1153654ddd43c0190600090a26040516001600160a01b038416907f8837af285f4d380af9227df9ebafa13d992b487fa6d7a4366bd4154576085b8990600090a26040516001600160a01b038316907feb87fb34067547f3dc0b85096c3da73c99d4fbb08ff41212b8d7c0b5008b42e690600090a26040516001600160a01b038216907fc1050c54a299c837fe281a2623c29ec8e34b455daef48760b6a29f4b6cc9906090600090a25050506101209690965250620001e795505050505050565b6001600160a01b03811681146200015c57600080fd5b50565b60008060008060008060c087890312156200017957600080fd5b8651620001868162000146565b602088015160408901519197509550620001a08162000146565b6060880151909450620001b38162000146565b6080880151909350620001c68162000146565b60a0880151909250620001d98162000146565b809150509295509295509295565b60805160a05160c05160e051610100516101205161515a620002ca600039600061072b015260006108ac01526000610a300152600081816106a90152611640015260008181610a0901526115a30152600081816104f801528181610d0c01528181610d7b015281816110c3015281816111f3015281816112c2015281816114e201528181611690015281816117dd0152818161197d01528181611a5c01528181611e5d01528181611f2701528181611fbf01528181612027015281816120af0152818161295f015281816129f601528181613b770152613db6015261515a6000f3fe608060405234801561001057600080fd5b50600436106104285760003560e01c80636c2d9f2f1161022b578063b84cdd4a11610130578063dd62ed3e116100b8578063ef43d2c611610087578063ef43d2c614610a04578063f5a8b4dd14610a2b578063fad8b32a14610a52578063fc673c4f14610a65578063fe9d930314610a7857600080fd5b8063dd62ed3e14610979578063eb3537cc146109b2578063ec0d6343146109e0578063ee719bc8146109f357600080fd5b8063ca0c1e7f116100ff578063ca0c1e7f1461091a578063ca7894641461092d578063cf97256d14610940578063d95b637114610953578063d9d078d61461096657600080fd5b8063b84cdd4a146108ce578063bb0d196e146108e1578063c68d4283146108f4578063c780fd821461090757600080fd5b80639903ad38116101b3578063a3a7e7f311610182578063a3a7e7f31461085b578063a457c2d71461086e578063a9059cbb14610881578063b1f0b5be14610894578063b20db1ac146108a757600080fd5b80639903ad381461081a5780639bd9bbc6146108225780639d87674114610835578063a1b2bf8b1461084857600080fd5b806383ba2525116101fa57806383ba2525146107c75780638f283970146107da57806392081a47146107ed578063959b8c3f146107ff57806395d89b411461081257600080fd5b80636c2d9f2f146107865780636e9960c31461079957806370a08231146107a157806379359f6f146107b457600080fd5b8063395093511161033157806350d75d25116102b95780635b9d09cc116102885780635b9d09cc146107135780636154b1021461072657806362aa52871461074d57806362ad1b831461076057806366a12fb61461077357600080fd5b806350d75d25146106cb57806352d1902d146106d3578063556f0dc7146106f957806356189cb41461070057600080fd5b806345977d031161030057806345977d031461064b578063469519541461065e5780634b2763b3146106715780634b61cc33146106845780634c5c0c85146106a457600080fd5b806339509351146105ff578063397be9311461061257806341b706be1461062557806342fe09801461063857600080fd5b806320bc4425116103b457806327048397116103835780632704839714610569578063282a050b1461057c5780632ec8eec7146105a4578063313ce567146105d7578063386fa221146105ec57600080fd5b806320bc4425146104f6578063222f5be01461053057806323b872dd14610543578063245887fc1461055657600080fd5b806311bcc81e116103fb57806311bcc81e1461049857806312a6a3f8146104ab57806316d055d6146104be57806318160ddd146104d15780631863e809146104e357600080fd5b806306e485381461042d57806306fdde031461044b578063090c415e14610460578063095ea7b314610475575b600080fd5b610435610a8b565b6040516104429190614041565b60405180910390f35b610453610a9c565b60405161044291906140de565b61047361046e366004614151565b610b2e565b005b6104886104833660046141ac565b610be1565b6040519015158152602001610442565b6104736104a63660046141d8565b610bf8565b6104736104b93660046141f1565b610c27565b6104736104cc36600461423c565b610d0a565b6003545b604051908152602001610442565b6104736104f1366004614350565b610d66565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610442565b61047361053e3660046143e2565b611099565b6104886105513660046143e2565b6110ab565b6104736105643660046141ac565b6110c1565b610473610577366004614423565b61113a565b61058f61058a3660046141d8565b6111d6565b60408051928352602083019190915201610442565b6105b76105b2366004614445565b6111eb565b604080519485526020850193909352918301526060820152608001610442565b60125b60405160ff9091168152602001610442565b6104356105fa366004614445565b61128e565b61048861060d3660046141ac565b611331565b610473610620366004614485565b61136d565b61047361063336600461423c565b611376565b61047361064636600461456f565b6113a2565b6104736106593660046141d8565b611483565b61047361066c366004614445565b6114af565b61047361067f3660046143e2565b61168e565b610697610692366004614601565b611710565b6040516104429190614647565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b610518611755565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104d5565b60016104d5565b61047361070e3660046143e2565b61177f565b61047361072136600461467f565b61178a565b6104d57f000000000000000000000000000000000000000000000000000000000000000081565b61047361075b3660046143e2565b6117db565b61047361076e3660046146ce565b611824565b6104736107813660046143e2565b6118d2565b61069761079436600461476c565b6118f2565b610518611934565b6104d56107af366004614445565b61194c565b6104886107c2366004614445565b611975565b6104736107d53660046141ac565b6119fd565b6104736107e8366004614445565b611a29565b600e54600160a01b900460ff166105da565b61047361080d366004614445565b611b1d565b610453611b6e565b610473611b7d565b61047361083036600461467f565b611c3f565b6104736108433660046147a1565b611c93565b6104736108563660046141f1565b611cd9565b610473610869366004614445565b611d83565b61048861087c3660046141ac565b611d97565b61048861088f3660046141ac565b611de6565b6104736108a23660046147f9565b611df4565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b6104886108dc3660046141ac565b611e04565b6104886108ef366004614445565b611e55565b6104736109023660046147a1565b611edd565b6104736109153660046143e2565b611f25565b610473610928366004614878565b611fbd565b61047361093b3660046141ac565b612025565b61047361094e3660046141ac565b61209a565b6104886109613660046148d7565b612183565b6104886109743660046141ac565b612191565b6104d56109873660046148d7565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b6109c56109c03660046141ac565b6121ab565b60408051938452602084019290925290820152606001610442565b6104736109ee366004614910565b6122df565b600e546001600160a01b0316610518565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b610473610a60366004614445565b6123b6565b610473610a733660046149b6565b612407565b610473610a863660046149fd565b6124a8565b6060610a9760126124f9565b905090565b6060600f8054610aab90614a3b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad790614a3b565b8015610b245780601f10610af957610100808354040283529160200191610b24565b820191906000526020600020905b815481529060010190602001808311610b0757829003601f168201915b5050505050905090565b6000338585604051602001610b4593929190614a75565b604051602081830303815290604052805190602001209050610b9a8184848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061255f92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b6000610bee338484612597565b5060015b92915050565b610c24333333846040518060200160405280600081525060405180602001604052806000815250612646565b50565b6040513390600090610c3f9083908790602001614abe565b60408051601f1981840301815291905280516020909101209050610c638184612806565b15610c815760405163782a90fb60e11b815260040160405180910390fd5b610cbe8185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061255f92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610cfb93929190614afb565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d535760405163c51efddd60e01b815260040160405180910390fd5b610d5f8484848461283a565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dee9190614b3c565b610e0b5760405163327fd99160e21b815260040160405180910390fd5b6000610e1561295a565b90506001600160a01b038116610e285750845b600085610e355786610e37565b815b905060008313610f0557610e4a83614b6f565b610e5385612a9f565b14610e6057610e60614b8b565b610e6984612a9f565b6001600160a01b03821660009081526002602052604081208054909190610e91908490614ba1565b90915550506001600160a01b03851660009081526002602052604081208054859290610ebe908490614ba1565b92505081905550806001600160a01b0316856001600160a01b03166000805160206150d883398151915286604051610ef891815260200190565b60405180910390a3611031565b8515610f1357610f13614b8b565b82610f1d85612a9f565b610f279190614ba1565b6001600160a01b03831660009081526002602052604081208054909190610f4f908490614bc9565b90915550610f5e905084612a9f565b6001600160a01b03881660009081526002602052604081208054909190610f86908490614ba1565b90915550506001600160a01b03851660009081526002602052604081208054859290610fb3908490614ba1565b92505081905550866001600160a01b0316826001600160a01b03166000805160206150d883398151915286604051610fed91815260200190565b60405180910390a3846001600160a01b0316826001600160a01b03166000805160206150d88339815191528560405161102891815260200190565b60405180910390a35b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051611086959493929190614be9565b60405180910390a4505050505050505050565b6110a58384848461283a565b50505050565b60006110b93385858561283a565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461110a5760405163c51efddd60e01b815260040160405180910390fd5b611136338384846040518060200160405280600081525060405180602001604052806000815250612646565b5050565b60405133906000906111529083908690602001614abe565b6040516020818303038152906040528051906020012090506111748184612806565b6111915760405163dae1880960e01b815260040160405180910390fd5b61119b8184612b0d565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806111e283612b26565b91509150915091565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190614c1c565b905061127f85826121ab565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611309573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bf29190810190614c35565b3360008181526011602090815260408083206001600160a01b03871684529091528120549091610bee918590611368908690614cc3565b612597565b610c2481612be2565b33301461139657604051630fff4cc960e31b815260040160405180910390fd5b610d5f8385848461283a565b600054610100900460ff16158080156113c25750600054600160ff909116105b806113dc5750303b1580156113dc575060005460ff166001145b6114015760405162461bcd60e51b81526004016113f890614cd6565b60405180910390fd5b6000805460ff191660011790558015611424576000805461ff0019166101001790555b6114348787878787876000612bed565b801561147a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610c24333333846040518060200160405280600081525060405180602001604052806000815250612cb5565b60006114c760008051602061508e8339815191525490565b905060006001600160a01b038216156114e05781611502565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461152d57604051630484acab60e01b815260040160405180910390fd5b61153683612e68565b826001600160a01b031663ef43d2c66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611574573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115989190614d24565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614158061166b5750826001600160a01b0316634c5c0c856040518163ffffffff1660e01b8152600401602060405180830381865afa158015611611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116359190614d24565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614155b156116895760405163ef1b6ddf60e01b815260040160405180910390fd5b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116d75760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084166000908152601160209081526040808320938616835292905220546116899084908490611368908590614cc3565b6060600085858560405160200161172993929190614a75565b60405160208183030381529060405280519060200120905061174b81846130a2565b9695505050505050565b6000610a977f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b611689838383612597565b6110a53333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612cb5915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461177f5760405163c51efddd60e01b815260040160405180910390fd5b336118316012828a613129565b61184e5760405163f7f0222760e01b815260040160405180910390fd5b6118c88189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600092019190915250600192506131d2915050565b5050505050505050565b33301461177f57604051630fff4cc960e31b815260040160405180910390fd5b606060008484604051602001611909929190614abe565b60405160208183030381529060405280519060200120905061192b81846130a2565b95945050505050565b6000610a9760008051602061508e8339815191525490565b600080611958836111eb565b50505090506000811261196b578061196e565b60005b9392505050565b6000610bf2827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109749190614c1c565b611136333384846040518060200160405280600081525060405180602001604052806000815250612646565b6000611a4160008051602061508e8339815191525490565b905060006001600160a01b03821615611a5a5781611a7c565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b03821614611aa757604051630484acab60e01b815260040160405180910390fd5b6000611abf60008051602061508e8339815191525490565b9050611ad78460008051602061508e83398151915255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611b2a6012828461324b565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610aab90614a3b565b600054610100900460ff1615808015611b9d5750600054600160ff909116105b80611bb75750303b158015611bb7575060005460ff166001145b611bd35760405162461bcd60e51b81526004016113f890614cd6565b6000805460ff191660011790558015611bf6576000805461ff0019166101001790555b8015610c24576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6110a53333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506131d29050565b333014611cb357604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526116899133918691869190151590869061334f565b6040513390600090611cf19083908790602001614abe565b604051602081830303815290604052805190602001209050611d468185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061255f92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610cfb93929190614afb565b611136333383611d923361194c565b61283a565b6000610bee3384611368856040518060600160405280602a81526020016150ae602a91393360009081526011602090815260408083206001600160a01b038d168452909152902054919061341c565b600061196e3333858561283a565b6110a53385856001808787613448565b600080600080611e1486866121ab565b9250925092506000611e3c828411611e2d576000612a9f565b611e378385614d41565b612a9f565b611e469085614ba1565b60001315979650505050505050565b6000610bf2827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eb9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dc9190614c1c565b333014611efd57604051630fff4cc960e31b815260040160405180910390fd5b8051604080516000815260208101909152611689913391869186919015159081908790613448565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611f6e5760405163c51efddd60e01b815260040160405180910390fd5b6116898383611368846040518060600160405280602a81526020016150ae602a91396001600160a01b03808a166000908152601160209081526040808320938c1683529290522054919061341c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146120065760405163c51efddd60e01b815260040160405180910390fd5b6110a533858585856040518060200160405280600081525060016131d2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461206e5760405163c51efddd60e01b815260040160405180910390fd5b611136338384846040518060200160405280600081525060405180602001604052806000815250612cb5565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190614b3c565b61213f5760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b038216600090815260026020526040902054612163908290614ba1565b6001600160a01b0390921660009081526002602052604090209190915550565b600061196e60128484613129565b60008061219e84846121ab565b5050600013949350505050565b6001600160a01b0382166000908152600260205260408120549080806121d08661128e565b905060005b81518110156122d65760008060008484815181106121f5576121f5614d54565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015612254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122789190614d6a565b919450925090506122898288614cc3565b96506122958187614cc3565b95506122b28183116122a8576000612a9f565b611e378284614d41565b6122bc848a614ba1565b6122c69190614bc9565b97505050508060010190506121d5565b50509250925092565b600054610100900460ff16158080156122ff5750600054600160ff909116105b806123195750303b158015612319575060005460ff166001145b6123355760405162461bcd60e51b81526004016113f890614cd6565b6000805460ff191660011790558015612358576000805461ff0019166101001790555b61236788888888888888612bed565b80156118c8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336123c360128284613516565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b3361241460128289613129565b6124315760405163f7f0222760e01b815260040160405180910390fd5b61147a8188898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525061264692505050565b6116893333338686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612646915050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561255357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612535575b50505050509050919050565b60005b815181101561168957600082828151811061257f5761257f614d54565b60209081029190910101518483015550600101612562565b6001600160a01b0383166125be57604051638163862760e01b815260040160405180910390fd5b6001600160a01b0382166125e5576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b031661266f57604051637bce7b2b60e11b815260040160405180910390fd5b60008061267b85612b26565b91509150612692888883875160001415888861334f565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156126db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ff9190614c1c565b600e54909150612719906001600160a01b0316888561360e565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127869190614c1c565b905060006127948284614d41565b90508085146127b657604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d856040516127f191815260200190565b60405180910390a25050505050505050505050565b6000805b828110156128305783810154801561282757600192505050610bf2565b5060010161280a565b5060009392505050565b60006001600160a01b0384166128635760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b03831661288a5760405163e219bd3960e01b815260040160405180910390fd5b60003390506128bb818686866040518060200160405280600081525060405180602001604052806000815250613671565b846001600160a01b0316866001600160a01b03161461294e5761294e8587611368866040518060600160405280602d81526020016150f8602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b031681526020019081526020016000205461341c9092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129df9190614d24565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a999190614d24565b91505090565b60006001600160ff1b03821115612b095760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016113f8565b5090565b60005b8181101561168957600083820155600101612b10565b600e54600090819081906012600160a01b90910460ff161015612b8557600e54612b5b90600160a01b900460ff166012614d98565b612b6690600a614e95565b9050612b728185614ea4565b9250612b7e8184614ec6565b9150612bdc565b600e546012600160a01b90910460ff161115612bd557600e54612bb490601290600160a01b900460ff16614d98565b612bbf90600a614e95565b9050612bcb8185614ec6565b9250839150612bdc565b8391508192505b50915091565b610c24601282613710565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612c22858783614f2d565b506010612c30838583614f2d565b50612c478160008051602061508e83398151915255565b612c5030613792565b60405160008082529081906000805160206150d88339815191529060200160405180910390a36040516001600160a01b038216906000907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b600e546001600160a01b0316612cde57604051637bce7b2b60e11b815260040160405180910390fd5b600080612cea85612b26565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5f9190614c1c565b600e54909150612d7a906001600160a01b03168930866138c0565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de79190614c1c565b90506000612df58383614d41565b9050808514612e1757604051631c7c26d360e31b815260040160405180910390fd5b8651612e2d908c908b9087901515808c8c613448565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df856040516127f191815260200190565b6000612e927f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603612ee85760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016113f8565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4a9190614c1c565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001914612fc45760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016113f8565b6001600160a01b038116300361301c5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016113f8565b613044817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611c34565b6060816001600160401b038111156130bc576130bc61428d565b6040519080825280602002602001820160405280156130e5578160200160208202803683370190505b50905060005b828110156131225760008185015490508083838151811061310e5761310e614d54565b6020908102919091010152506001016130eb565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061319857506001600160a01b038316600090815260018501602052604090205460ff16801561319857506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b806110b957506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166131f95760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166132205760405163e219bd3960e01b815260040160405180910390fd5b61322e8787878787876138f8565b61323c878787878787613671565b61147a87878787878787613a1f565b806001600160a01b0316826001600160a01b0316036132c25760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016113f8565b6001600160a01b038116600090815260018401602052604090205460ff1615613318576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03851661337657604051632e8aac6160e21b815260040160405180910390fd5b821561338b5761338b868660008786866138f8565b6133958585613b6f565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a40988685856040516133dc93929190614fec565b60405180910390a36040518481526000906001600160a01b038716906000805160206150d8833981519152906020015b60405180910390a3505050505050565b600081848411156134405760405162461bcd60e51b81526004016113f891906140de565b505050900390565b6001600160a01b03861661346f57604051630d24315760e01b815260040160405180910390fd5b6134798686613c7f565b831561348f5761348f8760008888868689613a1f565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d8785856040516134d693929190614fec565b60405180910390a36040518581526001600160a01b038716906000906000805160206150d88339815191529060200160405180910390a350505050505050565b336001600160a01b038216036135815760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016113f8565b6001600160a01b038116600090815260018401602052604090205460ff16156135db576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b03831660248201526044810182905261168990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613cd9565b613684858561367f86612a9f565b613dae565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc826146779878686866040516136d593929190614fec565b60405180910390a4836001600160a01b0316856001600160a01b03166000805160206150d88339815191528560405161340c91815260200190565b81541561371f5761371f614b8b565b80516137319083906020840190613fd0565b5060005b815181101561168957600183600101600084848151811061375857613758614d54565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101613735565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561381357600080fd5b505af1158015613827573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156138ac57600080fd5b505af1158015610d5f573d6000803e3d6000fd5b6040516001600160a01b03808516602483015283166044820152606481018290526110a59085906323b872dd60e01b9060840161363a565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399d9190614d24565b90506001600160a01b0381161561147a57604051633ad5cbc160e11b81526001600160a01b038216906375ab9782906139e4908a908a908a908a908a908a90600401615017565b600060405180830381600087803b1580156139fe57600080fd5b505af1158015613a12573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613aa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ac49190614d24565b90506001600160a01b03811615613b40576040516223de2960e01b81526001600160a01b038216906223de2990613b09908b908b908b908b908b908b90600401615017565b600060405180830381600087803b158015613b2357600080fd5b505af1158015613b37573d6000803e3d6000fd5b505050506118c8565b81156118c8576001600160a01b0386163b156118c85760405163fe737d0560e01b815260040160405180910390fd5b6000613bf7837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bd3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c09190614c1c565b50509050613c0482612a9f565b811215613c245760405163043b37d160e21b815260040160405180910390fd5b613c2d82612a9f565b6001600160a01b038416600090815260026020526040902054613c509190614bc9565b6001600160a01b038416600090815260026020526040902055600354613c77908390614d41565b600355505050565b613c8881612a9f565b6001600160a01b038316600090815260026020526040902054613cab9190614ba1565b6001600160a01b038316600090815260026020526040902055600354613cd2908290614cc3565b6003555050565b6000613d2e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613ead9092919063ffffffff16565b9050805160001480613d4f575080806020019051810190613d4f9190614b3c565b6116895760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016113f8565b6000613e12847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bd3573d6000803e3d6000fd5b5050905081811215613e3757604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b038416600090815260026020526040902054613e5b908390614bc9565b6001600160a01b038086166000908152600260205260408082209390935590851681522054613e8b908390614ba1565b6001600160a01b03909316600090815260026020526040902092909255505050565b60606110b9848460008585600080866001600160a01b03168587604051613ed49190615071565b60006040518083038185875af1925050503d8060008114613f11576040519150601f19603f3d011682016040523d82523d6000602084013e613f16565b606091505b5091509150613f2787838387613f32565b979650505050505050565b60608315613fa1578251600003613f9a576001600160a01b0385163b613f9a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016113f8565b50816110b9565b6110b98383815115613fb65781518083602001fd5b8060405162461bcd60e51b81526004016113f891906140de565b828054828255906000526020600020908101928215614025579160200282015b8281111561402557825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613ff0565b50612b099291505b80821115612b09576000815560010161402d565b6020808252825182820181905260009190848201906040850190845b818110156140825783516001600160a01b03168352928401929184019160010161405d565b50909695505050505050565b60005b838110156140a9578181015183820152602001614091565b50506000910152565b600081518084526140ca81602086016020860161408e565b601f01601f19169290920160200192915050565b60208152600061196e60208301846140b2565b6001600160a01b0381168114610c2457600080fd5b60008083601f84011261411857600080fd5b5081356001600160401b0381111561412f57600080fd5b6020830191508360208260051b850101111561414a57600080fd5b9250929050565b6000806000806060858703121561416757600080fd5b8435614172816140f1565b93506020850135925060408501356001600160401b0381111561419457600080fd5b6141a087828801614106565b95989497509550505050565b600080604083850312156141bf57600080fd5b82356141ca816140f1565b946020939093013593505050565b6000602082840312156141ea57600080fd5b5035919050565b60008060006040848603121561420657600080fd5b8335925060208401356001600160401b0381111561422357600080fd5b61422f86828701614106565b9497909650939450505050565b6000806000806080858703121561425257600080fd5b843561425d816140f1565b9350602085013561426d816140f1565b9250604085013561427d816140f1565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156142cb576142cb61428d565b604052919050565b600082601f8301126142e457600080fd5b81356001600160401b038111156142fd576142fd61428d565b614310601f8201601f19166020016142a3565b81815284602083860101111561432557600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c2457600080fd5b600080600080600080600060e0888a03121561436b57600080fd5b8735965060208801356001600160401b0381111561438857600080fd5b6143948a828b016142d3565b96505060408801356143a5816140f1565b945060608801356143b581614342565b935060808801356143c5816140f1565b9699959850939692959460a0840135945060c09093013592915050565b6000806000606084860312156143f757600080fd5b8335614402816140f1565b92506020840135614412816140f1565b929592945050506040919091013590565b6000806040838503121561443657600080fd5b50508035926020909101359150565b60006020828403121561445757600080fd5b813561196e816140f1565b60006001600160401b0382111561447b5761447b61428d565b5060051b60200190565b6000602080838503121561449857600080fd5b82356001600160401b038111156144ae57600080fd5b8301601f810185136144bf57600080fd5b80356144d26144cd82614462565b6142a3565b81815260059190911b820183019083810190878311156144f157600080fd5b928401925b82841015613f27578335614509816140f1565b825292840192908401906144f6565b803560ff8116811461452957600080fd5b919050565b60008083601f84011261454057600080fd5b5081356001600160401b0381111561455757600080fd5b60208301915083602082850101111561414a57600080fd5b6000806000806000806080878903121561458857600080fd5b8635614593816140f1565b95506145a160208801614518565b945060408701356001600160401b03808211156145bd57600080fd5b6145c98a838b0161452e565b909650945060608901359150808211156145e257600080fd5b506145ef89828a0161452e565b979a9699509497509295939492505050565b6000806000806080858703121561461757600080fd5b8435614622816140f1565b93506020850135614632816140f1565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b8181101561408257835183529284019291840191600101614663565b6000806000806060858703121561469557600080fd5b84356146a0816140f1565b93506020850135925060408501356001600160401b038111156146c257600080fd5b6141a08782880161452e565b600080600080600080600060a0888a0312156146e957600080fd5b87356146f4816140f1565b96506020880135614704816140f1565b95506040880135945060608801356001600160401b038082111561472757600080fd5b6147338b838c0161452e565b909650945060808a013591508082111561474c57600080fd5b506147598a828b0161452e565b989b979a50959850939692959293505050565b60008060006060848603121561478157600080fd5b833561478c816140f1565b95602085013595506040909401359392505050565b6000806000606084860312156147b657600080fd5b83356147c1816140f1565b92506020840135915060408401356001600160401b038111156147e357600080fd5b6147ef868287016142d3565b9150509250925092565b6000806000806080858703121561480f57600080fd5b843561481a816140f1565b93506020850135925060408501356001600160401b038082111561483d57600080fd5b614849888389016142d3565b9350606087013591508082111561485f57600080fd5b5061486c878288016142d3565b91505092959194509250565b6000806000806080858703121561488e57600080fd5b8435614899816140f1565b935060208501356148a9816140f1565b92506040850135915060608501356001600160401b038111156148cb57600080fd5b61486c878288016142d3565b600080604083850312156148ea57600080fd5b82356148f5816140f1565b91506020830135614905816140f1565b809150509250929050565b600080600080600080600060a0888a03121561492b57600080fd5b8735614936816140f1565b965061494460208901614518565b955060408801356001600160401b038082111561496057600080fd5b61496c8b838c0161452e565b909750955060608a013591508082111561498557600080fd5b506149928a828b0161452e565b90945092505060808801356149a6816140f1565b8091505092959891949750929550565b600080600080600080608087890312156149cf57600080fd5b86356149da816140f1565b95506020870135945060408701356001600160401b03808211156145bd57600080fd5b600080600060408486031215614a1257600080fd5b8335925060208401356001600160401b03811115614a2f57600080fd5b61422f8682870161452e565b600181811c90821680614a4f57607f821691505b602082108103614a6f57634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b03831115614b2257600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215614b4e57600080fd5b815161196e81614342565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201614b8457614b84614b59565b5060000390565b634e487b7160e01b600052600160045260246000fd5b8082018281126000831280158216821582161715614bc157614bc1614b59565b505092915050565b818103600083128015838313168383128216171561312257613122614b59565b85815260018060a01b038516602082015283604082015282606082015260a060808201526000613f2760a08301846140b2565b600060208284031215614c2e57600080fd5b5051919050565b60006020808385031215614c4857600080fd5b82516001600160401b03811115614c5e57600080fd5b8301601f81018513614c6f57600080fd5b8051614c7d6144cd82614462565b81815260059190911b82018301908381019087831115614c9c57600080fd5b928401925b82841015613f27578351614cb4816140f1565b82529284019290840190614ca1565b80820180821115610bf257610bf2614b59565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600060208284031215614d3657600080fd5b815161196e816140f1565b81810381811115610bf257610bf2614b59565b634e487b7160e01b600052603260045260246000fd5b600080600060608486031215614d7f57600080fd5b8351925060208401519150604084015190509250925092565b60ff8281168282160390811115610bf257610bf2614b59565b600181815b80851115614dec578160001904821115614dd257614dd2614b59565b80851615614ddf57918102915b93841c9390800290614db6565b509250929050565b600082614e0357506001610bf2565b81614e1057506000610bf2565b8160018114614e265760028114614e3057614e4c565b6001915050610bf2565b60ff841115614e4157614e41614b59565b50506001821b610bf2565b5060208310610133831016604e8410600b8410161715614e6f575081810a610bf2565b614e798383614db1565b8060001904821115614e8d57614e8d614b59565b029392505050565b600061196e60ff841683614df4565b600082614ec157634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610bf257610bf2614b59565b601f821115611689576000816000526020600020601f850160051c81016020861015614f065750805b601f850160051c820191505b81811015614f2557828155600101614f12565b505050505050565b6001600160401b03831115614f4457614f4461428d565b614f5883614f528354614a3b565b83614edd565b6000601f841160018114614f8c5760008515614f745750838201355b600019600387901b1c1916600186901b178355610d5f565b600083815260209020601f19861690835b82811015614fbd5786850135825560209485019460019092019101614f9d565b5086821015614fda5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b83815260606020820152600061500560608301856140b2565b828103604084015261174b81856140b2565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c060808201819052600090615052908301856140b2565b82810360a084015261506481856140b2565b9998505050505050505050565b6000825161508381846020870161408e565b919091019291505056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f42195f9c6be35ce6ef79bd835ba193edd1e40070b77d1f42ef173b52d09516e64736f6c63430008170033";
2204
+ const _bytecode = "0x6101406040523480156200001257600080fd5b50604051620054243803806200542483398101604081905262000035916200015f565b6001600160a01b0380871660805280851660a081905281851660c0528184166101005290821660e05260405187918691869186918691907fcf554eb342edf010a94e07701ae91e99e90b769f649f03aeb1153654ddd43c0190600090a26040516001600160a01b038416907f8837af285f4d380af9227df9ebafa13d992b487fa6d7a4366bd4154576085b8990600090a26040516001600160a01b038316907feb87fb34067547f3dc0b85096c3da73c99d4fbb08ff41212b8d7c0b5008b42e690600090a26040516001600160a01b038216907fc1050c54a299c837fe281a2623c29ec8e34b455daef48760b6a29f4b6cc9906090600090a25050506101209690965250620001e795505050505050565b6001600160a01b03811681146200015c57600080fd5b50565b60008060008060008060c087890312156200017957600080fd5b8651620001868162000146565b602088015160408901519197509550620001a08162000146565b6060880151909450620001b38162000146565b6080880151909350620001c68162000146565b60a0880151909250620001d98162000146565b809150509295509295509295565b60805160a05160c05160e051610100516101205161515a620002ca600039600061072b015260006108ac01526000610a300152600081816106a90152611640015260008181610a0901526115a30152600081816104f801528181610d0c01528181610d7b015281816110c3015281816111f3015281816112c2015281816114e201528181611690015281816117dd0152818161197d01528181611a5c01528181611e5d01528181611f2701528181611fbf01528181612027015281816120af0152818161295f015281816129f601528181613b770152613db6015261515a6000f3fe608060405234801561001057600080fd5b50600436106104285760003560e01c80636c2d9f2f1161022b578063b84cdd4a11610130578063dd62ed3e116100b8578063ef43d2c611610087578063ef43d2c614610a04578063f5a8b4dd14610a2b578063fad8b32a14610a52578063fc673c4f14610a65578063fe9d930314610a7857600080fd5b8063dd62ed3e14610979578063eb3537cc146109b2578063ec0d6343146109e0578063ee719bc8146109f357600080fd5b8063ca0c1e7f116100ff578063ca0c1e7f1461091a578063ca7894641461092d578063cf97256d14610940578063d95b637114610953578063d9d078d61461096657600080fd5b8063b84cdd4a146108ce578063bb0d196e146108e1578063c68d4283146108f4578063c780fd821461090757600080fd5b80639903ad38116101b3578063a3a7e7f311610182578063a3a7e7f31461085b578063a457c2d71461086e578063a9059cbb14610881578063b1f0b5be14610894578063b20db1ac146108a757600080fd5b80639903ad381461081a5780639bd9bbc6146108225780639d87674114610835578063a1b2bf8b1461084857600080fd5b806383ba2525116101fa57806383ba2525146107c75780638f283970146107da57806392081a47146107ed578063959b8c3f146107ff57806395d89b411461081257600080fd5b80636c2d9f2f146107865780636e9960c31461079957806370a08231146107a157806379359f6f146107b457600080fd5b8063395093511161033157806350d75d25116102b95780635b9d09cc116102885780635b9d09cc146107135780636154b1021461072657806362aa52871461074d57806362ad1b831461076057806366a12fb61461077357600080fd5b806350d75d25146106cb57806352d1902d146106d3578063556f0dc7146106f957806356189cb41461070057600080fd5b806345977d031161030057806345977d031461064b578063469519541461065e5780634b2763b3146106715780634b61cc33146106845780634c5c0c85146106a457600080fd5b806339509351146105ff578063397be9311461061257806341b706be1461062557806342fe09801461063857600080fd5b806320bc4425116103b457806327048397116103835780632704839714610569578063282a050b1461057c5780632ec8eec7146105a4578063313ce567146105d7578063386fa221146105ec57600080fd5b806320bc4425146104f6578063222f5be01461053057806323b872dd14610543578063245887fc1461055657600080fd5b806311bcc81e116103fb57806311bcc81e1461049857806312a6a3f8146104ab57806316d055d6146104be57806318160ddd146104d15780631863e809146104e357600080fd5b806306e485381461042d57806306fdde031461044b578063090c415e14610460578063095ea7b314610475575b600080fd5b610435610a8b565b6040516104429190614041565b60405180910390f35b610453610a9c565b60405161044291906140de565b61047361046e366004614151565b610b2e565b005b6104886104833660046141ac565b610be1565b6040519015158152602001610442565b6104736104a63660046141d8565b610bf8565b6104736104b93660046141f1565b610c27565b6104736104cc36600461423c565b610d0a565b6003545b604051908152602001610442565b6104736104f1366004614350565b610d66565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610442565b61047361053e3660046143e2565b611099565b6104886105513660046143e2565b6110ab565b6104736105643660046141ac565b6110c1565b610473610577366004614423565b61113a565b61058f61058a3660046141d8565b6111d6565b60408051928352602083019190915201610442565b6105b76105b2366004614445565b6111eb565b604080519485526020850193909352918301526060820152608001610442565b60125b60405160ff9091168152602001610442565b6104356105fa366004614445565b61128e565b61048861060d3660046141ac565b611331565b610473610620366004614485565b61136d565b61047361063336600461423c565b611376565b61047361064636600461456f565b6113a2565b6104736106593660046141d8565b611483565b61047361066c366004614445565b6114af565b61047361067f3660046143e2565b61168e565b610697610692366004614601565b611710565b6040516104429190614647565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b610518611755565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104d5565b60016104d5565b61047361070e3660046143e2565b61177f565b61047361072136600461467f565b61178a565b6104d57f000000000000000000000000000000000000000000000000000000000000000081565b61047361075b3660046143e2565b6117db565b61047361076e3660046146ce565b611824565b6104736107813660046143e2565b6118d2565b61069761079436600461476c565b6118f2565b610518611934565b6104d56107af366004614445565b61194c565b6104886107c2366004614445565b611975565b6104736107d53660046141ac565b6119fd565b6104736107e8366004614445565b611a29565b600e54600160a01b900460ff166105da565b61047361080d366004614445565b611b1d565b610453611b6e565b610473611b7d565b61047361083036600461467f565b611c3f565b6104736108433660046147a1565b611c93565b6104736108563660046141f1565b611cd9565b610473610869366004614445565b611d83565b61048861087c3660046141ac565b611d97565b61048861088f3660046141ac565b611de6565b6104736108a23660046147f9565b611df4565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b6104886108dc3660046141ac565b611e04565b6104886108ef366004614445565b611e55565b6104736109023660046147a1565b611edd565b6104736109153660046143e2565b611f25565b610473610928366004614878565b611fbd565b61047361093b3660046141ac565b612025565b61047361094e3660046141ac565b61209a565b6104886109613660046148d7565b612183565b6104886109743660046141ac565b612191565b6104d56109873660046148d7565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b6109c56109c03660046141ac565b6121ab565b60408051938452602084019290925290820152606001610442565b6104736109ee366004614910565b6122df565b600e546001600160a01b0316610518565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b6105187f000000000000000000000000000000000000000000000000000000000000000081565b610473610a60366004614445565b6123b6565b610473610a733660046149b6565b612407565b610473610a863660046149fd565b6124a8565b6060610a9760126124f9565b905090565b6060600f8054610aab90614a3b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad790614a3b565b8015610b245780601f10610af957610100808354040283529160200191610b24565b820191906000526020600020905b815481529060010190602001808311610b0757829003601f168201915b5050505050905090565b6000338585604051602001610b4593929190614a75565b604051602081830303815290604052805190602001209050610b9a8184848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061255f92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b6000610bee338484612597565b5060015b92915050565b610c24333333846040518060200160405280600081525060405180602001604052806000815250612646565b50565b6040513390600090610c3f9083908790602001614abe565b60408051601f1981840301815291905280516020909101209050610c638184612806565b15610c815760405163782a90fb60e11b815260040160405180910390fd5b610cbe8185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061255f92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610cfb93929190614afb565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d535760405163c51efddd60e01b815260040160405180910390fd5b610d5f8484848461283a565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dee9190614b3c565b610e0b5760405163327fd99160e21b815260040160405180910390fd5b6000610e1561295a565b90506001600160a01b038116610e285750845b600085610e355786610e37565b815b905060008313610f0557610e4a83614b6f565b610e5385612a9f565b14610e6057610e60614b8b565b610e6984612a9f565b6001600160a01b03821660009081526002602052604081208054909190610e91908490614ba1565b90915550506001600160a01b03851660009081526002602052604081208054859290610ebe908490614ba1565b92505081905550806001600160a01b0316856001600160a01b03166000805160206150d883398151915286604051610ef891815260200190565b60405180910390a3611031565b8515610f1357610f13614b8b565b82610f1d85612a9f565b610f279190614ba1565b6001600160a01b03831660009081526002602052604081208054909190610f4f908490614bc9565b90915550610f5e905084612a9f565b6001600160a01b03881660009081526002602052604081208054909190610f86908490614ba1565b90915550506001600160a01b03851660009081526002602052604081208054859290610fb3908490614ba1565b92505081905550866001600160a01b0316826001600160a01b03166000805160206150d883398151915286604051610fed91815260200190565b60405180910390a3846001600160a01b0316826001600160a01b03166000805160206150d88339815191528560405161102891815260200190565b60405180910390a35b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051611086959493929190614be9565b60405180910390a4505050505050505050565b6110a58384848461283a565b50505050565b60006110b93385858561283a565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461110a5760405163c51efddd60e01b815260040160405180910390fd5b611136338384846040518060200160405280600081525060405180602001604052806000815250612646565b5050565b60405133906000906111529083908690602001614abe565b6040516020818303038152906040528051906020012090506111748184612806565b6111915760405163dae1880960e01b815260040160405180910390fd5b61119b8184612b0d565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806111e283612b26565b91509150915091565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190614c1c565b905061127f85826121ab565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611309573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bf29190810190614c35565b3360008181526011602090815260408083206001600160a01b03871684529091528120549091610bee918590611368908690614cc3565b612597565b610c2481612be2565b33301461139657604051630fff4cc960e31b815260040160405180910390fd5b610d5f8385848461283a565b600054610100900460ff16158080156113c25750600054600160ff909116105b806113dc5750303b1580156113dc575060005460ff166001145b6114015760405162461bcd60e51b81526004016113f890614cd6565b60405180910390fd5b6000805460ff191660011790558015611424576000805461ff0019166101001790555b6114348787878787876000612bed565b801561147a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610c24333333846040518060200160405280600081525060405180602001604052806000815250612cb5565b60006114c760008051602061508e8339815191525490565b905060006001600160a01b038216156114e05781611502565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461152d57604051630484acab60e01b815260040160405180910390fd5b61153683612e68565b826001600160a01b031663ef43d2c66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611574573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115989190614d24565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614158061166b5750826001600160a01b0316634c5c0c856040518163ffffffff1660e01b8152600401602060405180830381865afa158015611611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116359190614d24565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614155b156116895760405163ef1b6ddf60e01b815260040160405180910390fd5b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116d75760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084166000908152601160209081526040808320938616835292905220546116899084908490611368908590614cc3565b6060600085858560405160200161172993929190614a75565b60405160208183030381529060405280519060200120905061174b81846130a2565b9695505050505050565b6000610a977f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b611689838383612597565b6110a53333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612cb5915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461177f5760405163c51efddd60e01b815260040160405180910390fd5b336118316012828a613129565b61184e5760405163f7f0222760e01b815260040160405180910390fd5b6118c88189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600092019190915250600192506131d2915050565b5050505050505050565b33301461177f57604051630fff4cc960e31b815260040160405180910390fd5b606060008484604051602001611909929190614abe565b60405160208183030381529060405280519060200120905061192b81846130a2565b95945050505050565b6000610a9760008051602061508e8339815191525490565b600080611958836111eb565b50505090506000811261196b578061196e565b60005b9392505050565b6000610bf2827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109749190614c1c565b611136333384846040518060200160405280600081525060405180602001604052806000815250612646565b6000611a4160008051602061508e8339815191525490565b905060006001600160a01b03821615611a5a5781611a7c565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b03821614611aa757604051630484acab60e01b815260040160405180910390fd5b6000611abf60008051602061508e8339815191525490565b9050611ad78460008051602061508e83398151915255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611b2a6012828461324b565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610aab90614a3b565b600054610100900460ff1615808015611b9d5750600054600160ff909116105b80611bb75750303b158015611bb7575060005460ff166001145b611bd35760405162461bcd60e51b81526004016113f890614cd6565b6000805460ff191660011790558015611bf6576000805461ff0019166101001790555b8015610c24576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6110a53333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506131d29050565b333014611cb357604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526116899133918691869190151590869061334f565b6040513390600090611cf19083908790602001614abe565b604051602081830303815290604052805190602001209050611d468185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061255f92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610cfb93929190614afb565b611136333383611d923361194c565b61283a565b6000610bee3384611368856040518060600160405280602a81526020016150ae602a91393360009081526011602090815260408083206001600160a01b038d168452909152902054919061341c565b600061196e3333858561283a565b6110a53385856001808787613448565b600080600080611e1486866121ab565b9250925092506000611e3c828411611e2d576000612a9f565b611e378385614d41565b612a9f565b611e469085614ba1565b60001315979650505050505050565b6000610bf2827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eb9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dc9190614c1c565b333014611efd57604051630fff4cc960e31b815260040160405180910390fd5b8051604080516000815260208101909152611689913391869186919015159081908790613448565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611f6e5760405163c51efddd60e01b815260040160405180910390fd5b6116898383611368846040518060600160405280602a81526020016150ae602a91396001600160a01b03808a166000908152601160209081526040808320938c1683529290522054919061341c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146120065760405163c51efddd60e01b815260040160405180910390fd5b6110a533858585856040518060200160405280600081525060016131d2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461206e5760405163c51efddd60e01b815260040160405180910390fd5b611136338384846040518060200160405280600081525060405180602001604052806000815250612cb5565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190614b3c565b61213f5760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b038216600090815260026020526040902054612163908290614ba1565b6001600160a01b0390921660009081526002602052604090209190915550565b600061196e60128484613129565b60008061219e84846121ab565b5050600013949350505050565b6001600160a01b0382166000908152600260205260408120549080806121d08661128e565b905060005b81518110156122d65760008060008484815181106121f5576121f5614d54565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015612254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122789190614d6a565b919450925090506122898288614cc3565b96506122958187614cc3565b95506122b28183116122a8576000612a9f565b611e378284614d41565b6122bc848a614ba1565b6122c69190614bc9565b97505050508060010190506121d5565b50509250925092565b600054610100900460ff16158080156122ff5750600054600160ff909116105b806123195750303b158015612319575060005460ff166001145b6123355760405162461bcd60e51b81526004016113f890614cd6565b6000805460ff191660011790558015612358576000805461ff0019166101001790555b61236788888888888888612bed565b80156118c8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336123c360128284613516565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b3361241460128289613129565b6124315760405163f7f0222760e01b815260040160405180910390fd5b61147a8188898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525061264692505050565b6116893333338686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612646915050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561255357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612535575b50505050509050919050565b60005b815181101561168957600082828151811061257f5761257f614d54565b60209081029190910101518483015550600101612562565b6001600160a01b0383166125be57604051638163862760e01b815260040160405180910390fd5b6001600160a01b0382166125e5576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b031661266f57604051637bce7b2b60e11b815260040160405180910390fd5b60008061267b85612b26565b91509150612692888883875160001415888861334f565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156126db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ff9190614c1c565b600e54909150612719906001600160a01b0316888561360e565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127869190614c1c565b905060006127948284614d41565b90508085146127b657604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d856040516127f191815260200190565b60405180910390a25050505050505050505050565b6000805b828110156128305783810154801561282757600192505050610bf2565b5060010161280a565b5060009392505050565b60006001600160a01b0384166128635760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b03831661288a5760405163e219bd3960e01b815260040160405180910390fd5b60003390506128bb818686866040518060200160405280600081525060405180602001604052806000815250613671565b846001600160a01b0316866001600160a01b03161461294e5761294e8587611368866040518060600160405280602d81526020016150f8602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b031681526020019081526020016000205461341c9092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129df9190614d24565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a999190614d24565b91505090565b60006001600160ff1b03821115612b095760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016113f8565b5090565b60005b8181101561168957600083820155600101612b10565b600e54600090819081906012600160a01b90910460ff161015612b8557600e54612b5b90600160a01b900460ff166012614d98565b612b6690600a614e95565b9050612b728185614ea4565b9250612b7e8184614ec6565b9150612bdc565b600e546012600160a01b90910460ff161115612bd557600e54612bb490601290600160a01b900460ff16614d98565b612bbf90600a614e95565b9050612bcb8185614ec6565b9250839150612bdc565b8391508192505b50915091565b610c24601282613710565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612c22858783614f2d565b506010612c30838583614f2d565b50612c478160008051602061508e83398151915255565b612c5030613792565b60405160008082529081906000805160206150d88339815191529060200160405180910390a36040516001600160a01b038216906000907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b600e546001600160a01b0316612cde57604051637bce7b2b60e11b815260040160405180910390fd5b600080612cea85612b26565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5f9190614c1c565b600e54909150612d7a906001600160a01b03168930866138c0565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de79190614c1c565b90506000612df58383614d41565b9050808514612e1757604051631c7c26d360e31b815260040160405180910390fd5b8651612e2d908c908b9087901515808c8c613448565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df856040516127f191815260200190565b6000612e927f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603612ee85760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016113f8565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4a9190614c1c565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001914612fc45760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016113f8565b6001600160a01b038116300361301c5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016113f8565b613044817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611c34565b6060816001600160401b038111156130bc576130bc61428d565b6040519080825280602002602001820160405280156130e5578160200160208202803683370190505b50905060005b828110156131225760008185015490508083838151811061310e5761310e614d54565b6020908102919091010152506001016130eb565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061319857506001600160a01b038316600090815260018501602052604090205460ff16801561319857506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b806110b957506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166131f95760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166132205760405163e219bd3960e01b815260040160405180910390fd5b61322e8787878787876138f8565b61323c878787878787613671565b61147a87878787878787613a1f565b806001600160a01b0316826001600160a01b0316036132c25760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016113f8565b6001600160a01b038116600090815260018401602052604090205460ff1615613318576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03851661337657604051632e8aac6160e21b815260040160405180910390fd5b821561338b5761338b868660008786866138f8565b6133958585613b6f565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a40988685856040516133dc93929190614fec565b60405180910390a36040518481526000906001600160a01b038716906000805160206150d8833981519152906020015b60405180910390a3505050505050565b600081848411156134405760405162461bcd60e51b81526004016113f891906140de565b505050900390565b6001600160a01b03861661346f57604051630d24315760e01b815260040160405180910390fd5b6134798686613c7f565b831561348f5761348f8760008888868689613a1f565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d8785856040516134d693929190614fec565b60405180910390a36040518581526001600160a01b038716906000906000805160206150d88339815191529060200160405180910390a350505050505050565b336001600160a01b038216036135815760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016113f8565b6001600160a01b038116600090815260018401602052604090205460ff16156135db576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b03831660248201526044810182905261168990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613cd9565b613684858561367f86612a9f565b613dae565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc826146779878686866040516136d593929190614fec565b60405180910390a4836001600160a01b0316856001600160a01b03166000805160206150d88339815191528560405161340c91815260200190565b81541561371f5761371f614b8b565b80516137319083906020840190613fd0565b5060005b815181101561168957600183600101600084848151811061375857613758614d54565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101613735565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561381357600080fd5b505af1158015613827573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156138ac57600080fd5b505af1158015610d5f573d6000803e3d6000fd5b6040516001600160a01b03808516602483015283166044820152606481018290526110a59085906323b872dd60e01b9060840161363a565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399d9190614d24565b90506001600160a01b0381161561147a57604051633ad5cbc160e11b81526001600160a01b038216906375ab9782906139e4908a908a908a908a908a908a90600401615017565b600060405180830381600087803b1580156139fe57600080fd5b505af1158015613a12573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613aa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ac49190614d24565b90506001600160a01b03811615613b40576040516223de2960e01b81526001600160a01b038216906223de2990613b09908b908b908b908b908b908b90600401615017565b600060405180830381600087803b158015613b2357600080fd5b505af1158015613b37573d6000803e3d6000fd5b505050506118c8565b81156118c8576001600160a01b0386163b156118c85760405163fe737d0560e01b815260040160405180910390fd5b6000613bf7837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bd3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c09190614c1c565b50509050613c0482612a9f565b811215613c245760405163043b37d160e21b815260040160405180910390fd5b613c2d82612a9f565b6001600160a01b038416600090815260026020526040902054613c509190614bc9565b6001600160a01b038416600090815260026020526040902055600354613c77908390614d41565b600355505050565b613c8881612a9f565b6001600160a01b038316600090815260026020526040902054613cab9190614ba1565b6001600160a01b038316600090815260026020526040902055600354613cd2908290614cc3565b6003555050565b6000613d2e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613ead9092919063ffffffff16565b9050805160001480613d4f575080806020019051810190613d4f9190614b3c565b6116895760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016113f8565b6000613e12847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bd3573d6000803e3d6000fd5b5050905081811215613e3757604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b038416600090815260026020526040902054613e5b908390614bc9565b6001600160a01b038086166000908152600260205260408082209390935590851681522054613e8b908390614ba1565b6001600160a01b03909316600090815260026020526040902092909255505050565b60606110b9848460008585600080866001600160a01b03168587604051613ed49190615071565b60006040518083038185875af1925050503d8060008114613f11576040519150601f19603f3d011682016040523d82523d6000602084013e613f16565b606091505b5091509150613f2787838387613f32565b979650505050505050565b60608315613fa1578251600003613f9a576001600160a01b0385163b613f9a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016113f8565b50816110b9565b6110b98383815115613fb65781518083602001fd5b8060405162461bcd60e51b81526004016113f891906140de565b828054828255906000526020600020908101928215614025579160200282015b8281111561402557825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613ff0565b50612b099291505b80821115612b09576000815560010161402d565b6020808252825182820181905260009190848201906040850190845b818110156140825783516001600160a01b03168352928401929184019160010161405d565b50909695505050505050565b60005b838110156140a9578181015183820152602001614091565b50506000910152565b600081518084526140ca81602086016020860161408e565b601f01601f19169290920160200192915050565b60208152600061196e60208301846140b2565b6001600160a01b0381168114610c2457600080fd5b60008083601f84011261411857600080fd5b5081356001600160401b0381111561412f57600080fd5b6020830191508360208260051b850101111561414a57600080fd5b9250929050565b6000806000806060858703121561416757600080fd5b8435614172816140f1565b93506020850135925060408501356001600160401b0381111561419457600080fd5b6141a087828801614106565b95989497509550505050565b600080604083850312156141bf57600080fd5b82356141ca816140f1565b946020939093013593505050565b6000602082840312156141ea57600080fd5b5035919050565b60008060006040848603121561420657600080fd5b8335925060208401356001600160401b0381111561422357600080fd5b61422f86828701614106565b9497909650939450505050565b6000806000806080858703121561425257600080fd5b843561425d816140f1565b9350602085013561426d816140f1565b9250604085013561427d816140f1565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156142cb576142cb61428d565b604052919050565b600082601f8301126142e457600080fd5b81356001600160401b038111156142fd576142fd61428d565b614310601f8201601f19166020016142a3565b81815284602083860101111561432557600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c2457600080fd5b600080600080600080600060e0888a03121561436b57600080fd5b8735965060208801356001600160401b0381111561438857600080fd5b6143948a828b016142d3565b96505060408801356143a5816140f1565b945060608801356143b581614342565b935060808801356143c5816140f1565b9699959850939692959460a0840135945060c09093013592915050565b6000806000606084860312156143f757600080fd5b8335614402816140f1565b92506020840135614412816140f1565b929592945050506040919091013590565b6000806040838503121561443657600080fd5b50508035926020909101359150565b60006020828403121561445757600080fd5b813561196e816140f1565b60006001600160401b0382111561447b5761447b61428d565b5060051b60200190565b6000602080838503121561449857600080fd5b82356001600160401b038111156144ae57600080fd5b8301601f810185136144bf57600080fd5b80356144d26144cd82614462565b6142a3565b81815260059190911b820183019083810190878311156144f157600080fd5b928401925b82841015613f27578335614509816140f1565b825292840192908401906144f6565b803560ff8116811461452957600080fd5b919050565b60008083601f84011261454057600080fd5b5081356001600160401b0381111561455757600080fd5b60208301915083602082850101111561414a57600080fd5b6000806000806000806080878903121561458857600080fd5b8635614593816140f1565b95506145a160208801614518565b945060408701356001600160401b03808211156145bd57600080fd5b6145c98a838b0161452e565b909650945060608901359150808211156145e257600080fd5b506145ef89828a0161452e565b979a9699509497509295939492505050565b6000806000806080858703121561461757600080fd5b8435614622816140f1565b93506020850135614632816140f1565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b8181101561408257835183529284019291840191600101614663565b6000806000806060858703121561469557600080fd5b84356146a0816140f1565b93506020850135925060408501356001600160401b038111156146c257600080fd5b6141a08782880161452e565b600080600080600080600060a0888a0312156146e957600080fd5b87356146f4816140f1565b96506020880135614704816140f1565b95506040880135945060608801356001600160401b038082111561472757600080fd5b6147338b838c0161452e565b909650945060808a013591508082111561474c57600080fd5b506147598a828b0161452e565b989b979a50959850939692959293505050565b60008060006060848603121561478157600080fd5b833561478c816140f1565b95602085013595506040909401359392505050565b6000806000606084860312156147b657600080fd5b83356147c1816140f1565b92506020840135915060408401356001600160401b038111156147e357600080fd5b6147ef868287016142d3565b9150509250925092565b6000806000806080858703121561480f57600080fd5b843561481a816140f1565b93506020850135925060408501356001600160401b038082111561483d57600080fd5b614849888389016142d3565b9350606087013591508082111561485f57600080fd5b5061486c878288016142d3565b91505092959194509250565b6000806000806080858703121561488e57600080fd5b8435614899816140f1565b935060208501356148a9816140f1565b92506040850135915060608501356001600160401b038111156148cb57600080fd5b61486c878288016142d3565b600080604083850312156148ea57600080fd5b82356148f5816140f1565b91506020830135614905816140f1565b809150509250929050565b600080600080600080600060a0888a03121561492b57600080fd5b8735614936816140f1565b965061494460208901614518565b955060408801356001600160401b038082111561496057600080fd5b61496c8b838c0161452e565b909750955060608a013591508082111561498557600080fd5b506149928a828b0161452e565b90945092505060808801356149a6816140f1565b8091505092959891949750929550565b600080600080600080608087890312156149cf57600080fd5b86356149da816140f1565b95506020870135945060408701356001600160401b03808211156145bd57600080fd5b600080600060408486031215614a1257600080fd5b8335925060208401356001600160401b03811115614a2f57600080fd5b61422f8682870161452e565b600181811c90821680614a4f57607f821691505b602082108103614a6f57634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b03831115614b2257600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215614b4e57600080fd5b815161196e81614342565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201614b8457614b84614b59565b5060000390565b634e487b7160e01b600052600160045260246000fd5b8082018281126000831280158216821582161715614bc157614bc1614b59565b505092915050565b818103600083128015838313168383128216171561312257613122614b59565b85815260018060a01b038516602082015283604082015282606082015260a060808201526000613f2760a08301846140b2565b600060208284031215614c2e57600080fd5b5051919050565b60006020808385031215614c4857600080fd5b82516001600160401b03811115614c5e57600080fd5b8301601f81018513614c6f57600080fd5b8051614c7d6144cd82614462565b81815260059190911b82018301908381019087831115614c9c57600080fd5b928401925b82841015613f27578351614cb4816140f1565b82529284019290840190614ca1565b80820180821115610bf257610bf2614b59565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600060208284031215614d3657600080fd5b815161196e816140f1565b81810381811115610bf257610bf2614b59565b634e487b7160e01b600052603260045260246000fd5b600080600060608486031215614d7f57600080fd5b8351925060208401519150604084015190509250925092565b60ff8281168282160390811115610bf257610bf2614b59565b600181815b80851115614dec578160001904821115614dd257614dd2614b59565b80851615614ddf57918102915b93841c9390800290614db6565b509250929050565b600082614e0357506001610bf2565b81614e1057506000610bf2565b8160018114614e265760028114614e3057614e4c565b6001915050610bf2565b60ff841115614e4157614e41614b59565b50506001821b610bf2565b5060208310610133831016604e8410600b8410161715614e6f575081810a610bf2565b614e798383614db1565b8060001904821115614e8d57614e8d614b59565b029392505050565b600061196e60ff841683614df4565b600082614ec157634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610bf257610bf2614b59565b601f821115611689576000816000526020600020601f850160051c81016020861015614f065750805b601f850160051c820191505b81811015614f2557828155600101614f12565b505050505050565b6001600160401b03831115614f4457614f4461428d565b614f5883614f528354614a3b565b83614edd565b6000601f841160018114614f8c5760008515614f745750838201355b600019600387901b1c1916600186901b178355610d5f565b600083815260209020601f19861690835b82811015614fbd5786850135825560209485019460019092019101614f9d565b5086821015614fda5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b83815260606020820152600061500560608301856140b2565b828103604084015261174b81856140b2565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c060808201819052600090615052908301856140b2565b82810360a084015261506481856140b2565b9998505050505050505050565b6000825161508381846020870161408e565b919091019291505056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207113998c3f289916d0409de6d6459a6ed5af6684d9fba3ed913d28e03b195ae364736f6c63430008170033";
2205
2205
  const isSuperArgs = (xs) => xs.length > 1;
2206
2206
  class SuperTokenMock__factory extends ethers_1.ContractFactory {
2207
2207
  constructor(...args) {