@superfluid-finance/sdk-core 0.9.1-dev.50a013d.0 → 0.9.1-dev.65eb168.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 (315) hide show
  1. package/README.md +3 -3
  2. package/dist/index.umd.js +29885 -30604
  3. package/dist/main/typechain-types/contracts/interfaces/superfluid/ISuperTokenFactory.d.ts +1 -53
  4. package/dist/main/typechain-types/contracts/interfaces/superfluid/ISuperTokenFactory.d.ts.map +1 -1
  5. package/dist/main/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock.d.ts +1 -79
  6. package/dist/main/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock.d.ts.map +1 -1
  7. package/dist/main/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42.d.ts +1 -79
  8. package/dist/main/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42.d.ts.map +1 -1
  9. package/dist/main/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester.d.ts +1 -79
  10. package/dist/main/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester.d.ts.map +1 -1
  11. package/dist/main/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester.d.ts +1 -79
  12. package/dist/main/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester.d.ts.map +1 -1
  13. package/dist/main/typechain-types/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory.d.ts +1 -79
  14. package/dist/main/typechain-types/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory.d.ts.map +1 -1
  15. package/dist/main/typechain-types/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactoryBase.d.ts +1 -79
  16. package/dist/main/typechain-types/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactoryBase.d.ts.map +1 -1
  17. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts +1 -1
  18. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js +1 -1
  19. package/dist/main/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.d.ts +1 -1
  20. package/dist/main/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.js +1 -1
  21. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts +1 -1
  22. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js +1 -1
  23. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.d.ts +1 -1
  24. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.js +1 -1
  25. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts +1 -1
  26. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js +1 -1
  27. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.d.ts +1 -1
  28. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.js +1 -1
  29. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.d.ts +1 -1
  30. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.js +1 -1
  31. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperTokenFactory__factory.d.ts +0 -58
  32. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperTokenFactory__factory.d.ts.map +1 -1
  33. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperTokenFactory__factory.js +0 -77
  34. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperTokenFactory__factory.js.map +1 -1
  35. package/dist/main/typechain-types/factories/contracts/mocks/AgreementMock.t.sol/AgreementMock__factory.d.ts +1 -1
  36. package/dist/main/typechain-types/factories/contracts/mocks/AgreementMock.t.sol/AgreementMock__factory.js +1 -1
  37. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ClosingOnUpdateFlowTestApp__factory.d.ts +1 -1
  38. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ClosingOnUpdateFlowTestApp__factory.js +1 -1
  39. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ExclusiveInflowTestApp__factory.d.ts +1 -1
  40. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ExclusiveInflowTestApp__factory.js +1 -1
  41. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/FlowExchangeTestApp__factory.d.ts +1 -1
  42. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/FlowExchangeTestApp__factory.js +1 -1
  43. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/NonClosableOutflowTestApp__factory.d.ts +1 -1
  44. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/NonClosableOutflowTestApp__factory.js +1 -1
  45. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/SelfDeletingFlowTestApp__factory.d.ts +1 -1
  46. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/SelfDeletingFlowTestApp__factory.js +1 -1
  47. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientDrainingGas__factory.d.ts +1 -1
  48. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientDrainingGas__factory.js +1 -1
  49. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientReverting__factory.d.ts +1 -1
  50. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientReverting__factory.js +1 -1
  51. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777SenderRecipientMock__factory.d.ts +1 -1
  52. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777SenderRecipientMock__factory.js +1 -1
  53. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester.t.sol/IDASuperAppTester__factory.d.ts +1 -1
  54. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester.t.sol/IDASuperAppTester__factory.js +1 -1
  55. package/dist/main/typechain-types/factories/contracts/mocks/MockSmartWallet.t.sol/MockSmartWallet__factory.d.ts +1 -1
  56. package/dist/main/typechain-types/factories/contracts/mocks/MockSmartWallet.t.sol/MockSmartWallet__factory.js +1 -1
  57. package/dist/main/typechain-types/factories/contracts/mocks/MultiFlowTesterApp.t.sol/MultiFlowTesterApp__factory.d.ts +1 -1
  58. package/dist/main/typechain-types/factories/contracts/mocks/MultiFlowTesterApp.t.sol/MultiFlowTesterApp__factory.js +1 -1
  59. package/dist/main/typechain-types/factories/contracts/mocks/StreamRedirector.t.sol/StreamRedirector__factory.d.ts +1 -1
  60. package/dist/main/typechain-types/factories/contracts/mocks/StreamRedirector.t.sol/StreamRedirector__factory.js +1 -1
  61. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  62. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppFactoryMock__factory.js +1 -1
  63. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  64. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock2ndLevel__factory.js +1 -1
  65. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockAux__factory.d.ts +1 -1
  66. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockAux__factory.js +1 -1
  67. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  68. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  69. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  70. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  71. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockUsingRegisterApp__factory.d.ts +1 -1
  72. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockUsingRegisterApp__factory.js +1 -1
  73. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  74. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  75. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock__factory.d.ts +1 -1
  76. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock__factory.js +1 -1
  77. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.d.ts +1 -82
  78. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.d.ts.map +1 -1
  79. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.js +1 -108
  80. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.js.map +1 -1
  81. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.d.ts +1 -82
  82. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.d.ts.map +1 -1
  83. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.js +1 -108
  84. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.js.map +1 -1
  85. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.d.ts +1 -82
  86. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.d.ts.map +1 -1
  87. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.js +1 -108
  88. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.js.map +1 -1
  89. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.d.ts +1 -82
  90. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.d.ts.map +1 -1
  91. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.js +1 -108
  92. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.js.map +1 -1
  93. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFAMock__factory.d.ts +1 -1
  94. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFAMock__factory.js +1 -1
  95. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFASuperAppMock__factory.d.ts +1 -1
  96. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFASuperAppMock__factory.js +1 -1
  97. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDAMock__factory.d.ts +1 -1
  98. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDAMock__factory.js +1 -1
  99. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDASuperAppMock__factory.d.ts +1 -1
  100. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDASuperAppMock__factory.js +1 -1
  101. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.d.ts +1 -1
  102. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.js +1 -1
  103. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.d.ts +1 -1
  104. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.js +1 -1
  105. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.d.ts +1 -1
  106. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.js +1 -1
  107. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.t.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.d.ts +1 -1
  108. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.t.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.js +1 -1
  109. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidMock__factory.d.ts +1 -1
  110. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidMock__factory.js +1 -1
  111. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidUpgradabilityTester__factory.d.ts +1 -1
  112. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidUpgradabilityTester__factory.js +1 -1
  113. package/dist/main/typechain-types/factories/contracts/superfluid/AaveETHYieldBackend__factory.d.ts +1 -1
  114. package/dist/main/typechain-types/factories/contracts/superfluid/AaveETHYieldBackend__factory.js +1 -1
  115. package/dist/main/typechain-types/factories/contracts/superfluid/AaveYieldBackend__factory.d.ts +1 -1
  116. package/dist/main/typechain-types/factories/contracts/superfluid/AaveYieldBackend__factory.js +1 -1
  117. package/dist/main/typechain-types/factories/contracts/superfluid/ERC4626YieldBackend__factory.d.ts +1 -1
  118. package/dist/main/typechain-types/factories/contracts/superfluid/ERC4626YieldBackend__factory.js +1 -1
  119. package/dist/main/typechain-types/factories/contracts/superfluid/FullUpgradableSuperTokenProxy__factory.d.ts +1 -1
  120. package/dist/main/typechain-types/factories/contracts/superfluid/FullUpgradableSuperTokenProxy__factory.js +1 -1
  121. package/dist/main/typechain-types/factories/contracts/superfluid/SparkYieldBackend.sol/SparkYieldBackend__factory.d.ts +1 -1
  122. package/dist/main/typechain-types/factories/contracts/superfluid/SparkYieldBackend.sol/SparkYieldBackend__factory.js +1 -1
  123. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactoryBase__factory.d.ts +0 -81
  124. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactoryBase__factory.d.ts.map +1 -1
  125. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactoryBase__factory.js +0 -107
  126. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactoryBase__factory.js.map +1 -1
  127. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.d.ts +1 -82
  128. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.d.ts.map +1 -1
  129. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.js +1 -108
  130. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.js.map +1 -1
  131. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts +1 -1
  132. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.js +1 -1
  133. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +1 -1
  134. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +1 -1
  135. package/dist/main/typechain-types/factories/contracts/utils/BatchLiquidator__factory.d.ts +1 -1
  136. package/dist/main/typechain-types/factories/contracts/utils/BatchLiquidator__factory.js +1 -1
  137. package/dist/main/typechain-types/factories/contracts/utils/BlindMacroForwarder__factory.d.ts +1 -1
  138. package/dist/main/typechain-types/factories/contracts/utils/BlindMacroForwarder__factory.js +1 -1
  139. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts +1 -1
  140. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js +1 -1
  141. package/dist/main/typechain-types/factories/contracts/utils/ClearMacroForwarderV1.sol/ClearMacroForwarderV1__factory.d.ts +1 -1
  142. package/dist/main/typechain-types/factories/contracts/utils/ClearMacroForwarderV1.sol/ClearMacroForwarderV1__factory.js +1 -1
  143. package/dist/main/typechain-types/factories/contracts/utils/ClearMacroForwarderV1WithPermit2__factory.d.ts +1 -1
  144. package/dist/main/typechain-types/factories/contracts/utils/ClearMacroForwarderV1WithPermit2__factory.js +1 -1
  145. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts +1 -1
  146. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js +1 -1
  147. package/dist/main/typechain-types/factories/contracts/utils/SuperUpgrader__factory.d.ts +1 -1
  148. package/dist/main/typechain-types/factories/contracts/utils/SuperUpgrader__factory.js +1 -1
  149. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer.t.sol/SuperfluidFrameworkDeployer__factory.d.ts +1 -1
  150. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer.t.sol/SuperfluidFrameworkDeployer__factory.js +1 -1
  151. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps.t.sol/SuperfluidFrameworkDeploymentSteps__factory.d.ts +1 -1
  152. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps.t.sol/SuperfluidFrameworkDeploymentSteps__factory.js +1 -1
  153. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.d.ts +1 -1
  154. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.js +1 -1
  155. package/dist/main/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.d.ts +1 -1
  156. package/dist/main/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.js +1 -1
  157. package/dist/main/typechain-types/factories/contracts/utils/TestGovernance__factory.d.ts +1 -1
  158. package/dist/main/typechain-types/factories/contracts/utils/TestGovernance__factory.js +1 -1
  159. package/dist/module/typechain-types/contracts/interfaces/superfluid/ISuperTokenFactory.d.ts +1 -53
  160. package/dist/module/typechain-types/contracts/interfaces/superfluid/ISuperTokenFactory.d.ts.map +1 -1
  161. package/dist/module/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock.d.ts +1 -79
  162. package/dist/module/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock.d.ts.map +1 -1
  163. package/dist/module/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42.d.ts +1 -79
  164. package/dist/module/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42.d.ts.map +1 -1
  165. package/dist/module/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester.d.ts +1 -79
  166. package/dist/module/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester.d.ts.map +1 -1
  167. package/dist/module/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester.d.ts +1 -79
  168. package/dist/module/typechain-types/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester.d.ts.map +1 -1
  169. package/dist/module/typechain-types/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory.d.ts +1 -79
  170. package/dist/module/typechain-types/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory.d.ts.map +1 -1
  171. package/dist/module/typechain-types/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactoryBase.d.ts +1 -79
  172. package/dist/module/typechain-types/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactoryBase.d.ts.map +1 -1
  173. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts +1 -1
  174. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js +1 -1
  175. package/dist/module/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.d.ts +1 -1
  176. package/dist/module/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.js +1 -1
  177. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts +1 -1
  178. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js +1 -1
  179. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.d.ts +1 -1
  180. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.js +1 -1
  181. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts +1 -1
  182. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js +1 -1
  183. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.d.ts +1 -1
  184. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.js +1 -1
  185. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.d.ts +1 -1
  186. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.js +1 -1
  187. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperTokenFactory__factory.d.ts +0 -58
  188. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperTokenFactory__factory.d.ts.map +1 -1
  189. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperTokenFactory__factory.js +0 -77
  190. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperTokenFactory__factory.js.map +1 -1
  191. package/dist/module/typechain-types/factories/contracts/mocks/AgreementMock.t.sol/AgreementMock__factory.d.ts +1 -1
  192. package/dist/module/typechain-types/factories/contracts/mocks/AgreementMock.t.sol/AgreementMock__factory.js +1 -1
  193. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ClosingOnUpdateFlowTestApp__factory.d.ts +1 -1
  194. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ClosingOnUpdateFlowTestApp__factory.js +1 -1
  195. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ExclusiveInflowTestApp__factory.d.ts +1 -1
  196. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ExclusiveInflowTestApp__factory.js +1 -1
  197. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/FlowExchangeTestApp__factory.d.ts +1 -1
  198. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/FlowExchangeTestApp__factory.js +1 -1
  199. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/NonClosableOutflowTestApp__factory.d.ts +1 -1
  200. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/NonClosableOutflowTestApp__factory.js +1 -1
  201. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/SelfDeletingFlowTestApp__factory.d.ts +1 -1
  202. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/SelfDeletingFlowTestApp__factory.js +1 -1
  203. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientDrainingGas__factory.d.ts +1 -1
  204. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientDrainingGas__factory.js +1 -1
  205. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientReverting__factory.d.ts +1 -1
  206. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientReverting__factory.js +1 -1
  207. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777SenderRecipientMock__factory.d.ts +1 -1
  208. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777SenderRecipientMock__factory.js +1 -1
  209. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester.t.sol/IDASuperAppTester__factory.d.ts +1 -1
  210. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester.t.sol/IDASuperAppTester__factory.js +1 -1
  211. package/dist/module/typechain-types/factories/contracts/mocks/MockSmartWallet.t.sol/MockSmartWallet__factory.d.ts +1 -1
  212. package/dist/module/typechain-types/factories/contracts/mocks/MockSmartWallet.t.sol/MockSmartWallet__factory.js +1 -1
  213. package/dist/module/typechain-types/factories/contracts/mocks/MultiFlowTesterApp.t.sol/MultiFlowTesterApp__factory.d.ts +1 -1
  214. package/dist/module/typechain-types/factories/contracts/mocks/MultiFlowTesterApp.t.sol/MultiFlowTesterApp__factory.js +1 -1
  215. package/dist/module/typechain-types/factories/contracts/mocks/StreamRedirector.t.sol/StreamRedirector__factory.d.ts +1 -1
  216. package/dist/module/typechain-types/factories/contracts/mocks/StreamRedirector.t.sol/StreamRedirector__factory.js +1 -1
  217. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  218. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppFactoryMock__factory.js +1 -1
  219. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  220. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock2ndLevel__factory.js +1 -1
  221. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockAux__factory.d.ts +1 -1
  222. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockAux__factory.js +1 -1
  223. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  224. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  225. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  226. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  227. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockUsingRegisterApp__factory.d.ts +1 -1
  228. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockUsingRegisterApp__factory.js +1 -1
  229. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  230. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  231. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock__factory.d.ts +1 -1
  232. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock__factory.js +1 -1
  233. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.d.ts +1 -82
  234. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.d.ts.map +1 -1
  235. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.js +1 -108
  236. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.js.map +1 -1
  237. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.d.ts +1 -82
  238. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.d.ts.map +1 -1
  239. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.js +1 -108
  240. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.js.map +1 -1
  241. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.d.ts +1 -82
  242. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.d.ts.map +1 -1
  243. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.js +1 -108
  244. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.js.map +1 -1
  245. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.d.ts +1 -82
  246. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.d.ts.map +1 -1
  247. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.js +1 -108
  248. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.js.map +1 -1
  249. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFAMock__factory.d.ts +1 -1
  250. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFAMock__factory.js +1 -1
  251. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFASuperAppMock__factory.d.ts +1 -1
  252. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFASuperAppMock__factory.js +1 -1
  253. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDAMock__factory.d.ts +1 -1
  254. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDAMock__factory.js +1 -1
  255. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDASuperAppMock__factory.d.ts +1 -1
  256. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDASuperAppMock__factory.js +1 -1
  257. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.d.ts +1 -1
  258. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.js +1 -1
  259. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.d.ts +1 -1
  260. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.js +1 -1
  261. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.d.ts +1 -1
  262. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.js +1 -1
  263. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.t.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.d.ts +1 -1
  264. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.t.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.js +1 -1
  265. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidMock__factory.d.ts +1 -1
  266. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidMock__factory.js +1 -1
  267. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidUpgradabilityTester__factory.d.ts +1 -1
  268. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidUpgradabilityTester__factory.js +1 -1
  269. package/dist/module/typechain-types/factories/contracts/superfluid/AaveETHYieldBackend__factory.d.ts +1 -1
  270. package/dist/module/typechain-types/factories/contracts/superfluid/AaveETHYieldBackend__factory.js +1 -1
  271. package/dist/module/typechain-types/factories/contracts/superfluid/AaveYieldBackend__factory.d.ts +1 -1
  272. package/dist/module/typechain-types/factories/contracts/superfluid/AaveYieldBackend__factory.js +1 -1
  273. package/dist/module/typechain-types/factories/contracts/superfluid/ERC4626YieldBackend__factory.d.ts +1 -1
  274. package/dist/module/typechain-types/factories/contracts/superfluid/ERC4626YieldBackend__factory.js +1 -1
  275. package/dist/module/typechain-types/factories/contracts/superfluid/FullUpgradableSuperTokenProxy__factory.d.ts +1 -1
  276. package/dist/module/typechain-types/factories/contracts/superfluid/FullUpgradableSuperTokenProxy__factory.js +1 -1
  277. package/dist/module/typechain-types/factories/contracts/superfluid/SparkYieldBackend.sol/SparkYieldBackend__factory.d.ts +1 -1
  278. package/dist/module/typechain-types/factories/contracts/superfluid/SparkYieldBackend.sol/SparkYieldBackend__factory.js +1 -1
  279. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactoryBase__factory.d.ts +0 -81
  280. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactoryBase__factory.d.ts.map +1 -1
  281. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactoryBase__factory.js +0 -107
  282. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactoryBase__factory.js.map +1 -1
  283. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.d.ts +1 -82
  284. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.d.ts.map +1 -1
  285. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.js +1 -108
  286. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.js.map +1 -1
  287. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts +1 -1
  288. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.js +1 -1
  289. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +1 -1
  290. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +1 -1
  291. package/dist/module/typechain-types/factories/contracts/utils/BatchLiquidator__factory.d.ts +1 -1
  292. package/dist/module/typechain-types/factories/contracts/utils/BatchLiquidator__factory.js +1 -1
  293. package/dist/module/typechain-types/factories/contracts/utils/BlindMacroForwarder__factory.d.ts +1 -1
  294. package/dist/module/typechain-types/factories/contracts/utils/BlindMacroForwarder__factory.js +1 -1
  295. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts +1 -1
  296. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js +1 -1
  297. package/dist/module/typechain-types/factories/contracts/utils/ClearMacroForwarderV1.sol/ClearMacroForwarderV1__factory.d.ts +1 -1
  298. package/dist/module/typechain-types/factories/contracts/utils/ClearMacroForwarderV1.sol/ClearMacroForwarderV1__factory.js +1 -1
  299. package/dist/module/typechain-types/factories/contracts/utils/ClearMacroForwarderV1WithPermit2__factory.d.ts +1 -1
  300. package/dist/module/typechain-types/factories/contracts/utils/ClearMacroForwarderV1WithPermit2__factory.js +1 -1
  301. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts +1 -1
  302. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js +1 -1
  303. package/dist/module/typechain-types/factories/contracts/utils/SuperUpgrader__factory.d.ts +1 -1
  304. package/dist/module/typechain-types/factories/contracts/utils/SuperUpgrader__factory.js +1 -1
  305. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer.t.sol/SuperfluidFrameworkDeployer__factory.d.ts +1 -1
  306. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer.t.sol/SuperfluidFrameworkDeployer__factory.js +1 -1
  307. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps.t.sol/SuperfluidFrameworkDeploymentSteps__factory.d.ts +1 -1
  308. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps.t.sol/SuperfluidFrameworkDeploymentSteps__factory.js +1 -1
  309. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.d.ts +1 -1
  310. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.js +1 -1
  311. package/dist/module/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.d.ts +1 -1
  312. package/dist/module/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.js +1 -1
  313. package/dist/module/typechain-types/factories/contracts/utils/TestGovernance__factory.d.ts +1 -1
  314. package/dist/module/typechain-types/factories/contracts/utils/TestGovernance__factory.js +1 -1
  315. package/package.json +12 -13
@@ -257,7 +257,7 @@ const _abi = [
257
257
  type: "function",
258
258
  },
259
259
  ];
260
- const _bytecode = "0x6080604052348015600e575f5ffd5b506170628061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c806393786bf01161006e57806393786bf014610163578063acbeaa0714610183578063b3083cf814610117578063c8c25ad514610198578063dfa98ad5146101a7578063f2fde38b146102e7575f5ffd5b806305bfa3e0146100b55780633df285fe146100d15780634d59c1361461010e578063520994701461011757806362a32e1e1461012e578063888a37b114610159575b5f5ffd5b6100be61070881565b6040519081526020015b60405180910390f35b6101016040518060400160405280601181526020017039bab832b93a37b5b2b739973a32b9ba1760791b81525081565b6040516100c8919061223c565b6100be61384081565b61011e5f81565b60405190151581526020016100c8565b6101016040518060400160405280600c81526020016b3a37b5b2b739973a32b9ba1760a11b81525081565b6100be62093a8081565b61016b604581565b6040516001600160a01b0390911681526020016100c8565b610196610191366004612271565b6102fa565b005b604051600781526020016100c8565b6102da604080516101e0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081019190915250604080516101e0810182525f546001600160a01b036101009182900481168352600154811660208401526002548116938301939093526003548316606083015260045483166080830152600754831660a0830152600654831660c0830152600c54831660e0830152600d5483169082015260085482166101208201526009548216610140820152600a548216610160820152600b548216610180820152600e5482166101a0820152600f549091166101c082015290565b6040516100c89190612298565b6101966102f536600461244f565b612199565b5f5460ff8281169116146103465760405162461bcd60e51b815260206004820152600e60248201526d0496e636f727265637420737465760941b60448201526064015b60405180910390fd5b8060ff165f0361044e5773__$e8efdced8c48527ee4143cf46421ac3fa3$__63c3acf1b36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610397573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103bb919061246a565b5f8054610100600160a81b0319166101006001600160a01b0393841681029190911791829055604051633f5b172b60e11b81529104909116600482015230602482015273__$e8efdced8c48527ee4143cf46421ac3fa3$__90637eb62e56906044015f6040518083038186803b158015610433575f5ffd5b505af4158015610445573d5f5f3e3d5ffd5b5050505061216c565b8060ff16600103610723575f604051610466906121fb565b604051809103905ff08015801561047f573d5f5f3e3d5ffd5b5090505f60405161048f90612208565b604051809103905ff0801580156104a8573d5f5f3e3d5ffd5b5090505f6040516104b890612215565b604051809103905ff0801580156104d1573d5f5f3e3d5ffd5b50604051634617e5a960e01b8152600160048201525f6024820152622dc6c060448201526001600160a01b0380861660648301528085166084830152821660a482015290915073__$9c21400e5956ac71d2292380e2b158085e$__90634617e5a99060c401602060405180830381865af4158015610551573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610575919061246a565b600180546001600160a01b0319166001600160a01b0392831690811790915560405163f2fde38b60e01b815260048101919091529084169063f2fde38b906024015f604051808303815f87803b1580156105cd575f5ffd5b505af11580156105df573d5f5f3e3d5ffd5b505060015460405163f2fde38b60e01b81526001600160a01b039182166004820152908516925063f2fde38b91506024015f604051808303815f87803b158015610627575f5ffd5b505af1158015610639573d5f5f3e3d5ffd5b50506001545f5460405163189acdbd60e31b81526001600160a01b03610100909204821660048201529116925063c4d66de891506024015f604051808303815f87803b158015610687575f5ffd5b505af1158015610699573d5f5f3e3d5ffd5b50505f8054600154604080519384526020840190819052630b520f0360e31b90526001600160a01b0361010090920482169450635a90781893506106ee929116906045906138409061070890602481016124c8565b5f604051808303815f87803b158015610705575f5ffd5b505af1158015610717573d5f5f3e3d5ffd5b5050505050505061216c565b8060ff1660020361125257600154604051636f6b2c2b60e11b81526001600160a01b0390911660048201525f9073__$502cc4d330b93d97587b153ad3a50b9ce4$__9063ded6585690602401602060405180830381865af415801561078a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ae919061246a565b600154604051636f6b2c2b60e11b81526001600160a01b0390911660048201529091505f9073__$99d82afa8b174bd377d11e81fa5b3b4133$__9063ded6585690602401602060405180830381865af415801561080d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610831919061246a565b60405163624956a560e11b81525f60048201819052919250819073__$917004bea068e5af1c36b9cd93531eeccd$__9063c492ad4a90602401602060405180830381865af4158015610885573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a9919061246a565b60405163185b40e560e31b81526001600160a01b03821660048201529091505f9073__$573129979b33e264f9d6c7723b8390f4db$__9063c2da072890602401602060405180830381865af4158015610904573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610928919061246a565b600154604051634d9475c160e11b81526001600160a01b039182166004820152908216602482015290915073__$d3570f0f1be9805cc8b6f8515c4fe1eed0$__90639b28eb8290604401602060405180830381865af415801561098d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b1919061246a565b5f5460015460405163cadf8f8560e01b81526001600160a01b039182166004820152888216602482015292955061010090910416925063cadf8f8591506044015f604051808303815f87803b158015610a08575f5ffd5b505af1158015610a1a573d5f5f3e3d5ffd5b5050505060015f9054906101000a90046001600160a01b03166001600160a01b031663b6d200de846001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a7d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa1919061250c565b6040518263ffffffff1660e01b8152600401610abf91815260200190565b602060405180830381865afa158015610ada573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afe919061246a565b600280546001600160a01b0319166001600160a01b039283161790555f5460015460405163cadf8f8560e01b8152908316600482015284831660248201526101009091049091169063cadf8f85906044015f604051808303815f87803b158015610b66575f5ffd5b505af1158015610b78573d5f5f3e3d5ffd5b5050505060015f9054906101000a90046001600160a01b03166001600160a01b031663b6d200de836001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bdb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bff919061250c565b6040518263ffffffff1660e01b8152600401610c1d91815260200190565b602060405180830381865afa158015610c38573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c5c919061246a565b600380546001600160a01b0319166001600160a01b039283161790555f5460015460405163cadf8f8560e01b8152908316600482015283831660248201526101009091049091169063cadf8f85906044015f604051808303815f87803b158015610cc4575f5ffd5b505af1158015610cd6573d5f5f3e3d5ffd5b5050505060015f9054906101000a90046001600160a01b03166001600160a01b031663b6d200de826001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d39573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5d919061250c565b6040518263ffffffff1660e01b8152600401610d7b91815260200190565b602060405180830381865afa158015610d96573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dba919061246a565b600480546001600160a01b0319166001600160a01b0392909216918217815560405163624956a560e11b8152908101919091525f9073__$917004bea068e5af1c36b9cd93531eeccd$__9063c492ad4a90602401602060405180830381865af4158015610e29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e4d919061246a565b9050806001600160a01b0316639903ad386040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610e87575f5ffd5b505af1158015610e99573d5f5f3e3d5ffd5b50505050816001600160a01b0316635437dd976040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efd919061246a565b604051631b2ce7f360e11b81526001600160a01b0383811660048301529190911690633659cfe6906024015f604051808303815f87803b158015610f3f575f5ffd5b505af1158015610f51573d5f5f3e3d5ffd5b50505050816001600160a01b0316635437dd976040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f91573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb5919061246a565b60015460405163f2fde38b60e01b81526001600160a01b03918216600482015291169063f2fde38b906024015f604051808303815f87803b158015610ff8575f5ffd5b505af115801561100a573d5f5f3e3d5ffd5b5050600154604080516336b3e52d60e01b815290517ff2fa15418b772547407a961b009d6bc905e5819ae0bb654f856ec6d81e03a8ac95506001600160a01b0390921693506336b3e52d92506004808201926020929091908290030181865afa158015611079573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109d919061246a565b6001600160a01b0316631e4e009160045f9054906101000a90046001600160a01b03166001600160a01b0316639d8fab1a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061111f919061250c565b836040518363ffffffff1660e01b8152600401611146929190918252602082015260400190565b5f604051808303815f87803b15801561115d575f5ffd5b505af115801561116f573d5f5f3e3d5ffd5b5050505060015f9054906101000a90046001600160a01b03166001600160a01b03166336b3e52d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e7919061246a565b60048054604051632f2ff15d60e01b81529182018490526001600160a01b0390811660248301529190911690632f2ff15d906044015f604051808303815f87803b158015611233575f5ffd5b505af1158015611245573d5f5f3e3d5ffd5b505050505050505061216c565b8060ff166003036114ac5773__$573129979b33e264f9d6c7723b8390f4db$__63c465e06c6040518163ffffffff1660e01b8152600401602060405180830381865af41580156112a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112c8919061246a565b600580546001600160a01b0319166001600160a01b039283161790556001546004805460405163068f199b60e41b81529284169183019190915290911660248201525f9073__$1bd366a79bc61f1b32bdf3489920e7bfd4$__906368f199b090604401602060405180830381865af4158015611346573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136a919061246a565b9050806001600160a01b0316639903ad386040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156113a4575f5ffd5b505af11580156113b6573d5f5f3e3d5ffd5b5050600554604051634a0687ef60e01b81526001600160a01b0385811660048301529091169250634a0687ef91506024015f604051808303815f87803b1580156113fe575f5ffd5b505af1158015611410573d5f5f3e3d5ffd5b50506005546040805163266c45bb60e11b81526004810191909152600e60448201526d141bdbdb0810591b5a5b8813919560921b6064820152608060248201526002608482015261504160f01b60a48201526001600160a01b039091169250634cd88b76915060c4015f604051808303815f87803b158015611490575f5ffd5b505af11580156114a2573d5f5f3e3d5ffd5b505050505061216c565b8060ff1660040361183557600154604051636f6b2c2b60e11b81526001600160a01b03909116600482015273__$636311eddceb2a920d93deda05d79e5adc$__9063ded6585690602401602060405180830381865af4158015611511573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611535919061246a565b600880546001600160a01b0319166001600160a01b039283169081179091555f80546001546040516355c2378d60e11b815261010090920485169463ab846f1a94611587949290911692600401612523565b5f604051808303815f87803b15801561159e575f5ffd5b505af11580156115b0573d5f5f3e3d5ffd5b5050600154604051636f6b2c2b60e11b81526001600160a01b03909116600482015273__$5442233f838e5760faa20f8e875fb43d74$__925063ded658569150602401602060405180830381865af415801561160e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611632919061246a565b600980546001600160a01b0319166001600160a01b039283169081179091555f80546001546040516355c2378d60e11b815261010090920485169463ab846f1a94611684949290911692600401612523565b5f604051808303815f87803b15801561169b575f5ffd5b505af11580156116ad573d5f5f3e3d5ffd5b50506001546040516001600160a01b0390911692506116cc9150612222565b6001600160a01b039091168152602001604051809103905ff0801580156116f5573d5f5f3e3d5ffd5b50600a80546001600160a01b0319166001600160a01b039283169081179091555f80546001546040516355c2378d60e11b815261010090920485169463ab846f1a94611748949290911692600401612523565b5f604051808303815f87803b15801561175f575f5ffd5b505af1158015611771573d5f5f3e3d5ffd5b50506001546040516001600160a01b039091169250611790915061222f565b6001600160a01b039091168152602001604051809103905ff0801580156117b9573d5f5f3e3d5ffd5b50600b80546001600160a01b0319166001600160a01b039283169081179091555f80546001546040516355c2378d60e11b815261010090920485169463ab846f1a9461180c949290911692600401612523565b5f604051808303815f87803b158015611823575f5ffd5b505af1158015610445573d5f5f3e3d5ffd5b8060ff16600503611ae157600154600554604051629bc8b360e21b81526001600160a01b0392831660048201529116602482015273__$e9aa3e0b899e8dbab5c935256de00cc00a$__9063026f22cc90604401602060405180830381865af41580156118a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c7919061246a565b600680546001600160a01b0319166001600160a01b03928316908117909155600154600554604080516350d75d2560e01b815290515f9573__$455649ae1493ec7d2bb05d5d07921f6fa7$__9563fffdd02f9582169490939116916350d75d25916004808201926020929091908290030181865afa15801561194b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061196f919061246a565b6040518463ffffffff1660e01b815260040161198d93929190612523565b602060405180830381865af41580156119a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119cc919061246a565b5f8054600154604080518481526020810191829052638e12552f60e01b9091529394506001600160a01b03610100909204821693638e12552f93611a1a939092169190868260248301612546565b5f604051808303815f87803b158015611a31575f5ffd5b505af1158015611a43573d5f5f3e3d5ffd5b5050505060015f9054906101000a90046001600160a01b03166001600160a01b031663731aed6e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a97573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611abb919061246a565b600780546001600160a01b0319166001600160a01b03929092169190911790555061216c565b8060ff1660060361213557604051632f0f279d60e01b815230600482015273__$910d373101edd87d02f12731db3c7312c8$__90632f0f279d90602401602060405180830381865af4158015611b39573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b5d919061246a565b600c80546001600160a01b0319166001600160a01b03929092169182179055604051630b5bd8c560e01b8152600481019190915273__$910d373101edd87d02f12731db3c7312c8$__90630b5bd8c590602401602060405180830381865af4158015611bcb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bef919061246a565b600d80546001600160a01b0319166001600160a01b03928316179055600c545f546040805163a815ff1560e01b81526004810191909152601360448201527215195cdd11dbdd995c9b985b98d94b9d195cdd606a1b60648201526101009091048316602482015291169063a815ff15906084015f604051808303815f87803b158015611c79575f5ffd5b505af1158015611c8b573d5f5f3e3d5ffd5b5050600c546001546040805163a815ff1560e01b81526004810191909152600f60448201526e14dd5c195c999b1d5a590b9d195cdd608a1b60648201526001600160a01b0391821660248201529116925063a815ff1591506084015f604051808303815f87803b158015611cfd575f5ffd5b505af1158015611d0f573d5f5f3e3d5ffd5b5050600c54600d546040805163a815ff1560e01b8152600481019190915260136044820152725375706572666c7569644c6f616465722d763160681b60648201526001600160a01b0391821660248201529116925063a815ff1591506084015f604051808303815f87803b158015611d85575f5ffd5b505af1158015611d97573d5f5f3e3d5ffd5b5050600c546008546040805163a815ff1560e01b81526004810191909152600e60448201526d21a320bb18a337b93bb0b93232b960911b60648201526001600160a01b0391821660248201529116925063a815ff1591506084015f604051808303815f87803b158015611e08575f5ffd5b505af1158015611e1a573d5f5f3e3d5ffd5b5050600c546009546040805163a815ff1560e01b81526004810191909152600e60448201526d23a220bb18a337b93bb0b93232b960911b60648201526001600160a01b0391821660248201529116925063a815ff1591506084015f604051808303815f87803b158015611e8b575f5ffd5b505af1158015611e9d573d5f5f3e3d5ffd5b5050600c54600b546040805163a815ff1560e01b81526004810191909152602060448201527f436c6561724d6163726f466f727761726465725631576974685065726d69743260648201526001600160a01b0391821660248201529116925063a815ff1591506084015f604051808303815f87803b158015611f1d575f5ffd5b505af1158015611f2f573d5f5f3e3d5ffd5b5050600c54604051637048027560e01b81523360048201526001600160a01b039091169250637048027591506024015f604051808303815f87803b158015611f75575f5ffd5b505af1158015611f87573d5f5f3e3d5ffd5b5050600154604051639e4121e360e01b81526001600160a01b03909116600482015273__$910d373101edd87d02f12731db3c7312c8$__9250639e4121e39150602401602060405180830381865af4158015611fe5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612009919061246a565b600e80546001600160a01b0319166001600160a01b0392909216919091179055731820a4b7618bde71dce8cdc73aab6c95905fad243b61205c57604051630c9b12e760e01b815260040160405180910390fd5b600154604051634f88f8b560e01b81526001600160a01b03909116600482015262093a80602482015273__$910d373101edd87d02f12731db3c7312c8$__90634f88f8b590604401602060405180830381865af41580156120bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120e3919061246a565b600f80546001600160a01b0319166001600160a01b039283169081179091555f805460015460405163064aa52160e31b815261010090920485169463325529089461180c949290911692600401612523565b60405162461bcd60e51b815260206004820152600c60248201526b0496e76616c696420737465760a41b604482015260640161033d565b5f805460ff16908061217d83612593565b91906101000a81548160ff021916908360ff1602179055505050565b5f5460405163f2fde38b60e01b81526001600160a01b0383811660048301526101009092049091169063f2fde38b906024015f604051808303815f87803b1580156121e2575f5ffd5b505af11580156121f4573d5f5f3e3d5ffd5b5050505050565b610445806125be83390190565b61050c80612a0383390190565b61057480612f0f83390190565b6109138061348383390190565b61329780613d9683390190565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215612281575f5ffd5b813560ff81168114612291575f5ffd5b9392505050565b81516001600160a01b031681526101e0810160208301516122c460208401826001600160a01b03169052565b5060408301516122df60408401826001600160a01b03169052565b5060608301516122fa60608401826001600160a01b03169052565b50608083015161231560808401826001600160a01b03169052565b5060a083015161233060a08401826001600160a01b03169052565b5060c083015161234b60c08401826001600160a01b03169052565b5060e083015161236660e08401826001600160a01b03169052565b506101008301516123836101008401826001600160a01b03169052565b506101208301516123a06101208401826001600160a01b03169052565b506101408301516123bd6101408401826001600160a01b03169052565b506101608301516123da6101608401826001600160a01b03169052565b506101808301516123f76101808401826001600160a01b03169052565b506101a08301516124146101a08401826001600160a01b03169052565b506101c08301516124316101c08401826001600160a01b03169052565b5092915050565b6001600160a01b038116811461244c575f5ffd5b50565b5f6020828403121561245f575f5ffd5b813561229181612438565b5f6020828403121561247a575f5ffd5b815161229181612438565b5f8151808452602084019350602083015f5b828110156124be5781516001600160a01b0316865260209586019590910190600101612497565b5093949350505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f9061250190830184612485565b979650505050505050565b5f6020828403121561251c575f5ffd5b5051919050565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b0386811682528516602082015260a0604082018190525f9061257190830186612485565b6001600160a01b03948516606084015292909316608090910152949350505050565b5f60ff821660ff81036125b457634e487b7160e01b5f52601160045260245ffd5b6001019291505056fe6080604052348015600e575f5ffd5b503380603357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b603a81603f565b50608e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6103aa8061009b5f395ff3fe608060405260043610610049575f3560e01c806322bee4941461004d578063715018a6146100775780638da5cb5b1461008d578063a2852784146100b3578063f2fde38b146100d2575b5f5ffd5b61006061005b366004610285565b6100f1565b60405161006e929190610305565b60405180910390f35b348015610082575f5ffd5b5061008b610163565b005b348015610098575f5ffd5b505f546040516001600160a01b03909116815260200161006e565b3480156100be575f5ffd5b5061008b6100cd366004610343565b610176565b3480156100dd575f5ffd5b5061008b6100ec366004610343565b6101b4565b5f60606100fc6101f6565b846001600160a01b0316348585604051610117929190610365565b5f6040518083038185875af1925050503d805f8114610151576040519150601f19603f3d011682016040523d82523d5f602084013e610156565b606091505b5090969095509350505050565b61016b6101f6565b6101745f610222565b565b61017e6101f6565b6040516001600160a01b038216904780156108fc02915f818181858888f193505050501580156101b0573d5f5f3e3d5ffd5b5050565b6101bc6101f6565b6001600160a01b0381166101ea57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101f381610222565b50565b5f546001600160a01b031633146101745760405163118cdaa760e01b81523360048201526024016101e1565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101f3575f5ffd5b5f5f5f60408486031215610297575f5ffd5b83356102a281610271565b9250602084013567ffffffffffffffff8111156102bd575f5ffd5b8401601f810186136102cd575f5ffd5b803567ffffffffffffffff8111156102e3575f5ffd5b8660208284010111156102f4575f5ffd5b939660209190910195509293505050565b8215158152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b5f60208284031215610353575f5ffd5b813561035e81610271565b9392505050565b818382375f910190815291905056fea26469706673582212203ef035401e39ab14a04143d4daea11912c1698319a902649b14d0837a7e16eec64736f6c634300082300336080604052348015600e575f5ffd5b503380603357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b603a81603f565b50608e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6104718061009b5f395ff3fe608060405260043610610049575f3560e01c8063177ec5941461004d578063715018a6146100775780638da5cb5b1461008d578063a2852784146100b3578063f2fde38b146100d2575b5f5ffd5b61006061005b3660046102b6565b6100f1565b60405161006e92919061038d565b60405180910390f35b348015610082575f5ffd5b5061008b610180565b005b348015610098575f5ffd5b505f546040516001600160a01b03909116815260200161006e565b3480156100be575f5ffd5b5061008b6100cd3660046103cb565b610193565b3480156100dd575f5ffd5b5061008b6100ec3660046103cb565b6101d1565b5f60606100fc610213565b846001600160a01b031634848660405160200161011a929190610404565b60408051601f198184030181529082905261013491610430565b5f6040518083038185875af1925050503d805f811461016e576040519150601f19603f3d011682016040523d82523d5f602084013e610173565b606091505b5090969095509350505050565b610188610213565b6101915f61023f565b565b61019b610213565b6040516001600160a01b038216904780156108fc02915f818181858888f193505050501580156101cd573d5f5f3e3d5ffd5b5050565b6101d9610213565b6001600160a01b03811661020757604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6102108161023f565b50565b5f546001600160a01b031633146101915760405163118cdaa760e01b81523360048201526024016101fe565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610210575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156102c8575f5ffd5b83356102d38161028e565b925060208401356102e38161028e565b9150604084013567ffffffffffffffff8111156102fe575f5ffd5b8401601f8101861361030e575f5ffd5b803567ffffffffffffffff811115610328576103286102a2565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610357576103576102a2565b60405281815282820160200188101561036e575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b8215158152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b5f602082840312156103db575f5ffd5b81356103e68161028e565b9392505050565b5f81518060208401855e5f93019283525090919050565b5f61040f82856103ed565b60609390931b6bffffffffffffffffffffffff191683525050601401919050565b5f6103e682846103ed56fea2646970667358221220db7b1b36267876eea4cf94dca9746f976a0fa915bf683daf0778a730ad68b53964736f6c634300082300336080604052348015600e575f5ffd5b5060175f33601c565b5060c2565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1660b9575f838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905560723390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600160bc565b505f5b92915050565b6104a5806100cf5f395ff3fe608060405234801561000f575f5ffd5b5060043610610085575f3560e01c806336568abe1161005857806336568abe1461010957806391d148541461011c578063a217fddf1461012f578063d547741f14610136575f5ffd5b806301ffc9a7146100895780631e4e0091146100b1578063248a9ca3146100c65780632f2ff15d146100f6575b5f5ffd5b61009c6100973660046103d1565b610149565b60405190151581526020015b60405180910390f35b6100c46100bf3660046103ff565b61017f565b005b6100e86100d436600461041f565b5f9081526020819052604090206001015490565b6040519081526020016100a8565b6100c4610104366004610436565b610198565b6100c4610117366004610436565b6101c2565b61009c61012a366004610436565b6101f5565b6100e85f81565b6100c4610144366004610436565b61021d565b5f6001600160e01b03198216637965db0b60e01b148061017957506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f61018981610241565b610193838361024e565b505050565b5f828152602081905260409020600101546101b281610241565b6101bc8383610298565b50505050565b6001600160a01b03811633146101eb5760405163334bd91960e11b815260040160405180910390fd5b6101938282610327565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8281526020819052604090206001015461023781610241565b6101bc8383610327565b61024b8133610390565b50565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b5f6102a383836101f5565b610320575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556102d83390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610179565b505f610179565b5f61033283836101f5565b15610320575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610179565b61039a82826101f5565b6103cd5760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440160405180910390fd5b5050565b5f602082840312156103e1575f5ffd5b81356001600160e01b0319811681146103f8575f5ffd5b9392505050565b5f5f60408385031215610410575f5ffd5b50508035926020909101359150565b5f6020828403121561042f575f5ffd5b5035919050565b5f5f60408385031215610447575f5ffd5b8235915060208301356001600160a01b0381168114610464575f5ffd5b80915050925092905056fea2646970667358221220087ba6ab80931abab9c20a2d5e4fc72a237053ef7750a4e6982313a0059b8ea164736f6c6343000823003360a060405234801561000f575f5ffd5b5060405161091338038061091383398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f5ffd5b81516001600160a01b0381168114610065575f5ffd5b9392505050565b60805161087b6100985f395f818160c201528181610181015281816101fc015261026d015261087b5ff3fe608060405260043610610028575f3560e01c8063651aeb701461002c578063b54bbfa014610054575b5f5ffd5b61003f61003a366004610449565b610080565b60405190151581526020015b60405180910390f35b34801561005f575f5ffd5b5061007361006e366004610449565b61015a565b60405161004b91906104f7565b5f5f61008d85858561015a565b90505f61009b8233346101f8565b604051639989bef360e01b81529091506001600160a01b03871690639989bef3906100f0907f00000000000000000000000000000000000000000000000000000000000000009089908990339060040161058a565b5f6040518083038186803b158015610106575f5ffd5b505afa158015610118573d5f5f3e3d5ffd5b50506040516001600160a01b03891692503391507fb4eecaefdf7bac51720a0b5ebd9f44f9143b9890f3ae48507ebfff6df93b441b905f90a395945050505050565b60405163d052b02360e01b81526060906001600160a01b0385169063d052b023906101af907f00000000000000000000000000000000000000000000000000000000000000009087908790339060040161058a565b5f60405180830381865afa1580156101c9573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526101f0919081019061064a565b949350505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663670e77e38660405160240161023a91906104f7565b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505090505f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168584886040516020016102a99291906107f5565b60408051601f19818403018152908290526102c391610821565b5f6040518083038185875af1925050503d805f81146102fd576040519150601f19603f3d011682016040523d82523d5f602084013e610302565b606091505b5091509150816103155761031581610322565b5060019695505050505050565b6004815110156103795760405162461bcd60e51b815260206004820152601a60248201527f43616c6c5574696c733a2074617267657420726576657274282900000000000060448201526064015b60405180910390fd5b602081015163b1b7848f60e01b6001600160e01b03198216016104295760408051808201825260208082527f43616c6c5574696c733a207461726765742070616e69636b65643a2030785f5f90820190815260248501517f43616c6c5574696c733a207461726765742070616e69636b65643a2030780000600482811c600f908116603090810160081b918516011791909117909252925162461bcd60e51b815291929161037091849101610833565b81518060208401fd5b50565b6001600160a01b0381168114610432575f5ffd5b5f5f5f6040848603121561045b575f5ffd5b833561046681610435565b9250602084013567ffffffffffffffff811115610481575f5ffd5b8401601f81018613610491575f5ffd5b803567ffffffffffffffff8111156104a7575f5ffd5b8660208284010111156104b8575f5ffd5b939660209190910195509293505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561057e57868503603f190184528151805163ffffffff1686526020808201516001600160a01b031690870152604090810151606091870182905290610568908701826104c9565b955050602093840193919091019060010161051d565b50929695505050505050565b6001600160a01b03851681526060602082018190528101839052828460808301375f8184016080908101919091526001600160a01b03929092166040820152601f909201601f19169091010192915050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715610613576106136105dc565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610642576106426105dc565b604052919050565b5f6020828403121561065a575f5ffd5b815167ffffffffffffffff811115610670575f5ffd5b8201601f81018413610680575f5ffd5b805167ffffffffffffffff81111561069a5761069a6105dc565b8060051b6106aa60208201610619565b918252602081840181019290810190878411156106c5575f5ffd5b6020850192505b838310156107d357825167ffffffffffffffff8111156106ea575f5ffd5b85016060818a03601f190112156106ff575f5ffd5b6107076105f0565b602082015163ffffffff8116811461071d575f5ffd5b8152604082015161072d81610435565b6020820152606082015167ffffffffffffffff81111561074b575f5ffd5b60208184010192505089601f830112610762575f5ffd5b815167ffffffffffffffff81111561077c5761077c6105dc565b61078f601f8201601f1916602001610619565b8181528b60208386010111156107a3575f5ffd5b8160208501602083015e5f60208383010152806040840152505080845250506020820191506020830192506106cc565b979650505050505050565b5f81518060208401855e5f93019283525090919050565b5f61080082856107de565b60609390931b6bffffffffffffffffffffffff191683525050601401919050565b5f61082c82846107de565b9392505050565b602081525f61082c60208301846104c956fea2646970667358221220e32d87d12aecadcfba7d00671e842d8b13e9f23766ac912d94a1f241d2298c8864736f6c634300082300336101a0604052348015610010575f5ffd5b5060405161329738038061329783398101604081905261002f91610232565b604080518082018252600a815269436c6561724d6163726f60b01b602080830191909152825180840190935260018352603160f81b908301526001600160a01b0383166080528291610081825f6101a3565b610140526100908160016101a3565b61016052815160208084019190912061010052815190820120610120524660c05261011e6101005161012051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60a05250503060e052604080516336b3e52d60e01b815290516001600160a01b038316916336b3e52d9160048083019260209291908290030181865afa15801561016a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061018e9190610232565b6001600160a01b0316610180525061040d9050565b5f6020835110156101be576101b7836101d5565b90506101cf565b816101c984826102f7565b5060ff90505b92915050565b5f5f829050601f81511115610208578260405163305a27a960e01b81526004016101ff91906103b5565b60405180910390fd5b8051610213826103ea565b179392505050565b6001600160a01b038116811461022f575f5ffd5b50565b5f60208284031215610242575f5ffd5b815161024d8161021b565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061027c57607f821691505b60208210810361029a57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156102f257828211156102f257805f5260205f20601f840160051c60208510156102cb57505f5b90810190601f840160051c035f5b818110156102ee575f838201556001016102d9565b5050505b505050565b81516001600160401b0381111561031057610310610254565b6103248161031e8454610268565b846102a0565b6020601f821160018114610356575f831561033f5750848201515b5f19600385901b1c1916600184901b1784556103ae565b5f84815260208120601f198516915b828110156103855787850151825560209485019460019092019101610365565b50848210156103a257868401515f19600387901b60f8161c191681555b505060018360011b0184555b5050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561029a575f1960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516101605161018051612e106104875f395f61089b01525f610d1401525f610ce301525f611bc401525f611b9c01525f611af701525f611b2101525f611b4b01525f8181610a1501528181610ab80152818161138101526113f20152612e105ff3fe6080604052600436106100bf575f3560e01c806374bbb8271161007c578063d3bc881e11610057578063d3bc881e14610225578063dc25454614610238578063df12247d14610267578063ffec2c3c14610286575f5ffd5b806374bbb827146101c057806384b0196e146101df5780639c487a2114610206575f5ffd5b80632b906d1c146100c357806333a3928d146100f857806335567e1a1461011b578063385062cc1461014857806342ca6a5b146101675780636afdd85014610186575b5f5ffd5b3480156100ce575f5ffd5b506100e26100dd366004611e56565b6102a5565b6040516100ef9190611ed4565b60405180910390f35b61010b610106366004611ee6565b6103e5565b60405190151581526020016100ef565b348015610126575f5ffd5b5061013a610135366004611f72565b61043f565b6040519081526020016100ef565b348015610153575f5ffd5b5061013a610162366004611e56565b610491565b348015610172575f5ffd5b5061013a610181366004611e56565b6104af565b348015610191575f5ffd5b506101a86e22d473030f116ddee9f6b43ac78ba381565b6040516001600160a01b0390911681526020016100ef565b3480156101cb575f5ffd5b506100e26101da366004611e56565b6104bb565b3480156101ea575f5ffd5b506101f36104c8565b6040516100ef9796959493929190611fb4565b348015610211575f5ffd5b506100e261022036600461204a565b61050a565b61010b6102333660046120b7565b61058d565b348015610243575f5ffd5b506100e26040518060400160405280600481526020016339b2b63360e11b81525081565b348015610272575f5ffd5b5061013a610281366004611e56565b61062b565b348015610291575f5ffd5b5061013a6102a0366004612149565b610641565b60605f846001600160a01b03166339f05f9485856040518363ffffffff1660e01b81526004016102d69291906121d4565b5f60405180830381865afa1580156102f0573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610317919081019061231a565b90505f6040518060400160405280600a815260200169436c6561724d6163726f60b01b81525060405160200161034d9190612375565b60408051601f1981840301815260608301909152602e8083529092505f9190612cd7602083013990506040518060400160405280600a815260200169436c6561724d6163726f60b01b81525083836040518060a0016040528060728152602001612d0560729139846040516020016103c99594939291906123d2565b60405160208183030381529060405293505050505b9392505050565b5f5f6103f18484610661565b90506104008686868685610675565b61041b858261041560a08a0160808b01612420565b3361077b565b610435858261043060a08a0160808b01612420565b6109ea565b9695505050505050565b6001600160a01b0382165f9081526002602090815260408083206001600160c01b0385168452909152808220549083901b67ffffffffffffffff19166001600160401b03909116175b90505b92915050565b5f6104a78484846104a28787610661565b610b68565b949350505050565b5f6104a7848484610b7d565b60606104a7848484610bb8565b5f6060805f5f5f60606104d9610cdc565b6104e1610d0d565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6040805160806020601f860181900402820181018352606082810186815290935f939283929183019182918a908a90819087018382808284375f920191909152505050915250815260200161055e8561252e565b8152509050806040516020016105749190612539565b6040516020818303038152906040529150509392505050565b5f5f6105998787610661565b90505f6105a889898985610b68565b90506105ea868287878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610d3a92505050565b61060757604051638baa579f60e01b815260040160405180910390fd5b6106138983883361077b565b61061e8983886109ea565b9998505050505050505050565b5f6104a784848461063c8787610661565b610daa565b5f6106588585856106528888610661565b86610e7a565b95945050505050565b610669611da2565b610488828401846125dd565b6106938484848461068e6101408b016101208c01612420565b610e7a565b8560a00135146106de5760405163031b518f60e01b815260206004820152601060248201526f0eed2e8dccae6e640dad2e6dac2e8c6d60831b60448201526064015b60405180910390fd5b5f6106f161014087016101208801612420565b6001600160a01b03161461070d5761070885610f80565b610774565b6107578561072160a0820160808301612420565b61073361012089016101008a01612420565b60a089013561074560c08b018b6126b8565b61075260e08d018d6126b8565b6112bc565b61077457604051638baa579f60e01b815260040160405180910390fd5b5050505050565b836001600160a01b03168360200151602001516001600160a01b0316146107d1576020808401510151604051636fac7acf60e01b81526001600160a01b03918216600482015290851660248201526044016106d5565b604080518082018252600481526339b2b63360e11b602091820152848101519091015180519101207f6371090fb57ba38bba89547b61573fe30d7e52be1e97cfc4c0e68554dd71ef8b0161086257816001600160a01b0316816001600160a01b03161461085d5782602001516040015181604051634d6c926760e11b81526004016106d59291906126fa565b61092f565b60208084015160409081015180519201919091209051632474521560e21b8152600481018290526001600160a01b0383811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa1580156108e0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109049190612723565b61092d5783602001516040015182604051634d6c926760e11b81526004016106d59291906126fa565b505b61094182846020015160a00151611309565b826020015160600151421015610989576020830151606081015160809091015160405163ca5d011b60e01b8152426004820152602481019290925260448201526064016106d5565b602083015160800151158015906109a7575082602001516080015142115b156109e4576020830151606081015160809091015160405163ca5d011b60e01b8152426004820152602481019290925260448201526064016106d5565b50505050565b81515160405163d052b02360e01b81525f9182916001600160a01b0387169163d052b02391610a3f917f0000000000000000000000000000000000000000000000000000000000000000918890600401612742565b5f60405180830381865afa158015610a59573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610a80919081019061277d565b90505f610a8e82853461137d565b855151604051639989bef360e01b81529192506001600160a01b03881691639989bef391610ae3917f000000000000000000000000000000000000000000000000000000000000000091908990600401612742565b5f6040518083038186803b158015610af9575f5ffd5b505afa158015610b0b573d5f5f3e3d5ffd5b5050505084602001516040015180519060200120866001600160a01b0316856001600160a01b03167f6bb63fa129a737a1686708b0c5ca2f03826fca12b7b6ae39246a0640eddf92e660405160405180910390a495945050505050565b5f610658610b7886868686610daa565b6114a7565b5f610b89848484610bb8565b604051602001610b9991906128c2565b6040516020818303038152906040528051906020012090509392505050565b60405163390b89cb60e01b81526060906001600160a01b0385169063390b89cb90610be990869086906004016121d4565b5f60405180830381865afa158015610c03573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610c2a919081019061231a565b604051630e7c17e560e21b81526001600160a01b038616906339f05f9490610c5890879087906004016121d4565b5f60405180830381865afa158015610c72573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610c99919081019061231a565b6040518060a0016040528060728152602001612d0560729139604051602001610cc4939291906128cd565b60405160208183030381529060405290509392505050565b6060610d087f00000000000000000000000000000000000000000000000000000000000000005f6114d3565b905090565b6060610d087f000000000000000000000000000000000000000000000000000000000000000060016114d3565b5f836001600160a01b03163b5f03610d98575f5f610d58858561157c565b5090925090505f816003811115610d7157610d71612915565b148015610d8f5750856001600160a01b0316826001600160a01b0316145b925050506103de565b610da38484846115c5565b90506103de565b805151604051632f491a9560e11b81525f9182916001600160a01b03881691635e92352a91610ddc9190600401611ed4565b602060405180830381865afa158015610df7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1b9190612929565b90505f610e2b8460200151611616565b90505f610e39888888610b7d565b604080516020810183905290810185905260608101849052909150608001604051602081830303815290604052805190602001209350505050949350505050565b815151604051632f491a9560e11b81525f9182916001600160a01b03891691635e92352a91610eac9190600401611ed4565b602060405180830381865afa158015610ec7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eeb9190612929565b90505f610efb8560200151611616565b90505f610f098989896116b6565b604051602001610f1991906128c2565b60408051601f1981840301815282825280516020918201209083018190526001600160a01b038816918301919091526060820185905260808201849052915060a0015b60405160208183030381529060405280519060200120935050505095945050505050565b60408051808201909152308152602080830135908201526e22d473030f116ddee9f6b43ac78ba39063137c29fe908390610fc060a0830160808401612420565b60a0860135610fd260c08801886126b8565b610fdf60e08a018a6126b8565b6040518963ffffffff1660e01b8152600401611002989796959493929190612961565b5f604051808303815f87803b158015611019575f5ffd5b505af115801561102b573d5f5f3e3d5ffd5b505f925061103f9150506020830183612420565b905060208201356001600160a01b03821661106261014085016101208601612420565b6001600160a01b031663ee719bc86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561109d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c191906129e6565b6001600160a01b0316146111105760405163031b518f60e01b81526020600482015260156024820152740e0cae4dad2e840e8ded6cadc40dad2e6dac2e8c6d605b1b60448201526064016106d5565b5f61117a82846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611151573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111759190612a01565b611773565b90506111a261119161014086016101208701612420565b6001600160a01b03851690846117e1565b6111b461014085016101208601612420565b6001600160a01b0316635b9d09cc6111d260a0870160808801612420565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052606060448201525f60648201526084015f604051808303815f87803b158015611224575f5ffd5b505af1158015611236573d5f5f3e3d5ffd5b5061124d9250505061014085016101208601612420565b6001600160a01b0390811690841661126b60a0870160808801612420565b6001600160a01b03167fd66be664a64963e0940d8e004166aafaf12d3a718c12c9b6994d3ca9d010a8d885856040516112ae929190918252602082015260400190565b60405180910390a450505050565b5f61061e886112ce8b8a8a8a8a611860565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610d3a92505050565b6001600160a01b0382165f90815260026020908152604080832084821c808552925282208054919284926001600160401b03841692909161134983612a35565b91905055146109e45760405163dbc205b160e01b81526001600160a01b0385166004820152602481018490526044016106d5565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663670e77e3866040516024016113bf9190612a4d565b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505090505f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031685848860405160200161142e929190612ae0565b60408051601f1981840301815290829052611448916128c2565b5f6040518083038185875af1925050503d805f8114611482576040519150601f19603f3d011682016040523d82523d5f602084013e611487565b606091505b50915091508161149a5761149a816119dd565b5060019695505050505050565b5f61048b6114b3611aeb565b8360405161190160f01b8152600281019290925260228201526042902090565b606060ff83146114ed576114e683611c14565b905061048b565b8180546114f990612b0c565b80601f016020809104026020016040519081016040528092919081815260200182805461152590612b0c565b80156115705780601f1061154757610100808354040283529160200191611570565b820191905f5260205f20905b81548152906001019060200180831161155357829003601f168201915b5050505050905061048b565b5f5f5f83516041036115b3576020840151604085015160608601515f1a6115a588828585611c51565b9550955095505050506115be565b505081515f91506002905b9250925092565b805160408051630b135d3f60e11b8082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f6040518060a0016040528060728152602001612d056072913980516020918201208351805190830120848301516040808701518051908601206060808901516080808b015160a0808d015187519b8c019a909a52958a01979097526001600160a01b03909516918801919091529286015284015260c083015260e082015261010001604051602081830303815290604052805190602001209050919050565b604080518082018252600a815269436c6561724d6163726f60b01b60208201529051630e7c17e560e21b8152606091906001600160a01b038616906339f05f949061170790879087906004016121d4565b5f60405180830381865afa158015611721573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611748919081019061231a565b6040518060a0016040528060728152602001612d0560729139604051602001610cc493929190612b44565b5f5f60128360ff1610156117ab5761178c836012612b64565b61179790600a612c60565b90506117a38185612c6e565b91505061048b565b60128360ff1611156117d9576117c2601284612b64565b6117cd90600a612c60565b90506117a38185612c85565b509192915050565b6117ed8383835f611d19565b61185b576117fe83835f6001611d19565b61182657604051635274afe760e01b81526001600160a01b03841660048201526024016106d5565b6118338383836001611d19565b61185b57604051635274afe760e01b81526001600160a01b03841660048201526024016106d5565b505050565b5f5f6040518060a0016040528060648152602001612d7760649139848460405160200161188f93929190612ca4565b60408051601f1981840301815290829052805160209182012092505f916118da917f618358ac3db8dc274f0cd8829da7e234bd48cd73c4a740aede1adec9846d06a1918b9101612cc2565b60408051601f1981840301815282825280516020918201209083018590528282018190526001600160a01b038a16606080850191909152918b01356080840152908a013560a083015260c0820188905291505f9060e0016040516020818303038152906040528051906020012090506e22d473030f116ddee9f6b43ac78ba36001600160a01b0316633644e5156040518163ffffffff1660e01b8152600401602060405180830381865afa158015611994573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119b89190612929565b60405161190160f01b6020820152602281019190915260428101829052606201610f5c565b600481511015611a2f5760405162461bcd60e51b815260206004820152601a60248201527f43616c6c5574696c733a2074617267657420726576657274282900000000000060448201526064016106d5565b602081015163b1b7848f60e01b6001600160e01b0319821601611adf5760408051808201825260208082527f43616c6c5574696c733a207461726765742070616e69636b65643a2030785f5f90820190815260248501517f43616c6c5574696c733a207461726765742070616e69636b65643a2030780000600482811c600f908116603090810160081b918516011791909117909252925162461bcd60e51b81529192916106d591849101611ed4565b81518060208401fd5b50565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611b4357507f000000000000000000000000000000000000000000000000000000000000000046145b15611b6d57507f000000000000000000000000000000000000000000000000000000000000000090565b610d08604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60605f611c2083611d7b565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115611c8a57505f91506003905082611d0f565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611cdb573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116611d0657505f925060019150829050611d0f565b92505f91508190505b9450945094915050565b60405163095ea7b360e01b5f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611d6f578383151615611d63573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f60ff8216601f81111561048b57604051632cd44ac360e21b815260040160405180910390fd5b60408051606080820183529181019182529081908152602001611df96040518060c00160405280606081526020015f6001600160a01b03168152602001606081526020015f81526020015f81526020015f81525090565b905290565b6001600160a01b0381168114611ae8575f5ffd5b5f5f83601f840112611e22575f5ffd5b5081356001600160401b03811115611e38575f5ffd5b602083019150836020828501011115611e4f575f5ffd5b9250929050565b5f5f5f60408486031215611e68575f5ffd5b8335611e7381611dfe565b925060208401356001600160401b03811115611e8d575f5ffd5b611e9986828701611e12565b9497909650939450505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6104886020830184611ea6565b5f5f5f5f60608587031215611ef9575f5ffd5b84356001600160401b03811115611f0e575f5ffd5b85016101408188031215611f20575f5ffd5b93506020850135611f3081611dfe565b925060408501356001600160401b03811115611f4a575f5ffd5b611f5687828801611e12565b95989497509550505050565b8035611f6d81611dfe565b919050565b5f5f60408385031215611f83575f5ffd5b8235611f8e81611dfe565b915060208301356001600160c01b0381168114611fa9575f5ffd5b809150509250929050565b60ff60f81b8816815260e060208201525f611fd260e0830189611ea6565b8281036040840152611fe48189611ea6565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b8181101561203957835183526020938401939092019160010161201b565b50909b9a5050505050505050505050565b5f5f5f6040848603121561205c575f5ffd5b83356001600160401b03811115612071575f5ffd5b61207d86828701611e12565b90945092505060208401356001600160401b0381111561209b575f5ffd5b840160c081870312156120ac575f5ffd5b809150509250925092565b5f5f5f5f5f5f608087890312156120cc575f5ffd5b86356120d781611dfe565b955060208701356001600160401b038111156120f1575f5ffd5b6120fd89828a01611e12565b909650945050604087013561211181611dfe565b925060608701356001600160401b0381111561212b575f5ffd5b61213789828a01611e12565b979a9699509497509295939492505050565b5f5f5f5f6060858703121561215c575f5ffd5b843561216781611dfe565b935060208501356001600160401b03811115612181575f5ffd5b61218d87828801611e12565b90945092505060408501356121a181611dfe565b939692955090935050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f6104a76020830184866121ac565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b038111828210171561221d5761221d6121e7565b60405290565b604080519081016001600160401b038111828210171561221d5761221d6121e7565b604051602081016001600160401b038111828210171561221d5761221d6121e7565b604051606081016001600160401b038111828210171561221d5761221d6121e7565b604051601f8201601f191681016001600160401b03811182821017156122b1576122b16121e7565b604052919050565b5f6001600160401b038211156122d1576122d16121e7565b50601f01601f191660200190565b5f6122f16122ec846122b9565b612289565b9050828152838383011115612304575f5ffd5b8282602083015e5f602084830101529392505050565b5f6020828403121561232a575f5ffd5b81516001600160401b0381111561233f575f5ffd5b8201601f8101841361234f575f5ffd5b6104a7848251602084016122df565b5f81518060208401855e5f93019283525090919050565b5f610488612383838561235e565b7f286164647265737320757067726164655375706572546f6b656e2c416374696f81527f6e20616374696f6e2c53656375726974792073656375726974792900000000006020820152603b0190565b5f6123dd828861235e565b68207769746e6573732960b81b815261241461240e612408612402600985018b61235e565b8961235e565b8761235e565b8561235e565b98975050505050505050565b5f60208284031215612430575f5ffd5b81356103de81611dfe565b5f6124486122ec846122b9565b905082815283838301111561245b575f5ffd5b828260208301375f602084830101529392505050565b5f82601f830112612480575f5ffd5b6104888383356020850161243b565b5f60c0828403121561249f575f5ffd5b6124a76121fb565b905081356001600160401b038111156124be575f5ffd5b6124ca84828501612471565b8252506124d960208301611f62565b602082015260408201356001600160401b038111156124f6575f5ffd5b61250284828501612471565b604083015250606082810135908201526080808301359082015260a09182013591810191909152919050565b5f61048b368361248f565b602081525f825160406020840152805190506020606084015261255f6080840182611ea6565b90506020840151601f19848303016040850152805160c0835261258560c0840182611ea6565b905060018060a01b036020830151166020840152604082015183820360408501526125b08282611ea6565b915050606082015160608401526080820151608084015260a082015160a084015280935050505092915050565b5f602082840312156125ed575f5ffd5b81356001600160401b03811115612602575f5ffd5b820160408185031215612613575f5ffd5b61261b612223565b81356001600160401b03811115612630575f5ffd5b820160208187031215612641575f5ffd5b612649612245565b81356001600160401b0381111561265e575f5ffd5b80830192505086601f830112612672575f5ffd5b6126818783356020850161243b565b815282525060208201356001600160401b0381111561269e575f5ffd5b6126aa8682850161248f565b602083015250949350505050565b5f5f8335601e198436030181126126cd575f5ffd5b8301803591506001600160401b038211156126e6575f5ffd5b602001915036819003821315611e4f575f5ffd5b604081525f61270c6040830185611ea6565b905060018060a01b03831660208301529392505050565b5f60208284031215612733575f5ffd5b815180151581146103de575f5ffd5b6001600160a01b03841681526060602082018190525f9061276590830185611ea6565b905060018060a01b0383166040830152949350505050565b5f6020828403121561278d575f5ffd5b81516001600160401b038111156127a2575f5ffd5b8201601f810184136127b2575f5ffd5b80516001600160401b038111156127cb576127cb6121e7565b8060051b6127db60208201612289565b918252602081840181019290810190878411156127f6575f5ffd5b6020850192505b838310156128b75782516001600160401b0381111561281a575f5ffd5b85016060818a03601f1901121561282f575f5ffd5b612837612267565b602082015163ffffffff8116811461284d575f5ffd5b8152604082015161285d81611dfe565b602082015260608201516001600160401b0381111561287a575f5ffd5b60208184010192505089601f830112612891575f5ffd5b6128a08a8351602085016122df565b6040820152835250602092830192909101906127fd565b979650505050505050565b5f610488828461235e565b5f6128d8828661235e565b7f28416374696f6e20616374696f6e2c53656375726974792073656375726974798152602960f81b602082015261043561240e602183018761235e565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612939575f5ffd5b5051919050565b803561294b81611dfe565b6001600160a01b03168252602090810135910152565b61296b818a612940565b604089810135908201526060808a01359082015287516001600160a01b039081166080830152602089015160a0830152871660c082015260e0810186905261014061010082018190525f906129c390830186886121ac565b8281036101208401526129d78185876121ac565b9b9a5050505050505050505050565b5f602082840312156129f6575f5ffd5b81516103de81611dfe565b5f60208284031215612a11575f5ffd5b815160ff811681146103de575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201612a4657612a46612a21565b5060010190565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612ad457868503603f190184528151805163ffffffff1686526020808201516001600160a01b031690870152604090810151606091870182905290612abe90870182611ea6565b9550506020938401939190910190600101612a73565b50929695505050505050565b5f612aeb828561235e565b60609390931b6bffffffffffffffffffffffff191683525050601401919050565b600181811c90821680612b2057607f821691505b602082108103612b3e57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f610658612b5e612b58612383858961235e565b8661235e565b8461235e565b60ff828116828216039081111561048b5761048b612a21565b6001815b6001841115612bb857808504811115612b9c57612b9c612a21565b6001841615612baa57908102905b60019390931c928002612b81565b935093915050565b5f82612bce5750600161048b565b81612bda57505f61048b565b8160018114612bf05760028114612bfa57612c16565b600191505061048b565b60ff841115612c0b57612c0b612a21565b50506001821b61048b565b5060208310610133831016604e8410600b8410161715612c39575081810a61048b565b612c455f198484612b7d565b805f1904821115612c5857612c58612a21565b029392505050565b5f61048860ff841683612bc0565b808202811582820484141761048b5761048b612a21565b5f82612c9f57634e487b7160e01b5f52601260045260245ffd5b500490565b5f612caf828661235e565b838582375f930192835250909392505050565b828152606081016103de602083018461294056fe546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c75696e7432353620616d6f756e7429536563757269747928737472696e6720646f6d61696e2c61646472657373206d6163726f436f6e74726163742c737472696e672070726f76696465722c75696e743235362076616c696441667465722c75696e743235362076616c69644265666f72652c75696e74323536206e6f6e6365295065726d69745769746e6573735472616e7366657246726f6d28546f6b656e5065726d697373696f6e73207065726d69747465642c61646472657373207370656e6465722c75696e74323536206e6f6e63652c75696e7432353620646561646c696e652ca264697066735822122067cd04dfa2c32d4877a46f9b2aae86bd9c03bd50d7a582b4004839dae9233b8f64736f6c63430008230033a2646970667358221220df52f716740d15d371007e926c695c8496d2d89ad9e93fafbaf5e61b31c8998164736f6c63430008230033";
260
+ const _bytecode = "0x6080604052348015600e575f5ffd5b506170628061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c806393786bf01161006e57806393786bf014610163578063acbeaa0714610183578063b3083cf814610117578063c8c25ad514610198578063dfa98ad5146101a7578063f2fde38b146102e7575f5ffd5b806305bfa3e0146100b55780633df285fe146100d15780634d59c1361461010e578063520994701461011757806362a32e1e1461012e578063888a37b114610159575b5f5ffd5b6100be61070881565b6040519081526020015b60405180910390f35b6101016040518060400160405280601181526020017039bab832b93a37b5b2b739973a32b9ba1760791b81525081565b6040516100c8919061223c565b6100be61384081565b61011e5f81565b60405190151581526020016100c8565b6101016040518060400160405280600c81526020016b3a37b5b2b739973a32b9ba1760a11b81525081565b6100be62093a8081565b61016b604581565b6040516001600160a01b0390911681526020016100c8565b610196610191366004612271565b6102fa565b005b604051600781526020016100c8565b6102da604080516101e0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081019190915250604080516101e0810182525f546001600160a01b036101009182900481168352600154811660208401526002548116938301939093526003548316606083015260045483166080830152600754831660a0830152600654831660c0830152600c54831660e0830152600d5483169082015260085482166101208201526009548216610140820152600a548216610160820152600b548216610180820152600e5482166101a0820152600f549091166101c082015290565b6040516100c89190612298565b6101966102f536600461244f565b612199565b5f5460ff8281169116146103465760405162461bcd60e51b815260206004820152600e60248201526d0496e636f727265637420737465760941b60448201526064015b60405180910390fd5b8060ff165f0361044e5773__$e8efdced8c48527ee4143cf46421ac3fa3$__63c3acf1b36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610397573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103bb919061246a565b5f8054610100600160a81b0319166101006001600160a01b0393841681029190911791829055604051633f5b172b60e11b81529104909116600482015230602482015273__$e8efdced8c48527ee4143cf46421ac3fa3$__90637eb62e56906044015f6040518083038186803b158015610433575f5ffd5b505af4158015610445573d5f5f3e3d5ffd5b5050505061216c565b8060ff16600103610723575f604051610466906121fb565b604051809103905ff08015801561047f573d5f5f3e3d5ffd5b5090505f60405161048f90612208565b604051809103905ff0801580156104a8573d5f5f3e3d5ffd5b5090505f6040516104b890612215565b604051809103905ff0801580156104d1573d5f5f3e3d5ffd5b50604051634617e5a960e01b8152600160048201525f6024820152622dc6c060448201526001600160a01b0380861660648301528085166084830152821660a482015290915073__$9c21400e5956ac71d2292380e2b158085e$__90634617e5a99060c401602060405180830381865af4158015610551573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610575919061246a565b600180546001600160a01b0319166001600160a01b0392831690811790915560405163f2fde38b60e01b815260048101919091529084169063f2fde38b906024015f604051808303815f87803b1580156105cd575f5ffd5b505af11580156105df573d5f5f3e3d5ffd5b505060015460405163f2fde38b60e01b81526001600160a01b039182166004820152908516925063f2fde38b91506024015f604051808303815f87803b158015610627575f5ffd5b505af1158015610639573d5f5f3e3d5ffd5b50506001545f5460405163189acdbd60e31b81526001600160a01b03610100909204821660048201529116925063c4d66de891506024015f604051808303815f87803b158015610687575f5ffd5b505af1158015610699573d5f5f3e3d5ffd5b50505f8054600154604080519384526020840190819052630b520f0360e31b90526001600160a01b0361010090920482169450635a90781893506106ee929116906045906138409061070890602481016124c8565b5f604051808303815f87803b158015610705575f5ffd5b505af1158015610717573d5f5f3e3d5ffd5b5050505050505061216c565b8060ff1660020361125257600154604051636f6b2c2b60e11b81526001600160a01b0390911660048201525f9073__$502cc4d330b93d97587b153ad3a50b9ce4$__9063ded6585690602401602060405180830381865af415801561078a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ae919061246a565b600154604051636f6b2c2b60e11b81526001600160a01b0390911660048201529091505f9073__$99d82afa8b174bd377d11e81fa5b3b4133$__9063ded6585690602401602060405180830381865af415801561080d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610831919061246a565b60405163624956a560e11b81525f60048201819052919250819073__$917004bea068e5af1c36b9cd93531eeccd$__9063c492ad4a90602401602060405180830381865af4158015610885573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a9919061246a565b60405163185b40e560e31b81526001600160a01b03821660048201529091505f9073__$573129979b33e264f9d6c7723b8390f4db$__9063c2da072890602401602060405180830381865af4158015610904573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610928919061246a565b600154604051634d9475c160e11b81526001600160a01b039182166004820152908216602482015290915073__$d3570f0f1be9805cc8b6f8515c4fe1eed0$__90639b28eb8290604401602060405180830381865af415801561098d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b1919061246a565b5f5460015460405163cadf8f8560e01b81526001600160a01b039182166004820152888216602482015292955061010090910416925063cadf8f8591506044015f604051808303815f87803b158015610a08575f5ffd5b505af1158015610a1a573d5f5f3e3d5ffd5b5050505060015f9054906101000a90046001600160a01b03166001600160a01b031663b6d200de846001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a7d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa1919061250c565b6040518263ffffffff1660e01b8152600401610abf91815260200190565b602060405180830381865afa158015610ada573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afe919061246a565b600280546001600160a01b0319166001600160a01b039283161790555f5460015460405163cadf8f8560e01b8152908316600482015284831660248201526101009091049091169063cadf8f85906044015f604051808303815f87803b158015610b66575f5ffd5b505af1158015610b78573d5f5f3e3d5ffd5b5050505060015f9054906101000a90046001600160a01b03166001600160a01b031663b6d200de836001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bdb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bff919061250c565b6040518263ffffffff1660e01b8152600401610c1d91815260200190565b602060405180830381865afa158015610c38573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c5c919061246a565b600380546001600160a01b0319166001600160a01b039283161790555f5460015460405163cadf8f8560e01b8152908316600482015283831660248201526101009091049091169063cadf8f85906044015f604051808303815f87803b158015610cc4575f5ffd5b505af1158015610cd6573d5f5f3e3d5ffd5b5050505060015f9054906101000a90046001600160a01b03166001600160a01b031663b6d200de826001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d39573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5d919061250c565b6040518263ffffffff1660e01b8152600401610d7b91815260200190565b602060405180830381865afa158015610d96573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dba919061246a565b600480546001600160a01b0319166001600160a01b0392909216918217815560405163624956a560e11b8152908101919091525f9073__$917004bea068e5af1c36b9cd93531eeccd$__9063c492ad4a90602401602060405180830381865af4158015610e29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e4d919061246a565b9050806001600160a01b0316639903ad386040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610e87575f5ffd5b505af1158015610e99573d5f5f3e3d5ffd5b50505050816001600160a01b0316635437dd976040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efd919061246a565b604051631b2ce7f360e11b81526001600160a01b0383811660048301529190911690633659cfe6906024015f604051808303815f87803b158015610f3f575f5ffd5b505af1158015610f51573d5f5f3e3d5ffd5b50505050816001600160a01b0316635437dd976040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f91573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb5919061246a565b60015460405163f2fde38b60e01b81526001600160a01b03918216600482015291169063f2fde38b906024015f604051808303815f87803b158015610ff8575f5ffd5b505af115801561100a573d5f5f3e3d5ffd5b5050600154604080516336b3e52d60e01b815290517ff2fa15418b772547407a961b009d6bc905e5819ae0bb654f856ec6d81e03a8ac95506001600160a01b0390921693506336b3e52d92506004808201926020929091908290030181865afa158015611079573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109d919061246a565b6001600160a01b0316631e4e009160045f9054906101000a90046001600160a01b03166001600160a01b0316639d8fab1a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061111f919061250c565b836040518363ffffffff1660e01b8152600401611146929190918252602082015260400190565b5f604051808303815f87803b15801561115d575f5ffd5b505af115801561116f573d5f5f3e3d5ffd5b5050505060015f9054906101000a90046001600160a01b03166001600160a01b03166336b3e52d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e7919061246a565b60048054604051632f2ff15d60e01b81529182018490526001600160a01b0390811660248301529190911690632f2ff15d906044015f604051808303815f87803b158015611233575f5ffd5b505af1158015611245573d5f5f3e3d5ffd5b505050505050505061216c565b8060ff166003036114ac5773__$573129979b33e264f9d6c7723b8390f4db$__63c465e06c6040518163ffffffff1660e01b8152600401602060405180830381865af41580156112a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112c8919061246a565b600580546001600160a01b0319166001600160a01b039283161790556001546004805460405163068f199b60e41b81529284169183019190915290911660248201525f9073__$1bd366a79bc61f1b32bdf3489920e7bfd4$__906368f199b090604401602060405180830381865af4158015611346573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136a919061246a565b9050806001600160a01b0316639903ad386040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156113a4575f5ffd5b505af11580156113b6573d5f5f3e3d5ffd5b5050600554604051634a0687ef60e01b81526001600160a01b0385811660048301529091169250634a0687ef91506024015f604051808303815f87803b1580156113fe575f5ffd5b505af1158015611410573d5f5f3e3d5ffd5b50506005546040805163266c45bb60e11b81526004810191909152600e60448201526d141bdbdb0810591b5a5b8813919560921b6064820152608060248201526002608482015261504160f01b60a48201526001600160a01b039091169250634cd88b76915060c4015f604051808303815f87803b158015611490575f5ffd5b505af11580156114a2573d5f5f3e3d5ffd5b505050505061216c565b8060ff1660040361183557600154604051636f6b2c2b60e11b81526001600160a01b03909116600482015273__$636311eddceb2a920d93deda05d79e5adc$__9063ded6585690602401602060405180830381865af4158015611511573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611535919061246a565b600880546001600160a01b0319166001600160a01b039283169081179091555f80546001546040516355c2378d60e11b815261010090920485169463ab846f1a94611587949290911692600401612523565b5f604051808303815f87803b15801561159e575f5ffd5b505af11580156115b0573d5f5f3e3d5ffd5b5050600154604051636f6b2c2b60e11b81526001600160a01b03909116600482015273__$5442233f838e5760faa20f8e875fb43d74$__925063ded658569150602401602060405180830381865af415801561160e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611632919061246a565b600980546001600160a01b0319166001600160a01b039283169081179091555f80546001546040516355c2378d60e11b815261010090920485169463ab846f1a94611684949290911692600401612523565b5f604051808303815f87803b15801561169b575f5ffd5b505af11580156116ad573d5f5f3e3d5ffd5b50506001546040516001600160a01b0390911692506116cc9150612222565b6001600160a01b039091168152602001604051809103905ff0801580156116f5573d5f5f3e3d5ffd5b50600a80546001600160a01b0319166001600160a01b039283169081179091555f80546001546040516355c2378d60e11b815261010090920485169463ab846f1a94611748949290911692600401612523565b5f604051808303815f87803b15801561175f575f5ffd5b505af1158015611771573d5f5f3e3d5ffd5b50506001546040516001600160a01b039091169250611790915061222f565b6001600160a01b039091168152602001604051809103905ff0801580156117b9573d5f5f3e3d5ffd5b50600b80546001600160a01b0319166001600160a01b039283169081179091555f80546001546040516355c2378d60e11b815261010090920485169463ab846f1a9461180c949290911692600401612523565b5f604051808303815f87803b158015611823575f5ffd5b505af1158015610445573d5f5f3e3d5ffd5b8060ff16600503611ae157600154600554604051629bc8b360e21b81526001600160a01b0392831660048201529116602482015273__$e9aa3e0b899e8dbab5c935256de00cc00a$__9063026f22cc90604401602060405180830381865af41580156118a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c7919061246a565b600680546001600160a01b0319166001600160a01b03928316908117909155600154600554604080516350d75d2560e01b815290515f9573__$455649ae1493ec7d2bb05d5d07921f6fa7$__9563fffdd02f9582169490939116916350d75d25916004808201926020929091908290030181865afa15801561194b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061196f919061246a565b6040518463ffffffff1660e01b815260040161198d93929190612523565b602060405180830381865af41580156119a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119cc919061246a565b5f8054600154604080518481526020810191829052638e12552f60e01b9091529394506001600160a01b03610100909204821693638e12552f93611a1a939092169190868260248301612546565b5f604051808303815f87803b158015611a31575f5ffd5b505af1158015611a43573d5f5f3e3d5ffd5b5050505060015f9054906101000a90046001600160a01b03166001600160a01b031663731aed6e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a97573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611abb919061246a565b600780546001600160a01b0319166001600160a01b03929092169190911790555061216c565b8060ff1660060361213557604051632f0f279d60e01b815230600482015273__$910d373101edd87d02f12731db3c7312c8$__90632f0f279d90602401602060405180830381865af4158015611b39573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b5d919061246a565b600c80546001600160a01b0319166001600160a01b03929092169182179055604051630b5bd8c560e01b8152600481019190915273__$910d373101edd87d02f12731db3c7312c8$__90630b5bd8c590602401602060405180830381865af4158015611bcb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bef919061246a565b600d80546001600160a01b0319166001600160a01b03928316179055600c545f546040805163a815ff1560e01b81526004810191909152601360448201527215195cdd11dbdd995c9b985b98d94b9d195cdd606a1b60648201526101009091048316602482015291169063a815ff15906084015f604051808303815f87803b158015611c79575f5ffd5b505af1158015611c8b573d5f5f3e3d5ffd5b5050600c546001546040805163a815ff1560e01b81526004810191909152600f60448201526e14dd5c195c999b1d5a590b9d195cdd608a1b60648201526001600160a01b0391821660248201529116925063a815ff1591506084015f604051808303815f87803b158015611cfd575f5ffd5b505af1158015611d0f573d5f5f3e3d5ffd5b5050600c54600d546040805163a815ff1560e01b8152600481019190915260136044820152725375706572666c7569644c6f616465722d763160681b60648201526001600160a01b0391821660248201529116925063a815ff1591506084015f604051808303815f87803b158015611d85575f5ffd5b505af1158015611d97573d5f5f3e3d5ffd5b5050600c546008546040805163a815ff1560e01b81526004810191909152600e60448201526d21a320bb18a337b93bb0b93232b960911b60648201526001600160a01b0391821660248201529116925063a815ff1591506084015f604051808303815f87803b158015611e08575f5ffd5b505af1158015611e1a573d5f5f3e3d5ffd5b5050600c546009546040805163a815ff1560e01b81526004810191909152600e60448201526d23a220bb18a337b93bb0b93232b960911b60648201526001600160a01b0391821660248201529116925063a815ff1591506084015f604051808303815f87803b158015611e8b575f5ffd5b505af1158015611e9d573d5f5f3e3d5ffd5b5050600c54600b546040805163a815ff1560e01b81526004810191909152602060448201527f436c6561724d6163726f466f727761726465725631576974685065726d69743260648201526001600160a01b0391821660248201529116925063a815ff1591506084015f604051808303815f87803b158015611f1d575f5ffd5b505af1158015611f2f573d5f5f3e3d5ffd5b5050600c54604051637048027560e01b81523360048201526001600160a01b039091169250637048027591506024015f604051808303815f87803b158015611f75575f5ffd5b505af1158015611f87573d5f5f3e3d5ffd5b5050600154604051639e4121e360e01b81526001600160a01b03909116600482015273__$910d373101edd87d02f12731db3c7312c8$__9250639e4121e39150602401602060405180830381865af4158015611fe5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612009919061246a565b600e80546001600160a01b0319166001600160a01b0392909216919091179055731820a4b7618bde71dce8cdc73aab6c95905fad243b61205c57604051630c9b12e760e01b815260040160405180910390fd5b600154604051634f88f8b560e01b81526001600160a01b03909116600482015262093a80602482015273__$910d373101edd87d02f12731db3c7312c8$__90634f88f8b590604401602060405180830381865af41580156120bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120e3919061246a565b600f80546001600160a01b0319166001600160a01b039283169081179091555f805460015460405163064aa52160e31b815261010090920485169463325529089461180c949290911692600401612523565b60405162461bcd60e51b815260206004820152600c60248201526b0496e76616c696420737465760a41b604482015260640161033d565b5f805460ff16908061217d83612593565b91906101000a81548160ff021916908360ff1602179055505050565b5f5460405163f2fde38b60e01b81526001600160a01b0383811660048301526101009092049091169063f2fde38b906024015f604051808303815f87803b1580156121e2575f5ffd5b505af11580156121f4573d5f5f3e3d5ffd5b5050505050565b610445806125be83390190565b61050c80612a0383390190565b61057480612f0f83390190565b6109138061348383390190565b61329780613d9683390190565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215612281575f5ffd5b813560ff81168114612291575f5ffd5b9392505050565b81516001600160a01b031681526101e0810160208301516122c460208401826001600160a01b03169052565b5060408301516122df60408401826001600160a01b03169052565b5060608301516122fa60608401826001600160a01b03169052565b50608083015161231560808401826001600160a01b03169052565b5060a083015161233060a08401826001600160a01b03169052565b5060c083015161234b60c08401826001600160a01b03169052565b5060e083015161236660e08401826001600160a01b03169052565b506101008301516123836101008401826001600160a01b03169052565b506101208301516123a06101208401826001600160a01b03169052565b506101408301516123bd6101408401826001600160a01b03169052565b506101608301516123da6101608401826001600160a01b03169052565b506101808301516123f76101808401826001600160a01b03169052565b506101a08301516124146101a08401826001600160a01b03169052565b506101c08301516124316101c08401826001600160a01b03169052565b5092915050565b6001600160a01b038116811461244c575f5ffd5b50565b5f6020828403121561245f575f5ffd5b813561229181612438565b5f6020828403121561247a575f5ffd5b815161229181612438565b5f8151808452602084019350602083015f5b828110156124be5781516001600160a01b0316865260209586019590910190600101612497565b5093949350505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f9061250190830184612485565b979650505050505050565b5f6020828403121561251c575f5ffd5b5051919050565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b0386811682528516602082015260a0604082018190525f9061257190830186612485565b6001600160a01b03948516606084015292909316608090910152949350505050565b5f60ff821660ff81036125b457634e487b7160e01b5f52601160045260245ffd5b6001019291505056fe6080604052348015600e575f5ffd5b503380603357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b603a81603f565b50608e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6103aa8061009b5f395ff3fe608060405260043610610049575f3560e01c806322bee4941461004d578063715018a6146100775780638da5cb5b1461008d578063a2852784146100b3578063f2fde38b146100d2575b5f5ffd5b61006061005b366004610285565b6100f1565b60405161006e929190610305565b60405180910390f35b348015610082575f5ffd5b5061008b610163565b005b348015610098575f5ffd5b505f546040516001600160a01b03909116815260200161006e565b3480156100be575f5ffd5b5061008b6100cd366004610343565b610176565b3480156100dd575f5ffd5b5061008b6100ec366004610343565b6101b4565b5f60606100fc6101f6565b846001600160a01b0316348585604051610117929190610365565b5f6040518083038185875af1925050503d805f8114610151576040519150601f19603f3d011682016040523d82523d5f602084013e610156565b606091505b5090969095509350505050565b61016b6101f6565b6101745f610222565b565b61017e6101f6565b6040516001600160a01b038216904780156108fc02915f818181858888f193505050501580156101b0573d5f5f3e3d5ffd5b5050565b6101bc6101f6565b6001600160a01b0381166101ea57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101f381610222565b50565b5f546001600160a01b031633146101745760405163118cdaa760e01b81523360048201526024016101e1565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101f3575f5ffd5b5f5f5f60408486031215610297575f5ffd5b83356102a281610271565b9250602084013567ffffffffffffffff8111156102bd575f5ffd5b8401601f810186136102cd575f5ffd5b803567ffffffffffffffff8111156102e3575f5ffd5b8660208284010111156102f4575f5ffd5b939660209190910195509293505050565b8215158152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b5f60208284031215610353575f5ffd5b813561035e81610271565b9392505050565b818382375f910190815291905056fea26469706673582212203ef035401e39ab14a04143d4daea11912c1698319a902649b14d0837a7e16eec64736f6c634300082300336080604052348015600e575f5ffd5b503380603357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b603a81603f565b50608e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6104718061009b5f395ff3fe608060405260043610610049575f3560e01c8063177ec5941461004d578063715018a6146100775780638da5cb5b1461008d578063a2852784146100b3578063f2fde38b146100d2575b5f5ffd5b61006061005b3660046102b6565b6100f1565b60405161006e92919061038d565b60405180910390f35b348015610082575f5ffd5b5061008b610180565b005b348015610098575f5ffd5b505f546040516001600160a01b03909116815260200161006e565b3480156100be575f5ffd5b5061008b6100cd3660046103cb565b610193565b3480156100dd575f5ffd5b5061008b6100ec3660046103cb565b6101d1565b5f60606100fc610213565b846001600160a01b031634848660405160200161011a929190610404565b60408051601f198184030181529082905261013491610430565b5f6040518083038185875af1925050503d805f811461016e576040519150601f19603f3d011682016040523d82523d5f602084013e610173565b606091505b5090969095509350505050565b610188610213565b6101915f61023f565b565b61019b610213565b6040516001600160a01b038216904780156108fc02915f818181858888f193505050501580156101cd573d5f5f3e3d5ffd5b5050565b6101d9610213565b6001600160a01b03811661020757604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6102108161023f565b50565b5f546001600160a01b031633146101915760405163118cdaa760e01b81523360048201526024016101fe565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610210575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156102c8575f5ffd5b83356102d38161028e565b925060208401356102e38161028e565b9150604084013567ffffffffffffffff8111156102fe575f5ffd5b8401601f8101861361030e575f5ffd5b803567ffffffffffffffff811115610328576103286102a2565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610357576103576102a2565b60405281815282820160200188101561036e575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b8215158152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b5f602082840312156103db575f5ffd5b81356103e68161028e565b9392505050565b5f81518060208401855e5f93019283525090919050565b5f61040f82856103ed565b60609390931b6bffffffffffffffffffffffff191683525050601401919050565b5f6103e682846103ed56fea2646970667358221220db7b1b36267876eea4cf94dca9746f976a0fa915bf683daf0778a730ad68b53964736f6c634300082300336080604052348015600e575f5ffd5b5060175f33601c565b5060c2565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1660b9575f838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905560723390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600160bc565b505f5b92915050565b6104a5806100cf5f395ff3fe608060405234801561000f575f5ffd5b5060043610610085575f3560e01c806336568abe1161005857806336568abe1461010957806391d148541461011c578063a217fddf1461012f578063d547741f14610136575f5ffd5b806301ffc9a7146100895780631e4e0091146100b1578063248a9ca3146100c65780632f2ff15d146100f6575b5f5ffd5b61009c6100973660046103d1565b610149565b60405190151581526020015b60405180910390f35b6100c46100bf3660046103ff565b61017f565b005b6100e86100d436600461041f565b5f9081526020819052604090206001015490565b6040519081526020016100a8565b6100c4610104366004610436565b610198565b6100c4610117366004610436565b6101c2565b61009c61012a366004610436565b6101f5565b6100e85f81565b6100c4610144366004610436565b61021d565b5f6001600160e01b03198216637965db0b60e01b148061017957506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f61018981610241565b610193838361024e565b505050565b5f828152602081905260409020600101546101b281610241565b6101bc8383610298565b50505050565b6001600160a01b03811633146101eb5760405163334bd91960e11b815260040160405180910390fd5b6101938282610327565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8281526020819052604090206001015461023781610241565b6101bc8383610327565b61024b8133610390565b50565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b5f6102a383836101f5565b610320575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556102d83390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610179565b505f610179565b5f61033283836101f5565b15610320575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610179565b61039a82826101f5565b6103cd5760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440160405180910390fd5b5050565b5f602082840312156103e1575f5ffd5b81356001600160e01b0319811681146103f8575f5ffd5b9392505050565b5f5f60408385031215610410575f5ffd5b50508035926020909101359150565b5f6020828403121561042f575f5ffd5b5035919050565b5f5f60408385031215610447575f5ffd5b8235915060208301356001600160a01b0381168114610464575f5ffd5b80915050925092905056fea2646970667358221220087ba6ab80931abab9c20a2d5e4fc72a237053ef7750a4e6982313a0059b8ea164736f6c6343000823003360a060405234801561000f575f5ffd5b5060405161091338038061091383398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f5ffd5b81516001600160a01b0381168114610065575f5ffd5b9392505050565b60805161087b6100985f395f818160c201528181610181015281816101fc015261026d015261087b5ff3fe608060405260043610610028575f3560e01c8063651aeb701461002c578063b54bbfa014610054575b5f5ffd5b61003f61003a366004610449565b610080565b60405190151581526020015b60405180910390f35b34801561005f575f5ffd5b5061007361006e366004610449565b61015a565b60405161004b91906104f7565b5f5f61008d85858561015a565b90505f61009b8233346101f8565b604051639989bef360e01b81529091506001600160a01b03871690639989bef3906100f0907f00000000000000000000000000000000000000000000000000000000000000009089908990339060040161058a565b5f6040518083038186803b158015610106575f5ffd5b505afa158015610118573d5f5f3e3d5ffd5b50506040516001600160a01b03891692503391507fb4eecaefdf7bac51720a0b5ebd9f44f9143b9890f3ae48507ebfff6df93b441b905f90a395945050505050565b60405163d052b02360e01b81526060906001600160a01b0385169063d052b023906101af907f00000000000000000000000000000000000000000000000000000000000000009087908790339060040161058a565b5f60405180830381865afa1580156101c9573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526101f0919081019061064a565b949350505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663670e77e38660405160240161023a91906104f7565b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505090505f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168584886040516020016102a99291906107f5565b60408051601f19818403018152908290526102c391610821565b5f6040518083038185875af1925050503d805f81146102fd576040519150601f19603f3d011682016040523d82523d5f602084013e610302565b606091505b5091509150816103155761031581610322565b5060019695505050505050565b6004815110156103795760405162461bcd60e51b815260206004820152601a60248201527f43616c6c5574696c733a2074617267657420726576657274282900000000000060448201526064015b60405180910390fd5b602081015163b1b7848f60e01b6001600160e01b03198216016104295760408051808201825260208082527f43616c6c5574696c733a207461726765742070616e69636b65643a2030785f5f90820190815260248501517f43616c6c5574696c733a207461726765742070616e69636b65643a2030780000600482811c600f908116603090810160081b918516011791909117909252925162461bcd60e51b815291929161037091849101610833565b81518060208401fd5b50565b6001600160a01b0381168114610432575f5ffd5b5f5f5f6040848603121561045b575f5ffd5b833561046681610435565b9250602084013567ffffffffffffffff811115610481575f5ffd5b8401601f81018613610491575f5ffd5b803567ffffffffffffffff8111156104a7575f5ffd5b8660208284010111156104b8575f5ffd5b939660209190910195509293505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561057e57868503603f190184528151805163ffffffff1686526020808201516001600160a01b031690870152604090810151606091870182905290610568908701826104c9565b955050602093840193919091019060010161051d565b50929695505050505050565b6001600160a01b03851681526060602082018190528101839052828460808301375f8184016080908101919091526001600160a01b03929092166040820152601f909201601f19169091010192915050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715610613576106136105dc565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610642576106426105dc565b604052919050565b5f6020828403121561065a575f5ffd5b815167ffffffffffffffff811115610670575f5ffd5b8201601f81018413610680575f5ffd5b805167ffffffffffffffff81111561069a5761069a6105dc565b8060051b6106aa60208201610619565b918252602081840181019290810190878411156106c5575f5ffd5b6020850192505b838310156107d357825167ffffffffffffffff8111156106ea575f5ffd5b85016060818a03601f190112156106ff575f5ffd5b6107076105f0565b602082015163ffffffff8116811461071d575f5ffd5b8152604082015161072d81610435565b6020820152606082015167ffffffffffffffff81111561074b575f5ffd5b60208184010192505089601f830112610762575f5ffd5b815167ffffffffffffffff81111561077c5761077c6105dc565b61078f601f8201601f1916602001610619565b8181528b60208386010111156107a3575f5ffd5b8160208501602083015e5f60208383010152806040840152505080845250506020820191506020830192506106cc565b979650505050505050565b5f81518060208401855e5f93019283525090919050565b5f61080082856107de565b60609390931b6bffffffffffffffffffffffff191683525050601401919050565b5f61082c82846107de565b9392505050565b602081525f61082c60208301846104c956fea264697066735822122039226dc517875ab2c506811e67c621de5fd2560017ae49bab8908d295a8994de64736f6c634300082300336101a0604052348015610010575f5ffd5b5060405161329738038061329783398101604081905261002f91610232565b604080518082018252600a815269436c6561724d6163726f60b01b602080830191909152825180840190935260018352603160f81b908301526001600160a01b0383166080528291610081825f6101a3565b610140526100908160016101a3565b61016052815160208084019190912061010052815190820120610120524660c05261011e6101005161012051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60a05250503060e052604080516336b3e52d60e01b815290516001600160a01b038316916336b3e52d9160048083019260209291908290030181865afa15801561016a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061018e9190610232565b6001600160a01b0316610180525061040d9050565b5f6020835110156101be576101b7836101d5565b90506101cf565b816101c984826102f7565b5060ff90505b92915050565b5f5f829050601f81511115610208578260405163305a27a960e01b81526004016101ff91906103b5565b60405180910390fd5b8051610213826103ea565b179392505050565b6001600160a01b038116811461022f575f5ffd5b50565b5f60208284031215610242575f5ffd5b815161024d8161021b565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061027c57607f821691505b60208210810361029a57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156102f257828211156102f257805f5260205f20601f840160051c60208510156102cb57505f5b90810190601f840160051c035f5b818110156102ee575f838201556001016102d9565b5050505b505050565b81516001600160401b0381111561031057610310610254565b6103248161031e8454610268565b846102a0565b6020601f821160018114610356575f831561033f5750848201515b5f19600385901b1c1916600184901b1784556103ae565b5f84815260208120601f198516915b828110156103855787850151825560209485019460019092019101610365565b50848210156103a257868401515f19600387901b60f8161c191681555b505060018360011b0184555b5050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561029a575f1960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516101605161018051612e106104875f395f61089b01525f610d1401525f610ce301525f611bc401525f611b9c01525f611af701525f611b2101525f611b4b01525f8181610a1501528181610ab80152818161138101526113f20152612e105ff3fe6080604052600436106100bf575f3560e01c806374bbb8271161007c578063d3bc881e11610057578063d3bc881e14610225578063dc25454614610238578063df12247d14610267578063ffec2c3c14610286575f5ffd5b806374bbb827146101c057806384b0196e146101df5780639c487a2114610206575f5ffd5b80632b906d1c146100c357806333a3928d146100f857806335567e1a1461011b578063385062cc1461014857806342ca6a5b146101675780636afdd85014610186575b5f5ffd5b3480156100ce575f5ffd5b506100e26100dd366004611e56565b6102a5565b6040516100ef9190611ed4565b60405180910390f35b61010b610106366004611ee6565b6103e5565b60405190151581526020016100ef565b348015610126575f5ffd5b5061013a610135366004611f72565b61043f565b6040519081526020016100ef565b348015610153575f5ffd5b5061013a610162366004611e56565b610491565b348015610172575f5ffd5b5061013a610181366004611e56565b6104af565b348015610191575f5ffd5b506101a86e22d473030f116ddee9f6b43ac78ba381565b6040516001600160a01b0390911681526020016100ef565b3480156101cb575f5ffd5b506100e26101da366004611e56565b6104bb565b3480156101ea575f5ffd5b506101f36104c8565b6040516100ef9796959493929190611fb4565b348015610211575f5ffd5b506100e261022036600461204a565b61050a565b61010b6102333660046120b7565b61058d565b348015610243575f5ffd5b506100e26040518060400160405280600481526020016339b2b63360e11b81525081565b348015610272575f5ffd5b5061013a610281366004611e56565b61062b565b348015610291575f5ffd5b5061013a6102a0366004612149565b610641565b60605f846001600160a01b03166339f05f9485856040518363ffffffff1660e01b81526004016102d69291906121d4565b5f60405180830381865afa1580156102f0573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610317919081019061231a565b90505f6040518060400160405280600a815260200169436c6561724d6163726f60b01b81525060405160200161034d9190612375565b60408051601f1981840301815260608301909152602e8083529092505f9190612cd7602083013990506040518060400160405280600a815260200169436c6561724d6163726f60b01b81525083836040518060a0016040528060728152602001612d0560729139846040516020016103c99594939291906123d2565b60405160208183030381529060405293505050505b9392505050565b5f5f6103f18484610661565b90506104008686868685610675565b61041b858261041560a08a0160808b01612420565b3361077b565b610435858261043060a08a0160808b01612420565b6109ea565b9695505050505050565b6001600160a01b0382165f9081526002602090815260408083206001600160c01b0385168452909152808220549083901b67ffffffffffffffff19166001600160401b03909116175b90505b92915050565b5f6104a78484846104a28787610661565b610b68565b949350505050565b5f6104a7848484610b7d565b60606104a7848484610bb8565b5f6060805f5f5f60606104d9610cdc565b6104e1610d0d565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6040805160806020601f860181900402820181018352606082810186815290935f939283929183019182918a908a90819087018382808284375f920191909152505050915250815260200161055e8561252e565b8152509050806040516020016105749190612539565b6040516020818303038152906040529150509392505050565b5f5f6105998787610661565b90505f6105a889898985610b68565b90506105ea868287878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610d3a92505050565b61060757604051638baa579f60e01b815260040160405180910390fd5b6106138983883361077b565b61061e8983886109ea565b9998505050505050505050565b5f6104a784848461063c8787610661565b610daa565b5f6106588585856106528888610661565b86610e7a565b95945050505050565b610669611da2565b610488828401846125dd565b6106938484848461068e6101408b016101208c01612420565b610e7a565b8560a00135146106de5760405163031b518f60e01b815260206004820152601060248201526f0eed2e8dccae6e640dad2e6dac2e8c6d60831b60448201526064015b60405180910390fd5b5f6106f161014087016101208801612420565b6001600160a01b03161461070d5761070885610f80565b610774565b6107578561072160a0820160808301612420565b61073361012089016101008a01612420565b60a089013561074560c08b018b6126b8565b61075260e08d018d6126b8565b6112bc565b61077457604051638baa579f60e01b815260040160405180910390fd5b5050505050565b836001600160a01b03168360200151602001516001600160a01b0316146107d1576020808401510151604051636fac7acf60e01b81526001600160a01b03918216600482015290851660248201526044016106d5565b604080518082018252600481526339b2b63360e11b602091820152848101519091015180519101207f6371090fb57ba38bba89547b61573fe30d7e52be1e97cfc4c0e68554dd71ef8b0161086257816001600160a01b0316816001600160a01b03161461085d5782602001516040015181604051634d6c926760e11b81526004016106d59291906126fa565b61092f565b60208084015160409081015180519201919091209051632474521560e21b8152600481018290526001600160a01b0383811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa1580156108e0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109049190612723565b61092d5783602001516040015182604051634d6c926760e11b81526004016106d59291906126fa565b505b61094182846020015160a00151611309565b826020015160600151421015610989576020830151606081015160809091015160405163ca5d011b60e01b8152426004820152602481019290925260448201526064016106d5565b602083015160800151158015906109a7575082602001516080015142115b156109e4576020830151606081015160809091015160405163ca5d011b60e01b8152426004820152602481019290925260448201526064016106d5565b50505050565b81515160405163d052b02360e01b81525f9182916001600160a01b0387169163d052b02391610a3f917f0000000000000000000000000000000000000000000000000000000000000000918890600401612742565b5f60405180830381865afa158015610a59573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610a80919081019061277d565b90505f610a8e82853461137d565b855151604051639989bef360e01b81529192506001600160a01b03881691639989bef391610ae3917f000000000000000000000000000000000000000000000000000000000000000091908990600401612742565b5f6040518083038186803b158015610af9575f5ffd5b505afa158015610b0b573d5f5f3e3d5ffd5b5050505084602001516040015180519060200120866001600160a01b0316856001600160a01b03167f6bb63fa129a737a1686708b0c5ca2f03826fca12b7b6ae39246a0640eddf92e660405160405180910390a495945050505050565b5f610658610b7886868686610daa565b6114a7565b5f610b89848484610bb8565b604051602001610b9991906128c2565b6040516020818303038152906040528051906020012090509392505050565b60405163390b89cb60e01b81526060906001600160a01b0385169063390b89cb90610be990869086906004016121d4565b5f60405180830381865afa158015610c03573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610c2a919081019061231a565b604051630e7c17e560e21b81526001600160a01b038616906339f05f9490610c5890879087906004016121d4565b5f60405180830381865afa158015610c72573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610c99919081019061231a565b6040518060a0016040528060728152602001612d0560729139604051602001610cc4939291906128cd565b60405160208183030381529060405290509392505050565b6060610d087f00000000000000000000000000000000000000000000000000000000000000005f6114d3565b905090565b6060610d087f000000000000000000000000000000000000000000000000000000000000000060016114d3565b5f836001600160a01b03163b5f03610d98575f5f610d58858561157c565b5090925090505f816003811115610d7157610d71612915565b148015610d8f5750856001600160a01b0316826001600160a01b0316145b925050506103de565b610da38484846115c5565b90506103de565b805151604051632f491a9560e11b81525f9182916001600160a01b03881691635e92352a91610ddc9190600401611ed4565b602060405180830381865afa158015610df7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1b9190612929565b90505f610e2b8460200151611616565b90505f610e39888888610b7d565b604080516020810183905290810185905260608101849052909150608001604051602081830303815290604052805190602001209350505050949350505050565b815151604051632f491a9560e11b81525f9182916001600160a01b03891691635e92352a91610eac9190600401611ed4565b602060405180830381865afa158015610ec7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eeb9190612929565b90505f610efb8560200151611616565b90505f610f098989896116b6565b604051602001610f1991906128c2565b60408051601f1981840301815282825280516020918201209083018190526001600160a01b038816918301919091526060820185905260808201849052915060a0015b60405160208183030381529060405280519060200120935050505095945050505050565b60408051808201909152308152602080830135908201526e22d473030f116ddee9f6b43ac78ba39063137c29fe908390610fc060a0830160808401612420565b60a0860135610fd260c08801886126b8565b610fdf60e08a018a6126b8565b6040518963ffffffff1660e01b8152600401611002989796959493929190612961565b5f604051808303815f87803b158015611019575f5ffd5b505af115801561102b573d5f5f3e3d5ffd5b505f925061103f9150506020830183612420565b905060208201356001600160a01b03821661106261014085016101208601612420565b6001600160a01b031663ee719bc86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561109d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c191906129e6565b6001600160a01b0316146111105760405163031b518f60e01b81526020600482015260156024820152740e0cae4dad2e840e8ded6cadc40dad2e6dac2e8c6d605b1b60448201526064016106d5565b5f61117a82846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611151573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111759190612a01565b611773565b90506111a261119161014086016101208701612420565b6001600160a01b03851690846117e1565b6111b461014085016101208601612420565b6001600160a01b0316635b9d09cc6111d260a0870160808801612420565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052606060448201525f60648201526084015f604051808303815f87803b158015611224575f5ffd5b505af1158015611236573d5f5f3e3d5ffd5b5061124d9250505061014085016101208601612420565b6001600160a01b0390811690841661126b60a0870160808801612420565b6001600160a01b03167fd66be664a64963e0940d8e004166aafaf12d3a718c12c9b6994d3ca9d010a8d885856040516112ae929190918252602082015260400190565b60405180910390a450505050565b5f61061e886112ce8b8a8a8a8a611860565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610d3a92505050565b6001600160a01b0382165f90815260026020908152604080832084821c808552925282208054919284926001600160401b03841692909161134983612a35565b91905055146109e45760405163dbc205b160e01b81526001600160a01b0385166004820152602481018490526044016106d5565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663670e77e3866040516024016113bf9190612a4d565b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505090505f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031685848860405160200161142e929190612ae0565b60408051601f1981840301815290829052611448916128c2565b5f6040518083038185875af1925050503d805f8114611482576040519150601f19603f3d011682016040523d82523d5f602084013e611487565b606091505b50915091508161149a5761149a816119dd565b5060019695505050505050565b5f61048b6114b3611aeb565b8360405161190160f01b8152600281019290925260228201526042902090565b606060ff83146114ed576114e683611c14565b905061048b565b8180546114f990612b0c565b80601f016020809104026020016040519081016040528092919081815260200182805461152590612b0c565b80156115705780601f1061154757610100808354040283529160200191611570565b820191905f5260205f20905b81548152906001019060200180831161155357829003601f168201915b5050505050905061048b565b5f5f5f83516041036115b3576020840151604085015160608601515f1a6115a588828585611c51565b9550955095505050506115be565b505081515f91506002905b9250925092565b805160408051630b135d3f60e11b8082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f6040518060a0016040528060728152602001612d056072913980516020918201208351805190830120848301516040808701518051908601206060808901516080808b015160a0808d015187519b8c019a909a52958a01979097526001600160a01b03909516918801919091529286015284015260c083015260e082015261010001604051602081830303815290604052805190602001209050919050565b604080518082018252600a815269436c6561724d6163726f60b01b60208201529051630e7c17e560e21b8152606091906001600160a01b038616906339f05f949061170790879087906004016121d4565b5f60405180830381865afa158015611721573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611748919081019061231a565b6040518060a0016040528060728152602001612d0560729139604051602001610cc493929190612b44565b5f5f60128360ff1610156117ab5761178c836012612b64565b61179790600a612c60565b90506117a38185612c6e565b91505061048b565b60128360ff1611156117d9576117c2601284612b64565b6117cd90600a612c60565b90506117a38185612c85565b509192915050565b6117ed8383835f611d19565b61185b576117fe83835f6001611d19565b61182657604051635274afe760e01b81526001600160a01b03841660048201526024016106d5565b6118338383836001611d19565b61185b57604051635274afe760e01b81526001600160a01b03841660048201526024016106d5565b505050565b5f5f6040518060a0016040528060648152602001612d7760649139848460405160200161188f93929190612ca4565b60408051601f1981840301815290829052805160209182012092505f916118da917f618358ac3db8dc274f0cd8829da7e234bd48cd73c4a740aede1adec9846d06a1918b9101612cc2565b60408051601f1981840301815282825280516020918201209083018590528282018190526001600160a01b038a16606080850191909152918b01356080840152908a013560a083015260c0820188905291505f9060e0016040516020818303038152906040528051906020012090506e22d473030f116ddee9f6b43ac78ba36001600160a01b0316633644e5156040518163ffffffff1660e01b8152600401602060405180830381865afa158015611994573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119b89190612929565b60405161190160f01b6020820152602281019190915260428101829052606201610f5c565b600481511015611a2f5760405162461bcd60e51b815260206004820152601a60248201527f43616c6c5574696c733a2074617267657420726576657274282900000000000060448201526064016106d5565b602081015163b1b7848f60e01b6001600160e01b0319821601611adf5760408051808201825260208082527f43616c6c5574696c733a207461726765742070616e69636b65643a2030785f5f90820190815260248501517f43616c6c5574696c733a207461726765742070616e69636b65643a2030780000600482811c600f908116603090810160081b918516011791909117909252925162461bcd60e51b81529192916106d591849101611ed4565b81518060208401fd5b50565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611b4357507f000000000000000000000000000000000000000000000000000000000000000046145b15611b6d57507f000000000000000000000000000000000000000000000000000000000000000090565b610d08604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60605f611c2083611d7b565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115611c8a57505f91506003905082611d0f565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611cdb573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116611d0657505f925060019150829050611d0f565b92505f91508190505b9450945094915050565b60405163095ea7b360e01b5f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611d6f578383151615611d63573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f60ff8216601f81111561048b57604051632cd44ac360e21b815260040160405180910390fd5b60408051606080820183529181019182529081908152602001611df96040518060c00160405280606081526020015f6001600160a01b03168152602001606081526020015f81526020015f81526020015f81525090565b905290565b6001600160a01b0381168114611ae8575f5ffd5b5f5f83601f840112611e22575f5ffd5b5081356001600160401b03811115611e38575f5ffd5b602083019150836020828501011115611e4f575f5ffd5b9250929050565b5f5f5f60408486031215611e68575f5ffd5b8335611e7381611dfe565b925060208401356001600160401b03811115611e8d575f5ffd5b611e9986828701611e12565b9497909650939450505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6104886020830184611ea6565b5f5f5f5f60608587031215611ef9575f5ffd5b84356001600160401b03811115611f0e575f5ffd5b85016101408188031215611f20575f5ffd5b93506020850135611f3081611dfe565b925060408501356001600160401b03811115611f4a575f5ffd5b611f5687828801611e12565b95989497509550505050565b8035611f6d81611dfe565b919050565b5f5f60408385031215611f83575f5ffd5b8235611f8e81611dfe565b915060208301356001600160c01b0381168114611fa9575f5ffd5b809150509250929050565b60ff60f81b8816815260e060208201525f611fd260e0830189611ea6565b8281036040840152611fe48189611ea6565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b8181101561203957835183526020938401939092019160010161201b565b50909b9a5050505050505050505050565b5f5f5f6040848603121561205c575f5ffd5b83356001600160401b03811115612071575f5ffd5b61207d86828701611e12565b90945092505060208401356001600160401b0381111561209b575f5ffd5b840160c081870312156120ac575f5ffd5b809150509250925092565b5f5f5f5f5f5f608087890312156120cc575f5ffd5b86356120d781611dfe565b955060208701356001600160401b038111156120f1575f5ffd5b6120fd89828a01611e12565b909650945050604087013561211181611dfe565b925060608701356001600160401b0381111561212b575f5ffd5b61213789828a01611e12565b979a9699509497509295939492505050565b5f5f5f5f6060858703121561215c575f5ffd5b843561216781611dfe565b935060208501356001600160401b03811115612181575f5ffd5b61218d87828801611e12565b90945092505060408501356121a181611dfe565b939692955090935050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f6104a76020830184866121ac565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b038111828210171561221d5761221d6121e7565b60405290565b604080519081016001600160401b038111828210171561221d5761221d6121e7565b604051602081016001600160401b038111828210171561221d5761221d6121e7565b604051606081016001600160401b038111828210171561221d5761221d6121e7565b604051601f8201601f191681016001600160401b03811182821017156122b1576122b16121e7565b604052919050565b5f6001600160401b038211156122d1576122d16121e7565b50601f01601f191660200190565b5f6122f16122ec846122b9565b612289565b9050828152838383011115612304575f5ffd5b8282602083015e5f602084830101529392505050565b5f6020828403121561232a575f5ffd5b81516001600160401b0381111561233f575f5ffd5b8201601f8101841361234f575f5ffd5b6104a7848251602084016122df565b5f81518060208401855e5f93019283525090919050565b5f610488612383838561235e565b7f286164647265737320757067726164655375706572546f6b656e2c416374696f81527f6e20616374696f6e2c53656375726974792073656375726974792900000000006020820152603b0190565b5f6123dd828861235e565b68207769746e6573732960b81b815261241461240e612408612402600985018b61235e565b8961235e565b8761235e565b8561235e565b98975050505050505050565b5f60208284031215612430575f5ffd5b81356103de81611dfe565b5f6124486122ec846122b9565b905082815283838301111561245b575f5ffd5b828260208301375f602084830101529392505050565b5f82601f830112612480575f5ffd5b6104888383356020850161243b565b5f60c0828403121561249f575f5ffd5b6124a76121fb565b905081356001600160401b038111156124be575f5ffd5b6124ca84828501612471565b8252506124d960208301611f62565b602082015260408201356001600160401b038111156124f6575f5ffd5b61250284828501612471565b604083015250606082810135908201526080808301359082015260a09182013591810191909152919050565b5f61048b368361248f565b602081525f825160406020840152805190506020606084015261255f6080840182611ea6565b90506020840151601f19848303016040850152805160c0835261258560c0840182611ea6565b905060018060a01b036020830151166020840152604082015183820360408501526125b08282611ea6565b915050606082015160608401526080820151608084015260a082015160a084015280935050505092915050565b5f602082840312156125ed575f5ffd5b81356001600160401b03811115612602575f5ffd5b820160408185031215612613575f5ffd5b61261b612223565b81356001600160401b03811115612630575f5ffd5b820160208187031215612641575f5ffd5b612649612245565b81356001600160401b0381111561265e575f5ffd5b80830192505086601f830112612672575f5ffd5b6126818783356020850161243b565b815282525060208201356001600160401b0381111561269e575f5ffd5b6126aa8682850161248f565b602083015250949350505050565b5f5f8335601e198436030181126126cd575f5ffd5b8301803591506001600160401b038211156126e6575f5ffd5b602001915036819003821315611e4f575f5ffd5b604081525f61270c6040830185611ea6565b905060018060a01b03831660208301529392505050565b5f60208284031215612733575f5ffd5b815180151581146103de575f5ffd5b6001600160a01b03841681526060602082018190525f9061276590830185611ea6565b905060018060a01b0383166040830152949350505050565b5f6020828403121561278d575f5ffd5b81516001600160401b038111156127a2575f5ffd5b8201601f810184136127b2575f5ffd5b80516001600160401b038111156127cb576127cb6121e7565b8060051b6127db60208201612289565b918252602081840181019290810190878411156127f6575f5ffd5b6020850192505b838310156128b75782516001600160401b0381111561281a575f5ffd5b85016060818a03601f1901121561282f575f5ffd5b612837612267565b602082015163ffffffff8116811461284d575f5ffd5b8152604082015161285d81611dfe565b602082015260608201516001600160401b0381111561287a575f5ffd5b60208184010192505089601f830112612891575f5ffd5b6128a08a8351602085016122df565b6040820152835250602092830192909101906127fd565b979650505050505050565b5f610488828461235e565b5f6128d8828661235e565b7f28416374696f6e20616374696f6e2c53656375726974792073656375726974798152602960f81b602082015261043561240e602183018761235e565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612939575f5ffd5b5051919050565b803561294b81611dfe565b6001600160a01b03168252602090810135910152565b61296b818a612940565b604089810135908201526060808a01359082015287516001600160a01b039081166080830152602089015160a0830152871660c082015260e0810186905261014061010082018190525f906129c390830186886121ac565b8281036101208401526129d78185876121ac565b9b9a5050505050505050505050565b5f602082840312156129f6575f5ffd5b81516103de81611dfe565b5f60208284031215612a11575f5ffd5b815160ff811681146103de575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201612a4657612a46612a21565b5060010190565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612ad457868503603f190184528151805163ffffffff1686526020808201516001600160a01b031690870152604090810151606091870182905290612abe90870182611ea6565b9550506020938401939190910190600101612a73565b50929695505050505050565b5f612aeb828561235e565b60609390931b6bffffffffffffffffffffffff191683525050601401919050565b600181811c90821680612b2057607f821691505b602082108103612b3e57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f610658612b5e612b58612383858961235e565b8661235e565b8461235e565b60ff828116828216039081111561048b5761048b612a21565b6001815b6001841115612bb857808504811115612b9c57612b9c612a21565b6001841615612baa57908102905b60019390931c928002612b81565b935093915050565b5f82612bce5750600161048b565b81612bda57505f61048b565b8160018114612bf05760028114612bfa57612c16565b600191505061048b565b60ff841115612c0b57612c0b612a21565b50506001821b61048b565b5060208310610133831016604e8410600b8410161715612c39575081810a61048b565b612c455f198484612b7d565b805f1904821115612c5857612c58612a21565b029392505050565b5f61048860ff841683612bc0565b808202811582820484141761048b5761048b612a21565b5f82612c9f57634e487b7160e01b5f52601260045260245ffd5b500490565b5f612caf828661235e565b838582375f930192835250909392505050565b828152606081016103de602083018461294056fe546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c75696e7432353620616d6f756e7429536563757269747928737472696e6720646f6d61696e2c61646472657373206d6163726f436f6e74726163742c737472696e672070726f76696465722c75696e743235362076616c696441667465722c75696e743235362076616c69644265666f72652c75696e74323536206e6f6e6365295065726d69745769746e6573735472616e7366657246726f6d28546f6b656e5065726d697373696f6e73207065726d69747465642c61646472657373207370656e6465722c75696e74323536206e6f6e63652c75696e7432353620646561646c696e652ca2646970667358221220c14a4eec7d53c2bb3ceccc8343825f42e606806da7bc4d91d29b868fb964914c64736f6c63430008230033a264697066735822122019ae1a40b906edc5d7f3f18b5184c8d3ec1e86c027e6fdec2acf79b0acdb66aa64736f6c63430008230033";
261
261
  const isSuperArgs = (xs) => {
262
262
  return (typeof xs[0] === "string" ||
263
263
  Array.isArray(xs[0]) ||
@@ -12,7 +12,7 @@ export declare class SuperfluidLoader__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): SuperfluidLoader;
14
14
  connect(signer: Signer): SuperfluidLoader__factory;
15
- static readonly bytecode = "0x60a0604052348015600e575f5ffd5b50604051610553380380610553833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b6080516104d661007d5f395f60c401526104d65ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063f490e2f01461002d575b5f5ffd5b61004061003b36600461039e565b610098565b60405161008f919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151821690830152608092830151169181019190915260a00190565b60405180910390f35b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663693ec85e848460405160200161010492919061040c565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161012f9190610432565b602060405180830381865afa15801561014a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016e919061047e565b6001600160a01b03168082526040805163398d76b760e11b8152905163731aed6e916004808201926020929091908290030181865afa1580156101b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d7919061047e565b6001600160a01b0390811660208301528151604051635b69006f60e11b81527fa9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3600482015291169063b6d200de90602401602060405180830381865afa158015610243573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610267919061047e565b6001600160a01b0390811660408381019190915282519051635b69006f60e11b81527f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a674600482015291169063b6d200de90602401602060405180830381865afa1580156102d6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fa919061047e565b6001600160a01b0390811660608301528151604051635b69006f60e11b81527fdfd8ece9bfbcb8c5c540edb935641f63d67686490a1ab97f000288759f30a946600482015291169063b6d200de90602401602060405180830381865afa158015610366573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038a919061047e565b6001600160a01b0316608082015292915050565b5f5f602083850312156103af575f5ffd5b823567ffffffffffffffff8111156103c5575f5ffd5b8301601f810185136103d5575f5ffd5b803567ffffffffffffffff8111156103eb575f5ffd5b8560208284010111156103fc575f5ffd5b6020919091019590945092505050565b6a29bab832b933363ab4b21760a91b81528183600b8301375f9101600b01908152919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461047b575f5ffd5b50565b5f6020828403121561048e575f5ffd5b815161049981610467565b939250505056fea264697066735822122018919f04164defe8e7ea6288228c31f3b01cb819a4136a980976b3d28713ee6864736f6c63430008230033";
15
+ static readonly bytecode = "0x60a0604052348015600e575f5ffd5b50604051610553380380610553833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b6080516104d661007d5f395f60c401526104d65ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063f490e2f01461002d575b5f5ffd5b61004061003b36600461039e565b610098565b60405161008f919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151821690830152608092830151169181019190915260a00190565b60405180910390f35b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663693ec85e848460405160200161010492919061040c565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161012f9190610432565b602060405180830381865afa15801561014a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016e919061047e565b6001600160a01b03168082526040805163398d76b760e11b8152905163731aed6e916004808201926020929091908290030181865afa1580156101b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d7919061047e565b6001600160a01b0390811660208301528151604051635b69006f60e11b81527fa9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3600482015291169063b6d200de90602401602060405180830381865afa158015610243573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610267919061047e565b6001600160a01b0390811660408381019190915282519051635b69006f60e11b81527f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a674600482015291169063b6d200de90602401602060405180830381865afa1580156102d6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fa919061047e565b6001600160a01b0390811660608301528151604051635b69006f60e11b81527fdfd8ece9bfbcb8c5c540edb935641f63d67686490a1ab97f000288759f30a946600482015291169063b6d200de90602401602060405180830381865afa158015610366573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038a919061047e565b6001600160a01b0316608082015292915050565b5f5f602083850312156103af575f5ffd5b823567ffffffffffffffff8111156103c5575f5ffd5b8301601f810185136103d5575f5ffd5b803567ffffffffffffffff8111156103eb575f5ffd5b8560208284010111156103fc575f5ffd5b6020919091019590945092505050565b6a29bab832b933363ab4b21760a91b81528183600b8301375f9101600b01908152919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461047b575f5ffd5b50565b5f6020828403121561048e575f5ffd5b815161049981610467565b939250505056fea2646970667358221220ae5647f18e8581511c42eb1f75b37d3850720a905b17756ea5344e5ce356fed064736f6c63430008230033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "contract IResolver";
@@ -61,7 +61,7 @@ const _abi = [
61
61
  type: "function",
62
62
  },
63
63
  ];
64
- const _bytecode = "0x60a0604052348015600e575f5ffd5b50604051610553380380610553833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b6080516104d661007d5f395f60c401526104d65ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063f490e2f01461002d575b5f5ffd5b61004061003b36600461039e565b610098565b60405161008f919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151821690830152608092830151169181019190915260a00190565b60405180910390f35b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663693ec85e848460405160200161010492919061040c565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161012f9190610432565b602060405180830381865afa15801561014a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016e919061047e565b6001600160a01b03168082526040805163398d76b760e11b8152905163731aed6e916004808201926020929091908290030181865afa1580156101b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d7919061047e565b6001600160a01b0390811660208301528151604051635b69006f60e11b81527fa9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3600482015291169063b6d200de90602401602060405180830381865afa158015610243573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610267919061047e565b6001600160a01b0390811660408381019190915282519051635b69006f60e11b81527f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a674600482015291169063b6d200de90602401602060405180830381865afa1580156102d6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fa919061047e565b6001600160a01b0390811660608301528151604051635b69006f60e11b81527fdfd8ece9bfbcb8c5c540edb935641f63d67686490a1ab97f000288759f30a946600482015291169063b6d200de90602401602060405180830381865afa158015610366573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038a919061047e565b6001600160a01b0316608082015292915050565b5f5f602083850312156103af575f5ffd5b823567ffffffffffffffff8111156103c5575f5ffd5b8301601f810185136103d5575f5ffd5b803567ffffffffffffffff8111156103eb575f5ffd5b8560208284010111156103fc575f5ffd5b6020919091019590945092505050565b6a29bab832b933363ab4b21760a91b81528183600b8301375f9101600b01908152919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461047b575f5ffd5b50565b5f6020828403121561048e575f5ffd5b815161049981610467565b939250505056fea264697066735822122018919f04164defe8e7ea6288228c31f3b01cb819a4136a980976b3d28713ee6864736f6c63430008230033";
64
+ const _bytecode = "0x60a0604052348015600e575f5ffd5b50604051610553380380610553833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b6080516104d661007d5f395f60c401526104d65ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063f490e2f01461002d575b5f5ffd5b61004061003b36600461039e565b610098565b60405161008f919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151821690830152608092830151169181019190915260a00190565b60405180910390f35b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663693ec85e848460405160200161010492919061040c565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161012f9190610432565b602060405180830381865afa15801561014a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016e919061047e565b6001600160a01b03168082526040805163398d76b760e11b8152905163731aed6e916004808201926020929091908290030181865afa1580156101b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d7919061047e565b6001600160a01b0390811660208301528151604051635b69006f60e11b81527fa9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3600482015291169063b6d200de90602401602060405180830381865afa158015610243573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610267919061047e565b6001600160a01b0390811660408381019190915282519051635b69006f60e11b81527f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a674600482015291169063b6d200de90602401602060405180830381865afa1580156102d6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fa919061047e565b6001600160a01b0390811660608301528151604051635b69006f60e11b81527fdfd8ece9bfbcb8c5c540edb935641f63d67686490a1ab97f000288759f30a946600482015291169063b6d200de90602401602060405180830381865afa158015610366573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038a919061047e565b6001600160a01b0316608082015292915050565b5f5f602083850312156103af575f5ffd5b823567ffffffffffffffff8111156103c5575f5ffd5b8301601f810185136103d5575f5ffd5b803567ffffffffffffffff8111156103eb575f5ffd5b8560208284010111156103fc575f5ffd5b6020919091019590945092505050565b6a29bab832b933363ab4b21760a91b81528183600b8301375f9101600b01908152919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461047b575f5ffd5b50565b5f6020828403121561048e575f5ffd5b815161049981610467565b939250505056fea2646970667358221220ae5647f18e8581511c42eb1f75b37d3850720a905b17756ea5344e5ce356fed064736f6c63430008230033";
65
65
  const isSuperArgs = (xs) => xs.length > 1;
66
66
  export class SuperfluidLoader__factory extends ContractFactory {
67
67
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class TOGA__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): TOGA;
14
14
  connect(signer: Signer): TOGA__factory;
15
- static readonly bytecode = "0x60e060405234801561000f575f5ffd5b506040516117b93803806117b983398101604081905261002e91610292565b6001600160a01b038216608081905260c0829052604051635b69006f60e11b81527fa9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3600482015263b6d200de90602401602060405180830381865afa158015610099573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100bd91906102be565b6001600160a01b031660a0526040516329965a1d60e01b815230600482018190527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248301819052604483019190915290731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d906064015f604051808303815f87803b158015610145575f5ffd5b505af1158015610157573d5f5f3e3d5ffd5b50506040516329965a1d60e01b815230600482018190527fece6fc2bcfc93e4c34c28aeaa114be1a6161decb8268f79cbe7c3c7f31b1e8c660248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b1580156101d1575f5ffd5b505af11580156101e3573d5f5f3e3d5ffd5b50506040516329965a1d60e01b815230600482018190527fca6323f8f0faf3d4f41f2397ee46c8d85bed576d54aadeb20b6cf7b45b3a696460248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b15801561025d575f5ffd5b505af115801561026f573d5f5f3e3d5ffd5b505050505050506102e0565b6001600160a01b038116811461028f575f5ffd5b50565b5f5f604083850312156102a3575f5ffd5b82516102ae8161027b565b6020939093015192949293505050565b5f602082840312156102ce575f5ffd5b81516102d98161027b565b9392505050565b60805160a05160c0516114466103735f395f8181610118015281816102d10152818161072b0152818161077a015261091401525f818161037d0152818161043a015281816105820152818161060d015281816107e101528181610a3f01528181610afc0152610cc201525f818161041001528181610558015281816105e301528181610ad20152610c9801526114465ff3fe608060405234801561000f575f5ffd5b5060043610610079575f3560e01c8063362910631161005857806336291063146100d057806360dfa69514610113578063b8a1403314610148578063bf8903dd1461015b575f5ffd5b806223de291461007d57806302f3c6c51461009257806316e23b9f146100a5575b5f5ffd5b61009061008b366004610fb3565b610196565b005b6100906100a0366004611070565b61023c565b6100b86100b33660046110a7565b61071f565b604051600b9190910b81526020015b60405180910390f35b6100fb6100de3660046110d1565b6001600160a01b039081165f908152602081905260409020541690565b6040516001600160a01b0390911681526020016100c7565b61013a7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100c7565b6100b86101563660046110a7565b61076e565b61016e6101693660046110d1565b61079f565b604080516001600160a01b0390941684526020840192909252600b0b908201526060016100c7565b335f818152602081905260409020546001600160a01b038981169116146101ed575f84156101cf576101ca858701876110f3565b6101d9565b6101d9828861071f565b90506101e7828a898461087f565b50610231565b806001600160a01b03167fb9c1b85a7ee70d95c61aca7cda03ef957abc5265a191ca74cc335faf594095668760405161022891815260200190565b60405180910390a25b505050505050505050565b6001600160a01b038083165f90815260208190526040902054163381146102a35760405162461bcd60e51b81526020600482015260166024820152751513d1d04e881bdb9b1e48141250c8185b1b1bddd95960521b60448201526064015b60405180910390fd5b5f82600b0b12156102c65760405162461bcd60e51b815260040161029a9061110e565b6102cf83610dfd565b7f00000000000000000000000000000000000000000000000000000000000000006102fc84600b0b610ea4565b6103069190611165565b111561034e5760405162461bcd60e51b81526020600482015260176024820152760a89e8e827440caf0d2e8a4c2e8ca40e8dede40d0d2ced604b1b604482015260640161029a565b604051631cd43d1160e31b81526001600160a01b03848116600483015230602483015282811660448301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063e6a1e88890606401608060405180830381865afa1580156103c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103e8919061117c565b50509150505f81600b0b13801561040157505f83600b0b135b15610535576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116906339255d5b907f00000000000000000000000000000000000000000000000000000000000000009081166350209a628887895f5b6040519080825280601f01601f191660200182016040528015610490576020820181803683370190505b506040516024016104a494939291906111fa565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526104ed93925090600401611239565b5f604051808303815f875af1158015610508573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261052f919081019061127f565b506106d7565b80600b0b5f14801561054957505f83600b0b135b156105b2576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116906339255d5b907f00000000000000000000000000000000000000000000000000000000000000009081166362fc305e8887895f610466565b5f81600b0b1380156105c6575082600b0b5f145b156106d757604080515f8152602081019091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916339255d5b917f0000000000000000000000000000000000000000000000000000000000000000919082169063b4b333c69061064a908a9030908a9060448101611332565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b031916825261069393925090600401611239565b5f604051808303815f875af11580156106ae573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106d5919081019061127f565b505b604051600b84900b81526001600160a01b038516907f0988aefa675e81e1db7fca08264db5dc2a1cc2a604f2a78d902a9747146a56719060200160405180910390a250505050565b5f6107656107606107517f00000000000000000000000000000000000000000000000000000000000000006004611165565b61075b9085611365565b610ecd565b610ef9565b90505b92915050565b5f61076561076061075b7f000000000000000000000000000000000000000000000000000000000000000085611365565b6001600160a01b038181165f81815260208190526040808220549051631cd43d1160e31b815260048101939093523060248401528316604483015291829182917f0000000000000000000000000000000000000000000000000000000000000000169063e6a1e88890606401608060405180830381865afa158015610826573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084a919061117c565b50506001600160a01b038087165f9081526020819052604090205491935016905061087485610dfd565b925092509193909250565b6001600160a01b0384165f90815260208190526040902054600160a01b900460ff16156108ee5760405162461bcd60e51b815260206004820152601c60248201527f544f47413a207265656e7472616e6379206e6f7420616c6c6f77656400000000604482015260640161029a565b5f81600b0b12156109115760405162461bcd60e51b815260040161029a9061110e565b817f000000000000000000000000000000000000000000000000000000000000000061093f83600b0b610ea4565b6109499190611165565b11156109915760405162461bcd60e51b81526020600482015260176024820152760a89e8e827440caf0d2e8a4c2e8ca40e8dede40d0d2ced604b1b604482015260640161029a565b5f8261099c86610dfd565b6109a69190611384565b90508083116109eb5760405162461bcd60e51b8152602060048201526011602482015270544f47413a2062696420746f6f206c6f7760781b604482015260640161029a565b6001600160a01b038581165f818152602081905260408082208054600160a01b60ff60a01b198216179091559051631cd43d1160e31b815260048101939093523060248401528316604483018190529290917f00000000000000000000000000000000000000000000000000000000000000009091169063e6a1e88890606401608060405180830381865afa158015610a86573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aaa919061117c565b50509150505f81600b0b1315610bc657604080515f8152602081019091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916339255d5b917f0000000000000000000000000000000000000000000000000000000000000000919082169063b4b333c690610b39908d9030908a9060448101611332565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610b8293925090600401611239565b5f604051808303815f875af1158015610b9d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610bc4919081019061127f565b505b6001600160a01b03821615610c475760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820185905288169063a9059cbb906044016020604051808303815f875af1158015610c21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c459190611397565b505b6001600160a01b038781165f90815260208190526040812080546001600160a01b03191692891692909217909155600b85900b1315610d8c57604080515f8152602081019091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916339255d5b917f000000000000000000000000000000000000000000000000000000000000000091908216906362fc305e90610cff908d908d908c90604481016111fa565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610d4893925090600401611239565b5f604051808303815f875af1158015610d63573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d8a919081019061127f565b505b6001600160a01b038781165f8181526020818152604091829020805460ff60a01b191690558151938a1684528301889052600b87900b90830152907f836808e57755d5535898b7203c7d68b1bfb2701b1943ecb133c675e0d00780159060600160405180910390a250505050505050565b604051632ec8eec760e01b81523060048201525f90819081906001600160a01b03851690632ec8eec790602401608060405180830381865afa158015610e45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6991906113b6565b5050915091505f610e7982610ecd565b610e8390846113e9565b90505f8113610e92575f610e9b565b610e9b81610ea4565b95945050505050565b5f5f821215610ec957604051635467221960e11b81526004810183905260240161029a565b5090565b5f6001600160ff1b03821115610ec95760405163123baf0360e11b81526004810183905260240161029a565b5f6b7fffffffffffffffffffffff8212610f1f576b7fffffffffffffffffffffff610768565b6107688280600b81900b8114610f525760405163327269a760e01b8152606060048201526024810183905260440161029a565b919050565b6001600160a01b0381168114610f6b575f5ffd5b50565b5f5f83601f840112610f7e575f5ffd5b50813567ffffffffffffffff811115610f95575f5ffd5b602083019150836020828501011115610fac575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60c0898b031215610fca575f5ffd5b8835610fd581610f57565b97506020890135610fe581610f57565b96506040890135610ff581610f57565b955060608901359450608089013567ffffffffffffffff811115611017575f5ffd5b6110238b828c01610f6e565b90955093505060a089013567ffffffffffffffff811115611042575f5ffd5b61104e8b828c01610f6e565b999c989b5096995094979396929594505050565b80600b0b8114610f6b575f5ffd5b5f5f60408385031215611081575f5ffd5b823561108c81610f57565b9150602083013561109c81611062565b809150509250929050565b5f5f604083850312156110b8575f5ffd5b82356110c381610f57565b946020939093013593505050565b5f602082840312156110e1575f5ffd5b81356110ec81610f57565b9392505050565b5f60208284031215611103575f5ffd5b81356110ec81611062565b60208082526023908201527f544f47413a206e65676174697665206578697452617465206e6f7420616c6c6f6040820152621dd95960ea1b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761076857610768611151565b5f5f5f5f6080858703121561118f575f5ffd5b845160208601519094506111a281611062565b6040860151606090960151949790965092505050565b634e487b7160e01b5f52604160045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03858116825284166020820152600b83900b60408201526080606082018190525f9061122f908301846111cc565b9695505050505050565b6001600160a01b03831681526060602082018190525f9061125c908301846111cc565b8281036040938401526002815261060f60f31b6020820152919091019392505050565b5f6020828403121561128f575f5ffd5b815167ffffffffffffffff8111156112a5575f5ffd5b8201601f810184136112b5575f5ffd5b805167ffffffffffffffff8111156112cf576112cf6111b8565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156112fe576112fe6111b8565b604052818152828201602001861015611315575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b6001600160a01b0385811682528481166020830152831660408201526080606082018190525f9061122f908301846111cc565b5f8261137f57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561076857610768611151565b5f602082840312156113a7575f5ffd5b815180151581146110ec575f5ffd5b5f5f5f5f608085870312156113c9575f5ffd5b505082516020840151604085015160609095015191969095509092509050565b8082018281125f83128015821682158216171561140857611408611151565b50509291505056fea264697066735822122011feab3530fa0fe1e67921449d45b50cd08f004ab42c5c5c1712a4e63d14090364736f6c63430008230033";
15
+ static readonly bytecode = "0x60e060405234801561000f575f5ffd5b506040516117b93803806117b983398101604081905261002e91610292565b6001600160a01b038216608081905260c0829052604051635b69006f60e11b81527fa9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3600482015263b6d200de90602401602060405180830381865afa158015610099573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100bd91906102be565b6001600160a01b031660a0526040516329965a1d60e01b815230600482018190527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248301819052604483019190915290731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d906064015f604051808303815f87803b158015610145575f5ffd5b505af1158015610157573d5f5f3e3d5ffd5b50506040516329965a1d60e01b815230600482018190527fece6fc2bcfc93e4c34c28aeaa114be1a6161decb8268f79cbe7c3c7f31b1e8c660248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b1580156101d1575f5ffd5b505af11580156101e3573d5f5f3e3d5ffd5b50506040516329965a1d60e01b815230600482018190527fca6323f8f0faf3d4f41f2397ee46c8d85bed576d54aadeb20b6cf7b45b3a696460248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b15801561025d575f5ffd5b505af115801561026f573d5f5f3e3d5ffd5b505050505050506102e0565b6001600160a01b038116811461028f575f5ffd5b50565b5f5f604083850312156102a3575f5ffd5b82516102ae8161027b565b6020939093015192949293505050565b5f602082840312156102ce575f5ffd5b81516102d98161027b565b9392505050565b60805160a05160c0516114466103735f395f8181610118015281816102d10152818161072b0152818161077a015261091401525f818161037d0152818161043a015281816105820152818161060d015281816107e101528181610a3f01528181610afc0152610cc201525f818161041001528181610558015281816105e301528181610ad20152610c9801526114465ff3fe608060405234801561000f575f5ffd5b5060043610610079575f3560e01c8063362910631161005857806336291063146100d057806360dfa69514610113578063b8a1403314610148578063bf8903dd1461015b575f5ffd5b806223de291461007d57806302f3c6c51461009257806316e23b9f146100a5575b5f5ffd5b61009061008b366004610fb3565b610196565b005b6100906100a0366004611070565b61023c565b6100b86100b33660046110a7565b61071f565b604051600b9190910b81526020015b60405180910390f35b6100fb6100de3660046110d1565b6001600160a01b039081165f908152602081905260409020541690565b6040516001600160a01b0390911681526020016100c7565b61013a7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100c7565b6100b86101563660046110a7565b61076e565b61016e6101693660046110d1565b61079f565b604080516001600160a01b0390941684526020840192909252600b0b908201526060016100c7565b335f818152602081905260409020546001600160a01b038981169116146101ed575f84156101cf576101ca858701876110f3565b6101d9565b6101d9828861071f565b90506101e7828a898461087f565b50610231565b806001600160a01b03167fb9c1b85a7ee70d95c61aca7cda03ef957abc5265a191ca74cc335faf594095668760405161022891815260200190565b60405180910390a25b505050505050505050565b6001600160a01b038083165f90815260208190526040902054163381146102a35760405162461bcd60e51b81526020600482015260166024820152751513d1d04e881bdb9b1e48141250c8185b1b1bddd95960521b60448201526064015b60405180910390fd5b5f82600b0b12156102c65760405162461bcd60e51b815260040161029a9061110e565b6102cf83610dfd565b7f00000000000000000000000000000000000000000000000000000000000000006102fc84600b0b610ea4565b6103069190611165565b111561034e5760405162461bcd60e51b81526020600482015260176024820152760a89e8e827440caf0d2e8a4c2e8ca40e8dede40d0d2ced604b1b604482015260640161029a565b604051631cd43d1160e31b81526001600160a01b03848116600483015230602483015282811660448301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063e6a1e88890606401608060405180830381865afa1580156103c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103e8919061117c565b50509150505f81600b0b13801561040157505f83600b0b135b15610535576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116906339255d5b907f00000000000000000000000000000000000000000000000000000000000000009081166350209a628887895f5b6040519080825280601f01601f191660200182016040528015610490576020820181803683370190505b506040516024016104a494939291906111fa565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526104ed93925090600401611239565b5f604051808303815f875af1158015610508573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261052f919081019061127f565b506106d7565b80600b0b5f14801561054957505f83600b0b135b156105b2576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116906339255d5b907f00000000000000000000000000000000000000000000000000000000000000009081166362fc305e8887895f610466565b5f81600b0b1380156105c6575082600b0b5f145b156106d757604080515f8152602081019091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916339255d5b917f0000000000000000000000000000000000000000000000000000000000000000919082169063b4b333c69061064a908a9030908a9060448101611332565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b031916825261069393925090600401611239565b5f604051808303815f875af11580156106ae573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106d5919081019061127f565b505b604051600b84900b81526001600160a01b038516907f0988aefa675e81e1db7fca08264db5dc2a1cc2a604f2a78d902a9747146a56719060200160405180910390a250505050565b5f6107656107606107517f00000000000000000000000000000000000000000000000000000000000000006004611165565b61075b9085611365565b610ecd565b610ef9565b90505b92915050565b5f61076561076061075b7f000000000000000000000000000000000000000000000000000000000000000085611365565b6001600160a01b038181165f81815260208190526040808220549051631cd43d1160e31b815260048101939093523060248401528316604483015291829182917f0000000000000000000000000000000000000000000000000000000000000000169063e6a1e88890606401608060405180830381865afa158015610826573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084a919061117c565b50506001600160a01b038087165f9081526020819052604090205491935016905061087485610dfd565b925092509193909250565b6001600160a01b0384165f90815260208190526040902054600160a01b900460ff16156108ee5760405162461bcd60e51b815260206004820152601c60248201527f544f47413a207265656e7472616e6379206e6f7420616c6c6f77656400000000604482015260640161029a565b5f81600b0b12156109115760405162461bcd60e51b815260040161029a9061110e565b817f000000000000000000000000000000000000000000000000000000000000000061093f83600b0b610ea4565b6109499190611165565b11156109915760405162461bcd60e51b81526020600482015260176024820152760a89e8e827440caf0d2e8a4c2e8ca40e8dede40d0d2ced604b1b604482015260640161029a565b5f8261099c86610dfd565b6109a69190611384565b90508083116109eb5760405162461bcd60e51b8152602060048201526011602482015270544f47413a2062696420746f6f206c6f7760781b604482015260640161029a565b6001600160a01b038581165f818152602081905260408082208054600160a01b60ff60a01b198216179091559051631cd43d1160e31b815260048101939093523060248401528316604483018190529290917f00000000000000000000000000000000000000000000000000000000000000009091169063e6a1e88890606401608060405180830381865afa158015610a86573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aaa919061117c565b50509150505f81600b0b1315610bc657604080515f8152602081019091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916339255d5b917f0000000000000000000000000000000000000000000000000000000000000000919082169063b4b333c690610b39908d9030908a9060448101611332565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610b8293925090600401611239565b5f604051808303815f875af1158015610b9d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610bc4919081019061127f565b505b6001600160a01b03821615610c475760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820185905288169063a9059cbb906044016020604051808303815f875af1158015610c21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c459190611397565b505b6001600160a01b038781165f90815260208190526040812080546001600160a01b03191692891692909217909155600b85900b1315610d8c57604080515f8152602081019091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916339255d5b917f000000000000000000000000000000000000000000000000000000000000000091908216906362fc305e90610cff908d908d908c90604481016111fa565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610d4893925090600401611239565b5f604051808303815f875af1158015610d63573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d8a919081019061127f565b505b6001600160a01b038781165f8181526020818152604091829020805460ff60a01b191690558151938a1684528301889052600b87900b90830152907f836808e57755d5535898b7203c7d68b1bfb2701b1943ecb133c675e0d00780159060600160405180910390a250505050505050565b604051632ec8eec760e01b81523060048201525f90819081906001600160a01b03851690632ec8eec790602401608060405180830381865afa158015610e45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6991906113b6565b5050915091505f610e7982610ecd565b610e8390846113e9565b90505f8113610e92575f610e9b565b610e9b81610ea4565b95945050505050565b5f5f821215610ec957604051635467221960e11b81526004810183905260240161029a565b5090565b5f6001600160ff1b03821115610ec95760405163123baf0360e11b81526004810183905260240161029a565b5f6b7fffffffffffffffffffffff8212610f1f576b7fffffffffffffffffffffff610768565b6107688280600b81900b8114610f525760405163327269a760e01b8152606060048201526024810183905260440161029a565b919050565b6001600160a01b0381168114610f6b575f5ffd5b50565b5f5f83601f840112610f7e575f5ffd5b50813567ffffffffffffffff811115610f95575f5ffd5b602083019150836020828501011115610fac575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60c0898b031215610fca575f5ffd5b8835610fd581610f57565b97506020890135610fe581610f57565b96506040890135610ff581610f57565b955060608901359450608089013567ffffffffffffffff811115611017575f5ffd5b6110238b828c01610f6e565b90955093505060a089013567ffffffffffffffff811115611042575f5ffd5b61104e8b828c01610f6e565b999c989b5096995094979396929594505050565b80600b0b8114610f6b575f5ffd5b5f5f60408385031215611081575f5ffd5b823561108c81610f57565b9150602083013561109c81611062565b809150509250929050565b5f5f604083850312156110b8575f5ffd5b82356110c381610f57565b946020939093013593505050565b5f602082840312156110e1575f5ffd5b81356110ec81610f57565b9392505050565b5f60208284031215611103575f5ffd5b81356110ec81611062565b60208082526023908201527f544f47413a206e65676174697665206578697452617465206e6f7420616c6c6f6040820152621dd95960ea1b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761076857610768611151565b5f5f5f5f6080858703121561118f575f5ffd5b845160208601519094506111a281611062565b6040860151606090960151949790965092505050565b634e487b7160e01b5f52604160045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03858116825284166020820152600b83900b60408201526080606082018190525f9061122f908301846111cc565b9695505050505050565b6001600160a01b03831681526060602082018190525f9061125c908301846111cc565b8281036040938401526002815261060f60f31b6020820152919091019392505050565b5f6020828403121561128f575f5ffd5b815167ffffffffffffffff8111156112a5575f5ffd5b8201601f810184136112b5575f5ffd5b805167ffffffffffffffff8111156112cf576112cf6111b8565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156112fe576112fe6111b8565b604052818152828201602001861015611315575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b6001600160a01b0385811682528481166020830152831660408201526080606082018190525f9061122f908301846111cc565b5f8261137f57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561076857610768611151565b5f602082840312156113a7575f5ffd5b815180151581146110ec575f5ffd5b5f5f5f5f608085870312156113c9575f5ffd5b505082516020840151604085015160609095015191969095509092509050565b8082018281125f83128015821682158216171561140857611408611151565b50509291505056fea2646970667358221220715a5f49094f9f0bb10947d22b66a1f3c9e6ecaa8cbc2f123729bfb8d0b3987964736f6c63430008230033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "contract ISuperfluid";
@@ -292,7 +292,7 @@ const _abi = [
292
292
  type: "function",
293
293
  },
294
294
  ];
295
- const _bytecode = "0x60e060405234801561000f575f5ffd5b506040516117b93803806117b983398101604081905261002e91610292565b6001600160a01b038216608081905260c0829052604051635b69006f60e11b81527fa9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3600482015263b6d200de90602401602060405180830381865afa158015610099573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100bd91906102be565b6001600160a01b031660a0526040516329965a1d60e01b815230600482018190527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248301819052604483019190915290731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d906064015f604051808303815f87803b158015610145575f5ffd5b505af1158015610157573d5f5f3e3d5ffd5b50506040516329965a1d60e01b815230600482018190527fece6fc2bcfc93e4c34c28aeaa114be1a6161decb8268f79cbe7c3c7f31b1e8c660248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b1580156101d1575f5ffd5b505af11580156101e3573d5f5f3e3d5ffd5b50506040516329965a1d60e01b815230600482018190527fca6323f8f0faf3d4f41f2397ee46c8d85bed576d54aadeb20b6cf7b45b3a696460248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b15801561025d575f5ffd5b505af115801561026f573d5f5f3e3d5ffd5b505050505050506102e0565b6001600160a01b038116811461028f575f5ffd5b50565b5f5f604083850312156102a3575f5ffd5b82516102ae8161027b565b6020939093015192949293505050565b5f602082840312156102ce575f5ffd5b81516102d98161027b565b9392505050565b60805160a05160c0516114466103735f395f8181610118015281816102d10152818161072b0152818161077a015261091401525f818161037d0152818161043a015281816105820152818161060d015281816107e101528181610a3f01528181610afc0152610cc201525f818161041001528181610558015281816105e301528181610ad20152610c9801526114465ff3fe608060405234801561000f575f5ffd5b5060043610610079575f3560e01c8063362910631161005857806336291063146100d057806360dfa69514610113578063b8a1403314610148578063bf8903dd1461015b575f5ffd5b806223de291461007d57806302f3c6c51461009257806316e23b9f146100a5575b5f5ffd5b61009061008b366004610fb3565b610196565b005b6100906100a0366004611070565b61023c565b6100b86100b33660046110a7565b61071f565b604051600b9190910b81526020015b60405180910390f35b6100fb6100de3660046110d1565b6001600160a01b039081165f908152602081905260409020541690565b6040516001600160a01b0390911681526020016100c7565b61013a7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100c7565b6100b86101563660046110a7565b61076e565b61016e6101693660046110d1565b61079f565b604080516001600160a01b0390941684526020840192909252600b0b908201526060016100c7565b335f818152602081905260409020546001600160a01b038981169116146101ed575f84156101cf576101ca858701876110f3565b6101d9565b6101d9828861071f565b90506101e7828a898461087f565b50610231565b806001600160a01b03167fb9c1b85a7ee70d95c61aca7cda03ef957abc5265a191ca74cc335faf594095668760405161022891815260200190565b60405180910390a25b505050505050505050565b6001600160a01b038083165f90815260208190526040902054163381146102a35760405162461bcd60e51b81526020600482015260166024820152751513d1d04e881bdb9b1e48141250c8185b1b1bddd95960521b60448201526064015b60405180910390fd5b5f82600b0b12156102c65760405162461bcd60e51b815260040161029a9061110e565b6102cf83610dfd565b7f00000000000000000000000000000000000000000000000000000000000000006102fc84600b0b610ea4565b6103069190611165565b111561034e5760405162461bcd60e51b81526020600482015260176024820152760a89e8e827440caf0d2e8a4c2e8ca40e8dede40d0d2ced604b1b604482015260640161029a565b604051631cd43d1160e31b81526001600160a01b03848116600483015230602483015282811660448301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063e6a1e88890606401608060405180830381865afa1580156103c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103e8919061117c565b50509150505f81600b0b13801561040157505f83600b0b135b15610535576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116906339255d5b907f00000000000000000000000000000000000000000000000000000000000000009081166350209a628887895f5b6040519080825280601f01601f191660200182016040528015610490576020820181803683370190505b506040516024016104a494939291906111fa565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526104ed93925090600401611239565b5f604051808303815f875af1158015610508573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261052f919081019061127f565b506106d7565b80600b0b5f14801561054957505f83600b0b135b156105b2576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116906339255d5b907f00000000000000000000000000000000000000000000000000000000000000009081166362fc305e8887895f610466565b5f81600b0b1380156105c6575082600b0b5f145b156106d757604080515f8152602081019091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916339255d5b917f0000000000000000000000000000000000000000000000000000000000000000919082169063b4b333c69061064a908a9030908a9060448101611332565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b031916825261069393925090600401611239565b5f604051808303815f875af11580156106ae573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106d5919081019061127f565b505b604051600b84900b81526001600160a01b038516907f0988aefa675e81e1db7fca08264db5dc2a1cc2a604f2a78d902a9747146a56719060200160405180910390a250505050565b5f6107656107606107517f00000000000000000000000000000000000000000000000000000000000000006004611165565b61075b9085611365565b610ecd565b610ef9565b90505b92915050565b5f61076561076061075b7f000000000000000000000000000000000000000000000000000000000000000085611365565b6001600160a01b038181165f81815260208190526040808220549051631cd43d1160e31b815260048101939093523060248401528316604483015291829182917f0000000000000000000000000000000000000000000000000000000000000000169063e6a1e88890606401608060405180830381865afa158015610826573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084a919061117c565b50506001600160a01b038087165f9081526020819052604090205491935016905061087485610dfd565b925092509193909250565b6001600160a01b0384165f90815260208190526040902054600160a01b900460ff16156108ee5760405162461bcd60e51b815260206004820152601c60248201527f544f47413a207265656e7472616e6379206e6f7420616c6c6f77656400000000604482015260640161029a565b5f81600b0b12156109115760405162461bcd60e51b815260040161029a9061110e565b817f000000000000000000000000000000000000000000000000000000000000000061093f83600b0b610ea4565b6109499190611165565b11156109915760405162461bcd60e51b81526020600482015260176024820152760a89e8e827440caf0d2e8a4c2e8ca40e8dede40d0d2ced604b1b604482015260640161029a565b5f8261099c86610dfd565b6109a69190611384565b90508083116109eb5760405162461bcd60e51b8152602060048201526011602482015270544f47413a2062696420746f6f206c6f7760781b604482015260640161029a565b6001600160a01b038581165f818152602081905260408082208054600160a01b60ff60a01b198216179091559051631cd43d1160e31b815260048101939093523060248401528316604483018190529290917f00000000000000000000000000000000000000000000000000000000000000009091169063e6a1e88890606401608060405180830381865afa158015610a86573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aaa919061117c565b50509150505f81600b0b1315610bc657604080515f8152602081019091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916339255d5b917f0000000000000000000000000000000000000000000000000000000000000000919082169063b4b333c690610b39908d9030908a9060448101611332565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610b8293925090600401611239565b5f604051808303815f875af1158015610b9d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610bc4919081019061127f565b505b6001600160a01b03821615610c475760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820185905288169063a9059cbb906044016020604051808303815f875af1158015610c21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c459190611397565b505b6001600160a01b038781165f90815260208190526040812080546001600160a01b03191692891692909217909155600b85900b1315610d8c57604080515f8152602081019091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916339255d5b917f000000000000000000000000000000000000000000000000000000000000000091908216906362fc305e90610cff908d908d908c90604481016111fa565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610d4893925090600401611239565b5f604051808303815f875af1158015610d63573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d8a919081019061127f565b505b6001600160a01b038781165f8181526020818152604091829020805460ff60a01b191690558151938a1684528301889052600b87900b90830152907f836808e57755d5535898b7203c7d68b1bfb2701b1943ecb133c675e0d00780159060600160405180910390a250505050505050565b604051632ec8eec760e01b81523060048201525f90819081906001600160a01b03851690632ec8eec790602401608060405180830381865afa158015610e45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6991906113b6565b5050915091505f610e7982610ecd565b610e8390846113e9565b90505f8113610e92575f610e9b565b610e9b81610ea4565b95945050505050565b5f5f821215610ec957604051635467221960e11b81526004810183905260240161029a565b5090565b5f6001600160ff1b03821115610ec95760405163123baf0360e11b81526004810183905260240161029a565b5f6b7fffffffffffffffffffffff8212610f1f576b7fffffffffffffffffffffff610768565b6107688280600b81900b8114610f525760405163327269a760e01b8152606060048201526024810183905260440161029a565b919050565b6001600160a01b0381168114610f6b575f5ffd5b50565b5f5f83601f840112610f7e575f5ffd5b50813567ffffffffffffffff811115610f95575f5ffd5b602083019150836020828501011115610fac575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60c0898b031215610fca575f5ffd5b8835610fd581610f57565b97506020890135610fe581610f57565b96506040890135610ff581610f57565b955060608901359450608089013567ffffffffffffffff811115611017575f5ffd5b6110238b828c01610f6e565b90955093505060a089013567ffffffffffffffff811115611042575f5ffd5b61104e8b828c01610f6e565b999c989b5096995094979396929594505050565b80600b0b8114610f6b575f5ffd5b5f5f60408385031215611081575f5ffd5b823561108c81610f57565b9150602083013561109c81611062565b809150509250929050565b5f5f604083850312156110b8575f5ffd5b82356110c381610f57565b946020939093013593505050565b5f602082840312156110e1575f5ffd5b81356110ec81610f57565b9392505050565b5f60208284031215611103575f5ffd5b81356110ec81611062565b60208082526023908201527f544f47413a206e65676174697665206578697452617465206e6f7420616c6c6f6040820152621dd95960ea1b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761076857610768611151565b5f5f5f5f6080858703121561118f575f5ffd5b845160208601519094506111a281611062565b6040860151606090960151949790965092505050565b634e487b7160e01b5f52604160045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03858116825284166020820152600b83900b60408201526080606082018190525f9061122f908301846111cc565b9695505050505050565b6001600160a01b03831681526060602082018190525f9061125c908301846111cc565b8281036040938401526002815261060f60f31b6020820152919091019392505050565b5f6020828403121561128f575f5ffd5b815167ffffffffffffffff8111156112a5575f5ffd5b8201601f810184136112b5575f5ffd5b805167ffffffffffffffff8111156112cf576112cf6111b8565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156112fe576112fe6111b8565b604052818152828201602001861015611315575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b6001600160a01b0385811682528481166020830152831660408201526080606082018190525f9061122f908301846111cc565b5f8261137f57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561076857610768611151565b5f602082840312156113a7575f5ffd5b815180151581146110ec575f5ffd5b5f5f5f5f608085870312156113c9575f5ffd5b505082516020840151604085015160609095015191969095509092509050565b8082018281125f83128015821682158216171561140857611408611151565b50509291505056fea264697066735822122011feab3530fa0fe1e67921449d45b50cd08f004ab42c5c5c1712a4e63d14090364736f6c63430008230033";
295
+ const _bytecode = "0x60e060405234801561000f575f5ffd5b506040516117b93803806117b983398101604081905261002e91610292565b6001600160a01b038216608081905260c0829052604051635b69006f60e11b81527fa9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3600482015263b6d200de90602401602060405180830381865afa158015610099573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100bd91906102be565b6001600160a01b031660a0526040516329965a1d60e01b815230600482018190527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248301819052604483019190915290731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d906064015f604051808303815f87803b158015610145575f5ffd5b505af1158015610157573d5f5f3e3d5ffd5b50506040516329965a1d60e01b815230600482018190527fece6fc2bcfc93e4c34c28aeaa114be1a6161decb8268f79cbe7c3c7f31b1e8c660248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b1580156101d1575f5ffd5b505af11580156101e3573d5f5f3e3d5ffd5b50506040516329965a1d60e01b815230600482018190527fca6323f8f0faf3d4f41f2397ee46c8d85bed576d54aadeb20b6cf7b45b3a696460248301526044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b15801561025d575f5ffd5b505af115801561026f573d5f5f3e3d5ffd5b505050505050506102e0565b6001600160a01b038116811461028f575f5ffd5b50565b5f5f604083850312156102a3575f5ffd5b82516102ae8161027b565b6020939093015192949293505050565b5f602082840312156102ce575f5ffd5b81516102d98161027b565b9392505050565b60805160a05160c0516114466103735f395f8181610118015281816102d10152818161072b0152818161077a015261091401525f818161037d0152818161043a015281816105820152818161060d015281816107e101528181610a3f01528181610afc0152610cc201525f818161041001528181610558015281816105e301528181610ad20152610c9801526114465ff3fe608060405234801561000f575f5ffd5b5060043610610079575f3560e01c8063362910631161005857806336291063146100d057806360dfa69514610113578063b8a1403314610148578063bf8903dd1461015b575f5ffd5b806223de291461007d57806302f3c6c51461009257806316e23b9f146100a5575b5f5ffd5b61009061008b366004610fb3565b610196565b005b6100906100a0366004611070565b61023c565b6100b86100b33660046110a7565b61071f565b604051600b9190910b81526020015b60405180910390f35b6100fb6100de3660046110d1565b6001600160a01b039081165f908152602081905260409020541690565b6040516001600160a01b0390911681526020016100c7565b61013a7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100c7565b6100b86101563660046110a7565b61076e565b61016e6101693660046110d1565b61079f565b604080516001600160a01b0390941684526020840192909252600b0b908201526060016100c7565b335f818152602081905260409020546001600160a01b038981169116146101ed575f84156101cf576101ca858701876110f3565b6101d9565b6101d9828861071f565b90506101e7828a898461087f565b50610231565b806001600160a01b03167fb9c1b85a7ee70d95c61aca7cda03ef957abc5265a191ca74cc335faf594095668760405161022891815260200190565b60405180910390a25b505050505050505050565b6001600160a01b038083165f90815260208190526040902054163381146102a35760405162461bcd60e51b81526020600482015260166024820152751513d1d04e881bdb9b1e48141250c8185b1b1bddd95960521b60448201526064015b60405180910390fd5b5f82600b0b12156102c65760405162461bcd60e51b815260040161029a9061110e565b6102cf83610dfd565b7f00000000000000000000000000000000000000000000000000000000000000006102fc84600b0b610ea4565b6103069190611165565b111561034e5760405162461bcd60e51b81526020600482015260176024820152760a89e8e827440caf0d2e8a4c2e8ca40e8dede40d0d2ced604b1b604482015260640161029a565b604051631cd43d1160e31b81526001600160a01b03848116600483015230602483015282811660448301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063e6a1e88890606401608060405180830381865afa1580156103c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103e8919061117c565b50509150505f81600b0b13801561040157505f83600b0b135b15610535576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116906339255d5b907f00000000000000000000000000000000000000000000000000000000000000009081166350209a628887895f5b6040519080825280601f01601f191660200182016040528015610490576020820181803683370190505b506040516024016104a494939291906111fa565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526104ed93925090600401611239565b5f604051808303815f875af1158015610508573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261052f919081019061127f565b506106d7565b80600b0b5f14801561054957505f83600b0b135b156105b2576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116906339255d5b907f00000000000000000000000000000000000000000000000000000000000000009081166362fc305e8887895f610466565b5f81600b0b1380156105c6575082600b0b5f145b156106d757604080515f8152602081019091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916339255d5b917f0000000000000000000000000000000000000000000000000000000000000000919082169063b4b333c69061064a908a9030908a9060448101611332565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b031916825261069393925090600401611239565b5f604051808303815f875af11580156106ae573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106d5919081019061127f565b505b604051600b84900b81526001600160a01b038516907f0988aefa675e81e1db7fca08264db5dc2a1cc2a604f2a78d902a9747146a56719060200160405180910390a250505050565b5f6107656107606107517f00000000000000000000000000000000000000000000000000000000000000006004611165565b61075b9085611365565b610ecd565b610ef9565b90505b92915050565b5f61076561076061075b7f000000000000000000000000000000000000000000000000000000000000000085611365565b6001600160a01b038181165f81815260208190526040808220549051631cd43d1160e31b815260048101939093523060248401528316604483015291829182917f0000000000000000000000000000000000000000000000000000000000000000169063e6a1e88890606401608060405180830381865afa158015610826573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084a919061117c565b50506001600160a01b038087165f9081526020819052604090205491935016905061087485610dfd565b925092509193909250565b6001600160a01b0384165f90815260208190526040902054600160a01b900460ff16156108ee5760405162461bcd60e51b815260206004820152601c60248201527f544f47413a207265656e7472616e6379206e6f7420616c6c6f77656400000000604482015260640161029a565b5f81600b0b12156109115760405162461bcd60e51b815260040161029a9061110e565b817f000000000000000000000000000000000000000000000000000000000000000061093f83600b0b610ea4565b6109499190611165565b11156109915760405162461bcd60e51b81526020600482015260176024820152760a89e8e827440caf0d2e8a4c2e8ca40e8dede40d0d2ced604b1b604482015260640161029a565b5f8261099c86610dfd565b6109a69190611384565b90508083116109eb5760405162461bcd60e51b8152602060048201526011602482015270544f47413a2062696420746f6f206c6f7760781b604482015260640161029a565b6001600160a01b038581165f818152602081905260408082208054600160a01b60ff60a01b198216179091559051631cd43d1160e31b815260048101939093523060248401528316604483018190529290917f00000000000000000000000000000000000000000000000000000000000000009091169063e6a1e88890606401608060405180830381865afa158015610a86573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aaa919061117c565b50509150505f81600b0b1315610bc657604080515f8152602081019091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916339255d5b917f0000000000000000000000000000000000000000000000000000000000000000919082169063b4b333c690610b39908d9030908a9060448101611332565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610b8293925090600401611239565b5f604051808303815f875af1158015610b9d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610bc4919081019061127f565b505b6001600160a01b03821615610c475760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820185905288169063a9059cbb906044016020604051808303815f875af1158015610c21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c459190611397565b505b6001600160a01b038781165f90815260208190526040812080546001600160a01b03191692891692909217909155600b85900b1315610d8c57604080515f8152602081019091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916339255d5b917f000000000000000000000000000000000000000000000000000000000000000091908216906362fc305e90610cff908d908d908c90604481016111fa565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610d4893925090600401611239565b5f604051808303815f875af1158015610d63573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d8a919081019061127f565b505b6001600160a01b038781165f8181526020818152604091829020805460ff60a01b191690558151938a1684528301889052600b87900b90830152907f836808e57755d5535898b7203c7d68b1bfb2701b1943ecb133c675e0d00780159060600160405180910390a250505050505050565b604051632ec8eec760e01b81523060048201525f90819081906001600160a01b03851690632ec8eec790602401608060405180830381865afa158015610e45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6991906113b6565b5050915091505f610e7982610ecd565b610e8390846113e9565b90505f8113610e92575f610e9b565b610e9b81610ea4565b95945050505050565b5f5f821215610ec957604051635467221960e11b81526004810183905260240161029a565b5090565b5f6001600160ff1b03821115610ec95760405163123baf0360e11b81526004810183905260240161029a565b5f6b7fffffffffffffffffffffff8212610f1f576b7fffffffffffffffffffffff610768565b6107688280600b81900b8114610f525760405163327269a760e01b8152606060048201526024810183905260440161029a565b919050565b6001600160a01b0381168114610f6b575f5ffd5b50565b5f5f83601f840112610f7e575f5ffd5b50813567ffffffffffffffff811115610f95575f5ffd5b602083019150836020828501011115610fac575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60c0898b031215610fca575f5ffd5b8835610fd581610f57565b97506020890135610fe581610f57565b96506040890135610ff581610f57565b955060608901359450608089013567ffffffffffffffff811115611017575f5ffd5b6110238b828c01610f6e565b90955093505060a089013567ffffffffffffffff811115611042575f5ffd5b61104e8b828c01610f6e565b999c989b5096995094979396929594505050565b80600b0b8114610f6b575f5ffd5b5f5f60408385031215611081575f5ffd5b823561108c81610f57565b9150602083013561109c81611062565b809150509250929050565b5f5f604083850312156110b8575f5ffd5b82356110c381610f57565b946020939093013593505050565b5f602082840312156110e1575f5ffd5b81356110ec81610f57565b9392505050565b5f60208284031215611103575f5ffd5b81356110ec81611062565b60208082526023908201527f544f47413a206e65676174697665206578697452617465206e6f7420616c6c6f6040820152621dd95960ea1b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761076857610768611151565b5f5f5f5f6080858703121561118f575f5ffd5b845160208601519094506111a281611062565b6040860151606090960151949790965092505050565b634e487b7160e01b5f52604160045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03858116825284166020820152600b83900b60408201526080606082018190525f9061122f908301846111cc565b9695505050505050565b6001600160a01b03831681526060602082018190525f9061125c908301846111cc565b8281036040938401526002815261060f60f31b6020820152919091019392505050565b5f6020828403121561128f575f5ffd5b815167ffffffffffffffff8111156112a5575f5ffd5b8201601f810184136112b5575f5ffd5b805167ffffffffffffffff8111156112cf576112cf6111b8565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156112fe576112fe6111b8565b604052818152828201602001861015611315575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b6001600160a01b0385811682528481166020830152831660408201526080606082018190525f9061122f908301846111cc565b5f8261137f57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561076857610768611151565b5f602082840312156113a7575f5ffd5b815180151581146110ec575f5ffd5b5f5f5f5f608085870312156113c9575f5ffd5b505082516020840151604085015160609095015191969095509092509050565b8082018281125f83128015821682158216171561140857611408611151565b50509291505056fea2646970667358221220715a5f49094f9f0bb10947d22b66a1f3c9e6ecaa8cbc2f123729bfb8d0b3987964736f6c63430008230033";
296
296
  const isSuperArgs = (xs) => xs.length > 1;
297
297
  export class TOGA__factory extends ContractFactory {
298
298
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class TestGovernance__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): TestGovernance;
14
14
  connect(signer: Signer): TestGovernance__factory;
15
- static readonly bytecode = "0x6080604052348015600e575f5ffd5b503380603357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b603a81603f565b50608e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611e478061009b5f395ff3fe608060405234801561000f575f5ffd5b5060043610610207575f3560e01c806380f70cba1161011f578063948eda5e116100a9578063d099b6a011610079578063d099b6a01461049b578063e447cc1d146104ae578063f047a2d9146104c1578063f2fde38b146104d4578063f79a8e63146104e7575f5ffd5b8063948eda5e1461044f578063ab846f1a14610462578063c9615a9814610475578063cadf8f8514610488575f5ffd5b80638abe04e9116100ef5780638abe04e9146103e35780638b93b3f5146104065780638da5cb5b146104195780638e12552f146104295780638ecbd87b1461043c575f5ffd5b806380f70cba1461038e5780638369a0f1146103af578063870299c0146103bd5780638a7ff2f7146103d0575f5ffd5b806342148deb116101a0578063640b6cc911610170578063640b6cc91461033a578063715018a61461034d57806378707cb8146103555780637dce4f81146103685780637f0558e41461037b575f5ffd5b806342148deb146102d957806344864b25146102ec57806345228235146102ff5780635a90781814610327575f5ffd5b806321964473116101db578063219644731461028d578063256b5173146102a057806325c955c3146102b357806332552908146102c6575f5ffd5b806286d5551461020b57806301a06b971461022057806311cf00f11461023357806319df62ab14610262575b5f5ffd5b61021e610219366004611825565b6104fa565b005b61021e61022e366004611868565b6105c7565b61024661024136600461193e565b61064a565b6040805192151583526020830191909152015b60405180910390f35b610275610270366004611868565b610676565b6040516001600160a01b039091168152602001610259565b61021e61029b3660046119e4565b6106a9565b61021e6102ae366004611a66565b61071b565b61021e6102c1366004611868565b610789565b61021e6102d4366004611a66565b6107e3565b61021e6102e7366004611aae565b610860565b61021e6102fa366004611868565b610916565b61031261030d366004611868565b61097c565b60408051928352602083019190915201610259565b61021e610335366004611aff565b6109c2565b61021e610348366004611b76565b610a70565b61021e610a80565b61021e610363366004611bb4565b610a93565b61021e610376366004611a66565b610aa5565b61021e610389366004611b76565b610b04565b6103a161039c366004611b76565b610b77565b604051908152602001610259565b61027561039c366004611b76565b61021e6103cb3660046119e4565b610be6565b6103a16103de366004611868565b610ccc565b6103f66103f1366004611868565b610cf8565b6040519015158152602001610259565b61021e610414366004611868565b610d11565b5f546001600160a01b0316610275565b61021e610437366004611c04565b610d92565b61021e61044a366004611868565b611082565b61021e61045d36600461193e565b6110f2565b61021e610470366004611a66565b61115d565b61021e6104833660046119e4565b6111b9565b61021e610496366004611868565b61129f565b61021e6104a9366004611c8d565b6112d7565b61021e6104bc366004611868565b611335565b6103f66104cf366004611a66565b6113a5565b61021e6104e2366004611cf3565b6113bf565b61021e6104f5366004611825565b611401565b808211158061050d575063ffffffff8210155b8061051c575063ffffffff8110155b1561053a576040516370b8cc0560e11b815260040160405180910390fd5b602082901b811761056d85857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f7884611409565b6040805160018152602081018590529081018390526001600160a01b0380861691908716907f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa186906060015b60405180910390a35050505050565b6105f282827fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f786114bb565b604080515f80825260208201819052918101919091526001600160a01b0380831691908416907f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa186906060015b60405180910390a35050565b5f5f5f610657858561157a565b90505f610665875f84610b77565b428110159890975095505050505050565b5f6106a283837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09610b77565b9392505050565b8281146106b8576106b8611d0e565b5f5b818110156107135761070b868686848181106106d8576106d8611d22565b90506020020160208101906106ed9190611cf3565b8585858181106106ff576106ff611d22565b90506020020135610b04565b6001016106ba565b505050505050565b82610725816115ac565b604051630c56507560e01b81526001600160a01b0384811660048301528381166024830152851690630c565075906044015f604051808303815f87803b15801561076d575f5ffd5b505af115801561077f573d5f5f3e3d5ffd5b5050505050505050565b61079c825f610797846115e2565b6114bb565b806001600160a01b0316826001600160a01b03167f8bfde939e79b7e6c603d67aa576e5b75a3f370334b14a9b0e5e263190034d31d5f60405161063e911515815260200190565b61080f83837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d0984611674565b60408051600181526001600160a01b03838116602083015280851692908616917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb91015b60405180910390a3505050565b8261086a816115ac565b5f5b8281101561090f57846001600160a01b031663fa6e0cfe85858481811061089557610895611d22565b90506020020160208101906108aa9190611cf3565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201525f60248201526044015f604051808303815f87803b1580156108ee575f5ffd5b505af1158015610900573d5f5f3e3d5ffd5b5050505080600101905061086c565b5050505050565b81610920816115ac565b604051631ca0c40360e21b81526001600160a01b038381166004830152841690637283100c906024015b5f604051808303815f87803b158015610961575f5ffd5b505af1158015610973573d5f5f3e3d5ffd5b50505050505050565b5f5f5f6109aa85857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78610b77565b63ffffffff602082901c811697911695509350505050565b6001600160a01b0386166109d8576109d8611d0e565b6002546001600160a01b0316156109f1576109f1611d0e565b600280546001600160a01b0319166001600160a01b038816908117909155610a1a905f876107e3565b610a26865f86866104fa565b5f5b8181101561097357600254610a68906001600160a01b03165f858585818110610a5357610a53611d22565b90506020020160208101906104709190611cf3565b600101610a28565b610a7b8383836114bb565b505050565b610a88611728565b610a915f611754565b565b610a9f84848484611674565b50505050565b610ab38383610797846117a3565b60408051600181526001600160a01b0383811660208301525f92820192909252818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d2790606001610853565b610b3083837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc484611409565b6040805160018152602081018390526001600160a01b0380851692908616917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a539101610853565b6001600160a01b038084165f90815260016020908152604080832093861683529281528282208483529052908120805460ff16610bda57506001600160a01b0384165f908152600160209081526040808320838052825280832085845290915290205b60010154949350505050565b84610bf0816115ac565b838214610bff57610bff611d0e565b5f5b8481101561097357866001600160a01b031663fa6e0cfe878784818110610c2a57610c2a611d22565b9050602002016020810190610c3f9190611cf3565b868685818110610c5157610c51611d22565b9050602002016020810190610c669190611cf3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044015f604051808303815f87803b158015610cab575f5ffd5b505af1158015610cbd573d5f5f3e3d5ffd5b50505050806001019050610c01565b5f6106a283837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4610b77565b5f610d07835f61039c856115e2565b6001149392505050565b803b5f819003610d34576040516380dddd7360e01b815260040160405180910390fd5b50610d4a825f610d43846115e2565b6001611409565b806001600160a01b0316826001600160a01b03167f8bfde939e79b7e6c603d67aa576e5b75a3f370334b14a9b0e5e263190034d31d600160405161063e911515815260200190565b85610d9c816115ac565b6001600160a01b03861615610e50576040516311a5465560e21b81526001600160a01b0387811660048301528816906346951954906024015f604051808303815f87803b158015610deb575f5ffd5b505af1158015610dfd573d5f5f3e3d5ffd5b50505050856001600160a01b0316639903ad386040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610e39575f5ffd5b505af1158015610e4b573d5f5f3e3d5ffd5b505050505b5f5b84811015610f6357876001600160a01b03166306cecba8878784818110610e7b57610e7b611d22565b9050602002016020810190610e909190611cf3565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015610ece575f5ffd5b505af1158015610ee0573d5f5f3e3d5ffd5b50505050858582818110610ef657610ef6611d22565b9050602002016020810190610f0b9190611cf3565b6001600160a01b0316639903ad386040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610f42575f5ffd5b505af1158015610f54573d5f5f3e3d5ffd5b50505050806001019050610e52565b506001600160a01b03831615611014576040516354fbc49360e01b81526001600160a01b0384811660048301528816906354fbc493906024015f604051808303815f87803b158015610fb3575f5ffd5b505af1158015610fc5573d5f5f3e3d5ffd5b50505050826001600160a01b0316639903ad386040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611001575f5ffd5b505af1925050508015611012575060015b505b6001600160a01b0382161561097357604051632f89bf8960e01b81526001600160a01b038381166004830152881690632f89bf89906024015f604051808303815f87803b158015611063575f5ffd5b505af1158015611075573d5f5f3e3d5ffd5b5050505050505050505050565b6110ad82827feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc46114bb565b604080515f80825260208201526001600160a01b0380841692908516917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910161063e565b5f6110fd838361157a565b905061110a845f836114bb565b826001600160a01b0316846001600160a01b03167fa22916b55c84301b9ba61d6494b1860339c075b3518e6db6f496bdf2a13d6ffc845f60405161114f929190611d64565b60405180910390a350505050565b61116b8383610d43846117a3565b6040805160018082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d2790606001610853565b846111c3816115ac565b8382146111d2576111d2611d0e565b5f5b8481101561097357866001600160a01b0316630c5650758787848181106111fd576111fd611d22565b90506020020160208101906112129190611cf3565b86868581811061122457611224611d22565b90506020020160208101906112399190611cf3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044015f604051808303815f87803b15801561127e575f5ffd5b505af1158015611290573d5f5f3e3d5ffd5b505050508060010190506111d4565b816112a9816115ac565b6040516315a024e160e01b81526001600160a01b0383811660048301528416906315a024e19060240161094a565b5f6112e2848461157a565b90506112f0855f8385611409565b836001600160a01b0316856001600160a01b03167fa22916b55c84301b9ba61d6494b1860339c075b3518e6db6f496bdf2a13d6ffc85856040516105b8929190611d64565b61136082827f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d096114bb565b604080515f80825260208201526001600160a01b0380841692908516917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910161063e565b5f6113b4848461039c856117a3565b600114949350505050565b6113c7611728565b6001600160a01b0381166113f557604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6113fe81611754565b50565b610a9f848484845b83611413816115ac565b60408051848152600160208201529081018390526001600160a01b0380861691908716907f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e3909060600160405180910390a350604080518082018252600180825260208083019485526001600160a01b039788165f908152828252848120979098168852958652828720948752939094529093209151825460ff19169015151782559151910155565b826114c5816115ac565b826001600160a01b0316846001600160a01b03167f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e390845f5f60405161151d939291909283529015156020830152604082015260600190565b60405180910390a3506040805180820182525f80825260208083018281526001600160a01b03978816835260018083528584209790981683529581528382209482529390935291209051815460ff19169015151781559051910155565b5f828260405160200161158e929190611d85565b60405160208183030381529060405280519060200120905092915050565b6002546001600160a01b038281169116146115c9576115c9611d0e565b5f546001600160a01b031633146113fe576113fe611d0e565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b038316918101919091525f9060c0015b604051602081830303815290604052805190602001209050919050565b8361167e816115ac565b60408051848152600160208201526001600160a01b03848116828401529151868316928816917f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e390919081900360600190a35060408051808201825260018082526001600160a01b0393841660208084019182529785165f9081528289528481209790951685529587528284209484529390955290209251835460ff19169015151783559051910155565b5f546001600160a01b03163314610a915760405163118cdaa760e01b81523360048201526024016113ec565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b038316918101919091525f9060c001611657565b6001600160a01b03811681146113fe575f5ffd5b5f5f5f5f60808587031215611838575f5ffd5b843561184381611811565b9350602085013561185381611811565b93969395505050506040820135916060013590565b5f5f60408385031215611879575f5ffd5b823561188481611811565b9150602083013561189481611811565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126118c2575f5ffd5b813567ffffffffffffffff8111156118dc576118dc61189f565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561190b5761190b61189f565b604052818152838201602001851015611922575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f60608486031215611950575f5ffd5b833561195b81611811565b9250602084013561196b81611811565b9150604084013567ffffffffffffffff811115611986575f5ffd5b611992868287016118b3565b9150509250925092565b5f5f83601f8401126119ac575f5ffd5b50813567ffffffffffffffff8111156119c3575f5ffd5b6020830191508360208260051b85010111156119dd575f5ffd5b9250929050565b5f5f5f5f5f606086880312156119f8575f5ffd5b8535611a0381611811565b9450602086013567ffffffffffffffff811115611a1e575f5ffd5b611a2a8882890161199c565b909550935050604086013567ffffffffffffffff811115611a49575f5ffd5b611a558882890161199c565b969995985093965092949392505050565b5f5f5f60608486031215611a78575f5ffd5b8335611a8381611811565b92506020840135611a9381611811565b91506040840135611aa381611811565b809150509250925092565b5f5f5f60408486031215611ac0575f5ffd5b8335611acb81611811565b9250602084013567ffffffffffffffff811115611ae6575f5ffd5b611af28682870161199c565b9497909650939450505050565b5f5f5f5f5f5f60a08789031215611b14575f5ffd5b8635611b1f81611811565b95506020870135611b2f81611811565b94506040870135935060608701359250608087013567ffffffffffffffff811115611b58575f5ffd5b611b6489828a0161199c565b979a9699509497509295939492505050565b5f5f5f60608486031215611b88575f5ffd5b8335611b9381611811565b92506020840135611ba381611811565b929592945050506040919091013590565b5f5f5f5f60808587031215611bc7575f5ffd5b8435611bd281611811565b93506020850135611be281611811565b9250604085013591506060850135611bf981611811565b939692955090935050565b5f5f5f5f5f5f60a08789031215611c19575f5ffd5b8635611c2481611811565b95506020870135611c3481611811565b9450604087013567ffffffffffffffff811115611c4f575f5ffd5b611c5b89828a0161199c565b9095509350506060870135611c6f81611811565b91506080870135611c7f81611811565b809150509295509295509295565b5f5f5f5f60808587031215611ca0575f5ffd5b8435611cab81611811565b93506020850135611cbb81611811565b9250604085013567ffffffffffffffff811115611cd6575f5ffd5b611ce2878288016118b3565b949793965093946060013593505050565b5f60208284031215611d03575f5ffd5b81356106a281611811565b634e487b7160e01b5f52600160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b604081525f611d766040830185611d36565b90508260208301529392505050565b60608152604160608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e726567697374726174696f6e4b6560a0820152607960f81b60c082015260018060a01b038316602082015260e060408201525f611e0960e0830184611d36565b94935050505056fea26469706673582212206e9bddaf47e1d698384c36dbdcdc5900948092cb0fee783c295fe97c0385963c64736f6c63430008230033";
15
+ static readonly bytecode = "0x6080604052348015600e575f5ffd5b503380603357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b603a81603f565b50608e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611e478061009b5f395ff3fe608060405234801561000f575f5ffd5b5060043610610207575f3560e01c806380f70cba1161011f578063948eda5e116100a9578063d099b6a011610079578063d099b6a01461049b578063e447cc1d146104ae578063f047a2d9146104c1578063f2fde38b146104d4578063f79a8e63146104e7575f5ffd5b8063948eda5e1461044f578063ab846f1a14610462578063c9615a9814610475578063cadf8f8514610488575f5ffd5b80638abe04e9116100ef5780638abe04e9146103e35780638b93b3f5146104065780638da5cb5b146104195780638e12552f146104295780638ecbd87b1461043c575f5ffd5b806380f70cba1461038e5780638369a0f1146103af578063870299c0146103bd5780638a7ff2f7146103d0575f5ffd5b806342148deb116101a0578063640b6cc911610170578063640b6cc91461033a578063715018a61461034d57806378707cb8146103555780637dce4f81146103685780637f0558e41461037b575f5ffd5b806342148deb146102d957806344864b25146102ec57806345228235146102ff5780635a90781814610327575f5ffd5b806321964473116101db578063219644731461028d578063256b5173146102a057806325c955c3146102b357806332552908146102c6575f5ffd5b806286d5551461020b57806301a06b971461022057806311cf00f11461023357806319df62ab14610262575b5f5ffd5b61021e610219366004611825565b6104fa565b005b61021e61022e366004611868565b6105c7565b61024661024136600461193e565b61064a565b6040805192151583526020830191909152015b60405180910390f35b610275610270366004611868565b610676565b6040516001600160a01b039091168152602001610259565b61021e61029b3660046119e4565b6106a9565b61021e6102ae366004611a66565b61071b565b61021e6102c1366004611868565b610789565b61021e6102d4366004611a66565b6107e3565b61021e6102e7366004611aae565b610860565b61021e6102fa366004611868565b610916565b61031261030d366004611868565b61097c565b60408051928352602083019190915201610259565b61021e610335366004611aff565b6109c2565b61021e610348366004611b76565b610a70565b61021e610a80565b61021e610363366004611bb4565b610a93565b61021e610376366004611a66565b610aa5565b61021e610389366004611b76565b610b04565b6103a161039c366004611b76565b610b77565b604051908152602001610259565b61027561039c366004611b76565b61021e6103cb3660046119e4565b610be6565b6103a16103de366004611868565b610ccc565b6103f66103f1366004611868565b610cf8565b6040519015158152602001610259565b61021e610414366004611868565b610d11565b5f546001600160a01b0316610275565b61021e610437366004611c04565b610d92565b61021e61044a366004611868565b611082565b61021e61045d36600461193e565b6110f2565b61021e610470366004611a66565b61115d565b61021e6104833660046119e4565b6111b9565b61021e610496366004611868565b61129f565b61021e6104a9366004611c8d565b6112d7565b61021e6104bc366004611868565b611335565b6103f66104cf366004611a66565b6113a5565b61021e6104e2366004611cf3565b6113bf565b61021e6104f5366004611825565b611401565b808211158061050d575063ffffffff8210155b8061051c575063ffffffff8110155b1561053a576040516370b8cc0560e11b815260040160405180910390fd5b602082901b811761056d85857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f7884611409565b6040805160018152602081018590529081018390526001600160a01b0380861691908716907f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa186906060015b60405180910390a35050505050565b6105f282827fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f786114bb565b604080515f80825260208201819052918101919091526001600160a01b0380831691908416907f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa186906060015b60405180910390a35050565b5f5f5f610657858561157a565b90505f610665875f84610b77565b428110159890975095505050505050565b5f6106a283837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09610b77565b9392505050565b8281146106b8576106b8611d0e565b5f5b818110156107135761070b868686848181106106d8576106d8611d22565b90506020020160208101906106ed9190611cf3565b8585858181106106ff576106ff611d22565b90506020020135610b04565b6001016106ba565b505050505050565b82610725816115ac565b604051630c56507560e01b81526001600160a01b0384811660048301528381166024830152851690630c565075906044015f604051808303815f87803b15801561076d575f5ffd5b505af115801561077f573d5f5f3e3d5ffd5b5050505050505050565b61079c825f610797846115e2565b6114bb565b806001600160a01b0316826001600160a01b03167f8bfde939e79b7e6c603d67aa576e5b75a3f370334b14a9b0e5e263190034d31d5f60405161063e911515815260200190565b61080f83837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d0984611674565b60408051600181526001600160a01b03838116602083015280851692908616917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb91015b60405180910390a3505050565b8261086a816115ac565b5f5b8281101561090f57846001600160a01b031663fa6e0cfe85858481811061089557610895611d22565b90506020020160208101906108aa9190611cf3565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201525f60248201526044015f604051808303815f87803b1580156108ee575f5ffd5b505af1158015610900573d5f5f3e3d5ffd5b5050505080600101905061086c565b5050505050565b81610920816115ac565b604051631ca0c40360e21b81526001600160a01b038381166004830152841690637283100c906024015b5f604051808303815f87803b158015610961575f5ffd5b505af1158015610973573d5f5f3e3d5ffd5b50505050505050565b5f5f5f6109aa85857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78610b77565b63ffffffff602082901c811697911695509350505050565b6001600160a01b0386166109d8576109d8611d0e565b6002546001600160a01b0316156109f1576109f1611d0e565b600280546001600160a01b0319166001600160a01b038816908117909155610a1a905f876107e3565b610a26865f86866104fa565b5f5b8181101561097357600254610a68906001600160a01b03165f858585818110610a5357610a53611d22565b90506020020160208101906104709190611cf3565b600101610a28565b610a7b8383836114bb565b505050565b610a88611728565b610a915f611754565b565b610a9f84848484611674565b50505050565b610ab38383610797846117a3565b60408051600181526001600160a01b0383811660208301525f92820192909252818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d2790606001610853565b610b3083837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc484611409565b6040805160018152602081018390526001600160a01b0380851692908616917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a539101610853565b6001600160a01b038084165f90815260016020908152604080832093861683529281528282208483529052908120805460ff16610bda57506001600160a01b0384165f908152600160209081526040808320838052825280832085845290915290205b60010154949350505050565b84610bf0816115ac565b838214610bff57610bff611d0e565b5f5b8481101561097357866001600160a01b031663fa6e0cfe878784818110610c2a57610c2a611d22565b9050602002016020810190610c3f9190611cf3565b868685818110610c5157610c51611d22565b9050602002016020810190610c669190611cf3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044015f604051808303815f87803b158015610cab575f5ffd5b505af1158015610cbd573d5f5f3e3d5ffd5b50505050806001019050610c01565b5f6106a283837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4610b77565b5f610d07835f61039c856115e2565b6001149392505050565b803b5f819003610d34576040516380dddd7360e01b815260040160405180910390fd5b50610d4a825f610d43846115e2565b6001611409565b806001600160a01b0316826001600160a01b03167f8bfde939e79b7e6c603d67aa576e5b75a3f370334b14a9b0e5e263190034d31d600160405161063e911515815260200190565b85610d9c816115ac565b6001600160a01b03861615610e50576040516311a5465560e21b81526001600160a01b0387811660048301528816906346951954906024015f604051808303815f87803b158015610deb575f5ffd5b505af1158015610dfd573d5f5f3e3d5ffd5b50505050856001600160a01b0316639903ad386040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610e39575f5ffd5b505af1158015610e4b573d5f5f3e3d5ffd5b505050505b5f5b84811015610f6357876001600160a01b03166306cecba8878784818110610e7b57610e7b611d22565b9050602002016020810190610e909190611cf3565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015610ece575f5ffd5b505af1158015610ee0573d5f5f3e3d5ffd5b50505050858582818110610ef657610ef6611d22565b9050602002016020810190610f0b9190611cf3565b6001600160a01b0316639903ad386040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610f42575f5ffd5b505af1158015610f54573d5f5f3e3d5ffd5b50505050806001019050610e52565b506001600160a01b03831615611014576040516354fbc49360e01b81526001600160a01b0384811660048301528816906354fbc493906024015f604051808303815f87803b158015610fb3575f5ffd5b505af1158015610fc5573d5f5f3e3d5ffd5b50505050826001600160a01b0316639903ad386040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611001575f5ffd5b505af1925050508015611012575060015b505b6001600160a01b0382161561097357604051632f89bf8960e01b81526001600160a01b038381166004830152881690632f89bf89906024015f604051808303815f87803b158015611063575f5ffd5b505af1158015611075573d5f5f3e3d5ffd5b5050505050505050505050565b6110ad82827feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc46114bb565b604080515f80825260208201526001600160a01b0380841692908516917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910161063e565b5f6110fd838361157a565b905061110a845f836114bb565b826001600160a01b0316846001600160a01b03167fa22916b55c84301b9ba61d6494b1860339c075b3518e6db6f496bdf2a13d6ffc845f60405161114f929190611d64565b60405180910390a350505050565b61116b8383610d43846117a3565b6040805160018082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d2790606001610853565b846111c3816115ac565b8382146111d2576111d2611d0e565b5f5b8481101561097357866001600160a01b0316630c5650758787848181106111fd576111fd611d22565b90506020020160208101906112129190611cf3565b86868581811061122457611224611d22565b90506020020160208101906112399190611cf3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044015f604051808303815f87803b15801561127e575f5ffd5b505af1158015611290573d5f5f3e3d5ffd5b505050508060010190506111d4565b816112a9816115ac565b6040516315a024e160e01b81526001600160a01b0383811660048301528416906315a024e19060240161094a565b5f6112e2848461157a565b90506112f0855f8385611409565b836001600160a01b0316856001600160a01b03167fa22916b55c84301b9ba61d6494b1860339c075b3518e6db6f496bdf2a13d6ffc85856040516105b8929190611d64565b61136082827f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d096114bb565b604080515f80825260208201526001600160a01b0380841692908516917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910161063e565b5f6113b4848461039c856117a3565b600114949350505050565b6113c7611728565b6001600160a01b0381166113f557604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6113fe81611754565b50565b610a9f848484845b83611413816115ac565b60408051848152600160208201529081018390526001600160a01b0380861691908716907f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e3909060600160405180910390a350604080518082018252600180825260208083019485526001600160a01b039788165f908152828252848120979098168852958652828720948752939094529093209151825460ff19169015151782559151910155565b826114c5816115ac565b826001600160a01b0316846001600160a01b03167f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e390845f5f60405161151d939291909283529015156020830152604082015260600190565b60405180910390a3506040805180820182525f80825260208083018281526001600160a01b03978816835260018083528584209790981683529581528382209482529390935291209051815460ff19169015151781559051910155565b5f828260405160200161158e929190611d85565b60405160208183030381529060405280519060200120905092915050565b6002546001600160a01b038281169116146115c9576115c9611d0e565b5f546001600160a01b031633146113fe576113fe611d0e565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b038316918101919091525f9060c0015b604051602081830303815290604052805190602001209050919050565b8361167e816115ac565b60408051848152600160208201526001600160a01b03848116828401529151868316928816917f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e390919081900360600190a35060408051808201825260018082526001600160a01b0393841660208084019182529785165f9081528289528481209790951685529587528284209484529390955290209251835460ff19169015151783559051910155565b5f546001600160a01b03163314610a915760405163118cdaa760e01b81523360048201526024016113ec565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b038316918101919091525f9060c001611657565b6001600160a01b03811681146113fe575f5ffd5b5f5f5f5f60808587031215611838575f5ffd5b843561184381611811565b9350602085013561185381611811565b93969395505050506040820135916060013590565b5f5f60408385031215611879575f5ffd5b823561188481611811565b9150602083013561189481611811565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126118c2575f5ffd5b813567ffffffffffffffff8111156118dc576118dc61189f565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561190b5761190b61189f565b604052818152838201602001851015611922575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f60608486031215611950575f5ffd5b833561195b81611811565b9250602084013561196b81611811565b9150604084013567ffffffffffffffff811115611986575f5ffd5b611992868287016118b3565b9150509250925092565b5f5f83601f8401126119ac575f5ffd5b50813567ffffffffffffffff8111156119c3575f5ffd5b6020830191508360208260051b85010111156119dd575f5ffd5b9250929050565b5f5f5f5f5f606086880312156119f8575f5ffd5b8535611a0381611811565b9450602086013567ffffffffffffffff811115611a1e575f5ffd5b611a2a8882890161199c565b909550935050604086013567ffffffffffffffff811115611a49575f5ffd5b611a558882890161199c565b969995985093965092949392505050565b5f5f5f60608486031215611a78575f5ffd5b8335611a8381611811565b92506020840135611a9381611811565b91506040840135611aa381611811565b809150509250925092565b5f5f5f60408486031215611ac0575f5ffd5b8335611acb81611811565b9250602084013567ffffffffffffffff811115611ae6575f5ffd5b611af28682870161199c565b9497909650939450505050565b5f5f5f5f5f5f60a08789031215611b14575f5ffd5b8635611b1f81611811565b95506020870135611b2f81611811565b94506040870135935060608701359250608087013567ffffffffffffffff811115611b58575f5ffd5b611b6489828a0161199c565b979a9699509497509295939492505050565b5f5f5f60608486031215611b88575f5ffd5b8335611b9381611811565b92506020840135611ba381611811565b929592945050506040919091013590565b5f5f5f5f60808587031215611bc7575f5ffd5b8435611bd281611811565b93506020850135611be281611811565b9250604085013591506060850135611bf981611811565b939692955090935050565b5f5f5f5f5f5f60a08789031215611c19575f5ffd5b8635611c2481611811565b95506020870135611c3481611811565b9450604087013567ffffffffffffffff811115611c4f575f5ffd5b611c5b89828a0161199c565b9095509350506060870135611c6f81611811565b91506080870135611c7f81611811565b809150509295509295509295565b5f5f5f5f60808587031215611ca0575f5ffd5b8435611cab81611811565b93506020850135611cbb81611811565b9250604085013567ffffffffffffffff811115611cd6575f5ffd5b611ce2878288016118b3565b949793965093946060013593505050565b5f60208284031215611d03575f5ffd5b81356106a281611811565b634e487b7160e01b5f52600160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b604081525f611d766040830185611d36565b90508260208301529392505050565b60608152604160608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e726567697374726174696f6e4b6560a0820152607960f81b60c082015260018060a01b038316602082015260e060408201525f611e0960e0830184611d36565b94935050505056fea26469706673582212206708cb12d24ea7deb77eeae17fd0cd7495a6ccb6f7d4378a640ea6cf884eb46664736f6c63430008230033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [];
18
18
  readonly stateMutability: "nonpayable";