@superfluid-finance/ethereum-contracts 1.2.3-dev.f94fdbb.0 → 1.3.1-dev.b8455ea.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 (165) hide show
  1. package/build/contracts/AccessControl.json +3 -3
  2. package/build/contracts/AccessControlEnumerable.json +3 -3
  3. package/build/contracts/Address.json +5 -5
  4. package/build/contracts/AgreementBase.json +13 -13
  5. package/build/contracts/AgreementLibrary.json +7 -7
  6. package/build/contracts/BaseRelayRecipient.json +5 -5
  7. package/build/contracts/BatchLiquidator.json +179 -179
  8. package/build/contracts/BatchOperation.json +5 -5
  9. package/build/contracts/CFAv1Library.json +5 -5
  10. package/build/contracts/CallUtils.json +7 -7
  11. package/build/contracts/ClosingOnUpdateFlowTestApp.json +2107 -1917
  12. package/build/contracts/ConstantFlowAgreementV1.json +8 -8
  13. package/build/contracts/Context.json +3 -3
  14. package/build/contracts/ContextDefinitions.json +5 -5
  15. package/build/contracts/Create2.json +5 -5
  16. package/build/contracts/CustomSuperTokenBase.json +3 -3
  17. package/build/contracts/ERC165.json +3 -3
  18. package/build/contracts/ERC1820Implementer.json +5 -5
  19. package/build/contracts/ERC1820RegistryCompiled.json +7 -7
  20. package/build/contracts/ERC20.json +5 -5
  21. package/build/contracts/ERC20Burnable.json +3 -3
  22. package/build/contracts/ERC20Pausable.json +3 -3
  23. package/build/contracts/ERC20PresetMinterPauser.json +5 -5
  24. package/build/contracts/ERC20WithTokenInfo.json +3 -3
  25. package/build/contracts/ERC777Helper.json +7 -7
  26. package/build/contracts/ERC777RecipientDrainingGas.json +839 -839
  27. package/build/contracts/ERC777RecipientReverting.json +839 -839
  28. package/build/contracts/EnumerableSet.json +5 -5
  29. package/build/contracts/EventsEmitter.json +47 -47
  30. package/build/contracts/ExclusiveInflowTestApp.json +2107 -1917
  31. package/build/contracts/FixedSizeData.json +213 -213
  32. package/build/contracts/FlowExchangeTestApp.json +2107 -1917
  33. package/build/contracts/FlowOperatorDefinitions.json +5 -5
  34. package/build/contracts/FullUpgradableSuperTokenProxy.json +226 -312
  35. package/build/contracts/IAccessControl.json +3 -3
  36. package/build/contracts/IAccessControlEnumerable.json +3 -3
  37. package/build/contracts/IConstantFlowAgreementV1.json +451 -444
  38. package/build/contracts/IDAv1Library.json +5 -5
  39. package/build/contracts/IERC165.json +3 -3
  40. package/build/contracts/IERC1820Implementer.json +3 -3
  41. package/build/contracts/IERC1820Registry.json +3 -3
  42. package/build/contracts/IERC20.json +3 -3
  43. package/build/contracts/IERC20Metadata.json +3 -3
  44. package/build/contracts/IERC777.json +3 -3
  45. package/build/contracts/IERC777Recipient.json +3 -3
  46. package/build/contracts/IERC777Sender.json +3 -3
  47. package/build/contracts/IInstantDistributionAgreementV1.json +570 -559
  48. package/build/contracts/IMaticBridgedNativeSuperToken.json +71 -32
  49. package/build/contracts/IMaticBridgedNativeSuperTokenCustom.json +3 -3
  50. package/build/contracts/IMultiSigWallet.json +3 -3
  51. package/build/contracts/IPureSuperToken.json +71 -32
  52. package/build/contracts/IPureSuperTokenCustom.json +3 -3
  53. package/build/contracts/IRelayRecipient.json +3 -3
  54. package/build/contracts/IResolver.json +3 -3
  55. package/build/contracts/ISETH.json +71 -32
  56. package/build/contracts/ISETHCustom.json +3 -3
  57. package/build/contracts/ISuperAgreement.json +3 -3
  58. package/build/contracts/ISuperApp.json +179 -173
  59. package/build/contracts/ISuperToken.json +522 -483
  60. package/build/contracts/ISuperTokenFactory.json +3 -3
  61. package/build/contracts/ISuperfluid.json +633 -628
  62. package/build/contracts/ISuperfluidGovernance.json +134 -133
  63. package/build/contracts/ISuperfluidToken.json +403 -394
  64. package/build/contracts/ITOGAv1.json +1211 -1211
  65. package/build/contracts/ITOGAv2.json +1211 -1211
  66. package/build/contracts/Initializable.json +3 -3
  67. package/build/contracts/InstantDistributionAgreementV1.json +10 -10
  68. package/build/contracts/MaticBridgedNativeSuperTokenProxy.json +194 -194
  69. package/build/contracts/NonClosableOutflowTestApp.json +2107 -1917
  70. package/build/contracts/Ownable.json +3 -3
  71. package/build/contracts/Pausable.json +3 -3
  72. package/build/contracts/Proxy.json +3 -3
  73. package/build/contracts/PureSuperToken.json +91 -91
  74. package/build/contracts/Resolver.json +96 -96
  75. package/build/contracts/SETHProxy.json +199 -199
  76. package/build/contracts/SafeCast.json +5 -5
  77. package/build/contracts/SafeERC20.json +5 -5
  78. package/build/contracts/SafeMath.json +5 -5
  79. package/build/contracts/SelfDeletingFlowTestApp.json +2107 -1917
  80. package/build/contracts/SlotsBitmapLibrary.json +7 -7
  81. package/build/contracts/Strings.json +5 -5
  82. package/build/contracts/SuperAppBase.json +3 -3
  83. package/build/contracts/SuperAppDefinitions.json +5 -5
  84. package/build/contracts/SuperToken.json +2262 -2262
  85. package/build/contracts/SuperTokenFactory.json +582 -582
  86. package/build/contracts/SuperTokenFactoryBase.json +576 -576
  87. package/build/contracts/SuperTokenFactoryHelper.json +578 -578
  88. package/build/contracts/SuperUpgrader.json +687 -687
  89. package/build/contracts/Superfluid.json +6648 -6678
  90. package/build/contracts/SuperfluidFrameworkDeployer.json +526 -526
  91. package/build/contracts/SuperfluidGovernanceBase.json +13 -13
  92. package/build/contracts/SuperfluidGovernanceConfigs.json +5 -5
  93. package/build/contracts/SuperfluidGovernanceII.json +21 -21
  94. package/build/contracts/SuperfluidGovernanceIIProxy.json +20 -20
  95. package/build/contracts/SuperfluidLoader.json +147 -147
  96. package/build/contracts/SuperfluidToken.json +1269 -1269
  97. package/build/contracts/TOGA.json +1221 -1221
  98. package/build/contracts/TestGovernance.json +315 -315
  99. package/build/contracts/TestToken.json +475 -561
  100. package/build/contracts/TokenCustodian.json +220 -220
  101. package/build/contracts/TokenInfo.json +3 -3
  102. package/build/contracts/UUPSProxiable.json +136 -136
  103. package/build/contracts/UUPSProxy.json +87 -87
  104. package/build/contracts/UUPSUtils.json +43 -43
  105. package/build/contracts-sizes.txt +3 -3
  106. package/contracts/agreements/AgreementBase.sol +1 -1
  107. package/contracts/agreements/AgreementLibrary.sol +1 -1
  108. package/contracts/agreements/ConstantFlowAgreementV1.sol +1 -1
  109. package/contracts/agreements/InstantDistributionAgreementV1.sol +1 -1
  110. package/contracts/gov/SuperfluidGovernanceBase.sol +1 -1
  111. package/contracts/gov/SuperfluidGovernanceII.sol +1 -1
  112. package/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol +7 -10
  113. package/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol +11 -18
  114. package/contracts/interfaces/superfluid/ISuperApp.sol +7 -9
  115. package/contracts/interfaces/superfluid/ISuperToken.sol +36 -44
  116. package/contracts/interfaces/superfluid/ISuperfluid.sol +17 -21
  117. package/contracts/interfaces/superfluid/ISuperfluidGovernance.sol +1 -1
  118. package/contracts/interfaces/superfluid/ISuperfluidToken.sol +13 -14
  119. package/contracts/libs/BaseRelayRecipient.sol +1 -1
  120. package/contracts/libs/CallUtils.sol +1 -1
  121. package/contracts/libs/ERC1820RegistryCompiled.sol +1 -1
  122. package/contracts/libs/ERC777Helper.sol +1 -1
  123. package/contracts/libs/EventsEmitter.sol +2 -2
  124. package/contracts/libs/FixedSizeData.sol +2 -2
  125. package/contracts/libs/SlotsBitmapLibrary.sol +1 -1
  126. package/contracts/mocks/AgreementMock.sol +1 -1
  127. package/contracts/mocks/CFAAppMocks.sol +6 -6
  128. package/contracts/mocks/CFALibraryMock.sol +2 -2
  129. package/contracts/mocks/CallUtilsMock.sol +1 -1
  130. package/contracts/mocks/CallUtilsTester.sol +1 -1
  131. package/contracts/mocks/CustomSuperTokenMock.sol +1 -1
  132. package/contracts/mocks/ERC777SenderRecipientMock.sol +1 -1
  133. package/contracts/mocks/FakeSuperfluidMock.sol +1 -1
  134. package/contracts/mocks/ForwarderMock.sol +1 -1
  135. package/contracts/mocks/IDASuperAppTester.sol +2 -2
  136. package/contracts/mocks/IDAv1LibraryMock.sol +3 -3
  137. package/contracts/mocks/MockSmartWallet.sol +1 -1
  138. package/contracts/mocks/MultiFlowTesterApp.sol +2 -2
  139. package/contracts/mocks/SuperAppMocks.sol +15 -12
  140. package/contracts/mocks/SuperTokenFactoryMock.sol +1 -1
  141. package/contracts/mocks/SuperTokenMock.sol +1 -1
  142. package/contracts/mocks/SuperfluidDestructorMock.sol +1 -1
  143. package/contracts/mocks/SuperfluidGovernanceIIMock.sol +1 -1
  144. package/contracts/mocks/SuperfluidMock.sol +2 -2
  145. package/contracts/mocks/UUPSProxiableMock.sol +1 -1
  146. package/contracts/superfluid/FullUpgradableSuperTokenProxy.sol +2 -2
  147. package/contracts/superfluid/SuperToken.sol +1 -1
  148. package/contracts/superfluid/SuperTokenFactory.sol +1 -1
  149. package/contracts/superfluid/Superfluid.sol +4 -4
  150. package/contracts/superfluid/SuperfluidToken.sol +1 -1
  151. package/contracts/tokens/MaticBridgedNativeSuperToken.sol +1 -1
  152. package/contracts/tokens/PureSuperToken.sol +1 -1
  153. package/contracts/tokens/SETH.sol +1 -1
  154. package/contracts/upgradability/UUPSProxiable.sol +1 -1
  155. package/contracts/upgradability/UUPSProxy.sol +1 -1
  156. package/contracts/upgradability/UUPSUtils.sol +1 -1
  157. package/contracts/utils/BatchLiquidator.sol +1 -1
  158. package/contracts/utils/Resolver.sol +1 -1
  159. package/contracts/utils/SuperUpgrader.sol +6 -6
  160. package/contracts/utils/SuperfluidLoader.sol +1 -1
  161. package/contracts/utils/TOGA.sol +1 -1
  162. package/contracts/utils/TestGovernance.sol +2 -2
  163. package/contracts/utils/TestToken.sol +2 -2
  164. package/contracts/utils/TokenCustodian.sol +1 -1
  165. package/package.json +5 -3
@@ -21,9 +21,9 @@
21
21
  "type": "function"
22
22
  }
23
23
  ],
24
- "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"logic\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/superfluid/SuperTokenFactory.sol\":\"SuperTokenFactoryHelper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0x0edeb16b9821ae2b16e9d69c383b38d3ad2fbb3e0c06cf809a0786d96e602551\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88adc865fb1bd8dab4c58096e1d5887713f62c0405f8d2d17294727a8f43d8f7\",\"dweb:/ipfs/QmUJ27zsjxCatfoTFWho4k4qdhuBTorMqLuJzWqUX4Sdmg\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x4823752b07b8ea4ca971b217e39457930e7cb103c2c91e2a29729e5ca907e4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f319af26a9ade3e6cf3698bf1b84aa6213bdd7a76606ea9ba56ced163593934\",\"dweb:/ipfs/QmZ2u9zen5Htan4dSP1RZCY2XqB9HUwqkNCMzdn7aV2jWc\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824\",\"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xc3d946432c0ddbb1f846a0d3985be71299df331b91d06732152117f62f0be2b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4632c341a06ba5c079b51ca5a915efab4e6ab57735b37839b3e8365ff806a43e\",\"dweb:/ipfs/QmTHT3xHYed2wajEoA5qu7ii2BxLpPhQZHwAhtLK5Z7ANK\"]},\"@openzeppelin/contracts/token/ERC777/IERC777.sol\":{\"keccak256\":\"0xe4e0b7e3f0265ffaa565d26acd2d45f2633f19127ed625e5a05a9f201a87a667\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1762b5bc15a009b5f092ccf547b81e0827c8705884f18e0623e497658514a7ed\",\"dweb:/ipfs/QmTtmVQYuynan3j2uVjdjjRJS1mr7LPRgxSZNnfqC7oxkz\"]},\"@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol\":{\"keccak256\":\"0x1a5d61db2733202ba361e6d6741cd2e662380e22b80e987eacfc91973f2267dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04c0cd697050a6516b7779aa2343ad2d0e5217d8915ac2382681dfdf4e445be3\",\"dweb:/ipfs/QmPCBCZgm7pHBwwogE2F9NCN3UfTdLNhqc8UDEvw8kDzyA\"]},\"@openzeppelin/contracts/token/ERC777/IERC777Sender.sol\":{\"keccak256\":\"0x742e51d63b108240759794360637468d9fcbf072cbd357744790d356a87bb382\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23912910ce2bb68e49ff83f43fcfa864210ee44580491e876db14922f8aecc18\",\"dweb:/ipfs/QmU6GnRQ51xvY8D57kPCV47oGeYozaz5AQZUCHxFfXdFZ4\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xebe3f8a59f0f1c96344a05edb984ef666ee4207e993cca99af3808f1de8771b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0db23062a52185cf06ad4202be0bfa4c7718c4b75f4526aeb456620ff2e737d4\",\"dweb:/ipfs/QmXtWdePeH6xpXf175YcnbwjsuLp35k6JxX8CjHzvHiyAi\"]},\"@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol\":{\"keccak256\":\"0x6e306f9ab28416a9e5931f0b6e264676e8ac68fad184f9a9d8bb125c6ec23bc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd7fe961c914caa1fcc8223d446c1582aec4f2a32d2f06cf09c938b72cf8ce11\",\"dweb:/ipfs/QmPfEfqtUh9SA86br28HfmMyVSBe22B3oPwF8iACCF4evY\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x5c6caab697d302ad7eb59c234a4d2dbc965c1bae87709bd2850060b7695b28c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb62abcee612c175f1b9bc70e5dfe5bd23473c99987ade6e80e291f68dc60ff1\",\"dweb:/ipfs/QmZCMajhG7FtRYNDwBchXN89mXR6HLPVzr9732qfUdNf9E\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0xa2f576be637946f767aa56601c26d717f48a0aff44f82e46f13807eea1009a21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://973868f808e88e21a1a0a01d4839314515ee337ad096286c88e41b74dcc11fc2\",\"dweb:/ipfs/QmfYuZxRfx2J2xdk4EXN7jKg4bUYEMTaYk9BAw9Bqn4o2Y\"]},\"project:/contracts/interfaces/superfluid/Definitions.sol\":{\"keccak256\":\"0x199095781e4221b6015d859558da09977f79199f38d342ab4899c2cecdf8cec1\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://9fd3a5a8b16d8517e2af10e20390a9af5adbfa4e783e3a7dd89eb4588db98385\",\"dweb:/ipfs/QmPDtGR43DeMMVsHjUh7FYzMGsFKPpGriRkaahFpN5T5d3\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperApp.sol\":{\"keccak256\":\"0x57f4203168992c940eb6b8c7cc75f854cb36a1f9323b3f39ddc5e4fbe819c043\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://888941dfa3e5004f678f215b98a85d1bf54e412317928a78e0a1cff090773d4c\",\"dweb:/ipfs/QmVe838upcAyqpy1d3oQNHJrbRyWCKHL51zWrMKruvLxFG\"]},\"project:/contracts/interfaces/superfluid/ISuperToken.sol\":{\"keccak256\":\"0x3cb0b7216007b942f7611d7b3d983c0df9408fdd4fd6b799c33fc9033e0abf8b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://17901a1fd3635f441671e14ece8ecc6806af20c5eb80cca3b7c6e53a51fef7b6\",\"dweb:/ipfs/QmUXXMfU6nmsyEnufyGEwyZ5M7pzpXNTr6vw32e3JjjoZp\"]},\"project:/contracts/interfaces/superfluid/ISuperTokenFactory.sol\":{\"keccak256\":\"0x68a466c978557e47bd7385b1d7d78f1c8fb07462a870efc5a791008e33a4f535\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d109879bdb7f022560a792af2ff481df729bf1b4b8e1831b8022f4d12892d41d\",\"dweb:/ipfs/QmRSWqHq8CP5XWgyV4mJpPxMg33s312s2K5ndHRHVqqZ8n\"]},\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":{\"keccak256\":\"0x2d9b845469a35b66f1166406149ac85e933dbe9156f57e4a4078948e6a6e71a4\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://48e5cb11d4b90e42af521e23b33d57e12187c989d8d56be332b1649308168d45\",\"dweb:/ipfs/QmdaTW4HfpFfHjkHiJ3CmZUmCfLJyFCPTnCygwhiNhx3Tu\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidGovernance.sol\":{\"keccak256\":\"0x2166f766b7f61f9bb1376b0948efa0d0c0046b93dc301e51ce495203b145189b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://929630e6a15f523b142b2897783b2f7a54532ac5ae578bd17a0b7f25a6ca2bd8\",\"dweb:/ipfs/QmTu9ffH9qbQncJGEc24bmnoCGjifQ7BG47AYR8AzMLfXR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x518b869178aafffde40c654a1e24b3b1a2b5e42e5e8f17562556f404db8b9434\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://458ce84666b418fa3a7569c0e109db4d920fb6d1cb67ebc4c497c9c71107d93b\",\"dweb:/ipfs/QmV9nqhRF7MDGkV6UW3WWcqeXov2vmqHuRcvbqaaV8yP6u\"]},\"project:/contracts/interfaces/tokens/ERC20WithTokenInfo.sol\":{\"keccak256\":\"0x66708dae3fcd06e6fc0a46f2959fc2d1e6b9361f28598337339d26af8eb8c0f9\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://77b80718cec21b81ef190c19fb9fbe73913a95c71f7e6715f671bbe8a224dafc\",\"dweb:/ipfs/QmUdsc6DF2Bgih5VZm7sfaECjhGmwE7tAx8pMkzGQgVKQw\"]},\"project:/contracts/interfaces/tokens/TokenInfo.sol\":{\"keccak256\":\"0x70e573644a0ff271c0ccef526809e9d9ab4950ec58755ca84e833cde3b8f3df0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://aea3709687cc37ba625f4cc882fbdb149a7bf5be5afe2b030203c8719641a77b\",\"dweb:/ipfs/QmVpvfR6ZheE5wNUK9CobaVBgVvEnEPkvjWF9cfwyZr7eQ\"]},\"project:/contracts/libs/ERC777Helper.sol\":{\"keccak256\":\"0x5db4d5e987d0659d5fd915e9823359141ad3d9d5796e50ae98756bccc86ea9d6\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://2a4e7413e6539cffc1ea0807f05ac49fea8ebc258a9d76b72bade12a0c143075\",\"dweb:/ipfs/QmTsrsMe3bcwB4JnfPAiG1bNvEdTAVFTSyVBKQALVuLMWy\"]},\"project:/contracts/libs/EventsEmitter.sol\":{\"keccak256\":\"0xd454206f297bbab7020fbdf6311c138227154433d574427dbc8c283107e8a01e\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://af0ffd28f03fe3a759ef8479c7451274c4816fbc7e9f37e4874612df20eebbc2\",\"dweb:/ipfs/QmfJou9yUti54ppcCiHnVf4ByFfRojqQPGdhGatPBT6Chr\"]},\"project:/contracts/libs/FixedSizeData.sol\":{\"keccak256\":\"0xbb3de3fbf919ef59b6890063847904d2824d7a0da63ff486d97a19eb8f4241f5\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://23a9d841867cbe1da4487d78929cc994352c22c9113840f98c15f0870b612f6f\",\"dweb:/ipfs/QmS7tZMw2itiie8BPosFiwmZy8TUipHUbzpEAf66SficGL\"]},\"project:/contracts/superfluid/FullUpgradableSuperTokenProxy.sol\":{\"keccak256\":\"0x8351cd8c965160f68ab2b5ffde063d1457d3f51c179a7c1081547a60d856bc3c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://152dc489a518ac6f9b90b42c52faebc0cbb7479516c606b8ca3b7f7c63945717\",\"dweb:/ipfs/QmW5Q5K3zqsFmcRXA3FMsoom76tYuHUF9pZLvZYZGynnxe\"]},\"project:/contracts/superfluid/SuperToken.sol\":{\"keccak256\":\"0xcaa50b4f7c92fd51a483f31d9869d7ad4a8b11d0fb7564eca1859434a18ba429\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://5311245d23b5e6359a95a9b62ca047f6bdcb82b68c309aaf44d7852c6af7ff96\",\"dweb:/ipfs/QmNvbjHfENCwJVprouTgDS1M7J2PTyuuuKshKtAnjWEjAJ\"]},\"project:/contracts/superfluid/SuperTokenFactory.sol\":{\"keccak256\":\"0x3cb80ed9391959d9d79cc06f95071b00dee5b07e28fc0a75e7d6338b40ebddbb\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://8d589a8000d2b57865d0ca3f9d2342971003eff476e3aeb1fcd36c903cde429b\",\"dweb:/ipfs/QmSdbmi2TCLKBqNvHBEfsdujSFa6ievkqHkKjLX2B5QbQ5\"]},\"project:/contracts/superfluid/SuperfluidToken.sol\":{\"keccak256\":\"0x4f3fc780361d5ffad656e0c79fa17b98bb2b4d28252240ec40461874ec746107\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://c6c3c8e676aa027b71a7b5c0c7241ee09edf52cbd9561f528580249d0b7c9773\",\"dweb:/ipfs/QmdAa7btJCFRHpCUQqiBeWsfdWZQXTwxPLBoiAzYCAZAvy\"]},\"project:/contracts/upgradability/UUPSProxiable.sol\":{\"keccak256\":\"0x5f50cec21a585dab7b59545aeb51735f36e3222e4b0768370be8d46373d0ef05\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://acdd57d81b5b2d346da335636baf1e37da3d31cf2eef58af493e43bc65a27414\",\"dweb:/ipfs/QmTepRBNAfRBXVDBM37ME1jpw1YgcseVehC17sWpEYeFDc\"]},\"project:/contracts/upgradability/UUPSProxy.sol\":{\"keccak256\":\"0x1164a0047c0600d162060fc9ea72a5e50779a9ccd28143fa4a984f5a635493cc\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://1205e5b16fd67b2bf99bb917175d0bd1caaa1509d3f4a4f3c8184e8c40c564ef\",\"dweb:/ipfs/Qme96cpfG4LNjdA44H2CZP3zYT73XEtRZMXpBGMTDjtFVf\"]},\"project:/contracts/upgradability/UUPSUtils.sol\":{\"keccak256\":\"0xffec084e77ce3c0b595f0612687242f3d8b7a84cab15e5650c17428ee48d0b5b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://be0183816467872b053562d9a737042ac3a91ea67e3c74e03de5db7226f3e73b\",\"dweb:/ipfs/QmUyi4YXh1T7MExbrLwZ6rAdXTPChF8q27YpZxxniR6CHM\"]}},\"version\":1}",
25
- "bytecode": "0x608060405234801561001057600080fd5b50614aba806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b61004361003e3660046100ae565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60008160405161006e906100a1565b6001600160a01b039091168152602001604051809103906000f08015801561009a573d6000803e3d6000fd5b5092915050565b6149a6806100df83390190565b6000602082840312156100c057600080fd5b81356001600160a01b03811681146100d757600080fd5b939250505056fe60a06040523480156200001157600080fd5b50604051620049a6380380620049a6833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516148a9620000fd600039600081816103f701528181610a8101528181610aef01528181610d9301528181610eed01528181610fbc015281816111d301528181611321015281816114b50152818161179c0152818161185e015281816118e501528181612171015281816122080152818161335c01526135dc01526148a96000f3fe608060405234801561001057600080fd5b50600436106103275760003560e01c806362aa5287116101b8578063a9059cbb11610104578063d9d078d6116100a2578063ee719bc81161007c578063ee719bc81461076f578063fad8b32a14610780578063fc673c4f14610793578063fe9d9303146107a657600080fd5b8063d9d078d6146106f5578063dd62ed3e14610708578063eb3537cc1461074157600080fd5b8063c68d4283116100de578063c68d4283146106a9578063ca789464146106bc578063cf97256d146106cf578063d95b6371146106e257600080fd5b8063a9059cbb14610670578063b84cdd4a14610683578063bb0d196e1461069657600080fd5b8063959b8c3f116101715780639d8767411161014b5780639d87674114610624578063a1b2bf8b14610637578063a3a7e7f31461064a578063a457c2d71461065d57600080fd5b8063959b8c3f146105f657806395d89b41146106095780639bd9bbc61461061157600080fd5b806362aa52871461058457806362ad1b831461059757806366a12fb6146105aa5780636c2d9f2f146105bd57806370a08231146105d057806379359f6f146105e357600080fd5b80632ec8eec71161027757806345977d031161023057806350d75d251161020a57806350d75d251461053c57806352d1902d14610544578063556f0dc71461056a5780635b9d09cc1461057157600080fd5b806345977d03146104f657806346951954146105095780634b61cc331461051c57600080fd5b80632ec8eec714610468578063313ce5671461049b578063386fa221146104aa57806339509351146104bd57806341b706be146104d057806342fe0980146104e357600080fd5b806316d055d6116102e457806320bc4425116102be57806320bc4425146103f557806323b872dd1461042f578063245887fc14610442578063270483971461045557600080fd5b806316d055d6146103bd57806318160ddd146103d05780631863e809146103e257600080fd5b806306e485381461032c57806306fdde031461034a578063090c415e1461035f578063095ea7b31461037457806311bcc81e1461039757806312a6a3f8146103aa575b600080fd5b6103346107b9565b60405161034191906138bb565b60405180910390f35b6103526107ca565b6040516103419190613960565b61037261036d3660046139d3565b61085c565b005b610387610382366004613a2e565b610910565b6040519015158152602001610341565b6103726103a5366004613a5a565b610927565b6103726103b8366004613a73565b610955565b6103726103cb366004613abe565b610a7f565b6003545b604051908152602001610341565b6103726103f0366004613bd2565b610ada565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610341565b61038761043d366004613c64565b610d79565b610372610450366004613a2e565b610d91565b610372610463366004613ca5565b610e08565b61047b610476366004613cc7565b610ee5565b604080519485526020850193909352918301526060820152608001610341565b60405160128152602001610341565b6103346104b8366004613cc7565b610f88565b6103876104cb366004613a2e565b61102b565b6103726104de366004613abe565b611067565b6103726104f1366004613d25565b611092565b610372610504366004613a5a565b61119c565b610372610517366004613cc7565b6111c8565b61052f61052a366004613dbf565b611257565b6040516103419190613e05565b61041761129c565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196103d4565b60016103d4565b61037261057f366004613e3d565b6112c6565b610372610592366004613c64565b61131f565b6103726105a5366004613e8c565b611377565b6103726105b8366004613c64565b611424565b61052f6105cb366004613f2a565b611443565b6103d46105de366004613cc7565b611485565b6103876105f1366004613cc7565b6114ad565b610372610604366004613cc7565b611535565b610352611586565b61037261061f366004613e3d565b611595565b610372610632366004613f5f565b6115e9565b610372610645366004613a73565b611628565b610372610658366004613cc7565b6116d2565b61038761066b366004613a2e565b6116e6565b61038761067e366004613a2e565b611735565b610387610691366004613a2e565b611743565b6103876106a4366004613cc7565b611794565b6103726106b7366004613f5f565b61181c565b6103726106ca366004613a2e565b61185c565b6103726106dd366004613a2e565b6118d0565b6103876106f0366004613fb7565b6119b8565b610387610703366004613a2e565b6119c6565b6103d4610716366004613fb7565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b61075461074f366004613a2e565b6119e0565b60408051938452602084019290925290820152606001610341565b600e546001600160a01b0316610417565b61037261078e366004613cc7565b611b1c565b6103726107a1366004613ff0565b611b6d565b6103726107b4366004614037565b611c0c565b60606107c56012611c5c565b905090565b6060600f80546107d990614075565b80601f016020809104026020016040519081016040528092919081815260200182805461080590614075565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b6000338585604051602001610873939291906140af565b6040516020818303038152906040528051906020012090506108c881848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cc292505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d5985906020015b60405180910390a35050505050565b600061091d338484611d03565b5060015b92915050565b6109523333836040518060200160405280600081525060405180602001604052806000815250611e2b565b50565b604051339060009061096d90839087906020016140f8565b60408051601f19818403018152919052805160209091012090506109918184612012565b156109f65760405162461bcd60e51b815260206004820152602a60248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420616c726561604482015269191e4818dc99585d195960b21b60648201526084015b60405180910390fd5b610a3381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cc292505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610a7093929190614135565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ac75760405162461bcd60e51b81526004016109ed90614179565b610ad38484848461204e565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906141c4565b610b7e5760405162461bcd60e51b81526004016109ed906141e1565b6000610b8861216c565b90506001600160a01b038116610b9b5750845b600085610ba85786610baa565b815b905060008313610c4757610bbd8361423e565b610bc6856122b1565b14610bd357610bd361425a565b610bdc846122b1565b6001600160a01b03821660009081526002602052604081208054909190610c04908490614270565b90915550506001600160a01b03851660009081526002602052604081208054859290610c31908490614270565b90915550610c42905085828661231f565b610d11565b8515610c5557610c5561425a565b82610c5f856122b1565b610c699190614270565b6001600160a01b03831660009081526002602052604081208054909190610c919084906142b1565b90915550610ca09050846122b1565b6001600160a01b03881660009081526002602052604081208054909190610cc8908490614270565b90915550506001600160a01b03851660009081526002602052604081208054859290610cf5908490614270565b90915550610d06905082888661231f565b610d1182868561231f565b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051610d669594939291906142f0565b60405180910390a4505050505050505050565b6000610d873385858561204e565b90505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610dd95760405162461bcd60e51b81526004016109ed90614179565b610e043383836040518060200160405280600081525060405180602001604052806000815250611e2b565b5050565b6040513390600090610e2090839086906020016140f8565b604051602081830303815290604052805190602001209050610e428184612012565b610ea05760405162461bcd60e51b815260206004820152602960248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420646f6573206044820152681b9bdd08195e1a5cdd60ba1b60648201526084016109ed565b610eaa8184612352565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6d9190614323565b9050610f7985826119e0565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611003573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610921919081019061433c565b3360008181526011602090815260408083206001600160a01b0387168452909152812054909161091d9185906110629086906143ed565b611d03565b3330146110865760405162461bcd60e51b81526004016109ed90614405565b610ad38385848461204e565b600054610100900460ff166110ad5760005460ff16156110b1565b303b155b6111145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109ed565b600054610100900460ff16158015611136576000805461ffff19166101011790555b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a161717905561116a600f868661382b565b506111776010848461382b565b5061118130612373565b8015611193576000805461ff00191690555b50505050505050565b6109523333338460405180602001604052806000815250604051806020016040528060008152506124a1565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461124e5760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a206f6e6c7920686f73742063616e2075706461746560448201526420636f646560d81b60648201526084016109ed565b610952816126a4565b60606000858585604051602001611270939291906140af565b60405160208183030381529060405280519060200120905061129281846128e4565b9695505050505050565b60006107c57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b611319333386866040518060200160405280600081525087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124a192505050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146113675760405162461bcd60e51b81526004016109ed90614179565b611372838383611d03565b505050565b336113846012828a612973565b6113a05760405162461bcd60e51b81526004016109ed9061443c565b61141a8189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250612a1c915050565b5050505050505050565b3330146113675760405162461bcd60e51b81526004016109ed90614405565b60606000848460405160200161145a9291906140f8565b60405160208183030381529060405280519060200120905061147c81846128e4565b95945050505050565b60008061149183610ee5565b5050509050600081126114a45780610d8a565b60009392505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107039190614323565b3361154260128284612a93565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546107d990614075565b6113193333868686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805160208101909152908152925060019150612a1c9050565b3330146116085760405162461bcd60e51b81526004016109ed90614405565b604080516000815260208101909152611372903390859085908590612b97565b604051339060009061164090839087906020016140f8565b60405160208183030381529060405280519060200120905061169581858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cc292505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610a7093929190614135565b610e043333836116e133611485565b61204e565b600061091d3384611062856040518060600160405280602a81526020016147fd602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190612c8c565b6000610d8a3333858561204e565b60008060008061175386866119e0565b925092509250600061177b82841161176c5760006122b1565b611776838561448c565b6122b1565b6117859085614270565b60001315979650505050505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190614323565b33301461183b5760405162461bcd60e51b81526004016109ed90614405565b60408051600080825260208201909252611372913391869186918690612cb8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118a45760405162461bcd60e51b81526004016109ed90614179565b610e043383848460405180602001604052806000815250604051806020016040528060008152506124a1565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611934573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195891906141c4565b6119745760405162461bcd60e51b81526004016109ed906141e1565b6001600160a01b038216600090815260026020526040902054611998908290614270565b6001600160a01b0390921660009081526002602052604090209190915550565b6000610d8a60128484612973565b6000806119d384846119e0565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080611a0586610f88565b905060005b8151811015611b13576000806000848481518110611a2a57611a2a6144a3565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015611a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aad91906144b9565b91945092509050611abe82886143ed565b9650611aca81876143ed565b9550611ae7818311611add5760006122b1565b611776828461448c565b611af1848a614270565b611afb91906142b1565b97505050508080611b0b906144e7565b915050611a0a565b50509250925092565b33611b2960128284612daf565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b33611b7a60128289612973565b611b965760405162461bcd60e51b81526004016109ed9061443c565b61119381888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250611e2b92505050565b61137233338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250611e2b915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611cb657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c98575b50505050509050919050565b60005b8151811015611372576000828281518110611ce257611ce26144a3565b6020026020010151905080828501555080611cfc906144e7565b9050611cc5565b6001600160a01b038316611d675760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a20617070726f76652066726f6d207a65726f206164604482015264647265737360d81b60648201526084016109ed565b6001600160a01b038216611dc95760405162461bcd60e51b815260206004820152602360248201527f5375706572546f6b656e3a20617070726f766520746f207a65726f206164647260448201526265737360e81b60648201526084016109ed565b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600e546001600160a01b0316611e835760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b600080611e8f85612ea7565b91509150611ea08787838787612b97565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0d9190614323565b600e54909150611f27906001600160a01b03168885612f63565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f949190614323565b90506000611fa2828461448c565b9050808514611fc35760405162461bcd60e51b81526004016109ed90614500565b886001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d85604051611ffe91815260200190565b60405180910390a250505050505050505050565b6000805b828110156120445783810154801561203357600192505050610921565b5061203d816144e7565b9050612016565b5060009392505050565b60006001600160a01b0384166120765760405162461bcd60e51b81526004016109ed9061455d565b6001600160a01b03831661209c5760405162461bcd60e51b81526004016109ed906145a3565b60003390506120cd818686866040518060200160405280600081525060405180602001604052806000815250612fc6565b846001600160a01b0316866001600160a01b031614612160576121608587611062866040518060600160405280602d8152602001614847602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054612c8c9092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f191906145e7565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ab91906145e7565b91505090565b60006001600160ff1b0382111561231b5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016109ed565b5090565b816001600160a01b0316836001600160a01b031660008051602061482783398151915283604051611e1e91815260200190565b60005b818110156113725760008382015561236c816144e7565b9050612355565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b1580156123f457600080fd5b505af1158015612408573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b15801561248d57600080fd5b505af1158015610ad3573d6000803e3d6000fd5b600e546001600160a01b03166124f95760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b60008061250585612ea7565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257a9190614323565b600e54909150612595906001600160a01b0316893086613065565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156125de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126029190614323565b90506000612610838361448c565b90508085146126315760405162461bcd60e51b81526004016109ed90614500565b6126548b8a868c6001600160a01b03168e6001600160a01b031614158b8b612cb8565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df8560405161268f91815260200190565b60405180910390a25050505050505050505050565b60006126ce7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036127245760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016109ed565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127869190614323565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146128005760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016109ed565b6001600160a01b03811630036128585760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016109ed565b612880817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b03841660208301520160405180910390a150565b6060816001600160401b038111156128fe576128fe613b0f565b604051908082528060200260200182016040528015612927578160200160208202803683370190505b50905060005b8281101561296c57600081850154905080838381518110612950576129506144a3565b602090810291909101015250612965816144e7565b905061292d565b5092915050565b6000816001600160a01b0316836001600160a01b031614806129e257506001600160a01b038316600090815260018501602052604090205460ff1680156129e257506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610d8757506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b038616612a425760405162461bcd60e51b81526004016109ed9061455d565b6001600160a01b038516612a685760405162461bcd60e51b81526004016109ed906145a3565b612a7687878787878761309d565b612a84878787878787612fc6565b611193878787878787876131c4565b806001600160a01b0316826001600160a01b031603612b0a5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612b60576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b038416612bf85760405162461bcd60e51b815260206004820152602260248201527f5375706572546f6b656e3a206275726e2066726f6d207a65726f206164647265604482015261737360f01b60648201526084016109ed565b612c078585600086868661309d565b612c118484613354565b836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051612c5893929190614604565b60405180910390a36040518381526000906001600160a01b0386169060008051602061482783398151915290602001610901565b60008184841115612cb05760405162461bcd60e51b81526004016109ed9190613960565b505050900390565b6001600160a01b038516612d0e5760405162461bcd60e51b815260206004820181905260248201527f5375706572546f6b656e3a206d696e7420746f207a65726f206164647265737360448201526064016109ed565b612d1885856134a8565b612d2886600087878686896131c4565b846001600160a01b0316866001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868585604051612d6f93929190614604565b60405180910390a36040518481526001600160a01b03861690600090600080516020614827833981519152906020015b60405180910390a3505050505050565b336001600160a01b03821603612e1a5760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612e74576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b600e54600090819081906012600160a01b90910460ff161015612f0657600e54612edc90600160a01b900460ff16601261462f565b612ee790600a614736565b9050612ef38185614745565b9250612eff8184614767565b9150612f5d565b600e546012600160a01b90910460ff161115612f5657600e54612f3590601290600160a01b900460ff1661462f565b612f4090600a614736565b9050612f4c8185614767565b9250839150612f5d565b8391508192505b50915091565b6040516001600160a01b03831660248201526044810182905261137290849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613502565b612fd98585612fd4866122b1565b6135d4565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc8261467798786868660405161302a93929190614604565b60405180910390a4836001600160a01b0316856001600160a01b031660008051602061482783398151915285604051612d9f91815260200190565b6040516001600160a01b03808516602483015283166044820152606481018290526113199085906323b872dd60e01b90608401612f8f565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa15801561311e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314291906145e7565b90506001600160a01b0381161561119357604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613189908a908a908a908a908a908a90600401614786565b600060405180830381600087803b1580156131a357600080fd5b505af11580156131b7573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613245573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061326991906145e7565b90506001600160a01b038116156132e5576040516223de2960e01b81526001600160a01b038216906223de29906132ae908b908b908b908b908b908b90600401614786565b600060405180830381600087803b1580156132c857600080fd5b505af11580156132dc573d6000803e3d6000fd5b5050505061141a565b811561141a576001600160a01b0386163b1561141a5760405162461bcd60e51b815260206004820152602860248201527f5375706572546f6b656e3a206e6f7420616e20455243373737546f6b656e73526044820152671958da5c1a595b9d60c21b60648201526084016109ed565b60006133dc837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133b8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f9190614323565b505090506133e9826122b1565b81121561344d5760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206275726e20616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b613456826122b1565b6001600160a01b03841660009081526002602052604090205461347991906142b1565b6001600160a01b0384166000908152600260205260409020556003546134a090839061448c565b600355505050565b6134b1816122b1565b6001600160a01b0383166000908152600260205260409020546134d49190614270565b6001600160a01b0383166000908152600260205260409020556003546134fb9082906143ed565b6003555050565b6000613557826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166137179092919063ffffffff16565b805190915015611372578080602001905181019061357591906141c4565b6113725760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109ed565b6000613638847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133b8573d6000803e3d6000fd5b50509050818112156136a15760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206d6f766520616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6001600160a01b0384166000908152600260205260409020546136c59083906142b1565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546136f5908390614270565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610d878484600085856001600160a01b0385163b6137795760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109ed565b600080866001600160a01b0316858760405161379591906147e0565b60006040518083038185875af1925050503d80600081146137d2576040519150601f19603f3d011682016040523d82523d6000602084013e6137d7565b606091505b50915091506137e78282866137f2565b979650505050505050565b60608315613801575081610d8a565b8251156138115782518084602001fd5b8160405162461bcd60e51b81526004016109ed9190613960565b82805461383790614075565b90600052602060002090601f016020900481019282613859576000855561389f565b82601f106138725782800160ff1982351617855561389f565b8280016001018555821561389f579182015b8281111561389f578235825591602001919060010190613884565b5061231b9291505b8082111561231b57600081556001016138a7565b6020808252825182820181905260009190848201906040850190845b818110156138fc5783516001600160a01b0316835292840192918401916001016138d7565b50909695505050505050565b60005b8381101561392357818101518382015260200161390b565b838111156113195750506000910152565b6000815180845261394c816020860160208601613908565b601f01601f19169290920160200192915050565b602081526000610d8a6020830184613934565b6001600160a01b038116811461095257600080fd5b60008083601f84011261399a57600080fd5b5081356001600160401b038111156139b157600080fd5b6020830191508360208260051b85010111156139cc57600080fd5b9250929050565b600080600080606085870312156139e957600080fd5b84356139f481613973565b93506020850135925060408501356001600160401b03811115613a1657600080fd5b613a2287828801613988565b95989497509550505050565b60008060408385031215613a4157600080fd5b8235613a4c81613973565b946020939093013593505050565b600060208284031215613a6c57600080fd5b5035919050565b600080600060408486031215613a8857600080fd5b8335925060208401356001600160401b03811115613aa557600080fd5b613ab186828701613988565b9497909650939450505050565b60008060008060808587031215613ad457600080fd5b8435613adf81613973565b93506020850135613aef81613973565b92506040850135613aff81613973565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613b4d57613b4d613b0f565b604052919050565b600082601f830112613b6657600080fd5b81356001600160401b03811115613b7f57613b7f613b0f565b613b92601f8201601f1916602001613b25565b818152846020838601011115613ba757600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461095257600080fd5b600080600080600080600060e0888a031215613bed57600080fd5b8735965060208801356001600160401b03811115613c0a57600080fd5b613c168a828b01613b55565b9650506040880135613c2781613973565b94506060880135613c3781613bc4565b93506080880135613c4781613973565b9699959850939692959460a0840135945060c09093013592915050565b600080600060608486031215613c7957600080fd5b8335613c8481613973565b92506020840135613c9481613973565b929592945050506040919091013590565b60008060408385031215613cb857600080fd5b50508035926020909101359150565b600060208284031215613cd957600080fd5b8135610d8a81613973565b60008083601f840112613cf657600080fd5b5081356001600160401b03811115613d0d57600080fd5b6020830191508360208285010111156139cc57600080fd5b60008060008060008060808789031215613d3e57600080fd5b8635613d4981613973565b9550602087013560ff81168114613d5f57600080fd5b945060408701356001600160401b0380821115613d7b57600080fd5b613d878a838b01613ce4565b90965094506060890135915080821115613da057600080fd5b50613dad89828a01613ce4565b979a9699509497509295939492505050565b60008060008060808587031215613dd557600080fd5b8435613de081613973565b93506020850135613df081613973565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b818110156138fc57835183529284019291840191600101613e21565b60008060008060608587031215613e5357600080fd5b8435613e5e81613973565b93506020850135925060408501356001600160401b03811115613e8057600080fd5b613a2287828801613ce4565b600080600080600080600060a0888a031215613ea757600080fd5b8735613eb281613973565b96506020880135613ec281613973565b95506040880135945060608801356001600160401b0380821115613ee557600080fd5b613ef18b838c01613ce4565b909650945060808a0135915080821115613f0a57600080fd5b50613f178a828b01613ce4565b989b979a50959850939692959293505050565b600080600060608486031215613f3f57600080fd5b8335613f4a81613973565b95602085013595506040909401359392505050565b600080600060608486031215613f7457600080fd5b8335613f7f81613973565b92506020840135915060408401356001600160401b03811115613fa157600080fd5b613fad86828701613b55565b9150509250925092565b60008060408385031215613fca57600080fd5b8235613fd581613973565b91506020830135613fe581613973565b809150509250929050565b6000806000806000806080878903121561400957600080fd5b863561401481613973565b95506020870135945060408701356001600160401b0380821115613d7b57600080fd5b60008060006040848603121561404c57600080fd5b8335925060208401356001600160401b0381111561406957600080fd5b613ab186828701613ce4565b600181811c9082168061408957607f821691505b6020821081036140a957634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b0383111561415c57600080fd5b8260051b8085606085013760009201606001918252509392505050565b6020808252602b908201527f5375706572666c756964546f6b656e3a204f6e6c7920686f737420636f6e747260408201526a1858dd08185b1b1bddd95960aa1b606082015260800190565b6000602082840312156141d657600080fd5b8151610d8a81613bc4565b60208082526027908201527f5375706572666c756964546f6b656e3a206f6e6c79206c6973746564206167726040820152661959595b595b9d60ca1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b820161425357614253614228565b5060000390565b634e487b7160e01b600052600160045260246000fd5b600080821280156001600160ff1b038490038513161561429257614292614228565b600160ff1b83900384128116156142ab576142ab614228565b50500190565b60008083128015600160ff1b8501841216156142cf576142cf614228565b6001600160ff1b03840183138116156142ea576142ea614228565b50500390565b85815260018060a01b038516602082015283604082015282606082015260a0608082015260006137e760a0830184613934565b60006020828403121561433557600080fd5b5051919050565b6000602080838503121561434f57600080fd5b82516001600160401b038082111561436657600080fd5b818501915085601f83011261437a57600080fd5b81518181111561438c5761438c613b0f565b8060051b915061439d848301613b25565b81815291830184019184810190888411156143b757600080fd5b938501935b838510156143e157845192506143d183613973565b82825293850193908501906143bc565b98975050505050505050565b6000821982111561440057614400614228565b500190565b6020808252601d908201527f5375706572546f6b656e3a206f6e6c792073656c6620616c6c6f776564000000604082015260600190565b60208082526030908201527f5375706572546f6b656e3a2063616c6c6572206973206e6f7420616e206f706560408201526f3930ba37b9103337b9103437b63232b960811b606082015260800190565b60008282101561449e5761449e614228565b500390565b634e487b7160e01b600052603260045260246000fd5b6000806000606084860312156144ce57600080fd5b8351925060208401519150604084015190509250925092565b6000600182016144f9576144f9614228565b5060010190565b6020808252603a908201527f5375706572546f6b656e3a20696e666c6174696f6e6172792f6465666c61746960408201527f6f6e61727920746f6b656e73206e6f7420737570706f72746564000000000000606082015260800190565b60208082526026908201527f5375706572546f6b656e3a207472616e736665722066726f6d207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526024908201527f5375706572546f6b656e3a207472616e7366657220746f207a65726f206164646040820152637265737360e01b606082015260800190565b6000602082840312156145f957600080fd5b8151610d8a81613973565b83815260606020820152600061461d6060830185613934565b82810360408401526112928185613934565b600060ff821660ff84168082101561464957614649614228565b90039392505050565b600181815b8085111561468d57816000190482111561467357614673614228565b8085161561468057918102915b93841c9390800290614657565b509250929050565b6000826146a457506001610921565b816146b157506000610921565b81600181146146c757600281146146d1576146ed565b6001915050610921565b60ff8411156146e2576146e2614228565b50506001821b610921565b5060208310610133831016604e8410600b8410161715614710575081810a610921565b61471a8383614652565b806000190482111561472e5761472e614228565b029392505050565b6000610d8a60ff841683614695565b60008261476257634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561478157614781614228565b500290565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190526000906147c190830185613934565b82810360a08401526147d38185613934565b9998505050505050505050565b600082516147f2818460208701613908565b919091019291505056fe5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122041147c921d8e2f6615d0932c000e2b63565345f5cf02aaa7708542cb2060207064736f6c634300080d0033a26469706673582212201de25eba71c7b88189d375f9db7aab0fbebee8128d83c02cef7ba7350a0a7bbd64736f6c634300080d0033",
26
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b61004361003e3660046100ae565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60008160405161006e906100a1565b6001600160a01b039091168152602001604051809103906000f08015801561009a573d6000803e3d6000fd5b5092915050565b6149a6806100df83390190565b6000602082840312156100c057600080fd5b81356001600160a01b03811681146100d757600080fd5b939250505056fe60a06040523480156200001157600080fd5b50604051620049a6380380620049a6833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516148a9620000fd600039600081816103f701528181610a8101528181610aef01528181610d9301528181610eed01528181610fbc015281816111d301528181611321015281816114b50152818161179c0152818161185e015281816118e501528181612171015281816122080152818161335c01526135dc01526148a96000f3fe608060405234801561001057600080fd5b50600436106103275760003560e01c806362aa5287116101b8578063a9059cbb11610104578063d9d078d6116100a2578063ee719bc81161007c578063ee719bc81461076f578063fad8b32a14610780578063fc673c4f14610793578063fe9d9303146107a657600080fd5b8063d9d078d6146106f5578063dd62ed3e14610708578063eb3537cc1461074157600080fd5b8063c68d4283116100de578063c68d4283146106a9578063ca789464146106bc578063cf97256d146106cf578063d95b6371146106e257600080fd5b8063a9059cbb14610670578063b84cdd4a14610683578063bb0d196e1461069657600080fd5b8063959b8c3f116101715780639d8767411161014b5780639d87674114610624578063a1b2bf8b14610637578063a3a7e7f31461064a578063a457c2d71461065d57600080fd5b8063959b8c3f146105f657806395d89b41146106095780639bd9bbc61461061157600080fd5b806362aa52871461058457806362ad1b831461059757806366a12fb6146105aa5780636c2d9f2f146105bd57806370a08231146105d057806379359f6f146105e357600080fd5b80632ec8eec71161027757806345977d031161023057806350d75d251161020a57806350d75d251461053c57806352d1902d14610544578063556f0dc71461056a5780635b9d09cc1461057157600080fd5b806345977d03146104f657806346951954146105095780634b61cc331461051c57600080fd5b80632ec8eec714610468578063313ce5671461049b578063386fa221146104aa57806339509351146104bd57806341b706be146104d057806342fe0980146104e357600080fd5b806316d055d6116102e457806320bc4425116102be57806320bc4425146103f557806323b872dd1461042f578063245887fc14610442578063270483971461045557600080fd5b806316d055d6146103bd57806318160ddd146103d05780631863e809146103e257600080fd5b806306e485381461032c57806306fdde031461034a578063090c415e1461035f578063095ea7b31461037457806311bcc81e1461039757806312a6a3f8146103aa575b600080fd5b6103346107b9565b60405161034191906138bb565b60405180910390f35b6103526107ca565b6040516103419190613960565b61037261036d3660046139d3565b61085c565b005b610387610382366004613a2e565b610910565b6040519015158152602001610341565b6103726103a5366004613a5a565b610927565b6103726103b8366004613a73565b610955565b6103726103cb366004613abe565b610a7f565b6003545b604051908152602001610341565b6103726103f0366004613bd2565b610ada565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610341565b61038761043d366004613c64565b610d79565b610372610450366004613a2e565b610d91565b610372610463366004613ca5565b610e08565b61047b610476366004613cc7565b610ee5565b604080519485526020850193909352918301526060820152608001610341565b60405160128152602001610341565b6103346104b8366004613cc7565b610f88565b6103876104cb366004613a2e565b61102b565b6103726104de366004613abe565b611067565b6103726104f1366004613d25565b611092565b610372610504366004613a5a565b61119c565b610372610517366004613cc7565b6111c8565b61052f61052a366004613dbf565b611257565b6040516103419190613e05565b61041761129c565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196103d4565b60016103d4565b61037261057f366004613e3d565b6112c6565b610372610592366004613c64565b61131f565b6103726105a5366004613e8c565b611377565b6103726105b8366004613c64565b611424565b61052f6105cb366004613f2a565b611443565b6103d46105de366004613cc7565b611485565b6103876105f1366004613cc7565b6114ad565b610372610604366004613cc7565b611535565b610352611586565b61037261061f366004613e3d565b611595565b610372610632366004613f5f565b6115e9565b610372610645366004613a73565b611628565b610372610658366004613cc7565b6116d2565b61038761066b366004613a2e565b6116e6565b61038761067e366004613a2e565b611735565b610387610691366004613a2e565b611743565b6103876106a4366004613cc7565b611794565b6103726106b7366004613f5f565b61181c565b6103726106ca366004613a2e565b61185c565b6103726106dd366004613a2e565b6118d0565b6103876106f0366004613fb7565b6119b8565b610387610703366004613a2e565b6119c6565b6103d4610716366004613fb7565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b61075461074f366004613a2e565b6119e0565b60408051938452602084019290925290820152606001610341565b600e546001600160a01b0316610417565b61037261078e366004613cc7565b611b1c565b6103726107a1366004613ff0565b611b6d565b6103726107b4366004614037565b611c0c565b60606107c56012611c5c565b905090565b6060600f80546107d990614075565b80601f016020809104026020016040519081016040528092919081815260200182805461080590614075565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b6000338585604051602001610873939291906140af565b6040516020818303038152906040528051906020012090506108c881848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cc292505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d5985906020015b60405180910390a35050505050565b600061091d338484611d03565b5060015b92915050565b6109523333836040518060200160405280600081525060405180602001604052806000815250611e2b565b50565b604051339060009061096d90839087906020016140f8565b60408051601f19818403018152919052805160209091012090506109918184612012565b156109f65760405162461bcd60e51b815260206004820152602a60248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420616c726561604482015269191e4818dc99585d195960b21b60648201526084015b60405180910390fd5b610a3381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cc292505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610a7093929190614135565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ac75760405162461bcd60e51b81526004016109ed90614179565b610ad38484848461204e565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906141c4565b610b7e5760405162461bcd60e51b81526004016109ed906141e1565b6000610b8861216c565b90506001600160a01b038116610b9b5750845b600085610ba85786610baa565b815b905060008313610c4757610bbd8361423e565b610bc6856122b1565b14610bd357610bd361425a565b610bdc846122b1565b6001600160a01b03821660009081526002602052604081208054909190610c04908490614270565b90915550506001600160a01b03851660009081526002602052604081208054859290610c31908490614270565b90915550610c42905085828661231f565b610d11565b8515610c5557610c5561425a565b82610c5f856122b1565b610c699190614270565b6001600160a01b03831660009081526002602052604081208054909190610c919084906142b1565b90915550610ca09050846122b1565b6001600160a01b03881660009081526002602052604081208054909190610cc8908490614270565b90915550506001600160a01b03851660009081526002602052604081208054859290610cf5908490614270565b90915550610d06905082888661231f565b610d1182868561231f565b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051610d669594939291906142f0565b60405180910390a4505050505050505050565b6000610d873385858561204e565b90505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610dd95760405162461bcd60e51b81526004016109ed90614179565b610e043383836040518060200160405280600081525060405180602001604052806000815250611e2b565b5050565b6040513390600090610e2090839086906020016140f8565b604051602081830303815290604052805190602001209050610e428184612012565b610ea05760405162461bcd60e51b815260206004820152602960248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420646f6573206044820152681b9bdd08195e1a5cdd60ba1b60648201526084016109ed565b610eaa8184612352565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6d9190614323565b9050610f7985826119e0565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611003573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610921919081019061433c565b3360008181526011602090815260408083206001600160a01b0387168452909152812054909161091d9185906110629086906143ed565b611d03565b3330146110865760405162461bcd60e51b81526004016109ed90614405565b610ad38385848461204e565b600054610100900460ff166110ad5760005460ff16156110b1565b303b155b6111145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109ed565b600054610100900460ff16158015611136576000805461ffff19166101011790555b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a161717905561116a600f868661382b565b506111776010848461382b565b5061118130612373565b8015611193576000805461ff00191690555b50505050505050565b6109523333338460405180602001604052806000815250604051806020016040528060008152506124a1565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461124e5760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a206f6e6c7920686f73742063616e2075706461746560448201526420636f646560d81b60648201526084016109ed565b610952816126a4565b60606000858585604051602001611270939291906140af565b60405160208183030381529060405280519060200120905061129281846128e4565b9695505050505050565b60006107c57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b611319333386866040518060200160405280600081525087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124a192505050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146113675760405162461bcd60e51b81526004016109ed90614179565b611372838383611d03565b505050565b336113846012828a612973565b6113a05760405162461bcd60e51b81526004016109ed9061443c565b61141a8189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250612a1c915050565b5050505050505050565b3330146113675760405162461bcd60e51b81526004016109ed90614405565b60606000848460405160200161145a9291906140f8565b60405160208183030381529060405280519060200120905061147c81846128e4565b95945050505050565b60008061149183610ee5565b5050509050600081126114a45780610d8a565b60009392505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107039190614323565b3361154260128284612a93565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546107d990614075565b6113193333868686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805160208101909152908152925060019150612a1c9050565b3330146116085760405162461bcd60e51b81526004016109ed90614405565b604080516000815260208101909152611372903390859085908590612b97565b604051339060009061164090839087906020016140f8565b60405160208183030381529060405280519060200120905061169581858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cc292505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610a7093929190614135565b610e043333836116e133611485565b61204e565b600061091d3384611062856040518060600160405280602a81526020016147fd602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190612c8c565b6000610d8a3333858561204e565b60008060008061175386866119e0565b925092509250600061177b82841161176c5760006122b1565b611776838561448c565b6122b1565b6117859085614270565b60001315979650505050505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190614323565b33301461183b5760405162461bcd60e51b81526004016109ed90614405565b60408051600080825260208201909252611372913391869186918690612cb8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118a45760405162461bcd60e51b81526004016109ed90614179565b610e043383848460405180602001604052806000815250604051806020016040528060008152506124a1565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611934573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195891906141c4565b6119745760405162461bcd60e51b81526004016109ed906141e1565b6001600160a01b038216600090815260026020526040902054611998908290614270565b6001600160a01b0390921660009081526002602052604090209190915550565b6000610d8a60128484612973565b6000806119d384846119e0565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080611a0586610f88565b905060005b8151811015611b13576000806000848481518110611a2a57611a2a6144a3565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015611a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aad91906144b9565b91945092509050611abe82886143ed565b9650611aca81876143ed565b9550611ae7818311611add5760006122b1565b611776828461448c565b611af1848a614270565b611afb91906142b1565b97505050508080611b0b906144e7565b915050611a0a565b50509250925092565b33611b2960128284612daf565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b33611b7a60128289612973565b611b965760405162461bcd60e51b81526004016109ed9061443c565b61119381888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250611e2b92505050565b61137233338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250611e2b915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611cb657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c98575b50505050509050919050565b60005b8151811015611372576000828281518110611ce257611ce26144a3565b6020026020010151905080828501555080611cfc906144e7565b9050611cc5565b6001600160a01b038316611d675760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a20617070726f76652066726f6d207a65726f206164604482015264647265737360d81b60648201526084016109ed565b6001600160a01b038216611dc95760405162461bcd60e51b815260206004820152602360248201527f5375706572546f6b656e3a20617070726f766520746f207a65726f206164647260448201526265737360e81b60648201526084016109ed565b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600e546001600160a01b0316611e835760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b600080611e8f85612ea7565b91509150611ea08787838787612b97565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0d9190614323565b600e54909150611f27906001600160a01b03168885612f63565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f949190614323565b90506000611fa2828461448c565b9050808514611fc35760405162461bcd60e51b81526004016109ed90614500565b886001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d85604051611ffe91815260200190565b60405180910390a250505050505050505050565b6000805b828110156120445783810154801561203357600192505050610921565b5061203d816144e7565b9050612016565b5060009392505050565b60006001600160a01b0384166120765760405162461bcd60e51b81526004016109ed9061455d565b6001600160a01b03831661209c5760405162461bcd60e51b81526004016109ed906145a3565b60003390506120cd818686866040518060200160405280600081525060405180602001604052806000815250612fc6565b846001600160a01b0316866001600160a01b031614612160576121608587611062866040518060600160405280602d8152602001614847602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054612c8c9092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f191906145e7565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ab91906145e7565b91505090565b60006001600160ff1b0382111561231b5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016109ed565b5090565b816001600160a01b0316836001600160a01b031660008051602061482783398151915283604051611e1e91815260200190565b60005b818110156113725760008382015561236c816144e7565b9050612355565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b1580156123f457600080fd5b505af1158015612408573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b15801561248d57600080fd5b505af1158015610ad3573d6000803e3d6000fd5b600e546001600160a01b03166124f95760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b60008061250585612ea7565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257a9190614323565b600e54909150612595906001600160a01b0316893086613065565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156125de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126029190614323565b90506000612610838361448c565b90508085146126315760405162461bcd60e51b81526004016109ed90614500565b6126548b8a868c6001600160a01b03168e6001600160a01b031614158b8b612cb8565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df8560405161268f91815260200190565b60405180910390a25050505050505050505050565b60006126ce7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036127245760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016109ed565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127869190614323565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146128005760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016109ed565b6001600160a01b03811630036128585760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016109ed565b612880817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b03841660208301520160405180910390a150565b6060816001600160401b038111156128fe576128fe613b0f565b604051908082528060200260200182016040528015612927578160200160208202803683370190505b50905060005b8281101561296c57600081850154905080838381518110612950576129506144a3565b602090810291909101015250612965816144e7565b905061292d565b5092915050565b6000816001600160a01b0316836001600160a01b031614806129e257506001600160a01b038316600090815260018501602052604090205460ff1680156129e257506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610d8757506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b038616612a425760405162461bcd60e51b81526004016109ed9061455d565b6001600160a01b038516612a685760405162461bcd60e51b81526004016109ed906145a3565b612a7687878787878761309d565b612a84878787878787612fc6565b611193878787878787876131c4565b806001600160a01b0316826001600160a01b031603612b0a5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612b60576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b038416612bf85760405162461bcd60e51b815260206004820152602260248201527f5375706572546f6b656e3a206275726e2066726f6d207a65726f206164647265604482015261737360f01b60648201526084016109ed565b612c078585600086868661309d565b612c118484613354565b836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051612c5893929190614604565b60405180910390a36040518381526000906001600160a01b0386169060008051602061482783398151915290602001610901565b60008184841115612cb05760405162461bcd60e51b81526004016109ed9190613960565b505050900390565b6001600160a01b038516612d0e5760405162461bcd60e51b815260206004820181905260248201527f5375706572546f6b656e3a206d696e7420746f207a65726f206164647265737360448201526064016109ed565b612d1885856134a8565b612d2886600087878686896131c4565b846001600160a01b0316866001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868585604051612d6f93929190614604565b60405180910390a36040518481526001600160a01b03861690600090600080516020614827833981519152906020015b60405180910390a3505050505050565b336001600160a01b03821603612e1a5760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612e74576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b600e54600090819081906012600160a01b90910460ff161015612f0657600e54612edc90600160a01b900460ff16601261462f565b612ee790600a614736565b9050612ef38185614745565b9250612eff8184614767565b9150612f5d565b600e546012600160a01b90910460ff161115612f5657600e54612f3590601290600160a01b900460ff1661462f565b612f4090600a614736565b9050612f4c8185614767565b9250839150612f5d565b8391508192505b50915091565b6040516001600160a01b03831660248201526044810182905261137290849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613502565b612fd98585612fd4866122b1565b6135d4565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc8261467798786868660405161302a93929190614604565b60405180910390a4836001600160a01b0316856001600160a01b031660008051602061482783398151915285604051612d9f91815260200190565b6040516001600160a01b03808516602483015283166044820152606481018290526113199085906323b872dd60e01b90608401612f8f565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa15801561311e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314291906145e7565b90506001600160a01b0381161561119357604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613189908a908a908a908a908a908a90600401614786565b600060405180830381600087803b1580156131a357600080fd5b505af11580156131b7573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613245573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061326991906145e7565b90506001600160a01b038116156132e5576040516223de2960e01b81526001600160a01b038216906223de29906132ae908b908b908b908b908b908b90600401614786565b600060405180830381600087803b1580156132c857600080fd5b505af11580156132dc573d6000803e3d6000fd5b5050505061141a565b811561141a576001600160a01b0386163b1561141a5760405162461bcd60e51b815260206004820152602860248201527f5375706572546f6b656e3a206e6f7420616e20455243373737546f6b656e73526044820152671958da5c1a595b9d60c21b60648201526084016109ed565b60006133dc837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133b8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f9190614323565b505090506133e9826122b1565b81121561344d5760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206275726e20616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b613456826122b1565b6001600160a01b03841660009081526002602052604090205461347991906142b1565b6001600160a01b0384166000908152600260205260409020556003546134a090839061448c565b600355505050565b6134b1816122b1565b6001600160a01b0383166000908152600260205260409020546134d49190614270565b6001600160a01b0383166000908152600260205260409020556003546134fb9082906143ed565b6003555050565b6000613557826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166137179092919063ffffffff16565b805190915015611372578080602001905181019061357591906141c4565b6113725760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109ed565b6000613638847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133b8573d6000803e3d6000fd5b50509050818112156136a15760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206d6f766520616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6001600160a01b0384166000908152600260205260409020546136c59083906142b1565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546136f5908390614270565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610d878484600085856001600160a01b0385163b6137795760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109ed565b600080866001600160a01b0316858760405161379591906147e0565b60006040518083038185875af1925050503d80600081146137d2576040519150601f19603f3d011682016040523d82523d6000602084013e6137d7565b606091505b50915091506137e78282866137f2565b979650505050505050565b60608315613801575081610d8a565b8251156138115782518084602001fd5b8160405162461bcd60e51b81526004016109ed9190613960565b82805461383790614075565b90600052602060002090601f016020900481019282613859576000855561389f565b82601f106138725782800160ff1982351617855561389f565b8280016001018555821561389f579182015b8281111561389f578235825591602001919060010190613884565b5061231b9291505b8082111561231b57600081556001016138a7565b6020808252825182820181905260009190848201906040850190845b818110156138fc5783516001600160a01b0316835292840192918401916001016138d7565b50909695505050505050565b60005b8381101561392357818101518382015260200161390b565b838111156113195750506000910152565b6000815180845261394c816020860160208601613908565b601f01601f19169290920160200192915050565b602081526000610d8a6020830184613934565b6001600160a01b038116811461095257600080fd5b60008083601f84011261399a57600080fd5b5081356001600160401b038111156139b157600080fd5b6020830191508360208260051b85010111156139cc57600080fd5b9250929050565b600080600080606085870312156139e957600080fd5b84356139f481613973565b93506020850135925060408501356001600160401b03811115613a1657600080fd5b613a2287828801613988565b95989497509550505050565b60008060408385031215613a4157600080fd5b8235613a4c81613973565b946020939093013593505050565b600060208284031215613a6c57600080fd5b5035919050565b600080600060408486031215613a8857600080fd5b8335925060208401356001600160401b03811115613aa557600080fd5b613ab186828701613988565b9497909650939450505050565b60008060008060808587031215613ad457600080fd5b8435613adf81613973565b93506020850135613aef81613973565b92506040850135613aff81613973565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613b4d57613b4d613b0f565b604052919050565b600082601f830112613b6657600080fd5b81356001600160401b03811115613b7f57613b7f613b0f565b613b92601f8201601f1916602001613b25565b818152846020838601011115613ba757600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461095257600080fd5b600080600080600080600060e0888a031215613bed57600080fd5b8735965060208801356001600160401b03811115613c0a57600080fd5b613c168a828b01613b55565b9650506040880135613c2781613973565b94506060880135613c3781613bc4565b93506080880135613c4781613973565b9699959850939692959460a0840135945060c09093013592915050565b600080600060608486031215613c7957600080fd5b8335613c8481613973565b92506020840135613c9481613973565b929592945050506040919091013590565b60008060408385031215613cb857600080fd5b50508035926020909101359150565b600060208284031215613cd957600080fd5b8135610d8a81613973565b60008083601f840112613cf657600080fd5b5081356001600160401b03811115613d0d57600080fd5b6020830191508360208285010111156139cc57600080fd5b60008060008060008060808789031215613d3e57600080fd5b8635613d4981613973565b9550602087013560ff81168114613d5f57600080fd5b945060408701356001600160401b0380821115613d7b57600080fd5b613d878a838b01613ce4565b90965094506060890135915080821115613da057600080fd5b50613dad89828a01613ce4565b979a9699509497509295939492505050565b60008060008060808587031215613dd557600080fd5b8435613de081613973565b93506020850135613df081613973565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b818110156138fc57835183529284019291840191600101613e21565b60008060008060608587031215613e5357600080fd5b8435613e5e81613973565b93506020850135925060408501356001600160401b03811115613e8057600080fd5b613a2287828801613ce4565b600080600080600080600060a0888a031215613ea757600080fd5b8735613eb281613973565b96506020880135613ec281613973565b95506040880135945060608801356001600160401b0380821115613ee557600080fd5b613ef18b838c01613ce4565b909650945060808a0135915080821115613f0a57600080fd5b50613f178a828b01613ce4565b989b979a50959850939692959293505050565b600080600060608486031215613f3f57600080fd5b8335613f4a81613973565b95602085013595506040909401359392505050565b600080600060608486031215613f7457600080fd5b8335613f7f81613973565b92506020840135915060408401356001600160401b03811115613fa157600080fd5b613fad86828701613b55565b9150509250925092565b60008060408385031215613fca57600080fd5b8235613fd581613973565b91506020830135613fe581613973565b809150509250929050565b6000806000806000806080878903121561400957600080fd5b863561401481613973565b95506020870135945060408701356001600160401b0380821115613d7b57600080fd5b60008060006040848603121561404c57600080fd5b8335925060208401356001600160401b0381111561406957600080fd5b613ab186828701613ce4565b600181811c9082168061408957607f821691505b6020821081036140a957634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b0383111561415c57600080fd5b8260051b8085606085013760009201606001918252509392505050565b6020808252602b908201527f5375706572666c756964546f6b656e3a204f6e6c7920686f737420636f6e747260408201526a1858dd08185b1b1bddd95960aa1b606082015260800190565b6000602082840312156141d657600080fd5b8151610d8a81613bc4565b60208082526027908201527f5375706572666c756964546f6b656e3a206f6e6c79206c6973746564206167726040820152661959595b595b9d60ca1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b820161425357614253614228565b5060000390565b634e487b7160e01b600052600160045260246000fd5b600080821280156001600160ff1b038490038513161561429257614292614228565b600160ff1b83900384128116156142ab576142ab614228565b50500190565b60008083128015600160ff1b8501841216156142cf576142cf614228565b6001600160ff1b03840183138116156142ea576142ea614228565b50500390565b85815260018060a01b038516602082015283604082015282606082015260a0608082015260006137e760a0830184613934565b60006020828403121561433557600080fd5b5051919050565b6000602080838503121561434f57600080fd5b82516001600160401b038082111561436657600080fd5b818501915085601f83011261437a57600080fd5b81518181111561438c5761438c613b0f565b8060051b915061439d848301613b25565b81815291830184019184810190888411156143b757600080fd5b938501935b838510156143e157845192506143d183613973565b82825293850193908501906143bc565b98975050505050505050565b6000821982111561440057614400614228565b500190565b6020808252601d908201527f5375706572546f6b656e3a206f6e6c792073656c6620616c6c6f776564000000604082015260600190565b60208082526030908201527f5375706572546f6b656e3a2063616c6c6572206973206e6f7420616e206f706560408201526f3930ba37b9103337b9103437b63232b960811b606082015260800190565b60008282101561449e5761449e614228565b500390565b634e487b7160e01b600052603260045260246000fd5b6000806000606084860312156144ce57600080fd5b8351925060208401519150604084015190509250925092565b6000600182016144f9576144f9614228565b5060010190565b6020808252603a908201527f5375706572546f6b656e3a20696e666c6174696f6e6172792f6465666c61746960408201527f6f6e61727920746f6b656e73206e6f7420737570706f72746564000000000000606082015260800190565b60208082526026908201527f5375706572546f6b656e3a207472616e736665722066726f6d207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526024908201527f5375706572546f6b656e3a207472616e7366657220746f207a65726f206164646040820152637265737360e01b606082015260800190565b6000602082840312156145f957600080fd5b8151610d8a81613973565b83815260606020820152600061461d6060830185613934565b82810360408401526112928185613934565b600060ff821660ff84168082101561464957614649614228565b90039392505050565b600181815b8085111561468d57816000190482111561467357614673614228565b8085161561468057918102915b93841c9390800290614657565b509250929050565b6000826146a457506001610921565b816146b157506000610921565b81600181146146c757600281146146d1576146ed565b6001915050610921565b60ff8411156146e2576146e2614228565b50506001821b610921565b5060208310610133831016604e8410600b8410161715614710575081810a610921565b61471a8383614652565b806000190482111561472e5761472e614228565b029392505050565b6000610d8a60ff841683614695565b60008261476257634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561478157614781614228565b500290565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190526000906147c190830185613934565b82810360a08401526147d38185613934565b9998505050505050505050565b600082516147f2818460208701613908565b919091019291505056fe5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122041147c921d8e2f6615d0932c000e2b63565345f5cf02aaa7708542cb2060207064736f6c634300080d0033a26469706673582212201de25eba71c7b88189d375f9db7aab0fbebee8128d83c02cef7ba7350a0a7bbd64736f6c634300080d0033",
24
+ "metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"logic\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/superfluid/SuperTokenFactory.sol\":\"SuperTokenFactoryHelper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0x0edeb16b9821ae2b16e9d69c383b38d3ad2fbb3e0c06cf809a0786d96e602551\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88adc865fb1bd8dab4c58096e1d5887713f62c0405f8d2d17294727a8f43d8f7\",\"dweb:/ipfs/QmUJ27zsjxCatfoTFWho4k4qdhuBTorMqLuJzWqUX4Sdmg\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x4823752b07b8ea4ca971b217e39457930e7cb103c2c91e2a29729e5ca907e4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f319af26a9ade3e6cf3698bf1b84aa6213bdd7a76606ea9ba56ced163593934\",\"dweb:/ipfs/QmZ2u9zen5Htan4dSP1RZCY2XqB9HUwqkNCMzdn7aV2jWc\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824\",\"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xc3d946432c0ddbb1f846a0d3985be71299df331b91d06732152117f62f0be2b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4632c341a06ba5c079b51ca5a915efab4e6ab57735b37839b3e8365ff806a43e\",\"dweb:/ipfs/QmTHT3xHYed2wajEoA5qu7ii2BxLpPhQZHwAhtLK5Z7ANK\"]},\"@openzeppelin/contracts/token/ERC777/IERC777.sol\":{\"keccak256\":\"0xe4e0b7e3f0265ffaa565d26acd2d45f2633f19127ed625e5a05a9f201a87a667\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1762b5bc15a009b5f092ccf547b81e0827c8705884f18e0623e497658514a7ed\",\"dweb:/ipfs/QmTtmVQYuynan3j2uVjdjjRJS1mr7LPRgxSZNnfqC7oxkz\"]},\"@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol\":{\"keccak256\":\"0x1a5d61db2733202ba361e6d6741cd2e662380e22b80e987eacfc91973f2267dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04c0cd697050a6516b7779aa2343ad2d0e5217d8915ac2382681dfdf4e445be3\",\"dweb:/ipfs/QmPCBCZgm7pHBwwogE2F9NCN3UfTdLNhqc8UDEvw8kDzyA\"]},\"@openzeppelin/contracts/token/ERC777/IERC777Sender.sol\":{\"keccak256\":\"0x742e51d63b108240759794360637468d9fcbf072cbd357744790d356a87bb382\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23912910ce2bb68e49ff83f43fcfa864210ee44580491e876db14922f8aecc18\",\"dweb:/ipfs/QmU6GnRQ51xvY8D57kPCV47oGeYozaz5AQZUCHxFfXdFZ4\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xebe3f8a59f0f1c96344a05edb984ef666ee4207e993cca99af3808f1de8771b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0db23062a52185cf06ad4202be0bfa4c7718c4b75f4526aeb456620ff2e737d4\",\"dweb:/ipfs/QmXtWdePeH6xpXf175YcnbwjsuLp35k6JxX8CjHzvHiyAi\"]},\"@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol\":{\"keccak256\":\"0x6e306f9ab28416a9e5931f0b6e264676e8ac68fad184f9a9d8bb125c6ec23bc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd7fe961c914caa1fcc8223d446c1582aec4f2a32d2f06cf09c938b72cf8ce11\",\"dweb:/ipfs/QmPfEfqtUh9SA86br28HfmMyVSBe22B3oPwF8iACCF4evY\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x5c6caab697d302ad7eb59c234a4d2dbc965c1bae87709bd2850060b7695b28c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb62abcee612c175f1b9bc70e5dfe5bd23473c99987ade6e80e291f68dc60ff1\",\"dweb:/ipfs/QmZCMajhG7FtRYNDwBchXN89mXR6HLPVzr9732qfUdNf9E\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0xa2f576be637946f767aa56601c26d717f48a0aff44f82e46f13807eea1009a21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://973868f808e88e21a1a0a01d4839314515ee337ad096286c88e41b74dcc11fc2\",\"dweb:/ipfs/QmfYuZxRfx2J2xdk4EXN7jKg4bUYEMTaYk9BAw9Bqn4o2Y\"]},\"project:/contracts/interfaces/superfluid/Definitions.sol\":{\"keccak256\":\"0x199095781e4221b6015d859558da09977f79199f38d342ab4899c2cecdf8cec1\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://9fd3a5a8b16d8517e2af10e20390a9af5adbfa4e783e3a7dd89eb4588db98385\",\"dweb:/ipfs/QmPDtGR43DeMMVsHjUh7FYzMGsFKPpGriRkaahFpN5T5d3\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperApp.sol\":{\"keccak256\":\"0x42b604992cf67321cc12e8bed16543df0db4eaf125b8c1c82c330ebbeb20c014\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7c18b00caf7b8be7e11f75284fb96263ce48a3984d56f2a91ec44cae4413d2fc\",\"dweb:/ipfs/QmWVzdW9KnkwAVe9g5zRuMoqCf7N89AoBfzzRr8puw5d8a\"]},\"project:/contracts/interfaces/superfluid/ISuperToken.sol\":{\"keccak256\":\"0xcff22ed43df0f34a645e6cbe0d7c5fd08f204d769e9095bc59d7c2fe6d11b7d6\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://944b8c5a37839b40ec8ee1ccfecbaf007808a61ea16c7b1351a7184606772032\",\"dweb:/ipfs/QmbUKZqZtVfqZMKYnQUygE4svatKuN9kT2ibrnxMuWXR7n\"]},\"project:/contracts/interfaces/superfluid/ISuperTokenFactory.sol\":{\"keccak256\":\"0x68a466c978557e47bd7385b1d7d78f1c8fb07462a870efc5a791008e33a4f535\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d109879bdb7f022560a792af2ff481df729bf1b4b8e1831b8022f4d12892d41d\",\"dweb:/ipfs/QmRSWqHq8CP5XWgyV4mJpPxMg33s312s2K5ndHRHVqqZ8n\"]},\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":{\"keccak256\":\"0xf16efd1ba72322e77e0d936b723c0e71eb14c23e11cf69efae8c7caa407012cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://ff4bb321b72dc3332984346e5b66ad131c6132101658fe6707d7a9d043f981ab\",\"dweb:/ipfs/QmXmVD2mZ3LRb7wQZ2VcrpYhtjm21zUe5hPDDDJA1WXbFz\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidGovernance.sol\":{\"keccak256\":\"0xea33d20751ffea4f4446bc04f6c10194fb4da0803a988586d41d49cf4859731c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7716b1f5eec0a7ac8780d82de4f0274ecd7059be4eec46c82b0b7adce110f10b\",\"dweb:/ipfs/QmWRQafvdCBsyfDYnevXSav1AAz8uZRRBwh2be5Z3vSfVN\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x3eec5a3bf337cd319c1918fd1b16f350cf5f6850ac71f6859066fbf86e734ff4\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://cda19a2f5ca18e79c1e2300c8efac84c718df76c4fb313f59f84264a4c6b398a\",\"dweb:/ipfs/QmfQiwgDH5Q64w5ufBnDzVaeWv6WCZ6fLTrYu1FSYfBGhq\"]},\"project:/contracts/interfaces/tokens/ERC20WithTokenInfo.sol\":{\"keccak256\":\"0x66708dae3fcd06e6fc0a46f2959fc2d1e6b9361f28598337339d26af8eb8c0f9\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://77b80718cec21b81ef190c19fb9fbe73913a95c71f7e6715f671bbe8a224dafc\",\"dweb:/ipfs/QmUdsc6DF2Bgih5VZm7sfaECjhGmwE7tAx8pMkzGQgVKQw\"]},\"project:/contracts/interfaces/tokens/TokenInfo.sol\":{\"keccak256\":\"0x70e573644a0ff271c0ccef526809e9d9ab4950ec58755ca84e833cde3b8f3df0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://aea3709687cc37ba625f4cc882fbdb149a7bf5be5afe2b030203c8719641a77b\",\"dweb:/ipfs/QmVpvfR6ZheE5wNUK9CobaVBgVvEnEPkvjWF9cfwyZr7eQ\"]},\"project:/contracts/libs/ERC777Helper.sol\":{\"keccak256\":\"0x44aa72d63edfd7ec2ab69796dbe2d5c7113a798dc7189b7d4878267b1fbf1f73\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://b9da702f23af6dbc05c9a4b0fffff11fb707ebebf34983d35299c9e76f624e45\",\"dweb:/ipfs/QmdReo4yGy97CHLJXSFEFcqSHrbSzoMHp4yYuJK3KBHVDm\"]},\"project:/contracts/libs/EventsEmitter.sol\":{\"keccak256\":\"0x3e67a65d0a3f7808567e60be52e280999ed7ef3332bcba4aa23ea083553422bb\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://6a5b5bac9e108f3e12e3246d92b96c8fea259ebe8ba88acdff1034c5650441a3\",\"dweb:/ipfs/QmVUEMDpp79NaqEhZjLzdxWoLoBVAEdieuJA5pagYeH7Gd\"]},\"project:/contracts/libs/FixedSizeData.sol\":{\"keccak256\":\"0xdb6303086a323e98b5efa5e8d344d531c371ae707e1df4044ca90f3dca111b01\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://af01ce1e0ed1992f543293790d58fa97718a1aa5b85923eaa42455d24caa7906\",\"dweb:/ipfs/QmVKMv8BEjkFTcsHqvviB8pTsKbb4tP55pFLvF3vqGZtSH\"]},\"project:/contracts/superfluid/FullUpgradableSuperTokenProxy.sol\":{\"keccak256\":\"0xd8762c876977d3417650ef425eb3829a2da7e54b24e0bfab265dee36dbe5923a\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://3e8ba627d3732d4794f4bbfa615e648c1f7385668ed7dc66c52e167bd5e46204\",\"dweb:/ipfs/QmVSw4WYnJpr7B1XEZgxNdarRDMDzfm1T43e8HZy4Sgg2m\"]},\"project:/contracts/superfluid/SuperToken.sol\":{\"keccak256\":\"0x9f5f13f68ab31fbfad3d9334501015a74c0b91e5b952c5d45d0624c179560278\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7488b2b5f00a7c3e3136b3a46231fe0e5ce14d26f755d3bcf4eda75ca77556c2\",\"dweb:/ipfs/QmTgQ1bE7r1gA9TThTYKwdyeqtHcuU9cC5AVJgXtzDnosE\"]},\"project:/contracts/superfluid/SuperTokenFactory.sol\":{\"keccak256\":\"0x2ea39350cfe827ac930de94319d4b140d2c51be93a7e23b4849735d2e4a41735\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://0a84284448173d539ddb494d449305651aca6ba80b60982f807310c9c477b930\",\"dweb:/ipfs/QmVcBS3Tjf7DgZpDBndzCcnEuzR9cW5ci5eDpWSgd4rLcY\"]},\"project:/contracts/superfluid/SuperfluidToken.sol\":{\"keccak256\":\"0x011cf97f745ffbe4ba60da5c0752c369ab078787db7748ec01db45dde4cf77b3\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://8e5d4c6d27dcaea37545661bdb71caaa70580ff487ca6726f5a91f8e28dc4b9c\",\"dweb:/ipfs/QmYVBuQBREPBzVWonRZ6pqXYtjnmH1nxoDCNyEoVQEkX7V\"]},\"project:/contracts/upgradability/UUPSProxiable.sol\":{\"keccak256\":\"0xabe3beb46dff1433d7ae61fe470fc347967d5a5b09d48fa45f35ddb2735d61f2\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://ad0fdb3210d3b0ed62886decdeef62b43bdbdd59bd55fc5ea3d636e97fbfb65d\",\"dweb:/ipfs/QmPjd6ehqgoiHkrf2g2h9AZRxKakqxsGx1GTiy5DSwfYJg\"]},\"project:/contracts/upgradability/UUPSProxy.sol\":{\"keccak256\":\"0x2c651f24af9c4405c20e0a14907f76f8a0d81ff751c89ebbce48ae7aceab5f58\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://dbf209416f8af6df9949194e682a902c4cbce37520a940c5bd123d5ffb1b7b56\",\"dweb:/ipfs/QmWy7TuYgtpRddTJYCubfzthA7ex7rPrxbLuzcG6bbw7mL\"]},\"project:/contracts/upgradability/UUPSUtils.sol\":{\"keccak256\":\"0xe624225773a60f62c7a0687afb0536ba19a17e4e5605ae71e8af77a0287aca59\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://4294e5eb5b194477bca3b8ca04ca92a6fe72dd6cf8da8f0d942a4a86c41c1c7f\",\"dweb:/ipfs/QmdfPXZxJPaBjKNfC8joTcvEhWammJHzRACB1S18sFYfd7\"]}},\"version\":1}",
25
+ "bytecode": "0x608060405234801561001057600080fd5b50614aba806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b61004361003e3660046100ae565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60008160405161006e906100a1565b6001600160a01b039091168152602001604051809103906000f08015801561009a573d6000803e3d6000fd5b5092915050565b6149a6806100df83390190565b6000602082840312156100c057600080fd5b81356001600160a01b03811681146100d757600080fd5b939250505056fe60a06040523480156200001157600080fd5b50604051620049a6380380620049a6833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516148a9620000fd600039600081816103f701528181610a8101528181610aef01528181610d9301528181610eed01528181610fbc015281816111d301528181611321015281816114b50152818161179c0152818161185e015281816118e501528181612171015281816122080152818161335c01526135dc01526148a96000f3fe608060405234801561001057600080fd5b50600436106103275760003560e01c806362aa5287116101b8578063a9059cbb11610104578063d9d078d6116100a2578063ee719bc81161007c578063ee719bc81461076f578063fad8b32a14610780578063fc673c4f14610793578063fe9d9303146107a657600080fd5b8063d9d078d6146106f5578063dd62ed3e14610708578063eb3537cc1461074157600080fd5b8063c68d4283116100de578063c68d4283146106a9578063ca789464146106bc578063cf97256d146106cf578063d95b6371146106e257600080fd5b8063a9059cbb14610670578063b84cdd4a14610683578063bb0d196e1461069657600080fd5b8063959b8c3f116101715780639d8767411161014b5780639d87674114610624578063a1b2bf8b14610637578063a3a7e7f31461064a578063a457c2d71461065d57600080fd5b8063959b8c3f146105f657806395d89b41146106095780639bd9bbc61461061157600080fd5b806362aa52871461058457806362ad1b831461059757806366a12fb6146105aa5780636c2d9f2f146105bd57806370a08231146105d057806379359f6f146105e357600080fd5b80632ec8eec71161027757806345977d031161023057806350d75d251161020a57806350d75d251461053c57806352d1902d14610544578063556f0dc71461056a5780635b9d09cc1461057157600080fd5b806345977d03146104f657806346951954146105095780634b61cc331461051c57600080fd5b80632ec8eec714610468578063313ce5671461049b578063386fa221146104aa57806339509351146104bd57806341b706be146104d057806342fe0980146104e357600080fd5b806316d055d6116102e457806320bc4425116102be57806320bc4425146103f557806323b872dd1461042f578063245887fc14610442578063270483971461045557600080fd5b806316d055d6146103bd57806318160ddd146103d05780631863e809146103e257600080fd5b806306e485381461032c57806306fdde031461034a578063090c415e1461035f578063095ea7b31461037457806311bcc81e1461039757806312a6a3f8146103aa575b600080fd5b6103346107b9565b60405161034191906138bb565b60405180910390f35b6103526107ca565b6040516103419190613960565b61037261036d3660046139d3565b61085c565b005b610387610382366004613a2e565b610910565b6040519015158152602001610341565b6103726103a5366004613a5a565b610927565b6103726103b8366004613a73565b610955565b6103726103cb366004613abe565b610a7f565b6003545b604051908152602001610341565b6103726103f0366004613bd2565b610ada565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610341565b61038761043d366004613c64565b610d79565b610372610450366004613a2e565b610d91565b610372610463366004613ca5565b610e08565b61047b610476366004613cc7565b610ee5565b604080519485526020850193909352918301526060820152608001610341565b60405160128152602001610341565b6103346104b8366004613cc7565b610f88565b6103876104cb366004613a2e565b61102b565b6103726104de366004613abe565b611067565b6103726104f1366004613d25565b611092565b610372610504366004613a5a565b61119c565b610372610517366004613cc7565b6111c8565b61052f61052a366004613dbf565b611257565b6040516103419190613e05565b61041761129c565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196103d4565b60016103d4565b61037261057f366004613e3d565b6112c6565b610372610592366004613c64565b61131f565b6103726105a5366004613e8c565b611377565b6103726105b8366004613c64565b611424565b61052f6105cb366004613f2a565b611443565b6103d46105de366004613cc7565b611485565b6103876105f1366004613cc7565b6114ad565b610372610604366004613cc7565b611535565b610352611586565b61037261061f366004613e3d565b611595565b610372610632366004613f5f565b6115e9565b610372610645366004613a73565b611628565b610372610658366004613cc7565b6116d2565b61038761066b366004613a2e565b6116e6565b61038761067e366004613a2e565b611735565b610387610691366004613a2e565b611743565b6103876106a4366004613cc7565b611794565b6103726106b7366004613f5f565b61181c565b6103726106ca366004613a2e565b61185c565b6103726106dd366004613a2e565b6118d0565b6103876106f0366004613fb7565b6119b8565b610387610703366004613a2e565b6119c6565b6103d4610716366004613fb7565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b61075461074f366004613a2e565b6119e0565b60408051938452602084019290925290820152606001610341565b600e546001600160a01b0316610417565b61037261078e366004613cc7565b611b1c565b6103726107a1366004613ff0565b611b6d565b6103726107b4366004614037565b611c0c565b60606107c56012611c5c565b905090565b6060600f80546107d990614075565b80601f016020809104026020016040519081016040528092919081815260200182805461080590614075565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b6000338585604051602001610873939291906140af565b6040516020818303038152906040528051906020012090506108c881848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cc292505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d5985906020015b60405180910390a35050505050565b600061091d338484611d03565b5060015b92915050565b6109523333836040518060200160405280600081525060405180602001604052806000815250611e2b565b50565b604051339060009061096d90839087906020016140f8565b60408051601f19818403018152919052805160209091012090506109918184612012565b156109f65760405162461bcd60e51b815260206004820152602a60248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420616c726561604482015269191e4818dc99585d195960b21b60648201526084015b60405180910390fd5b610a3381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cc292505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610a7093929190614135565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ac75760405162461bcd60e51b81526004016109ed90614179565b610ad38484848461204e565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906141c4565b610b7e5760405162461bcd60e51b81526004016109ed906141e1565b6000610b8861216c565b90506001600160a01b038116610b9b5750845b600085610ba85786610baa565b815b905060008313610c4757610bbd8361423e565b610bc6856122b1565b14610bd357610bd361425a565b610bdc846122b1565b6001600160a01b03821660009081526002602052604081208054909190610c04908490614270565b90915550506001600160a01b03851660009081526002602052604081208054859290610c31908490614270565b90915550610c42905085828661231f565b610d11565b8515610c5557610c5561425a565b82610c5f856122b1565b610c699190614270565b6001600160a01b03831660009081526002602052604081208054909190610c919084906142b1565b90915550610ca09050846122b1565b6001600160a01b03881660009081526002602052604081208054909190610cc8908490614270565b90915550506001600160a01b03851660009081526002602052604081208054859290610cf5908490614270565b90915550610d06905082888661231f565b610d1182868561231f565b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051610d669594939291906142f0565b60405180910390a4505050505050505050565b6000610d873385858561204e565b90505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610dd95760405162461bcd60e51b81526004016109ed90614179565b610e043383836040518060200160405280600081525060405180602001604052806000815250611e2b565b5050565b6040513390600090610e2090839086906020016140f8565b604051602081830303815290604052805190602001209050610e428184612012565b610ea05760405162461bcd60e51b815260206004820152602960248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420646f6573206044820152681b9bdd08195e1a5cdd60ba1b60648201526084016109ed565b610eaa8184612352565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6d9190614323565b9050610f7985826119e0565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611003573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610921919081019061433c565b3360008181526011602090815260408083206001600160a01b0387168452909152812054909161091d9185906110629086906143ed565b611d03565b3330146110865760405162461bcd60e51b81526004016109ed90614405565b610ad38385848461204e565b600054610100900460ff166110ad5760005460ff16156110b1565b303b155b6111145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109ed565b600054610100900460ff16158015611136576000805461ffff19166101011790555b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a161717905561116a600f868661382b565b506111776010848461382b565b5061118130612373565b8015611193576000805461ff00191690555b50505050505050565b6109523333338460405180602001604052806000815250604051806020016040528060008152506124a1565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461124e5760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a206f6e6c7920686f73742063616e2075706461746560448201526420636f646560d81b60648201526084016109ed565b610952816126a4565b60606000858585604051602001611270939291906140af565b60405160208183030381529060405280519060200120905061129281846128e4565b9695505050505050565b60006107c57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b611319333386866040518060200160405280600081525087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124a192505050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146113675760405162461bcd60e51b81526004016109ed90614179565b611372838383611d03565b505050565b336113846012828a612973565b6113a05760405162461bcd60e51b81526004016109ed9061443c565b61141a8189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250612a1c915050565b5050505050505050565b3330146113675760405162461bcd60e51b81526004016109ed90614405565b60606000848460405160200161145a9291906140f8565b60405160208183030381529060405280519060200120905061147c81846128e4565b95945050505050565b60008061149183610ee5565b5050509050600081126114a45780610d8a565b60009392505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107039190614323565b3361154260128284612a93565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546107d990614075565b6113193333868686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805160208101909152908152925060019150612a1c9050565b3330146116085760405162461bcd60e51b81526004016109ed90614405565b604080516000815260208101909152611372903390859085908590612b97565b604051339060009061164090839087906020016140f8565b60405160208183030381529060405280519060200120905061169581858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cc292505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610a7093929190614135565b610e043333836116e133611485565b61204e565b600061091d3384611062856040518060600160405280602a81526020016147fd602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190612c8c565b6000610d8a3333858561204e565b60008060008061175386866119e0565b925092509250600061177b82841161176c5760006122b1565b611776838561448c565b6122b1565b6117859085614270565b60001315979650505050505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190614323565b33301461183b5760405162461bcd60e51b81526004016109ed90614405565b60408051600080825260208201909252611372913391869186918690612cb8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118a45760405162461bcd60e51b81526004016109ed90614179565b610e043383848460405180602001604052806000815250604051806020016040528060008152506124a1565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611934573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195891906141c4565b6119745760405162461bcd60e51b81526004016109ed906141e1565b6001600160a01b038216600090815260026020526040902054611998908290614270565b6001600160a01b0390921660009081526002602052604090209190915550565b6000610d8a60128484612973565b6000806119d384846119e0565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080611a0586610f88565b905060005b8151811015611b13576000806000848481518110611a2a57611a2a6144a3565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015611a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aad91906144b9565b91945092509050611abe82886143ed565b9650611aca81876143ed565b9550611ae7818311611add5760006122b1565b611776828461448c565b611af1848a614270565b611afb91906142b1565b97505050508080611b0b906144e7565b915050611a0a565b50509250925092565b33611b2960128284612daf565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b33611b7a60128289612973565b611b965760405162461bcd60e51b81526004016109ed9061443c565b61119381888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250611e2b92505050565b61137233338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250611e2b915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611cb657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c98575b50505050509050919050565b60005b8151811015611372576000828281518110611ce257611ce26144a3565b6020026020010151905080828501555080611cfc906144e7565b9050611cc5565b6001600160a01b038316611d675760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a20617070726f76652066726f6d207a65726f206164604482015264647265737360d81b60648201526084016109ed565b6001600160a01b038216611dc95760405162461bcd60e51b815260206004820152602360248201527f5375706572546f6b656e3a20617070726f766520746f207a65726f206164647260448201526265737360e81b60648201526084016109ed565b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600e546001600160a01b0316611e835760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b600080611e8f85612ea7565b91509150611ea08787838787612b97565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0d9190614323565b600e54909150611f27906001600160a01b03168885612f63565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f949190614323565b90506000611fa2828461448c565b9050808514611fc35760405162461bcd60e51b81526004016109ed90614500565b886001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d85604051611ffe91815260200190565b60405180910390a250505050505050505050565b6000805b828110156120445783810154801561203357600192505050610921565b5061203d816144e7565b9050612016565b5060009392505050565b60006001600160a01b0384166120765760405162461bcd60e51b81526004016109ed9061455d565b6001600160a01b03831661209c5760405162461bcd60e51b81526004016109ed906145a3565b60003390506120cd818686866040518060200160405280600081525060405180602001604052806000815250612fc6565b846001600160a01b0316866001600160a01b031614612160576121608587611062866040518060600160405280602d8152602001614847602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054612c8c9092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f191906145e7565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ab91906145e7565b91505090565b60006001600160ff1b0382111561231b5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016109ed565b5090565b816001600160a01b0316836001600160a01b031660008051602061482783398151915283604051611e1e91815260200190565b60005b818110156113725760008382015561236c816144e7565b9050612355565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b1580156123f457600080fd5b505af1158015612408573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b15801561248d57600080fd5b505af1158015610ad3573d6000803e3d6000fd5b600e546001600160a01b03166124f95760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b60008061250585612ea7565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257a9190614323565b600e54909150612595906001600160a01b0316893086613065565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156125de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126029190614323565b90506000612610838361448c565b90508085146126315760405162461bcd60e51b81526004016109ed90614500565b6126548b8a868c6001600160a01b03168e6001600160a01b031614158b8b612cb8565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df8560405161268f91815260200190565b60405180910390a25050505050505050505050565b60006126ce7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036127245760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016109ed565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127869190614323565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146128005760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016109ed565b6001600160a01b03811630036128585760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016109ed565b612880817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b03841660208301520160405180910390a150565b6060816001600160401b038111156128fe576128fe613b0f565b604051908082528060200260200182016040528015612927578160200160208202803683370190505b50905060005b8281101561296c57600081850154905080838381518110612950576129506144a3565b602090810291909101015250612965816144e7565b905061292d565b5092915050565b6000816001600160a01b0316836001600160a01b031614806129e257506001600160a01b038316600090815260018501602052604090205460ff1680156129e257506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610d8757506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b038616612a425760405162461bcd60e51b81526004016109ed9061455d565b6001600160a01b038516612a685760405162461bcd60e51b81526004016109ed906145a3565b612a7687878787878761309d565b612a84878787878787612fc6565b611193878787878787876131c4565b806001600160a01b0316826001600160a01b031603612b0a5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612b60576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b038416612bf85760405162461bcd60e51b815260206004820152602260248201527f5375706572546f6b656e3a206275726e2066726f6d207a65726f206164647265604482015261737360f01b60648201526084016109ed565b612c078585600086868661309d565b612c118484613354565b836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051612c5893929190614604565b60405180910390a36040518381526000906001600160a01b0386169060008051602061482783398151915290602001610901565b60008184841115612cb05760405162461bcd60e51b81526004016109ed9190613960565b505050900390565b6001600160a01b038516612d0e5760405162461bcd60e51b815260206004820181905260248201527f5375706572546f6b656e3a206d696e7420746f207a65726f206164647265737360448201526064016109ed565b612d1885856134a8565b612d2886600087878686896131c4565b846001600160a01b0316866001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868585604051612d6f93929190614604565b60405180910390a36040518481526001600160a01b03861690600090600080516020614827833981519152906020015b60405180910390a3505050505050565b336001600160a01b03821603612e1a5760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612e74576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b600e54600090819081906012600160a01b90910460ff161015612f0657600e54612edc90600160a01b900460ff16601261462f565b612ee790600a614736565b9050612ef38185614745565b9250612eff8184614767565b9150612f5d565b600e546012600160a01b90910460ff161115612f5657600e54612f3590601290600160a01b900460ff1661462f565b612f4090600a614736565b9050612f4c8185614767565b9250839150612f5d565b8391508192505b50915091565b6040516001600160a01b03831660248201526044810182905261137290849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613502565b612fd98585612fd4866122b1565b6135d4565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc8261467798786868660405161302a93929190614604565b60405180910390a4836001600160a01b0316856001600160a01b031660008051602061482783398151915285604051612d9f91815260200190565b6040516001600160a01b03808516602483015283166044820152606481018290526113199085906323b872dd60e01b90608401612f8f565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa15801561311e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314291906145e7565b90506001600160a01b0381161561119357604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613189908a908a908a908a908a908a90600401614786565b600060405180830381600087803b1580156131a357600080fd5b505af11580156131b7573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613245573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061326991906145e7565b90506001600160a01b038116156132e5576040516223de2960e01b81526001600160a01b038216906223de29906132ae908b908b908b908b908b908b90600401614786565b600060405180830381600087803b1580156132c857600080fd5b505af11580156132dc573d6000803e3d6000fd5b5050505061141a565b811561141a576001600160a01b0386163b1561141a5760405162461bcd60e51b815260206004820152602860248201527f5375706572546f6b656e3a206e6f7420616e20455243373737546f6b656e73526044820152671958da5c1a595b9d60c21b60648201526084016109ed565b60006133dc837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133b8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f9190614323565b505090506133e9826122b1565b81121561344d5760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206275726e20616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b613456826122b1565b6001600160a01b03841660009081526002602052604090205461347991906142b1565b6001600160a01b0384166000908152600260205260409020556003546134a090839061448c565b600355505050565b6134b1816122b1565b6001600160a01b0383166000908152600260205260409020546134d49190614270565b6001600160a01b0383166000908152600260205260409020556003546134fb9082906143ed565b6003555050565b6000613557826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166137179092919063ffffffff16565b805190915015611372578080602001905181019061357591906141c4565b6113725760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109ed565b6000613638847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133b8573d6000803e3d6000fd5b50509050818112156136a15760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206d6f766520616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6001600160a01b0384166000908152600260205260409020546136c59083906142b1565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546136f5908390614270565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610d878484600085856001600160a01b0385163b6137795760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109ed565b600080866001600160a01b0316858760405161379591906147e0565b60006040518083038185875af1925050503d80600081146137d2576040519150601f19603f3d011682016040523d82523d6000602084013e6137d7565b606091505b50915091506137e78282866137f2565b979650505050505050565b60608315613801575081610d8a565b8251156138115782518084602001fd5b8160405162461bcd60e51b81526004016109ed9190613960565b82805461383790614075565b90600052602060002090601f016020900481019282613859576000855561389f565b82601f106138725782800160ff1982351617855561389f565b8280016001018555821561389f579182015b8281111561389f578235825591602001919060010190613884565b5061231b9291505b8082111561231b57600081556001016138a7565b6020808252825182820181905260009190848201906040850190845b818110156138fc5783516001600160a01b0316835292840192918401916001016138d7565b50909695505050505050565b60005b8381101561392357818101518382015260200161390b565b838111156113195750506000910152565b6000815180845261394c816020860160208601613908565b601f01601f19169290920160200192915050565b602081526000610d8a6020830184613934565b6001600160a01b038116811461095257600080fd5b60008083601f84011261399a57600080fd5b5081356001600160401b038111156139b157600080fd5b6020830191508360208260051b85010111156139cc57600080fd5b9250929050565b600080600080606085870312156139e957600080fd5b84356139f481613973565b93506020850135925060408501356001600160401b03811115613a1657600080fd5b613a2287828801613988565b95989497509550505050565b60008060408385031215613a4157600080fd5b8235613a4c81613973565b946020939093013593505050565b600060208284031215613a6c57600080fd5b5035919050565b600080600060408486031215613a8857600080fd5b8335925060208401356001600160401b03811115613aa557600080fd5b613ab186828701613988565b9497909650939450505050565b60008060008060808587031215613ad457600080fd5b8435613adf81613973565b93506020850135613aef81613973565b92506040850135613aff81613973565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613b4d57613b4d613b0f565b604052919050565b600082601f830112613b6657600080fd5b81356001600160401b03811115613b7f57613b7f613b0f565b613b92601f8201601f1916602001613b25565b818152846020838601011115613ba757600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461095257600080fd5b600080600080600080600060e0888a031215613bed57600080fd5b8735965060208801356001600160401b03811115613c0a57600080fd5b613c168a828b01613b55565b9650506040880135613c2781613973565b94506060880135613c3781613bc4565b93506080880135613c4781613973565b9699959850939692959460a0840135945060c09093013592915050565b600080600060608486031215613c7957600080fd5b8335613c8481613973565b92506020840135613c9481613973565b929592945050506040919091013590565b60008060408385031215613cb857600080fd5b50508035926020909101359150565b600060208284031215613cd957600080fd5b8135610d8a81613973565b60008083601f840112613cf657600080fd5b5081356001600160401b03811115613d0d57600080fd5b6020830191508360208285010111156139cc57600080fd5b60008060008060008060808789031215613d3e57600080fd5b8635613d4981613973565b9550602087013560ff81168114613d5f57600080fd5b945060408701356001600160401b0380821115613d7b57600080fd5b613d878a838b01613ce4565b90965094506060890135915080821115613da057600080fd5b50613dad89828a01613ce4565b979a9699509497509295939492505050565b60008060008060808587031215613dd557600080fd5b8435613de081613973565b93506020850135613df081613973565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b818110156138fc57835183529284019291840191600101613e21565b60008060008060608587031215613e5357600080fd5b8435613e5e81613973565b93506020850135925060408501356001600160401b03811115613e8057600080fd5b613a2287828801613ce4565b600080600080600080600060a0888a031215613ea757600080fd5b8735613eb281613973565b96506020880135613ec281613973565b95506040880135945060608801356001600160401b0380821115613ee557600080fd5b613ef18b838c01613ce4565b909650945060808a0135915080821115613f0a57600080fd5b50613f178a828b01613ce4565b989b979a50959850939692959293505050565b600080600060608486031215613f3f57600080fd5b8335613f4a81613973565b95602085013595506040909401359392505050565b600080600060608486031215613f7457600080fd5b8335613f7f81613973565b92506020840135915060408401356001600160401b03811115613fa157600080fd5b613fad86828701613b55565b9150509250925092565b60008060408385031215613fca57600080fd5b8235613fd581613973565b91506020830135613fe581613973565b809150509250929050565b6000806000806000806080878903121561400957600080fd5b863561401481613973565b95506020870135945060408701356001600160401b0380821115613d7b57600080fd5b60008060006040848603121561404c57600080fd5b8335925060208401356001600160401b0381111561406957600080fd5b613ab186828701613ce4565b600181811c9082168061408957607f821691505b6020821081036140a957634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b0383111561415c57600080fd5b8260051b8085606085013760009201606001918252509392505050565b6020808252602b908201527f5375706572666c756964546f6b656e3a204f6e6c7920686f737420636f6e747260408201526a1858dd08185b1b1bddd95960aa1b606082015260800190565b6000602082840312156141d657600080fd5b8151610d8a81613bc4565b60208082526027908201527f5375706572666c756964546f6b656e3a206f6e6c79206c6973746564206167726040820152661959595b595b9d60ca1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b820161425357614253614228565b5060000390565b634e487b7160e01b600052600160045260246000fd5b600080821280156001600160ff1b038490038513161561429257614292614228565b600160ff1b83900384128116156142ab576142ab614228565b50500190565b60008083128015600160ff1b8501841216156142cf576142cf614228565b6001600160ff1b03840183138116156142ea576142ea614228565b50500390565b85815260018060a01b038516602082015283604082015282606082015260a0608082015260006137e760a0830184613934565b60006020828403121561433557600080fd5b5051919050565b6000602080838503121561434f57600080fd5b82516001600160401b038082111561436657600080fd5b818501915085601f83011261437a57600080fd5b81518181111561438c5761438c613b0f565b8060051b915061439d848301613b25565b81815291830184019184810190888411156143b757600080fd5b938501935b838510156143e157845192506143d183613973565b82825293850193908501906143bc565b98975050505050505050565b6000821982111561440057614400614228565b500190565b6020808252601d908201527f5375706572546f6b656e3a206f6e6c792073656c6620616c6c6f776564000000604082015260600190565b60208082526030908201527f5375706572546f6b656e3a2063616c6c6572206973206e6f7420616e206f706560408201526f3930ba37b9103337b9103437b63232b960811b606082015260800190565b60008282101561449e5761449e614228565b500390565b634e487b7160e01b600052603260045260246000fd5b6000806000606084860312156144ce57600080fd5b8351925060208401519150604084015190509250925092565b6000600182016144f9576144f9614228565b5060010190565b6020808252603a908201527f5375706572546f6b656e3a20696e666c6174696f6e6172792f6465666c61746960408201527f6f6e61727920746f6b656e73206e6f7420737570706f72746564000000000000606082015260800190565b60208082526026908201527f5375706572546f6b656e3a207472616e736665722066726f6d207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526024908201527f5375706572546f6b656e3a207472616e7366657220746f207a65726f206164646040820152637265737360e01b606082015260800190565b6000602082840312156145f957600080fd5b8151610d8a81613973565b83815260606020820152600061461d6060830185613934565b82810360408401526112928185613934565b600060ff821660ff84168082101561464957614649614228565b90039392505050565b600181815b8085111561468d57816000190482111561467357614673614228565b8085161561468057918102915b93841c9390800290614657565b509250929050565b6000826146a457506001610921565b816146b157506000610921565b81600181146146c757600281146146d1576146ed565b6001915050610921565b60ff8411156146e2576146e2614228565b50506001821b610921565b5060208310610133831016604e8410600b8410161715614710575081810a610921565b61471a8383614652565b806000190482111561472e5761472e614228565b029392505050565b6000610d8a60ff841683614695565b60008261476257634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561478157614781614228565b500290565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190526000906147c190830185613934565b82810360a08401526147d38185613934565b9998505050505050505050565b600082516147f2818460208701613908565b919091019291505056fe5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ecf4bd0d1cff764e160fe231c4a08cbcd44558c2658a68da784e4662ad11a8b464736f6c634300080e0033a264697066735822122095ec25ee9f1bffd2adb596069ad46183967a317e41359e9626ba030656d8d25f64736f6c634300080e0033",
26
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b61004361003e3660046100ae565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60008160405161006e906100a1565b6001600160a01b039091168152602001604051809103906000f08015801561009a573d6000803e3d6000fd5b5092915050565b6149a6806100df83390190565b6000602082840312156100c057600080fd5b81356001600160a01b03811681146100d757600080fd5b939250505056fe60a06040523480156200001157600080fd5b50604051620049a6380380620049a6833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516148a9620000fd600039600081816103f701528181610a8101528181610aef01528181610d9301528181610eed01528181610fbc015281816111d301528181611321015281816114b50152818161179c0152818161185e015281816118e501528181612171015281816122080152818161335c01526135dc01526148a96000f3fe608060405234801561001057600080fd5b50600436106103275760003560e01c806362aa5287116101b8578063a9059cbb11610104578063d9d078d6116100a2578063ee719bc81161007c578063ee719bc81461076f578063fad8b32a14610780578063fc673c4f14610793578063fe9d9303146107a657600080fd5b8063d9d078d6146106f5578063dd62ed3e14610708578063eb3537cc1461074157600080fd5b8063c68d4283116100de578063c68d4283146106a9578063ca789464146106bc578063cf97256d146106cf578063d95b6371146106e257600080fd5b8063a9059cbb14610670578063b84cdd4a14610683578063bb0d196e1461069657600080fd5b8063959b8c3f116101715780639d8767411161014b5780639d87674114610624578063a1b2bf8b14610637578063a3a7e7f31461064a578063a457c2d71461065d57600080fd5b8063959b8c3f146105f657806395d89b41146106095780639bd9bbc61461061157600080fd5b806362aa52871461058457806362ad1b831461059757806366a12fb6146105aa5780636c2d9f2f146105bd57806370a08231146105d057806379359f6f146105e357600080fd5b80632ec8eec71161027757806345977d031161023057806350d75d251161020a57806350d75d251461053c57806352d1902d14610544578063556f0dc71461056a5780635b9d09cc1461057157600080fd5b806345977d03146104f657806346951954146105095780634b61cc331461051c57600080fd5b80632ec8eec714610468578063313ce5671461049b578063386fa221146104aa57806339509351146104bd57806341b706be146104d057806342fe0980146104e357600080fd5b806316d055d6116102e457806320bc4425116102be57806320bc4425146103f557806323b872dd1461042f578063245887fc14610442578063270483971461045557600080fd5b806316d055d6146103bd57806318160ddd146103d05780631863e809146103e257600080fd5b806306e485381461032c57806306fdde031461034a578063090c415e1461035f578063095ea7b31461037457806311bcc81e1461039757806312a6a3f8146103aa575b600080fd5b6103346107b9565b60405161034191906138bb565b60405180910390f35b6103526107ca565b6040516103419190613960565b61037261036d3660046139d3565b61085c565b005b610387610382366004613a2e565b610910565b6040519015158152602001610341565b6103726103a5366004613a5a565b610927565b6103726103b8366004613a73565b610955565b6103726103cb366004613abe565b610a7f565b6003545b604051908152602001610341565b6103726103f0366004613bd2565b610ada565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610341565b61038761043d366004613c64565b610d79565b610372610450366004613a2e565b610d91565b610372610463366004613ca5565b610e08565b61047b610476366004613cc7565b610ee5565b604080519485526020850193909352918301526060820152608001610341565b60405160128152602001610341565b6103346104b8366004613cc7565b610f88565b6103876104cb366004613a2e565b61102b565b6103726104de366004613abe565b611067565b6103726104f1366004613d25565b611092565b610372610504366004613a5a565b61119c565b610372610517366004613cc7565b6111c8565b61052f61052a366004613dbf565b611257565b6040516103419190613e05565b61041761129c565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196103d4565b60016103d4565b61037261057f366004613e3d565b6112c6565b610372610592366004613c64565b61131f565b6103726105a5366004613e8c565b611377565b6103726105b8366004613c64565b611424565b61052f6105cb366004613f2a565b611443565b6103d46105de366004613cc7565b611485565b6103876105f1366004613cc7565b6114ad565b610372610604366004613cc7565b611535565b610352611586565b61037261061f366004613e3d565b611595565b610372610632366004613f5f565b6115e9565b610372610645366004613a73565b611628565b610372610658366004613cc7565b6116d2565b61038761066b366004613a2e565b6116e6565b61038761067e366004613a2e565b611735565b610387610691366004613a2e565b611743565b6103876106a4366004613cc7565b611794565b6103726106b7366004613f5f565b61181c565b6103726106ca366004613a2e565b61185c565b6103726106dd366004613a2e565b6118d0565b6103876106f0366004613fb7565b6119b8565b610387610703366004613a2e565b6119c6565b6103d4610716366004613fb7565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b61075461074f366004613a2e565b6119e0565b60408051938452602084019290925290820152606001610341565b600e546001600160a01b0316610417565b61037261078e366004613cc7565b611b1c565b6103726107a1366004613ff0565b611b6d565b6103726107b4366004614037565b611c0c565b60606107c56012611c5c565b905090565b6060600f80546107d990614075565b80601f016020809104026020016040519081016040528092919081815260200182805461080590614075565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b6000338585604051602001610873939291906140af565b6040516020818303038152906040528051906020012090506108c881848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cc292505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d5985906020015b60405180910390a35050505050565b600061091d338484611d03565b5060015b92915050565b6109523333836040518060200160405280600081525060405180602001604052806000815250611e2b565b50565b604051339060009061096d90839087906020016140f8565b60408051601f19818403018152919052805160209091012090506109918184612012565b156109f65760405162461bcd60e51b815260206004820152602a60248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420616c726561604482015269191e4818dc99585d195960b21b60648201526084015b60405180910390fd5b610a3381858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cc292505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610a7093929190614135565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ac75760405162461bcd60e51b81526004016109ed90614179565b610ad38484848461204e565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906141c4565b610b7e5760405162461bcd60e51b81526004016109ed906141e1565b6000610b8861216c565b90506001600160a01b038116610b9b5750845b600085610ba85786610baa565b815b905060008313610c4757610bbd8361423e565b610bc6856122b1565b14610bd357610bd361425a565b610bdc846122b1565b6001600160a01b03821660009081526002602052604081208054909190610c04908490614270565b90915550506001600160a01b03851660009081526002602052604081208054859290610c31908490614270565b90915550610c42905085828661231f565b610d11565b8515610c5557610c5561425a565b82610c5f856122b1565b610c699190614270565b6001600160a01b03831660009081526002602052604081208054909190610c919084906142b1565b90915550610ca09050846122b1565b6001600160a01b03881660009081526002602052604081208054909190610cc8908490614270565b90915550506001600160a01b03851660009081526002602052604081208054859290610cf5908490614270565b90915550610d06905082888661231f565b610d1182868561231f565b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051610d669594939291906142f0565b60405180910390a4505050505050505050565b6000610d873385858561204e565b90505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610dd95760405162461bcd60e51b81526004016109ed90614179565b610e043383836040518060200160405280600081525060405180602001604052806000815250611e2b565b5050565b6040513390600090610e2090839086906020016140f8565b604051602081830303815290604052805190602001209050610e428184612012565b610ea05760405162461bcd60e51b815260206004820152602960248201527f5375706572666c756964546f6b656e3a2061677265656d656e7420646f6573206044820152681b9bdd08195e1a5cdd60ba1b60648201526084016109ed565b610eaa8184612352565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6d9190614323565b9050610f7985826119e0565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611003573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610921919081019061433c565b3360008181526011602090815260408083206001600160a01b0387168452909152812054909161091d9185906110629086906143ed565b611d03565b3330146110865760405162461bcd60e51b81526004016109ed90614405565b610ad38385848461204e565b600054610100900460ff166110ad5760005460ff16156110b1565b303b155b6111145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109ed565b600054610100900460ff16158015611136576000805461ffff19166101011790555b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a161717905561116a600f868661382b565b506111776010848461382b565b5061118130612373565b8015611193576000805461ff00191690555b50505050505050565b6109523333338460405180602001604052806000815250604051806020016040528060008152506124a1565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461124e5760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a206f6e6c7920686f73742063616e2075706461746560448201526420636f646560d81b60648201526084016109ed565b610952816126a4565b60606000858585604051602001611270939291906140af565b60405160208183030381529060405280519060200120905061129281846128e4565b9695505050505050565b60006107c57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b611319333386866040518060200160405280600081525087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124a192505050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146113675760405162461bcd60e51b81526004016109ed90614179565b611372838383611d03565b505050565b336113846012828a612973565b6113a05760405162461bcd60e51b81526004016109ed9061443c565b61141a8189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250612a1c915050565b5050505050505050565b3330146113675760405162461bcd60e51b81526004016109ed90614405565b60606000848460405160200161145a9291906140f8565b60405160208183030381529060405280519060200120905061147c81846128e4565b95945050505050565b60008061149183610ee5565b5050509050600081126114a45780610d8a565b60009392505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107039190614323565b3361154260128284612a93565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546107d990614075565b6113193333868686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805160208101909152908152925060019150612a1c9050565b3330146116085760405162461bcd60e51b81526004016109ed90614405565b604080516000815260208101909152611372903390859085908590612b97565b604051339060009061164090839087906020016140f8565b60405160208183030381529060405280519060200120905061169581858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cc292505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610a7093929190614135565b610e043333836116e133611485565b61204e565b600061091d3384611062856040518060600160405280602a81526020016147fd602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190612c8c565b6000610d8a3333858561204e565b60008060008061175386866119e0565b925092509250600061177b82841161176c5760006122b1565b611776838561448c565b6122b1565b6117859085614270565b60001315979650505050505050565b6000610921827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190614323565b33301461183b5760405162461bcd60e51b81526004016109ed90614405565b60408051600080825260208201909252611372913391869186918690612cb8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118a45760405162461bcd60e51b81526004016109ed90614179565b610e043383848460405180602001604052806000815250604051806020016040528060008152506124a1565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611934573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195891906141c4565b6119745760405162461bcd60e51b81526004016109ed906141e1565b6001600160a01b038216600090815260026020526040902054611998908290614270565b6001600160a01b0390921660009081526002602052604090209190915550565b6000610d8a60128484612973565b6000806119d384846119e0565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080611a0586610f88565b905060005b8151811015611b13576000806000848481518110611a2a57611a2a6144a3565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015611a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aad91906144b9565b91945092509050611abe82886143ed565b9650611aca81876143ed565b9550611ae7818311611add5760006122b1565b611776828461448c565b611af1848a614270565b611afb91906142b1565b97505050508080611b0b906144e7565b915050611a0a565b50509250925092565b33611b2960128284612daf565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b33611b7a60128289612973565b611b965760405162461bcd60e51b81526004016109ed9061443c565b61119381888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250611e2b92505050565b61137233338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250611e2b915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611cb657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c98575b50505050509050919050565b60005b8151811015611372576000828281518110611ce257611ce26144a3565b6020026020010151905080828501555080611cfc906144e7565b9050611cc5565b6001600160a01b038316611d675760405162461bcd60e51b815260206004820152602560248201527f5375706572546f6b656e3a20617070726f76652066726f6d207a65726f206164604482015264647265737360d81b60648201526084016109ed565b6001600160a01b038216611dc95760405162461bcd60e51b815260206004820152602360248201527f5375706572546f6b656e3a20617070726f766520746f207a65726f206164647260448201526265737360e81b60648201526084016109ed565b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600e546001600160a01b0316611e835760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b600080611e8f85612ea7565b91509150611ea08787838787612b97565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0d9190614323565b600e54909150611f27906001600160a01b03168885612f63565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f949190614323565b90506000611fa2828461448c565b9050808514611fc35760405162461bcd60e51b81526004016109ed90614500565b886001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d85604051611ffe91815260200190565b60405180910390a250505050505050505050565b6000805b828110156120445783810154801561203357600192505050610921565b5061203d816144e7565b9050612016565b5060009392505050565b60006001600160a01b0384166120765760405162461bcd60e51b81526004016109ed9061455d565b6001600160a01b03831661209c5760405162461bcd60e51b81526004016109ed906145a3565b60003390506120cd818686866040518060200160405280600081525060405180602001604052806000815250612fc6565b846001600160a01b0316866001600160a01b031614612160576121608587611062866040518060600160405280602d8152602001614847602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054612c8c9092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f191906145e7565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ab91906145e7565b91505090565b60006001600160ff1b0382111561231b5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016109ed565b5090565b816001600160a01b0316836001600160a01b031660008051602061482783398151915283604051611e1e91815260200190565b60005b818110156113725760008382015561236c816144e7565b9050612355565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b1580156123f457600080fd5b505af1158015612408573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b15801561248d57600080fd5b505af1158015610ad3573d6000803e3d6000fd5b600e546001600160a01b03166124f95760405162461bcd60e51b815260206004820152601f60248201527f5375706572546f6b656e3a206e6f20756e6465726c79696e6720746f6b656e0060448201526064016109ed565b60008061250585612ea7565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257a9190614323565b600e54909150612595906001600160a01b0316893086613065565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156125de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126029190614323565b90506000612610838361448c565b90508085146126315760405162461bcd60e51b81526004016109ed90614500565b6126548b8a868c6001600160a01b03168e6001600160a01b031614158b8b612cb8565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df8560405161268f91815260200190565b60405180910390a25050505050505050505050565b60006126ce7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036127245760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016109ed565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127869190614323565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146128005760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016109ed565b6001600160a01b03811630036128585760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016109ed565b612880817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b03841660208301520160405180910390a150565b6060816001600160401b038111156128fe576128fe613b0f565b604051908082528060200260200182016040528015612927578160200160208202803683370190505b50905060005b8281101561296c57600081850154905080838381518110612950576129506144a3565b602090810291909101015250612965816144e7565b905061292d565b5092915050565b6000816001600160a01b0316836001600160a01b031614806129e257506001600160a01b038316600090815260018501602052604090205460ff1680156129e257506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610d8757506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b038616612a425760405162461bcd60e51b81526004016109ed9061455d565b6001600160a01b038516612a685760405162461bcd60e51b81526004016109ed906145a3565b612a7687878787878761309d565b612a84878787878787612fc6565b611193878787878787876131c4565b806001600160a01b0316826001600160a01b031603612b0a5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612b60576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b038416612bf85760405162461bcd60e51b815260206004820152602260248201527f5375706572546f6b656e3a206275726e2066726f6d207a65726f206164647265604482015261737360f01b60648201526084016109ed565b612c078585600086868661309d565b612c118484613354565b836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051612c5893929190614604565b60405180910390a36040518381526000906001600160a01b0386169060008051602061482783398151915290602001610901565b60008184841115612cb05760405162461bcd60e51b81526004016109ed9190613960565b505050900390565b6001600160a01b038516612d0e5760405162461bcd60e51b815260206004820181905260248201527f5375706572546f6b656e3a206d696e7420746f207a65726f206164647265737360448201526064016109ed565b612d1885856134a8565b612d2886600087878686896131c4565b846001600160a01b0316866001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868585604051612d6f93929190614604565b60405180910390a36040518481526001600160a01b03861690600090600080516020614827833981519152906020015b60405180910390a3505050505050565b336001600160a01b03821603612e1a5760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016109ed565b6001600160a01b038116600090815260018401602052604090205460ff1615612e74576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b600e54600090819081906012600160a01b90910460ff161015612f0657600e54612edc90600160a01b900460ff16601261462f565b612ee790600a614736565b9050612ef38185614745565b9250612eff8184614767565b9150612f5d565b600e546012600160a01b90910460ff161115612f5657600e54612f3590601290600160a01b900460ff1661462f565b612f4090600a614736565b9050612f4c8185614767565b9250839150612f5d565b8391508192505b50915091565b6040516001600160a01b03831660248201526044810182905261137290849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613502565b612fd98585612fd4866122b1565b6135d4565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc8261467798786868660405161302a93929190614604565b60405180910390a4836001600160a01b0316856001600160a01b031660008051602061482783398151915285604051612d9f91815260200190565b6040516001600160a01b03808516602483015283166044820152606481018290526113199085906323b872dd60e01b90608401612f8f565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa15801561311e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314291906145e7565b90506001600160a01b0381161561119357604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613189908a908a908a908a908a908a90600401614786565b600060405180830381600087803b1580156131a357600080fd5b505af11580156131b7573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613245573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061326991906145e7565b90506001600160a01b038116156132e5576040516223de2960e01b81526001600160a01b038216906223de29906132ae908b908b908b908b908b908b90600401614786565b600060405180830381600087803b1580156132c857600080fd5b505af11580156132dc573d6000803e3d6000fd5b5050505061141a565b811561141a576001600160a01b0386163b1561141a5760405162461bcd60e51b815260206004820152602860248201527f5375706572546f6b656e3a206e6f7420616e20455243373737546f6b656e73526044820152671958da5c1a595b9d60c21b60648201526084016109ed565b60006133dc837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133b8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f9190614323565b505090506133e9826122b1565b81121561344d5760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206275726e20616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b613456826122b1565b6001600160a01b03841660009081526002602052604090205461347991906142b1565b6001600160a01b0384166000908152600260205260409020556003546134a090839061448c565b600355505050565b6134b1816122b1565b6001600160a01b0383166000908152600260205260409020546134d49190614270565b6001600160a01b0383166000908152600260205260409020556003546134fb9082906143ed565b6003555050565b6000613557826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166137179092919063ffffffff16565b805190915015611372578080602001905181019061357591906141c4565b6113725760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109ed565b6000613638847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133b8573d6000803e3d6000fd5b50509050818112156136a15760405162461bcd60e51b815260206004820152602c60248201527f5375706572666c756964546f6b656e3a206d6f766520616d6f756e742065786360448201526b656564732062616c616e636560a01b60648201526084016109ed565b6001600160a01b0384166000908152600260205260409020546136c59083906142b1565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546136f5908390614270565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610d878484600085856001600160a01b0385163b6137795760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109ed565b600080866001600160a01b0316858760405161379591906147e0565b60006040518083038185875af1925050503d80600081146137d2576040519150601f19603f3d011682016040523d82523d6000602084013e6137d7565b606091505b50915091506137e78282866137f2565b979650505050505050565b60608315613801575081610d8a565b8251156138115782518084602001fd5b8160405162461bcd60e51b81526004016109ed9190613960565b82805461383790614075565b90600052602060002090601f016020900481019282613859576000855561389f565b82601f106138725782800160ff1982351617855561389f565b8280016001018555821561389f579182015b8281111561389f578235825591602001919060010190613884565b5061231b9291505b8082111561231b57600081556001016138a7565b6020808252825182820181905260009190848201906040850190845b818110156138fc5783516001600160a01b0316835292840192918401916001016138d7565b50909695505050505050565b60005b8381101561392357818101518382015260200161390b565b838111156113195750506000910152565b6000815180845261394c816020860160208601613908565b601f01601f19169290920160200192915050565b602081526000610d8a6020830184613934565b6001600160a01b038116811461095257600080fd5b60008083601f84011261399a57600080fd5b5081356001600160401b038111156139b157600080fd5b6020830191508360208260051b85010111156139cc57600080fd5b9250929050565b600080600080606085870312156139e957600080fd5b84356139f481613973565b93506020850135925060408501356001600160401b03811115613a1657600080fd5b613a2287828801613988565b95989497509550505050565b60008060408385031215613a4157600080fd5b8235613a4c81613973565b946020939093013593505050565b600060208284031215613a6c57600080fd5b5035919050565b600080600060408486031215613a8857600080fd5b8335925060208401356001600160401b03811115613aa557600080fd5b613ab186828701613988565b9497909650939450505050565b60008060008060808587031215613ad457600080fd5b8435613adf81613973565b93506020850135613aef81613973565b92506040850135613aff81613973565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613b4d57613b4d613b0f565b604052919050565b600082601f830112613b6657600080fd5b81356001600160401b03811115613b7f57613b7f613b0f565b613b92601f8201601f1916602001613b25565b818152846020838601011115613ba757600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461095257600080fd5b600080600080600080600060e0888a031215613bed57600080fd5b8735965060208801356001600160401b03811115613c0a57600080fd5b613c168a828b01613b55565b9650506040880135613c2781613973565b94506060880135613c3781613bc4565b93506080880135613c4781613973565b9699959850939692959460a0840135945060c09093013592915050565b600080600060608486031215613c7957600080fd5b8335613c8481613973565b92506020840135613c9481613973565b929592945050506040919091013590565b60008060408385031215613cb857600080fd5b50508035926020909101359150565b600060208284031215613cd957600080fd5b8135610d8a81613973565b60008083601f840112613cf657600080fd5b5081356001600160401b03811115613d0d57600080fd5b6020830191508360208285010111156139cc57600080fd5b60008060008060008060808789031215613d3e57600080fd5b8635613d4981613973565b9550602087013560ff81168114613d5f57600080fd5b945060408701356001600160401b0380821115613d7b57600080fd5b613d878a838b01613ce4565b90965094506060890135915080821115613da057600080fd5b50613dad89828a01613ce4565b979a9699509497509295939492505050565b60008060008060808587031215613dd557600080fd5b8435613de081613973565b93506020850135613df081613973565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b818110156138fc57835183529284019291840191600101613e21565b60008060008060608587031215613e5357600080fd5b8435613e5e81613973565b93506020850135925060408501356001600160401b03811115613e8057600080fd5b613a2287828801613ce4565b600080600080600080600060a0888a031215613ea757600080fd5b8735613eb281613973565b96506020880135613ec281613973565b95506040880135945060608801356001600160401b0380821115613ee557600080fd5b613ef18b838c01613ce4565b909650945060808a0135915080821115613f0a57600080fd5b50613f178a828b01613ce4565b989b979a50959850939692959293505050565b600080600060608486031215613f3f57600080fd5b8335613f4a81613973565b95602085013595506040909401359392505050565b600080600060608486031215613f7457600080fd5b8335613f7f81613973565b92506020840135915060408401356001600160401b03811115613fa157600080fd5b613fad86828701613b55565b9150509250925092565b60008060408385031215613fca57600080fd5b8235613fd581613973565b91506020830135613fe581613973565b809150509250929050565b6000806000806000806080878903121561400957600080fd5b863561401481613973565b95506020870135945060408701356001600160401b0380821115613d7b57600080fd5b60008060006040848603121561404c57600080fd5b8335925060208401356001600160401b0381111561406957600080fd5b613ab186828701613ce4565b600181811c9082168061408957607f821691505b6020821081036140a957634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b0383111561415c57600080fd5b8260051b8085606085013760009201606001918252509392505050565b6020808252602b908201527f5375706572666c756964546f6b656e3a204f6e6c7920686f737420636f6e747260408201526a1858dd08185b1b1bddd95960aa1b606082015260800190565b6000602082840312156141d657600080fd5b8151610d8a81613bc4565b60208082526027908201527f5375706572666c756964546f6b656e3a206f6e6c79206c6973746564206167726040820152661959595b595b9d60ca1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b820161425357614253614228565b5060000390565b634e487b7160e01b600052600160045260246000fd5b600080821280156001600160ff1b038490038513161561429257614292614228565b600160ff1b83900384128116156142ab576142ab614228565b50500190565b60008083128015600160ff1b8501841216156142cf576142cf614228565b6001600160ff1b03840183138116156142ea576142ea614228565b50500390565b85815260018060a01b038516602082015283604082015282606082015260a0608082015260006137e760a0830184613934565b60006020828403121561433557600080fd5b5051919050565b6000602080838503121561434f57600080fd5b82516001600160401b038082111561436657600080fd5b818501915085601f83011261437a57600080fd5b81518181111561438c5761438c613b0f565b8060051b915061439d848301613b25565b81815291830184019184810190888411156143b757600080fd5b938501935b838510156143e157845192506143d183613973565b82825293850193908501906143bc565b98975050505050505050565b6000821982111561440057614400614228565b500190565b6020808252601d908201527f5375706572546f6b656e3a206f6e6c792073656c6620616c6c6f776564000000604082015260600190565b60208082526030908201527f5375706572546f6b656e3a2063616c6c6572206973206e6f7420616e206f706560408201526f3930ba37b9103337b9103437b63232b960811b606082015260800190565b60008282101561449e5761449e614228565b500390565b634e487b7160e01b600052603260045260246000fd5b6000806000606084860312156144ce57600080fd5b8351925060208401519150604084015190509250925092565b6000600182016144f9576144f9614228565b5060010190565b6020808252603a908201527f5375706572546f6b656e3a20696e666c6174696f6e6172792f6465666c61746960408201527f6f6e61727920746f6b656e73206e6f7420737570706f72746564000000000000606082015260800190565b60208082526026908201527f5375706572546f6b656e3a207472616e736665722066726f6d207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526024908201527f5375706572546f6b656e3a207472616e7366657220746f207a65726f206164646040820152637265737360e01b606082015260800190565b6000602082840312156145f957600080fd5b8151610d8a81613973565b83815260606020820152600061461d6060830185613934565b82810360408401526112928185613934565b600060ff821660ff84168082101561464957614649614228565b90039392505050565b600181815b8085111561468d57816000190482111561467357614673614228565b8085161561468057918102915b93841c9390800290614657565b509250929050565b6000826146a457506001610921565b816146b157506000610921565b81600181146146c757600281146146d1576146ed565b6001915050610921565b60ff8411156146e2576146e2614228565b50506001821b610921565b5060208310610133831016604e8410600b8410161715614710575081810a610921565b61471a8383614652565b806000190482111561472e5761472e614228565b029392505050565b6000610d8a60ff841683614695565b60008261476257634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561478157614781614228565b500290565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190526000906147c190830185613934565b82810360a08401526147d38185613934565b9998505050505050505050565b600082516147f2818460208701613908565b919091019291505056fe5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ecf4bd0d1cff764e160fe231c4a08cbcd44558c2658a68da784e4662ad11a8b464736f6c634300080e0033a264697066735822122095ec25ee9f1bffd2adb596069ad46183967a317e41359e9626ba030656d8d25f64736f6c634300080e0033",
27
27
  "immutableReferences": {},
28
28
  "generatedSources": [],
29
29
  "deployedGeneratedSources": [
@@ -619,7 +619,7 @@
619
619
  ],
620
620
  "sourceMap": "4799:181:87:-:0;;;;;;;;;;;;;;;;;;;",
621
621
  "deployedSourceMap": "4799:181:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4838:140;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;490:32:105;;;472:51;;460:2;445:18;4838:140:87;;;;;;;;4906:13;4965:4;4950:20;;;;;:::i;:::-;-1:-1:-1;;;;;490:32:105;;;472:51;;460:2;445:18;4950:20:87;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4935:36:87;4838:140;-1:-1:-1;;4838:140:87:o;-1:-1:-1:-;;;;;;;;:::o;14:307:105:-;94:6;147:2;135:9;126:7;122:23;118:32;115:52;;;163:1;160;153:12;115:52;189:23;;-1:-1:-1;;;;;241:31:105;;231:42;;221:70;;287:1;284;277:12;221:70;310:5;14:307;-1:-1:-1;;;14:307:105:o",
622
- "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity 0.8.13;\n\nimport {\n ISuperTokenFactory,\n ISuperToken,\n IERC20,\n ERC20WithTokenInfo\n} from \"../interfaces/superfluid/ISuperTokenFactory.sol\";\n\nimport { ISuperfluid } from \"../interfaces/superfluid/ISuperfluid.sol\";\n\nimport { UUPSProxy } from \"../upgradability/UUPSProxy.sol\";\nimport { UUPSProxiable } from \"../upgradability/UUPSProxiable.sol\";\n\nimport { SuperToken } from \"../superfluid/SuperToken.sol\";\n\nimport { FullUpgradableSuperTokenProxy } from \"./FullUpgradableSuperTokenProxy.sol\";\n\nimport { Address } from \"@openzeppelin/contracts/utils/Address.sol\";\nimport { Create2 } from \"@openzeppelin/contracts/utils/Create2.sol\";\n\n\nabstract contract SuperTokenFactoryBase is\n UUPSProxiable,\n ISuperTokenFactory\n{\n\n ISuperfluid immutable internal _host;\n\n ISuperToken internal _superTokenLogic;\n\n constructor(\n ISuperfluid host\n ) {\n _host = host;\n }\n\n /// @dev ISuperTokenFactory.getHost implementation\n function getHost()\n external view\n override(ISuperTokenFactory)\n returns(address host)\n {\n return address(_host);\n }\n\n /**************************************************************************\n * UUPSProxiable\n **************************************************************************/\n function initialize()\n external override\n initializer // OpenZeppelin Initializable\n {\n _updateSuperTokenLogic();\n }\n\n function proxiableUUID() public pure override returns (bytes32) {\n return keccak256(\"org.superfluid-finance.contracts.SuperTokenFactory.implementation\");\n }\n\n function updateCode(address newAddress) external override {\n require(msg.sender == address(_host), \"SuperTokenFactory: only host can update code\");\n _updateCodeAddress(newAddress);\n _updateSuperTokenLogic();\n }\n\n function _updateSuperTokenLogic() private {\n // use external call to trigger the new code to update the super token logic contract\n _superTokenLogic = SuperToken(this.createSuperTokenLogic(_host));\n emit SuperTokenLogicCreated(_superTokenLogic);\n }\n\n /**************************************************************************\n * ISuperTokenFactory\n **************************************************************************/\n function getSuperTokenLogic()\n external view override\n returns (ISuperToken)\n {\n return _superTokenLogic;\n }\n\n function createSuperTokenLogic(ISuperfluid host) external virtual returns (address logic);\n\n function createERC20Wrapper(\n IERC20 underlyingToken,\n uint8 underlyingDecimals,\n Upgradability upgradability,\n string calldata name,\n string calldata symbol\n )\n public override\n returns (ISuperToken superToken)\n {\n require(address(underlyingToken) != address(0), \"SuperTokenFactory: zero address\");\n\n if (upgradability == Upgradability.NON_UPGRADABLE) {\n superToken = ISuperToken(this.createSuperTokenLogic(_host));\n } else if (upgradability == Upgradability.SEMI_UPGRADABLE) {\n UUPSProxy proxy = new UUPSProxy();\n // initialize the wrapper\n proxy.initializeProxy(address(_superTokenLogic));\n superToken = ISuperToken(address(proxy));\n } else /* if (type == Upgradability.FULL_UPGRADABE) */ {\n FullUpgradableSuperTokenProxy proxy = new FullUpgradableSuperTokenProxy();\n proxy.initialize();\n superToken = ISuperToken(address(proxy));\n }\n\n // initialize the token\n superToken.initialize(\n underlyingToken,\n underlyingDecimals,\n name,\n symbol\n );\n\n emit SuperTokenCreated(superToken);\n }\n\n function createERC20Wrapper(\n ERC20WithTokenInfo underlyingToken,\n Upgradability upgradability,\n string calldata name,\n string calldata symbol\n )\n external override\n returns (ISuperToken superToken)\n {\n return createERC20Wrapper(\n underlyingToken,\n underlyingToken.decimals(),\n upgradability,\n name,\n symbol\n );\n }\n\n function initializeCustomSuperToken(\n address customSuperTokenProxy\n )\n external override\n {\n // odd solidity stuff..\n // NOTE payable necessary because UUPSProxy has a payable fallback function\n address payable a = payable(address(uint160(customSuperTokenProxy)));\n UUPSProxy(a).initializeProxy(address(_superTokenLogic));\n\n emit CustomSuperTokenCreated(ISuperToken(customSuperTokenProxy));\n }\n\n}\n\n// spliting this off because the contract is getting bigger\ncontract SuperTokenFactoryHelper {\n function create(ISuperfluid host)\n external\n returns (address logic)\n {\n return address(new SuperToken(host));\n }\n}\n\ncontract SuperTokenFactory is SuperTokenFactoryBase\n{\n SuperTokenFactoryHelper immutable private _helper;\n\n constructor(\n ISuperfluid host,\n SuperTokenFactoryHelper helper\n )\n SuperTokenFactoryBase(host)\n // solhint-disable-next-line no-empty-blocks\n {\n _helper = helper;\n }\n\n function createSuperTokenLogic(ISuperfluid host)\n external override\n returns (address logic)\n {\n return _helper.create(host);\n }\n}\n",
622
+ "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity 0.8.14;\n\nimport {\n ISuperTokenFactory,\n ISuperToken,\n IERC20,\n ERC20WithTokenInfo\n} from \"../interfaces/superfluid/ISuperTokenFactory.sol\";\n\nimport { ISuperfluid } from \"../interfaces/superfluid/ISuperfluid.sol\";\n\nimport { UUPSProxy } from \"../upgradability/UUPSProxy.sol\";\nimport { UUPSProxiable } from \"../upgradability/UUPSProxiable.sol\";\n\nimport { SuperToken } from \"../superfluid/SuperToken.sol\";\n\nimport { FullUpgradableSuperTokenProxy } from \"./FullUpgradableSuperTokenProxy.sol\";\n\nimport { Address } from \"@openzeppelin/contracts/utils/Address.sol\";\nimport { Create2 } from \"@openzeppelin/contracts/utils/Create2.sol\";\n\n\nabstract contract SuperTokenFactoryBase is\n UUPSProxiable,\n ISuperTokenFactory\n{\n\n ISuperfluid immutable internal _host;\n\n ISuperToken internal _superTokenLogic;\n\n constructor(\n ISuperfluid host\n ) {\n _host = host;\n }\n\n /// @dev ISuperTokenFactory.getHost implementation\n function getHost()\n external view\n override(ISuperTokenFactory)\n returns(address host)\n {\n return address(_host);\n }\n\n /**************************************************************************\n * UUPSProxiable\n **************************************************************************/\n function initialize()\n external override\n initializer // OpenZeppelin Initializable\n {\n _updateSuperTokenLogic();\n }\n\n function proxiableUUID() public pure override returns (bytes32) {\n return keccak256(\"org.superfluid-finance.contracts.SuperTokenFactory.implementation\");\n }\n\n function updateCode(address newAddress) external override {\n require(msg.sender == address(_host), \"SuperTokenFactory: only host can update code\");\n _updateCodeAddress(newAddress);\n _updateSuperTokenLogic();\n }\n\n function _updateSuperTokenLogic() private {\n // use external call to trigger the new code to update the super token logic contract\n _superTokenLogic = SuperToken(this.createSuperTokenLogic(_host));\n emit SuperTokenLogicCreated(_superTokenLogic);\n }\n\n /**************************************************************************\n * ISuperTokenFactory\n **************************************************************************/\n function getSuperTokenLogic()\n external view override\n returns (ISuperToken)\n {\n return _superTokenLogic;\n }\n\n function createSuperTokenLogic(ISuperfluid host) external virtual returns (address logic);\n\n function createERC20Wrapper(\n IERC20 underlyingToken,\n uint8 underlyingDecimals,\n Upgradability upgradability,\n string calldata name,\n string calldata symbol\n )\n public override\n returns (ISuperToken superToken)\n {\n require(address(underlyingToken) != address(0), \"SuperTokenFactory: zero address\");\n\n if (upgradability == Upgradability.NON_UPGRADABLE) {\n superToken = ISuperToken(this.createSuperTokenLogic(_host));\n } else if (upgradability == Upgradability.SEMI_UPGRADABLE) {\n UUPSProxy proxy = new UUPSProxy();\n // initialize the wrapper\n proxy.initializeProxy(address(_superTokenLogic));\n superToken = ISuperToken(address(proxy));\n } else /* if (type == Upgradability.FULL_UPGRADABE) */ {\n FullUpgradableSuperTokenProxy proxy = new FullUpgradableSuperTokenProxy();\n proxy.initialize();\n superToken = ISuperToken(address(proxy));\n }\n\n // initialize the token\n superToken.initialize(\n underlyingToken,\n underlyingDecimals,\n name,\n symbol\n );\n\n emit SuperTokenCreated(superToken);\n }\n\n function createERC20Wrapper(\n ERC20WithTokenInfo underlyingToken,\n Upgradability upgradability,\n string calldata name,\n string calldata symbol\n )\n external override\n returns (ISuperToken superToken)\n {\n return createERC20Wrapper(\n underlyingToken,\n underlyingToken.decimals(),\n upgradability,\n name,\n symbol\n );\n }\n\n function initializeCustomSuperToken(\n address customSuperTokenProxy\n )\n external override\n {\n // odd solidity stuff..\n // NOTE payable necessary because UUPSProxy has a payable fallback function\n address payable a = payable(address(uint160(customSuperTokenProxy)));\n UUPSProxy(a).initializeProxy(address(_superTokenLogic));\n\n emit CustomSuperTokenCreated(ISuperToken(customSuperTokenProxy));\n }\n\n}\n\n// spliting this off because the contract is getting bigger\ncontract SuperTokenFactoryHelper {\n function create(ISuperfluid host)\n external\n returns (address logic)\n {\n return address(new SuperToken(host));\n }\n}\n\ncontract SuperTokenFactory is SuperTokenFactoryBase\n{\n SuperTokenFactoryHelper immutable private _helper;\n\n constructor(\n ISuperfluid host,\n SuperTokenFactoryHelper helper\n )\n SuperTokenFactoryBase(host)\n // solhint-disable-next-line no-empty-blocks\n {\n _helper = helper;\n }\n\n function createSuperTokenLogic(ISuperfluid host)\n external override\n returns (address logic)\n {\n return _helper.create(host);\n }\n}\n",
623
623
  "sourcePath": "/home/runner/work/protocol-monorepo/protocol-monorepo/packages/ethereum-contracts/contracts/superfluid/SuperTokenFactory.sol",
624
624
  "ast": {
625
625
  "absolutePath": "project:/contracts/superfluid/SuperTokenFactory.sol",
@@ -634,7 +634,7 @@
634
634
  18733
635
635
  ],
636
636
  "FullUpgradableSuperTokenProxy": [
637
- 28577
637
+ 28599
638
638
  ],
639
639
  "IERC20": [
640
640
  1520
@@ -649,34 +649,34 @@
649
649
  18324
650
650
  ],
651
651
  "SuperToken": [
652
- 30169
652
+ 30191
653
653
  ],
654
654
  "SuperTokenFactory": [
655
- 30544
655
+ 30566
656
656
  ],
657
657
  "SuperTokenFactoryBase": [
658
- 30487
658
+ 30509
659
659
  ],
660
660
  "SuperTokenFactoryHelper": [
661
- 30506
661
+ 30528
662
662
  ],
663
663
  "UUPSProxiable": [
664
- 34838
664
+ 34857
665
665
  ],
666
666
  "UUPSProxy": [
667
- 34895
667
+ 34914
668
668
  ]
669
669
  },
670
- "id": 30545,
670
+ "id": 30567,
671
671
  "license": "AGPLv3",
672
672
  "nodeType": "SourceUnit",
673
673
  "nodes": [
674
674
  {
675
- "id": 30171,
675
+ "id": 30193,
676
676
  "literals": [
677
677
  "solidity",
678
678
  "0.8",
679
- ".13"
679
+ ".14"
680
680
  ],
681
681
  "nodeType": "PragmaDirective",
682
682
  "src": "35:23:87"
@@ -684,16 +684,16 @@
684
684
  {
685
685
  "absolutePath": "project:/contracts/interfaces/superfluid/ISuperTokenFactory.sol",
686
686
  "file": "../interfaces/superfluid/ISuperTokenFactory.sol",
687
- "id": 30176,
687
+ "id": 30198,
688
688
  "nameLocation": "-1:-1:-1",
689
689
  "nodeType": "ImportDirective",
690
- "scope": 30545,
690
+ "scope": 30567,
691
691
  "sourceUnit": 17851,
692
692
  "src": "60:142:87",
693
693
  "symbolAliases": [
694
694
  {
695
695
  "foreign": {
696
- "id": 30172,
696
+ "id": 30194,
697
697
  "name": "ISuperTokenFactory",
698
698
  "nodeType": "Identifier",
699
699
  "overloadedDeclarations": [],
@@ -705,7 +705,7 @@
705
705
  },
706
706
  {
707
707
  "foreign": {
708
- "id": 30173,
708
+ "id": 30195,
709
709
  "name": "ISuperToken",
710
710
  "nodeType": "Identifier",
711
711
  "overloadedDeclarations": [],
@@ -717,7 +717,7 @@
717
717
  },
718
718
  {
719
719
  "foreign": {
720
- "id": 30174,
720
+ "id": 30196,
721
721
  "name": "IERC20",
722
722
  "nodeType": "Identifier",
723
723
  "overloadedDeclarations": [],
@@ -729,7 +729,7 @@
729
729
  },
730
730
  {
731
731
  "foreign": {
732
- "id": 30175,
732
+ "id": 30197,
733
733
  "name": "ERC20WithTokenInfo",
734
734
  "nodeType": "Identifier",
735
735
  "overloadedDeclarations": [],
@@ -745,16 +745,16 @@
745
745
  {
746
746
  "absolutePath": "project:/contracts/interfaces/superfluid/ISuperfluid.sol",
747
747
  "file": "../interfaces/superfluid/ISuperfluid.sol",
748
- "id": 30178,
748
+ "id": 30200,
749
749
  "nameLocation": "-1:-1:-1",
750
750
  "nodeType": "ImportDirective",
751
- "scope": 30545,
751
+ "scope": 30567,
752
752
  "sourceUnit": 18325,
753
753
  "src": "204:71:87",
754
754
  "symbolAliases": [
755
755
  {
756
756
  "foreign": {
757
- "id": 30177,
757
+ "id": 30199,
758
758
  "name": "ISuperfluid",
759
759
  "nodeType": "Identifier",
760
760
  "overloadedDeclarations": [],
@@ -770,20 +770,20 @@
770
770
  {
771
771
  "absolutePath": "project:/contracts/upgradability/UUPSProxy.sol",
772
772
  "file": "../upgradability/UUPSProxy.sol",
773
- "id": 30180,
773
+ "id": 30202,
774
774
  "nameLocation": "-1:-1:-1",
775
775
  "nodeType": "ImportDirective",
776
- "scope": 30545,
777
- "sourceUnit": 34896,
776
+ "scope": 30567,
777
+ "sourceUnit": 34915,
778
778
  "src": "277:59:87",
779
779
  "symbolAliases": [
780
780
  {
781
781
  "foreign": {
782
- "id": 30179,
782
+ "id": 30201,
783
783
  "name": "UUPSProxy",
784
784
  "nodeType": "Identifier",
785
785
  "overloadedDeclarations": [],
786
- "referencedDeclaration": 34895,
786
+ "referencedDeclaration": 34914,
787
787
  "src": "286:9:87",
788
788
  "typeDescriptions": {}
789
789
  },
@@ -795,20 +795,20 @@
795
795
  {
796
796
  "absolutePath": "project:/contracts/upgradability/UUPSProxiable.sol",
797
797
  "file": "../upgradability/UUPSProxiable.sol",
798
- "id": 30182,
798
+ "id": 30204,
799
799
  "nameLocation": "-1:-1:-1",
800
800
  "nodeType": "ImportDirective",
801
- "scope": 30545,
802
- "sourceUnit": 34839,
801
+ "scope": 30567,
802
+ "sourceUnit": 34858,
803
803
  "src": "337:67:87",
804
804
  "symbolAliases": [
805
805
  {
806
806
  "foreign": {
807
- "id": 30181,
807
+ "id": 30203,
808
808
  "name": "UUPSProxiable",
809
809
  "nodeType": "Identifier",
810
810
  "overloadedDeclarations": [],
811
- "referencedDeclaration": 34838,
811
+ "referencedDeclaration": 34857,
812
812
  "src": "346:13:87",
813
813
  "typeDescriptions": {}
814
814
  },
@@ -820,20 +820,20 @@
820
820
  {
821
821
  "absolutePath": "project:/contracts/superfluid/SuperToken.sol",
822
822
  "file": "../superfluid/SuperToken.sol",
823
- "id": 30184,
823
+ "id": 30206,
824
824
  "nameLocation": "-1:-1:-1",
825
825
  "nodeType": "ImportDirective",
826
- "scope": 30545,
827
- "sourceUnit": 30170,
826
+ "scope": 30567,
827
+ "sourceUnit": 30192,
828
828
  "src": "406:58:87",
829
829
  "symbolAliases": [
830
830
  {
831
831
  "foreign": {
832
- "id": 30183,
832
+ "id": 30205,
833
833
  "name": "SuperToken",
834
834
  "nodeType": "Identifier",
835
835
  "overloadedDeclarations": [],
836
- "referencedDeclaration": 30169,
836
+ "referencedDeclaration": 30191,
837
837
  "src": "415:10:87",
838
838
  "typeDescriptions": {}
839
839
  },
@@ -845,20 +845,20 @@
845
845
  {
846
846
  "absolutePath": "project:/contracts/superfluid/FullUpgradableSuperTokenProxy.sol",
847
847
  "file": "./FullUpgradableSuperTokenProxy.sol",
848
- "id": 30186,
848
+ "id": 30208,
849
849
  "nameLocation": "-1:-1:-1",
850
850
  "nodeType": "ImportDirective",
851
- "scope": 30545,
852
- "sourceUnit": 28578,
851
+ "scope": 30567,
852
+ "sourceUnit": 28600,
853
853
  "src": "466:84:87",
854
854
  "symbolAliases": [
855
855
  {
856
856
  "foreign": {
857
- "id": 30185,
857
+ "id": 30207,
858
858
  "name": "FullUpgradableSuperTokenProxy",
859
859
  "nodeType": "Identifier",
860
860
  "overloadedDeclarations": [],
861
- "referencedDeclaration": 28577,
861
+ "referencedDeclaration": 28599,
862
862
  "src": "475:29:87",
863
863
  "typeDescriptions": {}
864
864
  },
@@ -870,16 +870,16 @@
870
870
  {
871
871
  "absolutePath": "@openzeppelin/contracts/utils/Address.sol",
872
872
  "file": "@openzeppelin/contracts/utils/Address.sol",
873
- "id": 30188,
873
+ "id": 30210,
874
874
  "nameLocation": "-1:-1:-1",
875
875
  "nodeType": "ImportDirective",
876
- "scope": 30545,
876
+ "scope": 30567,
877
877
  "sourceUnit": 2481,
878
878
  "src": "552:68:87",
879
879
  "symbolAliases": [
880
880
  {
881
881
  "foreign": {
882
- "id": 30187,
882
+ "id": 30209,
883
883
  "name": "Address",
884
884
  "nodeType": "Identifier",
885
885
  "overloadedDeclarations": [],
@@ -895,16 +895,16 @@
895
895
  {
896
896
  "absolutePath": "@openzeppelin/contracts/utils/Create2.sol",
897
897
  "file": "@openzeppelin/contracts/utils/Create2.sol",
898
- "id": 30190,
898
+ "id": 30212,
899
899
  "nameLocation": "-1:-1:-1",
900
900
  "nodeType": "ImportDirective",
901
- "scope": 30545,
901
+ "scope": 30567,
902
902
  "sourceUnit": 2614,
903
903
  "src": "621:68:87",
904
904
  "symbolAliases": [
905
905
  {
906
906
  "foreign": {
907
- "id": 30189,
907
+ "id": 30211,
908
908
  "name": "Create2",
909
909
  "nodeType": "Identifier",
910
910
  "overloadedDeclarations": [],
@@ -922,41 +922,41 @@
922
922
  "baseContracts": [
923
923
  {
924
924
  "baseName": {
925
- "id": 30191,
925
+ "id": 30213,
926
926
  "name": "UUPSProxiable",
927
927
  "nodeType": "IdentifierPath",
928
- "referencedDeclaration": 34838,
928
+ "referencedDeclaration": 34857,
929
929
  "src": "739:13:87"
930
930
  },
931
- "id": 30192,
931
+ "id": 30214,
932
932
  "nodeType": "InheritanceSpecifier",
933
933
  "src": "739:13:87"
934
934
  },
935
935
  {
936
936
  "baseName": {
937
- "id": 30193,
937
+ "id": 30215,
938
938
  "name": "ISuperTokenFactory",
939
939
  "nodeType": "IdentifierPath",
940
940
  "referencedDeclaration": 17850,
941
941
  "src": "758:18:87"
942
942
  },
943
- "id": 30194,
943
+ "id": 30216,
944
944
  "nodeType": "InheritanceSpecifier",
945
945
  "src": "758:18:87"
946
946
  }
947
947
  ],
948
948
  "canonicalName": "SuperTokenFactoryBase",
949
949
  "contractDependencies": [
950
- 28577,
951
- 34895
950
+ 28599,
951
+ 34914
952
952
  ],
953
953
  "contractKind": "contract",
954
954
  "fullyImplemented": false,
955
- "id": 30487,
955
+ "id": 30509,
956
956
  "linearizedBaseContracts": [
957
- 30487,
957
+ 30509,
958
958
  17850,
959
- 34838,
959
+ 34857,
960
960
  762
961
961
  ],
962
962
  "name": "SuperTokenFactoryBase",
@@ -965,12 +965,12 @@
965
965
  "nodes": [
966
966
  {
967
967
  "constant": false,
968
- "id": 30197,
968
+ "id": 30219,
969
969
  "mutability": "immutable",
970
970
  "name": "_host",
971
971
  "nameLocation": "815:5:87",
972
972
  "nodeType": "VariableDeclaration",
973
- "scope": 30487,
973
+ "scope": 30509,
974
974
  "src": "784:36:87",
975
975
  "stateVariable": true,
976
976
  "storageLocation": "default",
@@ -979,10 +979,10 @@
979
979
  "typeString": "contract ISuperfluid"
980
980
  },
981
981
  "typeName": {
982
- "id": 30196,
982
+ "id": 30218,
983
983
  "nodeType": "UserDefinedTypeName",
984
984
  "pathNode": {
985
- "id": 30195,
985
+ "id": 30217,
986
986
  "name": "ISuperfluid",
987
987
  "nodeType": "IdentifierPath",
988
988
  "referencedDeclaration": 18324,
@@ -999,12 +999,12 @@
999
999
  },
1000
1000
  {
1001
1001
  "constant": false,
1002
- "id": 30200,
1002
+ "id": 30222,
1003
1003
  "mutability": "mutable",
1004
1004
  "name": "_superTokenLogic",
1005
1005
  "nameLocation": "848:16:87",
1006
1006
  "nodeType": "VariableDeclaration",
1007
- "scope": 30487,
1007
+ "scope": 30509,
1008
1008
  "src": "827:37:87",
1009
1009
  "stateVariable": true,
1010
1010
  "storageLocation": "default",
@@ -1013,10 +1013,10 @@
1013
1013
  "typeString": "contract ISuperToken"
1014
1014
  },
1015
1015
  "typeName": {
1016
- "id": 30199,
1016
+ "id": 30221,
1017
1017
  "nodeType": "UserDefinedTypeName",
1018
1018
  "pathNode": {
1019
- "id": 30198,
1019
+ "id": 30220,
1020
1020
  "name": "ISuperToken",
1021
1021
  "nodeType": "IdentifierPath",
1022
1022
  "referencedDeclaration": 17761,
@@ -1033,23 +1033,23 @@
1033
1033
  },
1034
1034
  {
1035
1035
  "body": {
1036
- "id": 30210,
1036
+ "id": 30232,
1037
1037
  "nodeType": "Block",
1038
1038
  "src": "915:29:87",
1039
1039
  "statements": [
1040
1040
  {
1041
1041
  "expression": {
1042
- "id": 30208,
1042
+ "id": 30230,
1043
1043
  "isConstant": false,
1044
1044
  "isLValue": false,
1045
1045
  "isPure": false,
1046
1046
  "lValueRequested": false,
1047
1047
  "leftHandSide": {
1048
- "id": 30206,
1048
+ "id": 30228,
1049
1049
  "name": "_host",
1050
1050
  "nodeType": "Identifier",
1051
1051
  "overloadedDeclarations": [],
1052
- "referencedDeclaration": 30197,
1052
+ "referencedDeclaration": 30219,
1053
1053
  "src": "925:5:87",
1054
1054
  "typeDescriptions": {
1055
1055
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
@@ -1059,11 +1059,11 @@
1059
1059
  "nodeType": "Assignment",
1060
1060
  "operator": "=",
1061
1061
  "rightHandSide": {
1062
- "id": 30207,
1062
+ "id": 30229,
1063
1063
  "name": "host",
1064
1064
  "nodeType": "Identifier",
1065
1065
  "overloadedDeclarations": [],
1066
- "referencedDeclaration": 30203,
1066
+ "referencedDeclaration": 30225,
1067
1067
  "src": "933:4:87",
1068
1068
  "typeDescriptions": {
1069
1069
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
@@ -1076,13 +1076,13 @@
1076
1076
  "typeString": "contract ISuperfluid"
1077
1077
  }
1078
1078
  },
1079
- "id": 30209,
1079
+ "id": 30231,
1080
1080
  "nodeType": "ExpressionStatement",
1081
1081
  "src": "925:12:87"
1082
1082
  }
1083
1083
  ]
1084
1084
  },
1085
- "id": 30211,
1085
+ "id": 30233,
1086
1086
  "implemented": true,
1087
1087
  "kind": "constructor",
1088
1088
  "modifiers": [],
@@ -1090,17 +1090,17 @@
1090
1090
  "nameLocation": "-1:-1:-1",
1091
1091
  "nodeType": "FunctionDefinition",
1092
1092
  "parameters": {
1093
- "id": 30204,
1093
+ "id": 30226,
1094
1094
  "nodeType": "ParameterList",
1095
1095
  "parameters": [
1096
1096
  {
1097
1097
  "constant": false,
1098
- "id": 30203,
1098
+ "id": 30225,
1099
1099
  "mutability": "mutable",
1100
1100
  "name": "host",
1101
1101
  "nameLocation": "904:4:87",
1102
1102
  "nodeType": "VariableDeclaration",
1103
- "scope": 30211,
1103
+ "scope": 30233,
1104
1104
  "src": "892:16:87",
1105
1105
  "stateVariable": false,
1106
1106
  "storageLocation": "default",
@@ -1109,10 +1109,10 @@
1109
1109
  "typeString": "contract ISuperfluid"
1110
1110
  },
1111
1111
  "typeName": {
1112
- "id": 30202,
1112
+ "id": 30224,
1113
1113
  "nodeType": "UserDefinedTypeName",
1114
1114
  "pathNode": {
1115
- "id": 30201,
1115
+ "id": 30223,
1116
1116
  "name": "ISuperfluid",
1117
1117
  "nodeType": "IdentifierPath",
1118
1118
  "referencedDeclaration": 18324,
@@ -1131,12 +1131,12 @@
1131
1131
  "src": "882:32:87"
1132
1132
  },
1133
1133
  "returnParameters": {
1134
- "id": 30205,
1134
+ "id": 30227,
1135
1135
  "nodeType": "ParameterList",
1136
1136
  "parameters": [],
1137
1137
  "src": "915:0:87"
1138
1138
  },
1139
- "scope": 30487,
1139
+ "scope": 30509,
1140
1140
  "src": "871:73:87",
1141
1141
  "stateMutability": "nonpayable",
1142
1142
  "virtual": false,
@@ -1147,7 +1147,7 @@
1147
1147
  17775
1148
1148
  ],
1149
1149
  "body": {
1150
- "id": 30224,
1150
+ "id": 30246,
1151
1151
  "nodeType": "Block",
1152
1152
  "src": "1114:37:87",
1153
1153
  "statements": [
@@ -1155,11 +1155,11 @@
1155
1155
  "expression": {
1156
1156
  "arguments": [
1157
1157
  {
1158
- "id": 30221,
1158
+ "id": 30243,
1159
1159
  "name": "_host",
1160
1160
  "nodeType": "Identifier",
1161
1161
  "overloadedDeclarations": [],
1162
- "referencedDeclaration": 30197,
1162
+ "referencedDeclaration": 30219,
1163
1163
  "src": "1138:5:87",
1164
1164
  "typeDescriptions": {
1165
1165
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
@@ -1174,7 +1174,7 @@
1174
1174
  "typeString": "contract ISuperfluid"
1175
1175
  }
1176
1176
  ],
1177
- "id": 30220,
1177
+ "id": 30242,
1178
1178
  "isConstant": false,
1179
1179
  "isLValue": false,
1180
1180
  "isPure": true,
@@ -1186,14 +1186,14 @@
1186
1186
  "typeString": "type(address)"
1187
1187
  },
1188
1188
  "typeName": {
1189
- "id": 30219,
1189
+ "id": 30241,
1190
1190
  "name": "address",
1191
1191
  "nodeType": "ElementaryTypeName",
1192
1192
  "src": "1130:7:87",
1193
1193
  "typeDescriptions": {}
1194
1194
  }
1195
1195
  },
1196
- "id": 30222,
1196
+ "id": 30244,
1197
1197
  "isConstant": false,
1198
1198
  "isLValue": false,
1199
1199
  "isPure": false,
@@ -1208,21 +1208,21 @@
1208
1208
  "typeString": "address"
1209
1209
  }
1210
1210
  },
1211
- "functionReturnParameters": 30218,
1212
- "id": 30223,
1211
+ "functionReturnParameters": 30240,
1212
+ "id": 30245,
1213
1213
  "nodeType": "Return",
1214
1214
  "src": "1123:21:87"
1215
1215
  }
1216
1216
  ]
1217
1217
  },
1218
1218
  "documentation": {
1219
- "id": 30212,
1219
+ "id": 30234,
1220
1220
  "nodeType": "StructuredDocumentation",
1221
1221
  "src": "950:50:87",
1222
1222
  "text": "@dev ISuperTokenFactory.getHost implementation"
1223
1223
  },
1224
1224
  "functionSelector": "20bc4425",
1225
- "id": 30225,
1225
+ "id": 30247,
1226
1226
  "implemented": true,
1227
1227
  "kind": "function",
1228
1228
  "modifiers": [],
@@ -1230,11 +1230,11 @@
1230
1230
  "nameLocation": "1014:7:87",
1231
1231
  "nodeType": "FunctionDefinition",
1232
1232
  "overrides": {
1233
- "id": 30215,
1233
+ "id": 30237,
1234
1234
  "nodeType": "OverrideSpecifier",
1235
1235
  "overrides": [
1236
1236
  {
1237
- "id": 30214,
1237
+ "id": 30236,
1238
1238
  "name": "ISuperTokenFactory",
1239
1239
  "nodeType": "IdentifierPath",
1240
1240
  "referencedDeclaration": 17850,
@@ -1244,23 +1244,23 @@
1244
1244
  "src": "1052:28:87"
1245
1245
  },
1246
1246
  "parameters": {
1247
- "id": 30213,
1247
+ "id": 30235,
1248
1248
  "nodeType": "ParameterList",
1249
1249
  "parameters": [],
1250
1250
  "src": "1021:2:87"
1251
1251
  },
1252
1252
  "returnParameters": {
1253
- "id": 30218,
1253
+ "id": 30240,
1254
1254
  "nodeType": "ParameterList",
1255
1255
  "parameters": [
1256
1256
  {
1257
1257
  "constant": false,
1258
- "id": 30217,
1258
+ "id": 30239,
1259
1259
  "mutability": "mutable",
1260
1260
  "name": "host",
1261
1261
  "nameLocation": "1104:4:87",
1262
1262
  "nodeType": "VariableDeclaration",
1263
- "scope": 30225,
1263
+ "scope": 30247,
1264
1264
  "src": "1096:12:87",
1265
1265
  "stateVariable": false,
1266
1266
  "storageLocation": "default",
@@ -1269,7 +1269,7 @@
1269
1269
  "typeString": "address"
1270
1270
  },
1271
1271
  "typeName": {
1272
- "id": 30216,
1272
+ "id": 30238,
1273
1273
  "name": "address",
1274
1274
  "nodeType": "ElementaryTypeName",
1275
1275
  "src": "1096:7:87",
@@ -1284,7 +1284,7 @@
1284
1284
  ],
1285
1285
  "src": "1095:14:87"
1286
1286
  },
1287
- "scope": 30487,
1287
+ "scope": 30509,
1288
1288
  "src": "1005:146:87",
1289
1289
  "stateMutability": "view",
1290
1290
  "virtual": false,
@@ -1295,7 +1295,7 @@
1295
1295
  17779
1296
1296
  ],
1297
1297
  "body": {
1298
- "id": 30234,
1298
+ "id": 30256,
1299
1299
  "nodeType": "Block",
1300
1300
  "src": "1439:41:87",
1301
1301
  "statements": [
@@ -1304,18 +1304,18 @@
1304
1304
  "arguments": [],
1305
1305
  "expression": {
1306
1306
  "argumentTypes": [],
1307
- "id": 30231,
1307
+ "id": 30253,
1308
1308
  "name": "_updateSuperTokenLogic",
1309
1309
  "nodeType": "Identifier",
1310
1310
  "overloadedDeclarations": [],
1311
- "referencedDeclaration": 30288,
1311
+ "referencedDeclaration": 30310,
1312
1312
  "src": "1449:22:87",
1313
1313
  "typeDescriptions": {
1314
1314
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
1315
1315
  "typeString": "function ()"
1316
1316
  }
1317
1317
  },
1318
- "id": 30232,
1318
+ "id": 30254,
1319
1319
  "isConstant": false,
1320
1320
  "isLValue": false,
1321
1321
  "isPure": false,
@@ -1330,22 +1330,22 @@
1330
1330
  "typeString": "tuple()"
1331
1331
  }
1332
1332
  },
1333
- "id": 30233,
1333
+ "id": 30255,
1334
1334
  "nodeType": "ExpressionStatement",
1335
1335
  "src": "1449:24:87"
1336
1336
  }
1337
1337
  ]
1338
1338
  },
1339
1339
  "functionSelector": "8129fc1c",
1340
- "id": 30235,
1340
+ "id": 30257,
1341
1341
  "implemented": true,
1342
1342
  "kind": "function",
1343
1343
  "modifiers": [
1344
1344
  {
1345
- "id": 30229,
1345
+ "id": 30251,
1346
1346
  "kind": "modifierInvocation",
1347
1347
  "modifierName": {
1348
- "id": 30228,
1348
+ "id": 30250,
1349
1349
  "name": "initializer",
1350
1350
  "nodeType": "IdentifierPath",
1351
1351
  "referencedDeclaration": 736,
@@ -1359,24 +1359,24 @@
1359
1359
  "nameLocation": "1346:10:87",
1360
1360
  "nodeType": "FunctionDefinition",
1361
1361
  "overrides": {
1362
- "id": 30227,
1362
+ "id": 30249,
1363
1363
  "nodeType": "OverrideSpecifier",
1364
1364
  "overrides": [],
1365
1365
  "src": "1376:8:87"
1366
1366
  },
1367
1367
  "parameters": {
1368
- "id": 30226,
1368
+ "id": 30248,
1369
1369
  "nodeType": "ParameterList",
1370
1370
  "parameters": [],
1371
1371
  "src": "1356:2:87"
1372
1372
  },
1373
1373
  "returnParameters": {
1374
- "id": 30230,
1374
+ "id": 30252,
1375
1375
  "nodeType": "ParameterList",
1376
1376
  "parameters": [],
1377
1377
  "src": "1439:0:87"
1378
1378
  },
1379
- "scope": 30487,
1379
+ "scope": 30509,
1380
1380
  "src": "1337:143:87",
1381
1381
  "stateMutability": "nonpayable",
1382
1382
  "virtual": false,
@@ -1384,10 +1384,10 @@
1384
1384
  },
1385
1385
  {
1386
1386
  "baseFunctions": [
1387
- 34778
1387
+ 34797
1388
1388
  ],
1389
1389
  "body": {
1390
- "id": 30245,
1390
+ "id": 30267,
1391
1391
  "nodeType": "Block",
1392
1392
  "src": "1550:102:87",
1393
1393
  "statements": [
@@ -1396,7 +1396,7 @@
1396
1396
  "arguments": [
1397
1397
  {
1398
1398
  "hexValue": "6f72672e7375706572666c7569642d66696e616e63652e636f6e7472616374732e5375706572546f6b656e466163746f72792e696d706c656d656e746174696f6e",
1399
- "id": 30242,
1399
+ "id": 30264,
1400
1400
  "isConstant": false,
1401
1401
  "isLValue": false,
1402
1402
  "isPure": true,
@@ -1418,7 +1418,7 @@
1418
1418
  "typeString": "literal_string \"org.superfluid-finance.contracts.SuperTokenFactory.implementation\""
1419
1419
  }
1420
1420
  ],
1421
- "id": 30241,
1421
+ "id": 30263,
1422
1422
  "name": "keccak256",
1423
1423
  "nodeType": "Identifier",
1424
1424
  "overloadedDeclarations": [],
@@ -1429,7 +1429,7 @@
1429
1429
  "typeString": "function (bytes memory) pure returns (bytes32)"
1430
1430
  }
1431
1431
  },
1432
- "id": 30243,
1432
+ "id": 30265,
1433
1433
  "isConstant": false,
1434
1434
  "isLValue": false,
1435
1435
  "isPure": true,
@@ -1444,15 +1444,15 @@
1444
1444
  "typeString": "bytes32"
1445
1445
  }
1446
1446
  },
1447
- "functionReturnParameters": 30240,
1448
- "id": 30244,
1447
+ "functionReturnParameters": 30262,
1448
+ "id": 30266,
1449
1449
  "nodeType": "Return",
1450
1450
  "src": "1560:85:87"
1451
1451
  }
1452
1452
  ]
1453
1453
  },
1454
1454
  "functionSelector": "52d1902d",
1455
- "id": 30246,
1455
+ "id": 30268,
1456
1456
  "implemented": true,
1457
1457
  "kind": "function",
1458
1458
  "modifiers": [],
@@ -1460,29 +1460,29 @@
1460
1460
  "nameLocation": "1495:13:87",
1461
1461
  "nodeType": "FunctionDefinition",
1462
1462
  "overrides": {
1463
- "id": 30237,
1463
+ "id": 30259,
1464
1464
  "nodeType": "OverrideSpecifier",
1465
1465
  "overrides": [],
1466
1466
  "src": "1523:8:87"
1467
1467
  },
1468
1468
  "parameters": {
1469
- "id": 30236,
1469
+ "id": 30258,
1470
1470
  "nodeType": "ParameterList",
1471
1471
  "parameters": [],
1472
1472
  "src": "1508:2:87"
1473
1473
  },
1474
1474
  "returnParameters": {
1475
- "id": 30240,
1475
+ "id": 30262,
1476
1476
  "nodeType": "ParameterList",
1477
1477
  "parameters": [
1478
1478
  {
1479
1479
  "constant": false,
1480
- "id": 30239,
1480
+ "id": 30261,
1481
1481
  "mutability": "mutable",
1482
1482
  "name": "",
1483
1483
  "nameLocation": "-1:-1:-1",
1484
1484
  "nodeType": "VariableDeclaration",
1485
- "scope": 30246,
1485
+ "scope": 30268,
1486
1486
  "src": "1541:7:87",
1487
1487
  "stateVariable": false,
1488
1488
  "storageLocation": "default",
@@ -1491,7 +1491,7 @@
1491
1491
  "typeString": "bytes32"
1492
1492
  },
1493
1493
  "typeName": {
1494
- "id": 30238,
1494
+ "id": 30260,
1495
1495
  "name": "bytes32",
1496
1496
  "nodeType": "ElementaryTypeName",
1497
1497
  "src": "1541:7:87",
@@ -1505,7 +1505,7 @@
1505
1505
  ],
1506
1506
  "src": "1540:9:87"
1507
1507
  },
1508
- "scope": 30487,
1508
+ "scope": 30509,
1509
1509
  "src": "1486:166:87",
1510
1510
  "stateMutability": "pure",
1511
1511
  "virtual": false,
@@ -1513,10 +1513,10 @@
1513
1513
  },
1514
1514
  {
1515
1515
  "baseFunctions": [
1516
- 34772
1516
+ 34791
1517
1517
  ],
1518
1518
  "body": {
1519
- "id": 30270,
1519
+ "id": 30292,
1520
1520
  "nodeType": "Block",
1521
1521
  "src": "1716:176:87",
1522
1522
  "statements": [
@@ -1528,14 +1528,14 @@
1528
1528
  "typeIdentifier": "t_address",
1529
1529
  "typeString": "address"
1530
1530
  },
1531
- "id": 30259,
1531
+ "id": 30281,
1532
1532
  "isConstant": false,
1533
1533
  "isLValue": false,
1534
1534
  "isPure": false,
1535
1535
  "lValueRequested": false,
1536
1536
  "leftExpression": {
1537
1537
  "expression": {
1538
- "id": 30253,
1538
+ "id": 30275,
1539
1539
  "name": "msg",
1540
1540
  "nodeType": "Identifier",
1541
1541
  "overloadedDeclarations": [],
@@ -1546,7 +1546,7 @@
1546
1546
  "typeString": "msg"
1547
1547
  }
1548
1548
  },
1549
- "id": 30254,
1549
+ "id": 30276,
1550
1550
  "isConstant": false,
1551
1551
  "isLValue": false,
1552
1552
  "isPure": false,
@@ -1564,11 +1564,11 @@
1564
1564
  "rightExpression": {
1565
1565
  "arguments": [
1566
1566
  {
1567
- "id": 30257,
1567
+ "id": 30279,
1568
1568
  "name": "_host",
1569
1569
  "nodeType": "Identifier",
1570
1570
  "overloadedDeclarations": [],
1571
- "referencedDeclaration": 30197,
1571
+ "referencedDeclaration": 30219,
1572
1572
  "src": "1756:5:87",
1573
1573
  "typeDescriptions": {
1574
1574
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
@@ -1583,7 +1583,7 @@
1583
1583
  "typeString": "contract ISuperfluid"
1584
1584
  }
1585
1585
  ],
1586
- "id": 30256,
1586
+ "id": 30278,
1587
1587
  "isConstant": false,
1588
1588
  "isLValue": false,
1589
1589
  "isPure": true,
@@ -1595,14 +1595,14 @@
1595
1595
  "typeString": "type(address)"
1596
1596
  },
1597
1597
  "typeName": {
1598
- "id": 30255,
1598
+ "id": 30277,
1599
1599
  "name": "address",
1600
1600
  "nodeType": "ElementaryTypeName",
1601
1601
  "src": "1748:7:87",
1602
1602
  "typeDescriptions": {}
1603
1603
  }
1604
1604
  },
1605
- "id": 30258,
1605
+ "id": 30280,
1606
1606
  "isConstant": false,
1607
1607
  "isLValue": false,
1608
1608
  "isPure": false,
@@ -1625,7 +1625,7 @@
1625
1625
  },
1626
1626
  {
1627
1627
  "hexValue": "5375706572546f6b656e466163746f72793a206f6e6c7920686f73742063616e2075706461746520636f6465",
1628
- "id": 30260,
1628
+ "id": 30282,
1629
1629
  "isConstant": false,
1630
1630
  "isLValue": false,
1631
1631
  "isPure": true,
@@ -1651,7 +1651,7 @@
1651
1651
  "typeString": "literal_string \"SuperTokenFactory: only host can update code\""
1652
1652
  }
1653
1653
  ],
1654
- "id": 30252,
1654
+ "id": 30274,
1655
1655
  "name": "require",
1656
1656
  "nodeType": "Identifier",
1657
1657
  "overloadedDeclarations": [
@@ -1665,7 +1665,7 @@
1665
1665
  "typeString": "function (bool,string memory) pure"
1666
1666
  }
1667
1667
  },
1668
- "id": 30261,
1668
+ "id": 30283,
1669
1669
  "isConstant": false,
1670
1670
  "isLValue": false,
1671
1671
  "isPure": false,
@@ -1680,7 +1680,7 @@
1680
1680
  "typeString": "tuple()"
1681
1681
  }
1682
1682
  },
1683
- "id": 30262,
1683
+ "id": 30284,
1684
1684
  "nodeType": "ExpressionStatement",
1685
1685
  "src": "1726:85:87"
1686
1686
  },
@@ -1688,11 +1688,11 @@
1688
1688
  "expression": {
1689
1689
  "arguments": [
1690
1690
  {
1691
- "id": 30264,
1691
+ "id": 30286,
1692
1692
  "name": "newAddress",
1693
1693
  "nodeType": "Identifier",
1694
1694
  "overloadedDeclarations": [],
1695
- "referencedDeclaration": 30248,
1695
+ "referencedDeclaration": 30270,
1696
1696
  "src": "1840:10:87",
1697
1697
  "typeDescriptions": {
1698
1698
  "typeIdentifier": "t_address",
@@ -1707,18 +1707,18 @@
1707
1707
  "typeString": "address"
1708
1708
  }
1709
1709
  ],
1710
- "id": 30263,
1710
+ "id": 30285,
1711
1711
  "name": "_updateCodeAddress",
1712
1712
  "nodeType": "Identifier",
1713
1713
  "overloadedDeclarations": [],
1714
- "referencedDeclaration": 34831,
1714
+ "referencedDeclaration": 34850,
1715
1715
  "src": "1821:18:87",
1716
1716
  "typeDescriptions": {
1717
1717
  "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
1718
1718
  "typeString": "function (address)"
1719
1719
  }
1720
1720
  },
1721
- "id": 30265,
1721
+ "id": 30287,
1722
1722
  "isConstant": false,
1723
1723
  "isLValue": false,
1724
1724
  "isPure": false,
@@ -1733,7 +1733,7 @@
1733
1733
  "typeString": "tuple()"
1734
1734
  }
1735
1735
  },
1736
- "id": 30266,
1736
+ "id": 30288,
1737
1737
  "nodeType": "ExpressionStatement",
1738
1738
  "src": "1821:30:87"
1739
1739
  },
@@ -1742,18 +1742,18 @@
1742
1742
  "arguments": [],
1743
1743
  "expression": {
1744
1744
  "argumentTypes": [],
1745
- "id": 30267,
1745
+ "id": 30289,
1746
1746
  "name": "_updateSuperTokenLogic",
1747
1747
  "nodeType": "Identifier",
1748
1748
  "overloadedDeclarations": [],
1749
- "referencedDeclaration": 30288,
1749
+ "referencedDeclaration": 30310,
1750
1750
  "src": "1861:22:87",
1751
1751
  "typeDescriptions": {
1752
1752
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
1753
1753
  "typeString": "function ()"
1754
1754
  }
1755
1755
  },
1756
- "id": 30268,
1756
+ "id": 30290,
1757
1757
  "isConstant": false,
1758
1758
  "isLValue": false,
1759
1759
  "isPure": false,
@@ -1768,14 +1768,14 @@
1768
1768
  "typeString": "tuple()"
1769
1769
  }
1770
1770
  },
1771
- "id": 30269,
1771
+ "id": 30291,
1772
1772
  "nodeType": "ExpressionStatement",
1773
1773
  "src": "1861:24:87"
1774
1774
  }
1775
1775
  ]
1776
1776
  },
1777
1777
  "functionSelector": "46951954",
1778
- "id": 30271,
1778
+ "id": 30293,
1779
1779
  "implemented": true,
1780
1780
  "kind": "function",
1781
1781
  "modifiers": [],
@@ -1783,23 +1783,23 @@
1783
1783
  "nameLocation": "1667:10:87",
1784
1784
  "nodeType": "FunctionDefinition",
1785
1785
  "overrides": {
1786
- "id": 30250,
1786
+ "id": 30272,
1787
1787
  "nodeType": "OverrideSpecifier",
1788
1788
  "overrides": [],
1789
1789
  "src": "1707:8:87"
1790
1790
  },
1791
1791
  "parameters": {
1792
- "id": 30249,
1792
+ "id": 30271,
1793
1793
  "nodeType": "ParameterList",
1794
1794
  "parameters": [
1795
1795
  {
1796
1796
  "constant": false,
1797
- "id": 30248,
1797
+ "id": 30270,
1798
1798
  "mutability": "mutable",
1799
1799
  "name": "newAddress",
1800
1800
  "nameLocation": "1686:10:87",
1801
1801
  "nodeType": "VariableDeclaration",
1802
- "scope": 30271,
1802
+ "scope": 30293,
1803
1803
  "src": "1678:18:87",
1804
1804
  "stateVariable": false,
1805
1805
  "storageLocation": "default",
@@ -1808,7 +1808,7 @@
1808
1808
  "typeString": "address"
1809
1809
  },
1810
1810
  "typeName": {
1811
- "id": 30247,
1811
+ "id": 30269,
1812
1812
  "name": "address",
1813
1813
  "nodeType": "ElementaryTypeName",
1814
1814
  "src": "1678:7:87",
@@ -1824,12 +1824,12 @@
1824
1824
  "src": "1677:20:87"
1825
1825
  },
1826
1826
  "returnParameters": {
1827
- "id": 30251,
1827
+ "id": 30273,
1828
1828
  "nodeType": "ParameterList",
1829
1829
  "parameters": [],
1830
1830
  "src": "1716:0:87"
1831
1831
  },
1832
- "scope": 30487,
1832
+ "scope": 30509,
1833
1833
  "src": "1658:234:87",
1834
1834
  "stateMutability": "nonpayable",
1835
1835
  "virtual": false,
@@ -1837,23 +1837,23 @@
1837
1837
  },
1838
1838
  {
1839
1839
  "body": {
1840
- "id": 30287,
1840
+ "id": 30309,
1841
1841
  "nodeType": "Block",
1842
1842
  "src": "1940:230:87",
1843
1843
  "statements": [
1844
1844
  {
1845
1845
  "expression": {
1846
- "id": 30281,
1846
+ "id": 30303,
1847
1847
  "isConstant": false,
1848
1848
  "isLValue": false,
1849
1849
  "isPure": false,
1850
1850
  "lValueRequested": false,
1851
1851
  "leftHandSide": {
1852
- "id": 30274,
1852
+ "id": 30296,
1853
1853
  "name": "_superTokenLogic",
1854
1854
  "nodeType": "Identifier",
1855
1855
  "overloadedDeclarations": [],
1856
- "referencedDeclaration": 30200,
1856
+ "referencedDeclaration": 30222,
1857
1857
  "src": "2044:16:87",
1858
1858
  "typeDescriptions": {
1859
1859
  "typeIdentifier": "t_contract$_ISuperToken_$17761",
@@ -1867,11 +1867,11 @@
1867
1867
  {
1868
1868
  "arguments": [
1869
1869
  {
1870
- "id": 30278,
1870
+ "id": 30300,
1871
1871
  "name": "_host",
1872
1872
  "nodeType": "Identifier",
1873
1873
  "overloadedDeclarations": [],
1874
- "referencedDeclaration": 30197,
1874
+ "referencedDeclaration": 30219,
1875
1875
  "src": "2101:5:87",
1876
1876
  "typeDescriptions": {
1877
1877
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
@@ -1887,32 +1887,32 @@
1887
1887
  }
1888
1888
  ],
1889
1889
  "expression": {
1890
- "id": 30276,
1890
+ "id": 30298,
1891
1891
  "name": "this",
1892
1892
  "nodeType": "Identifier",
1893
1893
  "overloadedDeclarations": [],
1894
1894
  "referencedDeclaration": 4294967268,
1895
1895
  "src": "2074:4:87",
1896
1896
  "typeDescriptions": {
1897
- "typeIdentifier": "t_contract$_SuperTokenFactoryBase_$30487",
1897
+ "typeIdentifier": "t_contract$_SuperTokenFactoryBase_$30509",
1898
1898
  "typeString": "contract SuperTokenFactoryBase"
1899
1899
  }
1900
1900
  },
1901
- "id": 30277,
1901
+ "id": 30299,
1902
1902
  "isConstant": false,
1903
1903
  "isLValue": false,
1904
1904
  "isPure": false,
1905
1905
  "lValueRequested": false,
1906
1906
  "memberName": "createSuperTokenLogic",
1907
1907
  "nodeType": "MemberAccess",
1908
- "referencedDeclaration": 30306,
1908
+ "referencedDeclaration": 30328,
1909
1909
  "src": "2074:26:87",
1910
1910
  "typeDescriptions": {
1911
1911
  "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISuperfluid_$18324_$returns$_t_address_$",
1912
1912
  "typeString": "function (contract ISuperfluid) external returns (address)"
1913
1913
  }
1914
1914
  },
1915
- "id": 30279,
1915
+ "id": 30301,
1916
1916
  "isConstant": false,
1917
1917
  "isLValue": false,
1918
1918
  "isPure": false,
@@ -1935,18 +1935,18 @@
1935
1935
  "typeString": "address"
1936
1936
  }
1937
1937
  ],
1938
- "id": 30275,
1938
+ "id": 30297,
1939
1939
  "name": "SuperToken",
1940
1940
  "nodeType": "Identifier",
1941
1941
  "overloadedDeclarations": [],
1942
- "referencedDeclaration": 30169,
1942
+ "referencedDeclaration": 30191,
1943
1943
  "src": "2063:10:87",
1944
1944
  "typeDescriptions": {
1945
- "typeIdentifier": "t_type$_t_contract$_SuperToken_$30169_$",
1945
+ "typeIdentifier": "t_type$_t_contract$_SuperToken_$30191_$",
1946
1946
  "typeString": "type(contract SuperToken)"
1947
1947
  }
1948
1948
  },
1949
- "id": 30280,
1949
+ "id": 30302,
1950
1950
  "isConstant": false,
1951
1951
  "isLValue": false,
1952
1952
  "isPure": false,
@@ -1957,7 +1957,7 @@
1957
1957
  "src": "2063:45:87",
1958
1958
  "tryCall": false,
1959
1959
  "typeDescriptions": {
1960
- "typeIdentifier": "t_contract$_SuperToken_$30169",
1960
+ "typeIdentifier": "t_contract$_SuperToken_$30191",
1961
1961
  "typeString": "contract SuperToken"
1962
1962
  }
1963
1963
  },
@@ -1967,7 +1967,7 @@
1967
1967
  "typeString": "contract ISuperToken"
1968
1968
  }
1969
1969
  },
1970
- "id": 30282,
1970
+ "id": 30304,
1971
1971
  "nodeType": "ExpressionStatement",
1972
1972
  "src": "2044:64:87"
1973
1973
  },
@@ -1975,11 +1975,11 @@
1975
1975
  "eventCall": {
1976
1976
  "arguments": [
1977
1977
  {
1978
- "id": 30284,
1978
+ "id": 30306,
1979
1979
  "name": "_superTokenLogic",
1980
1980
  "nodeType": "Identifier",
1981
1981
  "overloadedDeclarations": [],
1982
- "referencedDeclaration": 30200,
1982
+ "referencedDeclaration": 30222,
1983
1983
  "src": "2146:16:87",
1984
1984
  "typeDescriptions": {
1985
1985
  "typeIdentifier": "t_contract$_ISuperToken_$17761",
@@ -1994,7 +1994,7 @@
1994
1994
  "typeString": "contract ISuperToken"
1995
1995
  }
1996
1996
  ],
1997
- "id": 30283,
1997
+ "id": 30305,
1998
1998
  "name": "SuperTokenLogicCreated",
1999
1999
  "nodeType": "Identifier",
2000
2000
  "overloadedDeclarations": [],
@@ -2005,7 +2005,7 @@
2005
2005
  "typeString": "function (contract ISuperToken)"
2006
2006
  }
2007
2007
  },
2008
- "id": 30285,
2008
+ "id": 30307,
2009
2009
  "isConstant": false,
2010
2010
  "isLValue": false,
2011
2011
  "isPure": false,
@@ -2020,13 +2020,13 @@
2020
2020
  "typeString": "tuple()"
2021
2021
  }
2022
2022
  },
2023
- "id": 30286,
2023
+ "id": 30308,
2024
2024
  "nodeType": "EmitStatement",
2025
2025
  "src": "2118:45:87"
2026
2026
  }
2027
2027
  ]
2028
2028
  },
2029
- "id": 30288,
2029
+ "id": 30310,
2030
2030
  "implemented": true,
2031
2031
  "kind": "function",
2032
2032
  "modifiers": [],
@@ -2034,18 +2034,18 @@
2034
2034
  "nameLocation": "1907:22:87",
2035
2035
  "nodeType": "FunctionDefinition",
2036
2036
  "parameters": {
2037
- "id": 30272,
2037
+ "id": 30294,
2038
2038
  "nodeType": "ParameterList",
2039
2039
  "parameters": [],
2040
2040
  "src": "1929:2:87"
2041
2041
  },
2042
2042
  "returnParameters": {
2043
- "id": 30273,
2043
+ "id": 30295,
2044
2044
  "nodeType": "ParameterList",
2045
2045
  "parameters": [],
2046
2046
  "src": "1940:0:87"
2047
2047
  },
2048
- "scope": 30487,
2048
+ "scope": 30509,
2049
2049
  "src": "1898:272:87",
2050
2050
  "stateMutability": "nonpayable",
2051
2051
  "virtual": false,
@@ -2056,32 +2056,32 @@
2056
2056
  17786
2057
2057
  ],
2058
2058
  "body": {
2059
- "id": 30297,
2059
+ "id": 30319,
2060
2060
  "nodeType": "Block",
2061
2061
  "src": "2456:40:87",
2062
2062
  "statements": [
2063
2063
  {
2064
2064
  "expression": {
2065
- "id": 30295,
2065
+ "id": 30317,
2066
2066
  "name": "_superTokenLogic",
2067
2067
  "nodeType": "Identifier",
2068
2068
  "overloadedDeclarations": [],
2069
- "referencedDeclaration": 30200,
2069
+ "referencedDeclaration": 30222,
2070
2070
  "src": "2473:16:87",
2071
2071
  "typeDescriptions": {
2072
2072
  "typeIdentifier": "t_contract$_ISuperToken_$17761",
2073
2073
  "typeString": "contract ISuperToken"
2074
2074
  }
2075
2075
  },
2076
- "functionReturnParameters": 30294,
2077
- "id": 30296,
2076
+ "functionReturnParameters": 30316,
2077
+ "id": 30318,
2078
2078
  "nodeType": "Return",
2079
2079
  "src": "2466:23:87"
2080
2080
  }
2081
2081
  ]
2082
2082
  },
2083
2083
  "functionSelector": "9470a5b2",
2084
- "id": 30298,
2084
+ "id": 30320,
2085
2085
  "implemented": true,
2086
2086
  "kind": "function",
2087
2087
  "modifiers": [],
@@ -2089,29 +2089,29 @@
2089
2089
  "nameLocation": "2370:18:87",
2090
2090
  "nodeType": "FunctionDefinition",
2091
2091
  "overrides": {
2092
- "id": 30290,
2092
+ "id": 30312,
2093
2093
  "nodeType": "OverrideSpecifier",
2094
2094
  "overrides": [],
2095
2095
  "src": "2413:8:87"
2096
2096
  },
2097
2097
  "parameters": {
2098
- "id": 30289,
2098
+ "id": 30311,
2099
2099
  "nodeType": "ParameterList",
2100
2100
  "parameters": [],
2101
2101
  "src": "2388:2:87"
2102
2102
  },
2103
2103
  "returnParameters": {
2104
- "id": 30294,
2104
+ "id": 30316,
2105
2105
  "nodeType": "ParameterList",
2106
2106
  "parameters": [
2107
2107
  {
2108
2108
  "constant": false,
2109
- "id": 30293,
2109
+ "id": 30315,
2110
2110
  "mutability": "mutable",
2111
2111
  "name": "",
2112
2112
  "nameLocation": "-1:-1:-1",
2113
2113
  "nodeType": "VariableDeclaration",
2114
- "scope": 30298,
2114
+ "scope": 30320,
2115
2115
  "src": "2439:11:87",
2116
2116
  "stateVariable": false,
2117
2117
  "storageLocation": "default",
@@ -2120,10 +2120,10 @@
2120
2120
  "typeString": "contract ISuperToken"
2121
2121
  },
2122
2122
  "typeName": {
2123
- "id": 30292,
2123
+ "id": 30314,
2124
2124
  "nodeType": "UserDefinedTypeName",
2125
2125
  "pathNode": {
2126
- "id": 30291,
2126
+ "id": 30313,
2127
2127
  "name": "ISuperToken",
2128
2128
  "nodeType": "IdentifierPath",
2129
2129
  "referencedDeclaration": 17761,
@@ -2141,7 +2141,7 @@
2141
2141
  ],
2142
2142
  "src": "2438:13:87"
2143
2143
  },
2144
- "scope": 30487,
2144
+ "scope": 30509,
2145
2145
  "src": "2361:135:87",
2146
2146
  "stateMutability": "view",
2147
2147
  "virtual": false,
@@ -2149,7 +2149,7 @@
2149
2149
  },
2150
2150
  {
2151
2151
  "functionSelector": "4dcc4d79",
2152
- "id": 30306,
2152
+ "id": 30328,
2153
2153
  "implemented": false,
2154
2154
  "kind": "function",
2155
2155
  "modifiers": [],
@@ -2157,17 +2157,17 @@
2157
2157
  "nameLocation": "2511:21:87",
2158
2158
  "nodeType": "FunctionDefinition",
2159
2159
  "parameters": {
2160
- "id": 30302,
2160
+ "id": 30324,
2161
2161
  "nodeType": "ParameterList",
2162
2162
  "parameters": [
2163
2163
  {
2164
2164
  "constant": false,
2165
- "id": 30301,
2165
+ "id": 30323,
2166
2166
  "mutability": "mutable",
2167
2167
  "name": "host",
2168
2168
  "nameLocation": "2545:4:87",
2169
2169
  "nodeType": "VariableDeclaration",
2170
- "scope": 30306,
2170
+ "scope": 30328,
2171
2171
  "src": "2533:16:87",
2172
2172
  "stateVariable": false,
2173
2173
  "storageLocation": "default",
@@ -2176,10 +2176,10 @@
2176
2176
  "typeString": "contract ISuperfluid"
2177
2177
  },
2178
2178
  "typeName": {
2179
- "id": 30300,
2179
+ "id": 30322,
2180
2180
  "nodeType": "UserDefinedTypeName",
2181
2181
  "pathNode": {
2182
- "id": 30299,
2182
+ "id": 30321,
2183
2183
  "name": "ISuperfluid",
2184
2184
  "nodeType": "IdentifierPath",
2185
2185
  "referencedDeclaration": 18324,
@@ -2198,17 +2198,17 @@
2198
2198
  "src": "2532:18:87"
2199
2199
  },
2200
2200
  "returnParameters": {
2201
- "id": 30305,
2201
+ "id": 30327,
2202
2202
  "nodeType": "ParameterList",
2203
2203
  "parameters": [
2204
2204
  {
2205
2205
  "constant": false,
2206
- "id": 30304,
2206
+ "id": 30326,
2207
2207
  "mutability": "mutable",
2208
2208
  "name": "logic",
2209
2209
  "nameLocation": "2585:5:87",
2210
2210
  "nodeType": "VariableDeclaration",
2211
- "scope": 30306,
2211
+ "scope": 30328,
2212
2212
  "src": "2577:13:87",
2213
2213
  "stateVariable": false,
2214
2214
  "storageLocation": "default",
@@ -2217,7 +2217,7 @@
2217
2217
  "typeString": "address"
2218
2218
  },
2219
2219
  "typeName": {
2220
- "id": 30303,
2220
+ "id": 30325,
2221
2221
  "name": "address",
2222
2222
  "nodeType": "ElementaryTypeName",
2223
2223
  "src": "2577:7:87",
@@ -2232,7 +2232,7 @@
2232
2232
  ],
2233
2233
  "src": "2576:15:87"
2234
2234
  },
2235
- "scope": 30487,
2235
+ "scope": 30509,
2236
2236
  "src": "2502:90:87",
2237
2237
  "stateMutability": "nonpayable",
2238
2238
  "virtual": true,
@@ -2243,7 +2243,7 @@
2243
2243
  17809
2244
2244
  ],
2245
2245
  "body": {
2246
- "id": 30421,
2246
+ "id": 30443,
2247
2247
  "nodeType": "Block",
2248
2248
  "src": "2866:970:87",
2249
2249
  "statements": [
@@ -2255,7 +2255,7 @@
2255
2255
  "typeIdentifier": "t_address",
2256
2256
  "typeString": "address"
2257
2257
  },
2258
- "id": 30334,
2258
+ "id": 30356,
2259
2259
  "isConstant": false,
2260
2260
  "isLValue": false,
2261
2261
  "isPure": false,
@@ -2263,11 +2263,11 @@
2263
2263
  "leftExpression": {
2264
2264
  "arguments": [
2265
2265
  {
2266
- "id": 30328,
2266
+ "id": 30350,
2267
2267
  "name": "underlyingToken",
2268
2268
  "nodeType": "Identifier",
2269
2269
  "overloadedDeclarations": [],
2270
- "referencedDeclaration": 30309,
2270
+ "referencedDeclaration": 30331,
2271
2271
  "src": "2892:15:87",
2272
2272
  "typeDescriptions": {
2273
2273
  "typeIdentifier": "t_contract$_IERC20_$1520",
@@ -2282,7 +2282,7 @@
2282
2282
  "typeString": "contract IERC20"
2283
2283
  }
2284
2284
  ],
2285
- "id": 30327,
2285
+ "id": 30349,
2286
2286
  "isConstant": false,
2287
2287
  "isLValue": false,
2288
2288
  "isPure": true,
@@ -2294,14 +2294,14 @@
2294
2294
  "typeString": "type(address)"
2295
2295
  },
2296
2296
  "typeName": {
2297
- "id": 30326,
2297
+ "id": 30348,
2298
2298
  "name": "address",
2299
2299
  "nodeType": "ElementaryTypeName",
2300
2300
  "src": "2884:7:87",
2301
2301
  "typeDescriptions": {}
2302
2302
  }
2303
2303
  },
2304
- "id": 30329,
2304
+ "id": 30351,
2305
2305
  "isConstant": false,
2306
2306
  "isLValue": false,
2307
2307
  "isPure": false,
@@ -2322,7 +2322,7 @@
2322
2322
  "arguments": [
2323
2323
  {
2324
2324
  "hexValue": "30",
2325
- "id": 30332,
2325
+ "id": 30354,
2326
2326
  "isConstant": false,
2327
2327
  "isLValue": false,
2328
2328
  "isPure": true,
@@ -2344,7 +2344,7 @@
2344
2344
  "typeString": "int_const 0"
2345
2345
  }
2346
2346
  ],
2347
- "id": 30331,
2347
+ "id": 30353,
2348
2348
  "isConstant": false,
2349
2349
  "isLValue": false,
2350
2350
  "isPure": true,
@@ -2356,14 +2356,14 @@
2356
2356
  "typeString": "type(address)"
2357
2357
  },
2358
2358
  "typeName": {
2359
- "id": 30330,
2359
+ "id": 30352,
2360
2360
  "name": "address",
2361
2361
  "nodeType": "ElementaryTypeName",
2362
2362
  "src": "2912:7:87",
2363
2363
  "typeDescriptions": {}
2364
2364
  }
2365
2365
  },
2366
- "id": 30333,
2366
+ "id": 30355,
2367
2367
  "isConstant": false,
2368
2368
  "isLValue": false,
2369
2369
  "isPure": true,
@@ -2386,7 +2386,7 @@
2386
2386
  },
2387
2387
  {
2388
2388
  "hexValue": "5375706572546f6b656e466163746f72793a207a65726f2061646472657373",
2389
- "id": 30335,
2389
+ "id": 30357,
2390
2390
  "isConstant": false,
2391
2391
  "isLValue": false,
2392
2392
  "isPure": true,
@@ -2412,7 +2412,7 @@
2412
2412
  "typeString": "literal_string \"SuperTokenFactory: zero address\""
2413
2413
  }
2414
2414
  ],
2415
- "id": 30325,
2415
+ "id": 30347,
2416
2416
  "name": "require",
2417
2417
  "nodeType": "Identifier",
2418
2418
  "overloadedDeclarations": [
@@ -2426,7 +2426,7 @@
2426
2426
  "typeString": "function (bool,string memory) pure"
2427
2427
  }
2428
2428
  },
2429
- "id": 30336,
2429
+ "id": 30358,
2430
2430
  "isConstant": false,
2431
2431
  "isLValue": false,
2432
2432
  "isPure": false,
@@ -2441,7 +2441,7 @@
2441
2441
  "typeString": "tuple()"
2442
2442
  }
2443
2443
  },
2444
- "id": 30337,
2444
+ "id": 30359,
2445
2445
  "nodeType": "ExpressionStatement",
2446
2446
  "src": "2876:82:87"
2447
2447
  },
@@ -2451,17 +2451,17 @@
2451
2451
  "typeIdentifier": "t_enum$_Upgradability_$17790",
2452
2452
  "typeString": "enum ISuperTokenFactory.Upgradability"
2453
2453
  },
2454
- "id": 30341,
2454
+ "id": 30363,
2455
2455
  "isConstant": false,
2456
2456
  "isLValue": false,
2457
2457
  "isPure": false,
2458
2458
  "lValueRequested": false,
2459
2459
  "leftExpression": {
2460
- "id": 30338,
2460
+ "id": 30360,
2461
2461
  "name": "upgradability",
2462
2462
  "nodeType": "Identifier",
2463
2463
  "overloadedDeclarations": [],
2464
- "referencedDeclaration": 30314,
2464
+ "referencedDeclaration": 30336,
2465
2465
  "src": "2973:13:87",
2466
2466
  "typeDescriptions": {
2467
2467
  "typeIdentifier": "t_enum$_Upgradability_$17790",
@@ -2472,7 +2472,7 @@
2472
2472
  "operator": "==",
2473
2473
  "rightExpression": {
2474
2474
  "expression": {
2475
- "id": 30339,
2475
+ "id": 30361,
2476
2476
  "name": "Upgradability",
2477
2477
  "nodeType": "Identifier",
2478
2478
  "overloadedDeclarations": [],
@@ -2483,7 +2483,7 @@
2483
2483
  "typeString": "type(enum ISuperTokenFactory.Upgradability)"
2484
2484
  }
2485
2485
  },
2486
- "id": 30340,
2486
+ "id": 30362,
2487
2487
  "isConstant": false,
2488
2488
  "isLValue": false,
2489
2489
  "isPure": true,
@@ -2509,17 +2509,17 @@
2509
2509
  "typeIdentifier": "t_enum$_Upgradability_$17790",
2510
2510
  "typeString": "enum ISuperTokenFactory.Upgradability"
2511
2511
  },
2512
- "id": 30355,
2512
+ "id": 30377,
2513
2513
  "isConstant": false,
2514
2514
  "isLValue": false,
2515
2515
  "isPure": false,
2516
2516
  "lValueRequested": false,
2517
2517
  "leftExpression": {
2518
- "id": 30352,
2518
+ "id": 30374,
2519
2519
  "name": "upgradability",
2520
2520
  "nodeType": "Identifier",
2521
2521
  "overloadedDeclarations": [],
2522
- "referencedDeclaration": 30314,
2522
+ "referencedDeclaration": 30336,
2523
2523
  "src": "3114:13:87",
2524
2524
  "typeDescriptions": {
2525
2525
  "typeIdentifier": "t_enum$_Upgradability_$17790",
@@ -2530,7 +2530,7 @@
2530
2530
  "operator": "==",
2531
2531
  "rightExpression": {
2532
2532
  "expression": {
2533
- "id": 30353,
2533
+ "id": 30375,
2534
2534
  "name": "Upgradability",
2535
2535
  "nodeType": "Identifier",
2536
2536
  "overloadedDeclarations": [],
@@ -2541,7 +2541,7 @@
2541
2541
  "typeString": "type(enum ISuperTokenFactory.Upgradability)"
2542
2542
  }
2543
2543
  },
2544
- "id": 30354,
2544
+ "id": 30376,
2545
2545
  "isConstant": false,
2546
2546
  "isLValue": false,
2547
2547
  "isPure": true,
@@ -2562,56 +2562,56 @@
2562
2562
  }
2563
2563
  },
2564
2564
  "falseBody": {
2565
- "id": 30405,
2565
+ "id": 30427,
2566
2566
  "nodeType": "Block",
2567
2567
  "src": "3428:184:87",
2568
2568
  "statements": [
2569
2569
  {
2570
2570
  "assignments": [
2571
- 30385
2571
+ 30407
2572
2572
  ],
2573
2573
  "declarations": [
2574
2574
  {
2575
2575
  "constant": false,
2576
- "id": 30385,
2576
+ "id": 30407,
2577
2577
  "mutability": "mutable",
2578
2578
  "name": "proxy",
2579
2579
  "nameLocation": "3472:5:87",
2580
2580
  "nodeType": "VariableDeclaration",
2581
- "scope": 30405,
2581
+ "scope": 30427,
2582
2582
  "src": "3442:35:87",
2583
2583
  "stateVariable": false,
2584
2584
  "storageLocation": "default",
2585
2585
  "typeDescriptions": {
2586
- "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28577",
2586
+ "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28599",
2587
2587
  "typeString": "contract FullUpgradableSuperTokenProxy"
2588
2588
  },
2589
2589
  "typeName": {
2590
- "id": 30384,
2590
+ "id": 30406,
2591
2591
  "nodeType": "UserDefinedTypeName",
2592
2592
  "pathNode": {
2593
- "id": 30383,
2593
+ "id": 30405,
2594
2594
  "name": "FullUpgradableSuperTokenProxy",
2595
2595
  "nodeType": "IdentifierPath",
2596
- "referencedDeclaration": 28577,
2596
+ "referencedDeclaration": 28599,
2597
2597
  "src": "3442:29:87"
2598
2598
  },
2599
- "referencedDeclaration": 28577,
2599
+ "referencedDeclaration": 28599,
2600
2600
  "src": "3442:29:87",
2601
2601
  "typeDescriptions": {
2602
- "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28577",
2602
+ "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28599",
2603
2603
  "typeString": "contract FullUpgradableSuperTokenProxy"
2604
2604
  }
2605
2605
  },
2606
2606
  "visibility": "internal"
2607
2607
  }
2608
2608
  ],
2609
- "id": 30390,
2609
+ "id": 30412,
2610
2610
  "initialValue": {
2611
2611
  "arguments": [],
2612
2612
  "expression": {
2613
2613
  "argumentTypes": [],
2614
- "id": 30388,
2614
+ "id": 30410,
2615
2615
  "isConstant": false,
2616
2616
  "isLValue": false,
2617
2617
  "isPure": false,
@@ -2619,28 +2619,28 @@
2619
2619
  "nodeType": "NewExpression",
2620
2620
  "src": "3480:33:87",
2621
2621
  "typeDescriptions": {
2622
- "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_FullUpgradableSuperTokenProxy_$28577_$",
2622
+ "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_FullUpgradableSuperTokenProxy_$28599_$",
2623
2623
  "typeString": "function () returns (contract FullUpgradableSuperTokenProxy)"
2624
2624
  },
2625
2625
  "typeName": {
2626
- "id": 30387,
2626
+ "id": 30409,
2627
2627
  "nodeType": "UserDefinedTypeName",
2628
2628
  "pathNode": {
2629
- "id": 30386,
2629
+ "id": 30408,
2630
2630
  "name": "FullUpgradableSuperTokenProxy",
2631
2631
  "nodeType": "IdentifierPath",
2632
- "referencedDeclaration": 28577,
2632
+ "referencedDeclaration": 28599,
2633
2633
  "src": "3484:29:87"
2634
2634
  },
2635
- "referencedDeclaration": 28577,
2635
+ "referencedDeclaration": 28599,
2636
2636
  "src": "3484:29:87",
2637
2637
  "typeDescriptions": {
2638
- "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28577",
2638
+ "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28599",
2639
2639
  "typeString": "contract FullUpgradableSuperTokenProxy"
2640
2640
  }
2641
2641
  }
2642
2642
  },
2643
- "id": 30389,
2643
+ "id": 30411,
2644
2644
  "isConstant": false,
2645
2645
  "isLValue": false,
2646
2646
  "isPure": false,
@@ -2651,7 +2651,7 @@
2651
2651
  "src": "3480:35:87",
2652
2652
  "tryCall": false,
2653
2653
  "typeDescriptions": {
2654
- "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28577",
2654
+ "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28599",
2655
2655
  "typeString": "contract FullUpgradableSuperTokenProxy"
2656
2656
  }
2657
2657
  },
@@ -2664,32 +2664,32 @@
2664
2664
  "expression": {
2665
2665
  "argumentTypes": [],
2666
2666
  "expression": {
2667
- "id": 30391,
2667
+ "id": 30413,
2668
2668
  "name": "proxy",
2669
2669
  "nodeType": "Identifier",
2670
2670
  "overloadedDeclarations": [],
2671
- "referencedDeclaration": 30385,
2671
+ "referencedDeclaration": 30407,
2672
2672
  "src": "3529:5:87",
2673
2673
  "typeDescriptions": {
2674
- "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28577",
2674
+ "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28599",
2675
2675
  "typeString": "contract FullUpgradableSuperTokenProxy"
2676
2676
  }
2677
2677
  },
2678
- "id": 30393,
2678
+ "id": 30415,
2679
2679
  "isConstant": false,
2680
2680
  "isLValue": false,
2681
2681
  "isPure": false,
2682
2682
  "lValueRequested": false,
2683
2683
  "memberName": "initialize",
2684
2684
  "nodeType": "MemberAccess",
2685
- "referencedDeclaration": 28544,
2685
+ "referencedDeclaration": 28567,
2686
2686
  "src": "3529:16:87",
2687
2687
  "typeDescriptions": {
2688
2688
  "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
2689
2689
  "typeString": "function () external"
2690
2690
  }
2691
2691
  },
2692
- "id": 30394,
2692
+ "id": 30416,
2693
2693
  "isConstant": false,
2694
2694
  "isLValue": false,
2695
2695
  "isPure": false,
@@ -2704,23 +2704,23 @@
2704
2704
  "typeString": "tuple()"
2705
2705
  }
2706
2706
  },
2707
- "id": 30395,
2707
+ "id": 30417,
2708
2708
  "nodeType": "ExpressionStatement",
2709
2709
  "src": "3529:18:87"
2710
2710
  },
2711
2711
  {
2712
2712
  "expression": {
2713
- "id": 30403,
2713
+ "id": 30425,
2714
2714
  "isConstant": false,
2715
2715
  "isLValue": false,
2716
2716
  "isPure": false,
2717
2717
  "lValueRequested": false,
2718
2718
  "leftHandSide": {
2719
- "id": 30396,
2719
+ "id": 30418,
2720
2720
  "name": "superToken",
2721
2721
  "nodeType": "Identifier",
2722
2722
  "overloadedDeclarations": [],
2723
- "referencedDeclaration": 30323,
2723
+ "referencedDeclaration": 30345,
2724
2724
  "src": "3561:10:87",
2725
2725
  "typeDescriptions": {
2726
2726
  "typeIdentifier": "t_contract$_ISuperToken_$17761",
@@ -2734,14 +2734,14 @@
2734
2734
  {
2735
2735
  "arguments": [
2736
2736
  {
2737
- "id": 30400,
2737
+ "id": 30422,
2738
2738
  "name": "proxy",
2739
2739
  "nodeType": "Identifier",
2740
2740
  "overloadedDeclarations": [],
2741
- "referencedDeclaration": 30385,
2741
+ "referencedDeclaration": 30407,
2742
2742
  "src": "3594:5:87",
2743
2743
  "typeDescriptions": {
2744
- "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28577",
2744
+ "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28599",
2745
2745
  "typeString": "contract FullUpgradableSuperTokenProxy"
2746
2746
  }
2747
2747
  }
@@ -2749,11 +2749,11 @@
2749
2749
  "expression": {
2750
2750
  "argumentTypes": [
2751
2751
  {
2752
- "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28577",
2752
+ "typeIdentifier": "t_contract$_FullUpgradableSuperTokenProxy_$28599",
2753
2753
  "typeString": "contract FullUpgradableSuperTokenProxy"
2754
2754
  }
2755
2755
  ],
2756
- "id": 30399,
2756
+ "id": 30421,
2757
2757
  "isConstant": false,
2758
2758
  "isLValue": false,
2759
2759
  "isPure": true,
@@ -2765,14 +2765,14 @@
2765
2765
  "typeString": "type(address)"
2766
2766
  },
2767
2767
  "typeName": {
2768
- "id": 30398,
2768
+ "id": 30420,
2769
2769
  "name": "address",
2770
2770
  "nodeType": "ElementaryTypeName",
2771
2771
  "src": "3586:7:87",
2772
2772
  "typeDescriptions": {}
2773
2773
  }
2774
2774
  },
2775
- "id": 30401,
2775
+ "id": 30423,
2776
2776
  "isConstant": false,
2777
2777
  "isLValue": false,
2778
2778
  "isPure": false,
@@ -2795,7 +2795,7 @@
2795
2795
  "typeString": "address"
2796
2796
  }
2797
2797
  ],
2798
- "id": 30397,
2798
+ "id": 30419,
2799
2799
  "name": "ISuperToken",
2800
2800
  "nodeType": "Identifier",
2801
2801
  "overloadedDeclarations": [],
@@ -2806,7 +2806,7 @@
2806
2806
  "typeString": "type(contract ISuperToken)"
2807
2807
  }
2808
2808
  },
2809
- "id": 30402,
2809
+ "id": 30424,
2810
2810
  "isConstant": false,
2811
2811
  "isLValue": false,
2812
2812
  "isPure": false,
@@ -2827,66 +2827,66 @@
2827
2827
  "typeString": "contract ISuperToken"
2828
2828
  }
2829
2829
  },
2830
- "id": 30404,
2830
+ "id": 30426,
2831
2831
  "nodeType": "ExpressionStatement",
2832
2832
  "src": "3561:40:87"
2833
2833
  }
2834
2834
  ]
2835
2835
  },
2836
- "id": 30406,
2836
+ "id": 30428,
2837
2837
  "nodeType": "IfStatement",
2838
2838
  "src": "3110:502:87",
2839
2839
  "trueBody": {
2840
- "id": 30382,
2840
+ "id": 30404,
2841
2841
  "nodeType": "Block",
2842
2842
  "src": "3162:212:87",
2843
2843
  "statements": [
2844
2844
  {
2845
2845
  "assignments": [
2846
- 30358
2846
+ 30380
2847
2847
  ],
2848
2848
  "declarations": [
2849
2849
  {
2850
2850
  "constant": false,
2851
- "id": 30358,
2851
+ "id": 30380,
2852
2852
  "mutability": "mutable",
2853
2853
  "name": "proxy",
2854
2854
  "nameLocation": "3186:5:87",
2855
2855
  "nodeType": "VariableDeclaration",
2856
- "scope": 30382,
2856
+ "scope": 30404,
2857
2857
  "src": "3176:15:87",
2858
2858
  "stateVariable": false,
2859
2859
  "storageLocation": "default",
2860
2860
  "typeDescriptions": {
2861
- "typeIdentifier": "t_contract$_UUPSProxy_$34895",
2861
+ "typeIdentifier": "t_contract$_UUPSProxy_$34914",
2862
2862
  "typeString": "contract UUPSProxy"
2863
2863
  },
2864
2864
  "typeName": {
2865
- "id": 30357,
2865
+ "id": 30379,
2866
2866
  "nodeType": "UserDefinedTypeName",
2867
2867
  "pathNode": {
2868
- "id": 30356,
2868
+ "id": 30378,
2869
2869
  "name": "UUPSProxy",
2870
2870
  "nodeType": "IdentifierPath",
2871
- "referencedDeclaration": 34895,
2871
+ "referencedDeclaration": 34914,
2872
2872
  "src": "3176:9:87"
2873
2873
  },
2874
- "referencedDeclaration": 34895,
2874
+ "referencedDeclaration": 34914,
2875
2875
  "src": "3176:9:87",
2876
2876
  "typeDescriptions": {
2877
- "typeIdentifier": "t_contract$_UUPSProxy_$34895",
2877
+ "typeIdentifier": "t_contract$_UUPSProxy_$34914",
2878
2878
  "typeString": "contract UUPSProxy"
2879
2879
  }
2880
2880
  },
2881
2881
  "visibility": "internal"
2882
2882
  }
2883
2883
  ],
2884
- "id": 30363,
2884
+ "id": 30385,
2885
2885
  "initialValue": {
2886
2886
  "arguments": [],
2887
2887
  "expression": {
2888
2888
  "argumentTypes": [],
2889
- "id": 30361,
2889
+ "id": 30383,
2890
2890
  "isConstant": false,
2891
2891
  "isLValue": false,
2892
2892
  "isPure": false,
@@ -2894,28 +2894,28 @@
2894
2894
  "nodeType": "NewExpression",
2895
2895
  "src": "3194:13:87",
2896
2896
  "typeDescriptions": {
2897
- "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_UUPSProxy_$34895_$",
2897
+ "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_UUPSProxy_$34914_$",
2898
2898
  "typeString": "function () returns (contract UUPSProxy)"
2899
2899
  },
2900
2900
  "typeName": {
2901
- "id": 30360,
2901
+ "id": 30382,
2902
2902
  "nodeType": "UserDefinedTypeName",
2903
2903
  "pathNode": {
2904
- "id": 30359,
2904
+ "id": 30381,
2905
2905
  "name": "UUPSProxy",
2906
2906
  "nodeType": "IdentifierPath",
2907
- "referencedDeclaration": 34895,
2907
+ "referencedDeclaration": 34914,
2908
2908
  "src": "3198:9:87"
2909
2909
  },
2910
- "referencedDeclaration": 34895,
2910
+ "referencedDeclaration": 34914,
2911
2911
  "src": "3198:9:87",
2912
2912
  "typeDescriptions": {
2913
- "typeIdentifier": "t_contract$_UUPSProxy_$34895",
2913
+ "typeIdentifier": "t_contract$_UUPSProxy_$34914",
2914
2914
  "typeString": "contract UUPSProxy"
2915
2915
  }
2916
2916
  }
2917
2917
  },
2918
- "id": 30362,
2918
+ "id": 30384,
2919
2919
  "isConstant": false,
2920
2920
  "isLValue": false,
2921
2921
  "isPure": false,
@@ -2926,7 +2926,7 @@
2926
2926
  "src": "3194:15:87",
2927
2927
  "tryCall": false,
2928
2928
  "typeDescriptions": {
2929
- "typeIdentifier": "t_contract$_UUPSProxy_$34895",
2929
+ "typeIdentifier": "t_contract$_UUPSProxy_$34914",
2930
2930
  "typeString": "contract UUPSProxy"
2931
2931
  }
2932
2932
  },
@@ -2939,11 +2939,11 @@
2939
2939
  {
2940
2940
  "arguments": [
2941
2941
  {
2942
- "id": 30369,
2942
+ "id": 30391,
2943
2943
  "name": "_superTokenLogic",
2944
2944
  "nodeType": "Identifier",
2945
2945
  "overloadedDeclarations": [],
2946
- "referencedDeclaration": 30200,
2946
+ "referencedDeclaration": 30222,
2947
2947
  "src": "3291:16:87",
2948
2948
  "typeDescriptions": {
2949
2949
  "typeIdentifier": "t_contract$_ISuperToken_$17761",
@@ -2958,7 +2958,7 @@
2958
2958
  "typeString": "contract ISuperToken"
2959
2959
  }
2960
2960
  ],
2961
- "id": 30368,
2961
+ "id": 30390,
2962
2962
  "isConstant": false,
2963
2963
  "isLValue": false,
2964
2964
  "isPure": true,
@@ -2970,14 +2970,14 @@
2970
2970
  "typeString": "type(address)"
2971
2971
  },
2972
2972
  "typeName": {
2973
- "id": 30367,
2973
+ "id": 30389,
2974
2974
  "name": "address",
2975
2975
  "nodeType": "ElementaryTypeName",
2976
2976
  "src": "3283:7:87",
2977
2977
  "typeDescriptions": {}
2978
2978
  }
2979
2979
  },
2980
- "id": 30370,
2980
+ "id": 30392,
2981
2981
  "isConstant": false,
2982
2982
  "isLValue": false,
2983
2983
  "isPure": false,
@@ -3001,32 +3001,32 @@
3001
3001
  }
3002
3002
  ],
3003
3003
  "expression": {
3004
- "id": 30364,
3004
+ "id": 30386,
3005
3005
  "name": "proxy",
3006
3006
  "nodeType": "Identifier",
3007
3007
  "overloadedDeclarations": [],
3008
- "referencedDeclaration": 30358,
3008
+ "referencedDeclaration": 30380,
3009
3009
  "src": "3261:5:87",
3010
3010
  "typeDescriptions": {
3011
- "typeIdentifier": "t_contract$_UUPSProxy_$34895",
3011
+ "typeIdentifier": "t_contract$_UUPSProxy_$34914",
3012
3012
  "typeString": "contract UUPSProxy"
3013
3013
  }
3014
3014
  },
3015
- "id": 30366,
3015
+ "id": 30388,
3016
3016
  "isConstant": false,
3017
3017
  "isLValue": false,
3018
3018
  "isPure": false,
3019
3019
  "lValueRequested": false,
3020
3020
  "memberName": "initializeProxy",
3021
3021
  "nodeType": "MemberAccess",
3022
- "referencedDeclaration": 34882,
3022
+ "referencedDeclaration": 34901,
3023
3023
  "src": "3261:21:87",
3024
3024
  "typeDescriptions": {
3025
3025
  "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
3026
3026
  "typeString": "function (address) external"
3027
3027
  }
3028
3028
  },
3029
- "id": 30371,
3029
+ "id": 30393,
3030
3030
  "isConstant": false,
3031
3031
  "isLValue": false,
3032
3032
  "isPure": false,
@@ -3041,23 +3041,23 @@
3041
3041
  "typeString": "tuple()"
3042
3042
  }
3043
3043
  },
3044
- "id": 30372,
3044
+ "id": 30394,
3045
3045
  "nodeType": "ExpressionStatement",
3046
3046
  "src": "3261:48:87"
3047
3047
  },
3048
3048
  {
3049
3049
  "expression": {
3050
- "id": 30380,
3050
+ "id": 30402,
3051
3051
  "isConstant": false,
3052
3052
  "isLValue": false,
3053
3053
  "isPure": false,
3054
3054
  "lValueRequested": false,
3055
3055
  "leftHandSide": {
3056
- "id": 30373,
3056
+ "id": 30395,
3057
3057
  "name": "superToken",
3058
3058
  "nodeType": "Identifier",
3059
3059
  "overloadedDeclarations": [],
3060
- "referencedDeclaration": 30323,
3060
+ "referencedDeclaration": 30345,
3061
3061
  "src": "3323:10:87",
3062
3062
  "typeDescriptions": {
3063
3063
  "typeIdentifier": "t_contract$_ISuperToken_$17761",
@@ -3071,14 +3071,14 @@
3071
3071
  {
3072
3072
  "arguments": [
3073
3073
  {
3074
- "id": 30377,
3074
+ "id": 30399,
3075
3075
  "name": "proxy",
3076
3076
  "nodeType": "Identifier",
3077
3077
  "overloadedDeclarations": [],
3078
- "referencedDeclaration": 30358,
3078
+ "referencedDeclaration": 30380,
3079
3079
  "src": "3356:5:87",
3080
3080
  "typeDescriptions": {
3081
- "typeIdentifier": "t_contract$_UUPSProxy_$34895",
3081
+ "typeIdentifier": "t_contract$_UUPSProxy_$34914",
3082
3082
  "typeString": "contract UUPSProxy"
3083
3083
  }
3084
3084
  }
@@ -3086,11 +3086,11 @@
3086
3086
  "expression": {
3087
3087
  "argumentTypes": [
3088
3088
  {
3089
- "typeIdentifier": "t_contract$_UUPSProxy_$34895",
3089
+ "typeIdentifier": "t_contract$_UUPSProxy_$34914",
3090
3090
  "typeString": "contract UUPSProxy"
3091
3091
  }
3092
3092
  ],
3093
- "id": 30376,
3093
+ "id": 30398,
3094
3094
  "isConstant": false,
3095
3095
  "isLValue": false,
3096
3096
  "isPure": true,
@@ -3102,14 +3102,14 @@
3102
3102
  "typeString": "type(address)"
3103
3103
  },
3104
3104
  "typeName": {
3105
- "id": 30375,
3105
+ "id": 30397,
3106
3106
  "name": "address",
3107
3107
  "nodeType": "ElementaryTypeName",
3108
3108
  "src": "3348:7:87",
3109
3109
  "typeDescriptions": {}
3110
3110
  }
3111
3111
  },
3112
- "id": 30378,
3112
+ "id": 30400,
3113
3113
  "isConstant": false,
3114
3114
  "isLValue": false,
3115
3115
  "isPure": false,
@@ -3132,7 +3132,7 @@
3132
3132
  "typeString": "address"
3133
3133
  }
3134
3134
  ],
3135
- "id": 30374,
3135
+ "id": 30396,
3136
3136
  "name": "ISuperToken",
3137
3137
  "nodeType": "Identifier",
3138
3138
  "overloadedDeclarations": [],
@@ -3143,7 +3143,7 @@
3143
3143
  "typeString": "type(contract ISuperToken)"
3144
3144
  }
3145
3145
  },
3146
- "id": 30379,
3146
+ "id": 30401,
3147
3147
  "isConstant": false,
3148
3148
  "isLValue": false,
3149
3149
  "isPure": false,
@@ -3164,34 +3164,34 @@
3164
3164
  "typeString": "contract ISuperToken"
3165
3165
  }
3166
3166
  },
3167
- "id": 30381,
3167
+ "id": 30403,
3168
3168
  "nodeType": "ExpressionStatement",
3169
3169
  "src": "3323:40:87"
3170
3170
  }
3171
3171
  ]
3172
3172
  }
3173
3173
  },
3174
- "id": 30407,
3174
+ "id": 30429,
3175
3175
  "nodeType": "IfStatement",
3176
3176
  "src": "2969:643:87",
3177
3177
  "trueBody": {
3178
- "id": 30351,
3178
+ "id": 30373,
3179
3179
  "nodeType": "Block",
3180
3180
  "src": "3020:84:87",
3181
3181
  "statements": [
3182
3182
  {
3183
3183
  "expression": {
3184
- "id": 30349,
3184
+ "id": 30371,
3185
3185
  "isConstant": false,
3186
3186
  "isLValue": false,
3187
3187
  "isPure": false,
3188
3188
  "lValueRequested": false,
3189
3189
  "leftHandSide": {
3190
- "id": 30342,
3190
+ "id": 30364,
3191
3191
  "name": "superToken",
3192
3192
  "nodeType": "Identifier",
3193
3193
  "overloadedDeclarations": [],
3194
- "referencedDeclaration": 30323,
3194
+ "referencedDeclaration": 30345,
3195
3195
  "src": "3034:10:87",
3196
3196
  "typeDescriptions": {
3197
3197
  "typeIdentifier": "t_contract$_ISuperToken_$17761",
@@ -3205,11 +3205,11 @@
3205
3205
  {
3206
3206
  "arguments": [
3207
3207
  {
3208
- "id": 30346,
3208
+ "id": 30368,
3209
3209
  "name": "_host",
3210
3210
  "nodeType": "Identifier",
3211
3211
  "overloadedDeclarations": [],
3212
- "referencedDeclaration": 30197,
3212
+ "referencedDeclaration": 30219,
3213
3213
  "src": "3086:5:87",
3214
3214
  "typeDescriptions": {
3215
3215
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
@@ -3225,32 +3225,32 @@
3225
3225
  }
3226
3226
  ],
3227
3227
  "expression": {
3228
- "id": 30344,
3228
+ "id": 30366,
3229
3229
  "name": "this",
3230
3230
  "nodeType": "Identifier",
3231
3231
  "overloadedDeclarations": [],
3232
3232
  "referencedDeclaration": 4294967268,
3233
3233
  "src": "3059:4:87",
3234
3234
  "typeDescriptions": {
3235
- "typeIdentifier": "t_contract$_SuperTokenFactoryBase_$30487",
3235
+ "typeIdentifier": "t_contract$_SuperTokenFactoryBase_$30509",
3236
3236
  "typeString": "contract SuperTokenFactoryBase"
3237
3237
  }
3238
3238
  },
3239
- "id": 30345,
3239
+ "id": 30367,
3240
3240
  "isConstant": false,
3241
3241
  "isLValue": false,
3242
3242
  "isPure": false,
3243
3243
  "lValueRequested": false,
3244
3244
  "memberName": "createSuperTokenLogic",
3245
3245
  "nodeType": "MemberAccess",
3246
- "referencedDeclaration": 30306,
3246
+ "referencedDeclaration": 30328,
3247
3247
  "src": "3059:26:87",
3248
3248
  "typeDescriptions": {
3249
3249
  "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISuperfluid_$18324_$returns$_t_address_$",
3250
3250
  "typeString": "function (contract ISuperfluid) external returns (address)"
3251
3251
  }
3252
3252
  },
3253
- "id": 30347,
3253
+ "id": 30369,
3254
3254
  "isConstant": false,
3255
3255
  "isLValue": false,
3256
3256
  "isPure": false,
@@ -3273,7 +3273,7 @@
3273
3273
  "typeString": "address"
3274
3274
  }
3275
3275
  ],
3276
- "id": 30343,
3276
+ "id": 30365,
3277
3277
  "name": "ISuperToken",
3278
3278
  "nodeType": "Identifier",
3279
3279
  "overloadedDeclarations": [],
@@ -3284,7 +3284,7 @@
3284
3284
  "typeString": "type(contract ISuperToken)"
3285
3285
  }
3286
3286
  },
3287
- "id": 30348,
3287
+ "id": 30370,
3288
3288
  "isConstant": false,
3289
3289
  "isLValue": false,
3290
3290
  "isPure": false,
@@ -3305,7 +3305,7 @@
3305
3305
  "typeString": "contract ISuperToken"
3306
3306
  }
3307
3307
  },
3308
- "id": 30350,
3308
+ "id": 30372,
3309
3309
  "nodeType": "ExpressionStatement",
3310
3310
  "src": "3034:59:87"
3311
3311
  }
@@ -3316,11 +3316,11 @@
3316
3316
  "expression": {
3317
3317
  "arguments": [
3318
3318
  {
3319
- "id": 30411,
3319
+ "id": 30433,
3320
3320
  "name": "underlyingToken",
3321
3321
  "nodeType": "Identifier",
3322
3322
  "overloadedDeclarations": [],
3323
- "referencedDeclaration": 30309,
3323
+ "referencedDeclaration": 30331,
3324
3324
  "src": "3689:15:87",
3325
3325
  "typeDescriptions": {
3326
3326
  "typeIdentifier": "t_contract$_IERC20_$1520",
@@ -3328,11 +3328,11 @@
3328
3328
  }
3329
3329
  },
3330
3330
  {
3331
- "id": 30412,
3331
+ "id": 30434,
3332
3332
  "name": "underlyingDecimals",
3333
3333
  "nodeType": "Identifier",
3334
3334
  "overloadedDeclarations": [],
3335
- "referencedDeclaration": 30311,
3335
+ "referencedDeclaration": 30333,
3336
3336
  "src": "3718:18:87",
3337
3337
  "typeDescriptions": {
3338
3338
  "typeIdentifier": "t_uint8",
@@ -3340,11 +3340,11 @@
3340
3340
  }
3341
3341
  },
3342
3342
  {
3343
- "id": 30413,
3343
+ "id": 30435,
3344
3344
  "name": "name",
3345
3345
  "nodeType": "Identifier",
3346
3346
  "overloadedDeclarations": [],
3347
- "referencedDeclaration": 30316,
3347
+ "referencedDeclaration": 30338,
3348
3348
  "src": "3750:4:87",
3349
3349
  "typeDescriptions": {
3350
3350
  "typeIdentifier": "t_string_calldata_ptr",
@@ -3352,11 +3352,11 @@
3352
3352
  }
3353
3353
  },
3354
3354
  {
3355
- "id": 30414,
3355
+ "id": 30436,
3356
3356
  "name": "symbol",
3357
3357
  "nodeType": "Identifier",
3358
3358
  "overloadedDeclarations": [],
3359
- "referencedDeclaration": 30318,
3359
+ "referencedDeclaration": 30340,
3360
3360
  "src": "3768:6:87",
3361
3361
  "typeDescriptions": {
3362
3362
  "typeIdentifier": "t_string_calldata_ptr",
@@ -3384,18 +3384,18 @@
3384
3384
  }
3385
3385
  ],
3386
3386
  "expression": {
3387
- "id": 30408,
3387
+ "id": 30430,
3388
3388
  "name": "superToken",
3389
3389
  "nodeType": "Identifier",
3390
3390
  "overloadedDeclarations": [],
3391
- "referencedDeclaration": 30323,
3391
+ "referencedDeclaration": 30345,
3392
3392
  "src": "3654:10:87",
3393
3393
  "typeDescriptions": {
3394
3394
  "typeIdentifier": "t_contract$_ISuperToken_$17761",
3395
3395
  "typeString": "contract ISuperToken"
3396
3396
  }
3397
3397
  },
3398
- "id": 30410,
3398
+ "id": 30432,
3399
3399
  "isConstant": false,
3400
3400
  "isLValue": false,
3401
3401
  "isPure": false,
@@ -3409,7 +3409,7 @@
3409
3409
  "typeString": "function (contract IERC20,uint8,string memory,string memory) external"
3410
3410
  }
3411
3411
  },
3412
- "id": 30415,
3412
+ "id": 30437,
3413
3413
  "isConstant": false,
3414
3414
  "isLValue": false,
3415
3415
  "isPure": false,
@@ -3424,7 +3424,7 @@
3424
3424
  "typeString": "tuple()"
3425
3425
  }
3426
3426
  },
3427
- "id": 30416,
3427
+ "id": 30438,
3428
3428
  "nodeType": "ExpressionStatement",
3429
3429
  "src": "3654:130:87"
3430
3430
  },
@@ -3432,11 +3432,11 @@
3432
3432
  "eventCall": {
3433
3433
  "arguments": [
3434
3434
  {
3435
- "id": 30418,
3435
+ "id": 30440,
3436
3436
  "name": "superToken",
3437
3437
  "nodeType": "Identifier",
3438
3438
  "overloadedDeclarations": [],
3439
- "referencedDeclaration": 30323,
3439
+ "referencedDeclaration": 30345,
3440
3440
  "src": "3818:10:87",
3441
3441
  "typeDescriptions": {
3442
3442
  "typeIdentifier": "t_contract$_ISuperToken_$17761",
@@ -3451,7 +3451,7 @@
3451
3451
  "typeString": "contract ISuperToken"
3452
3452
  }
3453
3453
  ],
3454
- "id": 30417,
3454
+ "id": 30439,
3455
3455
  "name": "SuperTokenCreated",
3456
3456
  "nodeType": "Identifier",
3457
3457
  "overloadedDeclarations": [],
@@ -3462,7 +3462,7 @@
3462
3462
  "typeString": "function (contract ISuperToken)"
3463
3463
  }
3464
3464
  },
3465
- "id": 30419,
3465
+ "id": 30441,
3466
3466
  "isConstant": false,
3467
3467
  "isLValue": false,
3468
3468
  "isPure": false,
@@ -3477,14 +3477,14 @@
3477
3477
  "typeString": "tuple()"
3478
3478
  }
3479
3479
  },
3480
- "id": 30420,
3480
+ "id": 30442,
3481
3481
  "nodeType": "EmitStatement",
3482
3482
  "src": "3795:34:87"
3483
3483
  }
3484
3484
  ]
3485
3485
  },
3486
3486
  "functionSelector": "a6d0c534",
3487
- "id": 30422,
3487
+ "id": 30444,
3488
3488
  "implemented": true,
3489
3489
  "kind": "function",
3490
3490
  "modifiers": [],
@@ -3492,23 +3492,23 @@
3492
3492
  "nameLocation": "2607:18:87",
3493
3493
  "nodeType": "FunctionDefinition",
3494
3494
  "overrides": {
3495
- "id": 30320,
3495
+ "id": 30342,
3496
3496
  "nodeType": "OverrideSpecifier",
3497
3497
  "overrides": [],
3498
3498
  "src": "2812:8:87"
3499
3499
  },
3500
3500
  "parameters": {
3501
- "id": 30319,
3501
+ "id": 30341,
3502
3502
  "nodeType": "ParameterList",
3503
3503
  "parameters": [
3504
3504
  {
3505
3505
  "constant": false,
3506
- "id": 30309,
3506
+ "id": 30331,
3507
3507
  "mutability": "mutable",
3508
3508
  "name": "underlyingToken",
3509
3509
  "nameLocation": "2642:15:87",
3510
3510
  "nodeType": "VariableDeclaration",
3511
- "scope": 30422,
3511
+ "scope": 30444,
3512
3512
  "src": "2635:22:87",
3513
3513
  "stateVariable": false,
3514
3514
  "storageLocation": "default",
@@ -3517,10 +3517,10 @@
3517
3517
  "typeString": "contract IERC20"
3518
3518
  },
3519
3519
  "typeName": {
3520
- "id": 30308,
3520
+ "id": 30330,
3521
3521
  "nodeType": "UserDefinedTypeName",
3522
3522
  "pathNode": {
3523
- "id": 30307,
3523
+ "id": 30329,
3524
3524
  "name": "IERC20",
3525
3525
  "nodeType": "IdentifierPath",
3526
3526
  "referencedDeclaration": 1520,
@@ -3537,12 +3537,12 @@
3537
3537
  },
3538
3538
  {
3539
3539
  "constant": false,
3540
- "id": 30311,
3540
+ "id": 30333,
3541
3541
  "mutability": "mutable",
3542
3542
  "name": "underlyingDecimals",
3543
3543
  "nameLocation": "2673:18:87",
3544
3544
  "nodeType": "VariableDeclaration",
3545
- "scope": 30422,
3545
+ "scope": 30444,
3546
3546
  "src": "2667:24:87",
3547
3547
  "stateVariable": false,
3548
3548
  "storageLocation": "default",
@@ -3551,7 +3551,7 @@
3551
3551
  "typeString": "uint8"
3552
3552
  },
3553
3553
  "typeName": {
3554
- "id": 30310,
3554
+ "id": 30332,
3555
3555
  "name": "uint8",
3556
3556
  "nodeType": "ElementaryTypeName",
3557
3557
  "src": "2667:5:87",
@@ -3564,12 +3564,12 @@
3564
3564
  },
3565
3565
  {
3566
3566
  "constant": false,
3567
- "id": 30314,
3567
+ "id": 30336,
3568
3568
  "mutability": "mutable",
3569
3569
  "name": "upgradability",
3570
3570
  "nameLocation": "2715:13:87",
3571
3571
  "nodeType": "VariableDeclaration",
3572
- "scope": 30422,
3572
+ "scope": 30444,
3573
3573
  "src": "2701:27:87",
3574
3574
  "stateVariable": false,
3575
3575
  "storageLocation": "default",
@@ -3578,10 +3578,10 @@
3578
3578
  "typeString": "enum ISuperTokenFactory.Upgradability"
3579
3579
  },
3580
3580
  "typeName": {
3581
- "id": 30313,
3581
+ "id": 30335,
3582
3582
  "nodeType": "UserDefinedTypeName",
3583
3583
  "pathNode": {
3584
- "id": 30312,
3584
+ "id": 30334,
3585
3585
  "name": "Upgradability",
3586
3586
  "nodeType": "IdentifierPath",
3587
3587
  "referencedDeclaration": 17790,
@@ -3598,12 +3598,12 @@
3598
3598
  },
3599
3599
  {
3600
3600
  "constant": false,
3601
- "id": 30316,
3601
+ "id": 30338,
3602
3602
  "mutability": "mutable",
3603
3603
  "name": "name",
3604
3604
  "nameLocation": "2754:4:87",
3605
3605
  "nodeType": "VariableDeclaration",
3606
- "scope": 30422,
3606
+ "scope": 30444,
3607
3607
  "src": "2738:20:87",
3608
3608
  "stateVariable": false,
3609
3609
  "storageLocation": "calldata",
@@ -3612,7 +3612,7 @@
3612
3612
  "typeString": "string"
3613
3613
  },
3614
3614
  "typeName": {
3615
- "id": 30315,
3615
+ "id": 30337,
3616
3616
  "name": "string",
3617
3617
  "nodeType": "ElementaryTypeName",
3618
3618
  "src": "2738:6:87",
@@ -3625,12 +3625,12 @@
3625
3625
  },
3626
3626
  {
3627
3627
  "constant": false,
3628
- "id": 30318,
3628
+ "id": 30340,
3629
3629
  "mutability": "mutable",
3630
3630
  "name": "symbol",
3631
3631
  "nameLocation": "2784:6:87",
3632
3632
  "nodeType": "VariableDeclaration",
3633
- "scope": 30422,
3633
+ "scope": 30444,
3634
3634
  "src": "2768:22:87",
3635
3635
  "stateVariable": false,
3636
3636
  "storageLocation": "calldata",
@@ -3639,7 +3639,7 @@
3639
3639
  "typeString": "string"
3640
3640
  },
3641
3641
  "typeName": {
3642
- "id": 30317,
3642
+ "id": 30339,
3643
3643
  "name": "string",
3644
3644
  "nodeType": "ElementaryTypeName",
3645
3645
  "src": "2768:6:87",
@@ -3654,17 +3654,17 @@
3654
3654
  "src": "2625:171:87"
3655
3655
  },
3656
3656
  "returnParameters": {
3657
- "id": 30324,
3657
+ "id": 30346,
3658
3658
  "nodeType": "ParameterList",
3659
3659
  "parameters": [
3660
3660
  {
3661
3661
  "constant": false,
3662
- "id": 30323,
3662
+ "id": 30345,
3663
3663
  "mutability": "mutable",
3664
3664
  "name": "superToken",
3665
3665
  "nameLocation": "2850:10:87",
3666
3666
  "nodeType": "VariableDeclaration",
3667
- "scope": 30422,
3667
+ "scope": 30444,
3668
3668
  "src": "2838:22:87",
3669
3669
  "stateVariable": false,
3670
3670
  "storageLocation": "default",
@@ -3673,10 +3673,10 @@
3673
3673
  "typeString": "contract ISuperToken"
3674
3674
  },
3675
3675
  "typeName": {
3676
- "id": 30322,
3676
+ "id": 30344,
3677
3677
  "nodeType": "UserDefinedTypeName",
3678
3678
  "pathNode": {
3679
- "id": 30321,
3679
+ "id": 30343,
3680
3680
  "name": "ISuperToken",
3681
3681
  "nodeType": "IdentifierPath",
3682
3682
  "referencedDeclaration": 17761,
@@ -3694,7 +3694,7 @@
3694
3694
  ],
3695
3695
  "src": "2837:24:87"
3696
3696
  },
3697
- "scope": 30487,
3697
+ "scope": 30509,
3698
3698
  "src": "2598:1238:87",
3699
3699
  "stateMutability": "nonpayable",
3700
3700
  "virtual": false,
@@ -3705,7 +3705,7 @@
3705
3705
  17826
3706
3706
  ],
3707
3707
  "body": {
3708
- "id": 30449,
3708
+ "id": 30471,
3709
3709
  "nodeType": "Block",
3710
3710
  "src": "4090:186:87",
3711
3711
  "statements": [
@@ -3713,11 +3713,11 @@
3713
3713
  "expression": {
3714
3714
  "arguments": [
3715
3715
  {
3716
- "id": 30440,
3716
+ "id": 30462,
3717
3717
  "name": "underlyingToken",
3718
3718
  "nodeType": "Identifier",
3719
3719
  "overloadedDeclarations": [],
3720
- "referencedDeclaration": 30425,
3720
+ "referencedDeclaration": 30447,
3721
3721
  "src": "4139:15:87",
3722
3722
  "typeDescriptions": {
3723
3723
  "typeIdentifier": "t_contract$_ERC20WithTokenInfo_$18733",
@@ -3729,18 +3729,18 @@
3729
3729
  "expression": {
3730
3730
  "argumentTypes": [],
3731
3731
  "expression": {
3732
- "id": 30441,
3732
+ "id": 30463,
3733
3733
  "name": "underlyingToken",
3734
3734
  "nodeType": "Identifier",
3735
3735
  "overloadedDeclarations": [],
3736
- "referencedDeclaration": 30425,
3736
+ "referencedDeclaration": 30447,
3737
3737
  "src": "4168:15:87",
3738
3738
  "typeDescriptions": {
3739
3739
  "typeIdentifier": "t_contract$_ERC20WithTokenInfo_$18733",
3740
3740
  "typeString": "contract ERC20WithTokenInfo"
3741
3741
  }
3742
3742
  },
3743
- "id": 30442,
3743
+ "id": 30464,
3744
3744
  "isConstant": false,
3745
3745
  "isLValue": false,
3746
3746
  "isPure": false,
@@ -3754,7 +3754,7 @@
3754
3754
  "typeString": "function () view external returns (uint8)"
3755
3755
  }
3756
3756
  },
3757
- "id": 30443,
3757
+ "id": 30465,
3758
3758
  "isConstant": false,
3759
3759
  "isLValue": false,
3760
3760
  "isPure": false,
@@ -3770,11 +3770,11 @@
3770
3770
  }
3771
3771
  },
3772
3772
  {
3773
- "id": 30444,
3773
+ "id": 30466,
3774
3774
  "name": "upgradability",
3775
3775
  "nodeType": "Identifier",
3776
3776
  "overloadedDeclarations": [],
3777
- "referencedDeclaration": 30428,
3777
+ "referencedDeclaration": 30450,
3778
3778
  "src": "4208:13:87",
3779
3779
  "typeDescriptions": {
3780
3780
  "typeIdentifier": "t_enum$_Upgradability_$17790",
@@ -3782,11 +3782,11 @@
3782
3782
  }
3783
3783
  },
3784
3784
  {
3785
- "id": 30445,
3785
+ "id": 30467,
3786
3786
  "name": "name",
3787
3787
  "nodeType": "Identifier",
3788
3788
  "overloadedDeclarations": [],
3789
- "referencedDeclaration": 30430,
3789
+ "referencedDeclaration": 30452,
3790
3790
  "src": "4235:4:87",
3791
3791
  "typeDescriptions": {
3792
3792
  "typeIdentifier": "t_string_calldata_ptr",
@@ -3794,11 +3794,11 @@
3794
3794
  }
3795
3795
  },
3796
3796
  {
3797
- "id": 30446,
3797
+ "id": 30468,
3798
3798
  "name": "symbol",
3799
3799
  "nodeType": "Identifier",
3800
3800
  "overloadedDeclarations": [],
3801
- "referencedDeclaration": 30432,
3801
+ "referencedDeclaration": 30454,
3802
3802
  "src": "4253:6:87",
3803
3803
  "typeDescriptions": {
3804
3804
  "typeIdentifier": "t_string_calldata_ptr",
@@ -3829,18 +3829,18 @@
3829
3829
  "typeString": "string calldata"
3830
3830
  }
3831
3831
  ],
3832
- "id": 30439,
3832
+ "id": 30461,
3833
3833
  "name": "createERC20Wrapper",
3834
3834
  "nodeType": "Identifier",
3835
3835
  "overloadedDeclarations": [],
3836
- "referencedDeclaration": 30422,
3836
+ "referencedDeclaration": 30444,
3837
3837
  "src": "4107:18:87",
3838
3838
  "typeDescriptions": {
3839
3839
  "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1520_$_t_uint8_$_t_enum$_Upgradability_$17790_$_t_string_calldata_ptr_$_t_string_calldata_ptr_$returns$_t_contract$_ISuperToken_$17761_$",
3840
3840
  "typeString": "function (contract IERC20,uint8,enum ISuperTokenFactory.Upgradability,string calldata,string calldata) returns (contract ISuperToken)"
3841
3841
  }
3842
3842
  },
3843
- "id": 30447,
3843
+ "id": 30469,
3844
3844
  "isConstant": false,
3845
3845
  "isLValue": false,
3846
3846
  "isPure": false,
@@ -3855,15 +3855,15 @@
3855
3855
  "typeString": "contract ISuperToken"
3856
3856
  }
3857
3857
  },
3858
- "functionReturnParameters": 30438,
3859
- "id": 30448,
3858
+ "functionReturnParameters": 30460,
3859
+ "id": 30470,
3860
3860
  "nodeType": "Return",
3861
3861
  "src": "4100:169:87"
3862
3862
  }
3863
3863
  ]
3864
3864
  },
3865
3865
  "functionSelector": "431f1481",
3866
- "id": 30450,
3866
+ "id": 30472,
3867
3867
  "implemented": true,
3868
3868
  "kind": "function",
3869
3869
  "modifiers": [],
@@ -3871,23 +3871,23 @@
3871
3871
  "nameLocation": "3851:18:87",
3872
3872
  "nodeType": "FunctionDefinition",
3873
3873
  "overrides": {
3874
- "id": 30434,
3874
+ "id": 30456,
3875
3875
  "nodeType": "OverrideSpecifier",
3876
3876
  "overrides": [],
3877
3877
  "src": "4036:8:87"
3878
3878
  },
3879
3879
  "parameters": {
3880
- "id": 30433,
3880
+ "id": 30455,
3881
3881
  "nodeType": "ParameterList",
3882
3882
  "parameters": [
3883
3883
  {
3884
3884
  "constant": false,
3885
- "id": 30425,
3885
+ "id": 30447,
3886
3886
  "mutability": "mutable",
3887
3887
  "name": "underlyingToken",
3888
3888
  "nameLocation": "3898:15:87",
3889
3889
  "nodeType": "VariableDeclaration",
3890
- "scope": 30450,
3890
+ "scope": 30472,
3891
3891
  "src": "3879:34:87",
3892
3892
  "stateVariable": false,
3893
3893
  "storageLocation": "default",
@@ -3896,10 +3896,10 @@
3896
3896
  "typeString": "contract ERC20WithTokenInfo"
3897
3897
  },
3898
3898
  "typeName": {
3899
- "id": 30424,
3899
+ "id": 30446,
3900
3900
  "nodeType": "UserDefinedTypeName",
3901
3901
  "pathNode": {
3902
- "id": 30423,
3902
+ "id": 30445,
3903
3903
  "name": "ERC20WithTokenInfo",
3904
3904
  "nodeType": "IdentifierPath",
3905
3905
  "referencedDeclaration": 18733,
@@ -3916,12 +3916,12 @@
3916
3916
  },
3917
3917
  {
3918
3918
  "constant": false,
3919
- "id": 30428,
3919
+ "id": 30450,
3920
3920
  "mutability": "mutable",
3921
3921
  "name": "upgradability",
3922
3922
  "nameLocation": "3937:13:87",
3923
3923
  "nodeType": "VariableDeclaration",
3924
- "scope": 30450,
3924
+ "scope": 30472,
3925
3925
  "src": "3923:27:87",
3926
3926
  "stateVariable": false,
3927
3927
  "storageLocation": "default",
@@ -3930,10 +3930,10 @@
3930
3930
  "typeString": "enum ISuperTokenFactory.Upgradability"
3931
3931
  },
3932
3932
  "typeName": {
3933
- "id": 30427,
3933
+ "id": 30449,
3934
3934
  "nodeType": "UserDefinedTypeName",
3935
3935
  "pathNode": {
3936
- "id": 30426,
3936
+ "id": 30448,
3937
3937
  "name": "Upgradability",
3938
3938
  "nodeType": "IdentifierPath",
3939
3939
  "referencedDeclaration": 17790,
@@ -3950,12 +3950,12 @@
3950
3950
  },
3951
3951
  {
3952
3952
  "constant": false,
3953
- "id": 30430,
3953
+ "id": 30452,
3954
3954
  "mutability": "mutable",
3955
3955
  "name": "name",
3956
3956
  "nameLocation": "3976:4:87",
3957
3957
  "nodeType": "VariableDeclaration",
3958
- "scope": 30450,
3958
+ "scope": 30472,
3959
3959
  "src": "3960:20:87",
3960
3960
  "stateVariable": false,
3961
3961
  "storageLocation": "calldata",
@@ -3964,7 +3964,7 @@
3964
3964
  "typeString": "string"
3965
3965
  },
3966
3966
  "typeName": {
3967
- "id": 30429,
3967
+ "id": 30451,
3968
3968
  "name": "string",
3969
3969
  "nodeType": "ElementaryTypeName",
3970
3970
  "src": "3960:6:87",
@@ -3977,12 +3977,12 @@
3977
3977
  },
3978
3978
  {
3979
3979
  "constant": false,
3980
- "id": 30432,
3980
+ "id": 30454,
3981
3981
  "mutability": "mutable",
3982
3982
  "name": "symbol",
3983
3983
  "nameLocation": "4006:6:87",
3984
3984
  "nodeType": "VariableDeclaration",
3985
- "scope": 30450,
3985
+ "scope": 30472,
3986
3986
  "src": "3990:22:87",
3987
3987
  "stateVariable": false,
3988
3988
  "storageLocation": "calldata",
@@ -3991,7 +3991,7 @@
3991
3991
  "typeString": "string"
3992
3992
  },
3993
3993
  "typeName": {
3994
- "id": 30431,
3994
+ "id": 30453,
3995
3995
  "name": "string",
3996
3996
  "nodeType": "ElementaryTypeName",
3997
3997
  "src": "3990:6:87",
@@ -4006,17 +4006,17 @@
4006
4006
  "src": "3869:149:87"
4007
4007
  },
4008
4008
  "returnParameters": {
4009
- "id": 30438,
4009
+ "id": 30460,
4010
4010
  "nodeType": "ParameterList",
4011
4011
  "parameters": [
4012
4012
  {
4013
4013
  "constant": false,
4014
- "id": 30437,
4014
+ "id": 30459,
4015
4015
  "mutability": "mutable",
4016
4016
  "name": "superToken",
4017
4017
  "nameLocation": "4074:10:87",
4018
4018
  "nodeType": "VariableDeclaration",
4019
- "scope": 30450,
4019
+ "scope": 30472,
4020
4020
  "src": "4062:22:87",
4021
4021
  "stateVariable": false,
4022
4022
  "storageLocation": "default",
@@ -4025,10 +4025,10 @@
4025
4025
  "typeString": "contract ISuperToken"
4026
4026
  },
4027
4027
  "typeName": {
4028
- "id": 30436,
4028
+ "id": 30458,
4029
4029
  "nodeType": "UserDefinedTypeName",
4030
4030
  "pathNode": {
4031
- "id": 30435,
4031
+ "id": 30457,
4032
4032
  "name": "ISuperToken",
4033
4033
  "nodeType": "IdentifierPath",
4034
4034
  "referencedDeclaration": 17761,
@@ -4046,7 +4046,7 @@
4046
4046
  ],
4047
4047
  "src": "4061:24:87"
4048
4048
  },
4049
- "scope": 30487,
4049
+ "scope": 30509,
4050
4050
  "src": "3842:434:87",
4051
4051
  "stateMutability": "nonpayable",
4052
4052
  "virtual": false,
@@ -4057,23 +4057,23 @@
4057
4057
  17831
4058
4058
  ],
4059
4059
  "body": {
4060
- "id": 30485,
4060
+ "id": 30507,
4061
4061
  "nodeType": "Block",
4062
4062
  "src": "4393:341:87",
4063
4063
  "statements": [
4064
4064
  {
4065
4065
  "assignments": [
4066
- 30457
4066
+ 30479
4067
4067
  ],
4068
4068
  "declarations": [
4069
4069
  {
4070
4070
  "constant": false,
4071
- "id": 30457,
4071
+ "id": 30479,
4072
4072
  "mutability": "mutable",
4073
4073
  "name": "a",
4074
4074
  "nameLocation": "4535:1:87",
4075
4075
  "nodeType": "VariableDeclaration",
4076
- "scope": 30485,
4076
+ "scope": 30507,
4077
4077
  "src": "4519:17:87",
4078
4078
  "stateVariable": false,
4079
4079
  "storageLocation": "default",
@@ -4082,7 +4082,7 @@
4082
4082
  "typeString": "address payable"
4083
4083
  },
4084
4084
  "typeName": {
4085
- "id": 30456,
4085
+ "id": 30478,
4086
4086
  "name": "address",
4087
4087
  "nodeType": "ElementaryTypeName",
4088
4088
  "src": "4519:15:87",
@@ -4095,7 +4095,7 @@
4095
4095
  "visibility": "internal"
4096
4096
  }
4097
4097
  ],
4098
- "id": 30468,
4098
+ "id": 30490,
4099
4099
  "initialValue": {
4100
4100
  "arguments": [
4101
4101
  {
@@ -4103,11 +4103,11 @@
4103
4103
  {
4104
4104
  "arguments": [
4105
4105
  {
4106
- "id": 30464,
4106
+ "id": 30486,
4107
4107
  "name": "customSuperTokenProxy",
4108
4108
  "nodeType": "Identifier",
4109
4109
  "overloadedDeclarations": [],
4110
- "referencedDeclaration": 30452,
4110
+ "referencedDeclaration": 30474,
4111
4111
  "src": "4563:21:87",
4112
4112
  "typeDescriptions": {
4113
4113
  "typeIdentifier": "t_address",
@@ -4122,7 +4122,7 @@
4122
4122
  "typeString": "address"
4123
4123
  }
4124
4124
  ],
4125
- "id": 30463,
4125
+ "id": 30485,
4126
4126
  "isConstant": false,
4127
4127
  "isLValue": false,
4128
4128
  "isPure": true,
@@ -4134,14 +4134,14 @@
4134
4134
  "typeString": "type(uint160)"
4135
4135
  },
4136
4136
  "typeName": {
4137
- "id": 30462,
4137
+ "id": 30484,
4138
4138
  "name": "uint160",
4139
4139
  "nodeType": "ElementaryTypeName",
4140
4140
  "src": "4555:7:87",
4141
4141
  "typeDescriptions": {}
4142
4142
  }
4143
4143
  },
4144
- "id": 30465,
4144
+ "id": 30487,
4145
4145
  "isConstant": false,
4146
4146
  "isLValue": false,
4147
4147
  "isPure": false,
@@ -4164,7 +4164,7 @@
4164
4164
  "typeString": "uint160"
4165
4165
  }
4166
4166
  ],
4167
- "id": 30461,
4167
+ "id": 30483,
4168
4168
  "isConstant": false,
4169
4169
  "isLValue": false,
4170
4170
  "isPure": true,
@@ -4176,14 +4176,14 @@
4176
4176
  "typeString": "type(address)"
4177
4177
  },
4178
4178
  "typeName": {
4179
- "id": 30460,
4179
+ "id": 30482,
4180
4180
  "name": "address",
4181
4181
  "nodeType": "ElementaryTypeName",
4182
4182
  "src": "4547:7:87",
4183
4183
  "typeDescriptions": {}
4184
4184
  }
4185
4185
  },
4186
- "id": 30466,
4186
+ "id": 30488,
4187
4187
  "isConstant": false,
4188
4188
  "isLValue": false,
4189
4189
  "isPure": false,
@@ -4206,7 +4206,7 @@
4206
4206
  "typeString": "address"
4207
4207
  }
4208
4208
  ],
4209
- "id": 30459,
4209
+ "id": 30481,
4210
4210
  "isConstant": false,
4211
4211
  "isLValue": false,
4212
4212
  "isPure": true,
@@ -4218,7 +4218,7 @@
4218
4218
  "typeString": "type(address payable)"
4219
4219
  },
4220
4220
  "typeName": {
4221
- "id": 30458,
4221
+ "id": 30480,
4222
4222
  "name": "address",
4223
4223
  "nodeType": "ElementaryTypeName",
4224
4224
  "src": "4539:8:87",
@@ -4226,7 +4226,7 @@
4226
4226
  "typeDescriptions": {}
4227
4227
  }
4228
4228
  },
4229
- "id": 30467,
4229
+ "id": 30489,
4230
4230
  "isConstant": false,
4231
4231
  "isLValue": false,
4232
4232
  "isPure": false,
@@ -4250,11 +4250,11 @@
4250
4250
  {
4251
4251
  "arguments": [
4252
4252
  {
4253
- "id": 30475,
4253
+ "id": 30497,
4254
4254
  "name": "_superTokenLogic",
4255
4255
  "nodeType": "Identifier",
4256
4256
  "overloadedDeclarations": [],
4257
- "referencedDeclaration": 30200,
4257
+ "referencedDeclaration": 30222,
4258
4258
  "src": "4634:16:87",
4259
4259
  "typeDescriptions": {
4260
4260
  "typeIdentifier": "t_contract$_ISuperToken_$17761",
@@ -4269,7 +4269,7 @@
4269
4269
  "typeString": "contract ISuperToken"
4270
4270
  }
4271
4271
  ],
4272
- "id": 30474,
4272
+ "id": 30496,
4273
4273
  "isConstant": false,
4274
4274
  "isLValue": false,
4275
4275
  "isPure": true,
@@ -4281,14 +4281,14 @@
4281
4281
  "typeString": "type(address)"
4282
4282
  },
4283
4283
  "typeName": {
4284
- "id": 30473,
4284
+ "id": 30495,
4285
4285
  "name": "address",
4286
4286
  "nodeType": "ElementaryTypeName",
4287
4287
  "src": "4626:7:87",
4288
4288
  "typeDescriptions": {}
4289
4289
  }
4290
4290
  },
4291
- "id": 30476,
4291
+ "id": 30498,
4292
4292
  "isConstant": false,
4293
4293
  "isLValue": false,
4294
4294
  "isPure": false,
@@ -4314,11 +4314,11 @@
4314
4314
  "expression": {
4315
4315
  "arguments": [
4316
4316
  {
4317
- "id": 30470,
4317
+ "id": 30492,
4318
4318
  "name": "a",
4319
4319
  "nodeType": "Identifier",
4320
4320
  "overloadedDeclarations": [],
4321
- "referencedDeclaration": 30457,
4321
+ "referencedDeclaration": 30479,
4322
4322
  "src": "4607:1:87",
4323
4323
  "typeDescriptions": {
4324
4324
  "typeIdentifier": "t_address_payable",
@@ -4333,18 +4333,18 @@
4333
4333
  "typeString": "address payable"
4334
4334
  }
4335
4335
  ],
4336
- "id": 30469,
4336
+ "id": 30491,
4337
4337
  "name": "UUPSProxy",
4338
4338
  "nodeType": "Identifier",
4339
4339
  "overloadedDeclarations": [],
4340
- "referencedDeclaration": 34895,
4340
+ "referencedDeclaration": 34914,
4341
4341
  "src": "4597:9:87",
4342
4342
  "typeDescriptions": {
4343
- "typeIdentifier": "t_type$_t_contract$_UUPSProxy_$34895_$",
4343
+ "typeIdentifier": "t_type$_t_contract$_UUPSProxy_$34914_$",
4344
4344
  "typeString": "type(contract UUPSProxy)"
4345
4345
  }
4346
4346
  },
4347
- "id": 30471,
4347
+ "id": 30493,
4348
4348
  "isConstant": false,
4349
4349
  "isLValue": false,
4350
4350
  "isPure": false,
@@ -4355,25 +4355,25 @@
4355
4355
  "src": "4597:12:87",
4356
4356
  "tryCall": false,
4357
4357
  "typeDescriptions": {
4358
- "typeIdentifier": "t_contract$_UUPSProxy_$34895",
4358
+ "typeIdentifier": "t_contract$_UUPSProxy_$34914",
4359
4359
  "typeString": "contract UUPSProxy"
4360
4360
  }
4361
4361
  },
4362
- "id": 30472,
4362
+ "id": 30494,
4363
4363
  "isConstant": false,
4364
4364
  "isLValue": false,
4365
4365
  "isPure": false,
4366
4366
  "lValueRequested": false,
4367
4367
  "memberName": "initializeProxy",
4368
4368
  "nodeType": "MemberAccess",
4369
- "referencedDeclaration": 34882,
4369
+ "referencedDeclaration": 34901,
4370
4370
  "src": "4597:28:87",
4371
4371
  "typeDescriptions": {
4372
4372
  "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
4373
4373
  "typeString": "function (address) external"
4374
4374
  }
4375
4375
  },
4376
- "id": 30477,
4376
+ "id": 30499,
4377
4377
  "isConstant": false,
4378
4378
  "isLValue": false,
4379
4379
  "isPure": false,
@@ -4388,7 +4388,7 @@
4388
4388
  "typeString": "tuple()"
4389
4389
  }
4390
4390
  },
4391
- "id": 30478,
4391
+ "id": 30500,
4392
4392
  "nodeType": "ExpressionStatement",
4393
4393
  "src": "4597:55:87"
4394
4394
  },
@@ -4398,11 +4398,11 @@
4398
4398
  {
4399
4399
  "arguments": [
4400
4400
  {
4401
- "id": 30481,
4401
+ "id": 30503,
4402
4402
  "name": "customSuperTokenProxy",
4403
4403
  "nodeType": "Identifier",
4404
4404
  "overloadedDeclarations": [],
4405
- "referencedDeclaration": 30452,
4405
+ "referencedDeclaration": 30474,
4406
4406
  "src": "4704:21:87",
4407
4407
  "typeDescriptions": {
4408
4408
  "typeIdentifier": "t_address",
@@ -4417,7 +4417,7 @@
4417
4417
  "typeString": "address"
4418
4418
  }
4419
4419
  ],
4420
- "id": 30480,
4420
+ "id": 30502,
4421
4421
  "name": "ISuperToken",
4422
4422
  "nodeType": "Identifier",
4423
4423
  "overloadedDeclarations": [],
@@ -4428,7 +4428,7 @@
4428
4428
  "typeString": "type(contract ISuperToken)"
4429
4429
  }
4430
4430
  },
4431
- "id": 30482,
4431
+ "id": 30504,
4432
4432
  "isConstant": false,
4433
4433
  "isLValue": false,
4434
4434
  "isPure": false,
@@ -4451,7 +4451,7 @@
4451
4451
  "typeString": "contract ISuperToken"
4452
4452
  }
4453
4453
  ],
4454
- "id": 30479,
4454
+ "id": 30501,
4455
4455
  "name": "CustomSuperTokenCreated",
4456
4456
  "nodeType": "Identifier",
4457
4457
  "overloadedDeclarations": [],
@@ -4462,7 +4462,7 @@
4462
4462
  "typeString": "function (contract ISuperToken)"
4463
4463
  }
4464
4464
  },
4465
- "id": 30483,
4465
+ "id": 30505,
4466
4466
  "isConstant": false,
4467
4467
  "isLValue": false,
4468
4468
  "isPure": false,
@@ -4477,14 +4477,14 @@
4477
4477
  "typeString": "tuple()"
4478
4478
  }
4479
4479
  },
4480
- "id": 30484,
4480
+ "id": 30506,
4481
4481
  "nodeType": "EmitStatement",
4482
4482
  "src": "4663:64:87"
4483
4483
  }
4484
4484
  ]
4485
4485
  },
4486
4486
  "functionSelector": "d412d344",
4487
- "id": 30486,
4487
+ "id": 30508,
4488
4488
  "implemented": true,
4489
4489
  "kind": "function",
4490
4490
  "modifiers": [],
@@ -4492,23 +4492,23 @@
4492
4492
  "nameLocation": "4291:26:87",
4493
4493
  "nodeType": "FunctionDefinition",
4494
4494
  "overrides": {
4495
- "id": 30454,
4495
+ "id": 30476,
4496
4496
  "nodeType": "OverrideSpecifier",
4497
4497
  "overrides": [],
4498
4498
  "src": "4380:8:87"
4499
4499
  },
4500
4500
  "parameters": {
4501
- "id": 30453,
4501
+ "id": 30475,
4502
4502
  "nodeType": "ParameterList",
4503
4503
  "parameters": [
4504
4504
  {
4505
4505
  "constant": false,
4506
- "id": 30452,
4506
+ "id": 30474,
4507
4507
  "mutability": "mutable",
4508
4508
  "name": "customSuperTokenProxy",
4509
4509
  "nameLocation": "4335:21:87",
4510
4510
  "nodeType": "VariableDeclaration",
4511
- "scope": 30486,
4511
+ "scope": 30508,
4512
4512
  "src": "4327:29:87",
4513
4513
  "stateVariable": false,
4514
4514
  "storageLocation": "default",
@@ -4517,7 +4517,7 @@
4517
4517
  "typeString": "address"
4518
4518
  },
4519
4519
  "typeName": {
4520
- "id": 30451,
4520
+ "id": 30473,
4521
4521
  "name": "address",
4522
4522
  "nodeType": "ElementaryTypeName",
4523
4523
  "src": "4327:7:87",
@@ -4533,19 +4533,19 @@
4533
4533
  "src": "4317:45:87"
4534
4534
  },
4535
4535
  "returnParameters": {
4536
- "id": 30455,
4536
+ "id": 30477,
4537
4537
  "nodeType": "ParameterList",
4538
4538
  "parameters": [],
4539
4539
  "src": "4393:0:87"
4540
4540
  },
4541
- "scope": 30487,
4541
+ "scope": 30509,
4542
4542
  "src": "4282:452:87",
4543
4543
  "stateMutability": "nonpayable",
4544
4544
  "virtual": false,
4545
4545
  "visibility": "external"
4546
4546
  }
4547
4547
  ],
4548
- "scope": 30545,
4548
+ "scope": 30567,
4549
4549
  "src": "692:4045:87",
4550
4550
  "usedErrors": []
4551
4551
  },
@@ -4554,13 +4554,13 @@
4554
4554
  "baseContracts": [],
4555
4555
  "canonicalName": "SuperTokenFactoryHelper",
4556
4556
  "contractDependencies": [
4557
- 30169
4557
+ 30191
4558
4558
  ],
4559
4559
  "contractKind": "contract",
4560
4560
  "fullyImplemented": true,
4561
- "id": 30506,
4561
+ "id": 30528,
4562
4562
  "linearizedBaseContracts": [
4563
- 30506
4563
+ 30528
4564
4564
  ],
4565
4565
  "name": "SuperTokenFactoryHelper",
4566
4566
  "nameLocation": "4808:23:87",
@@ -4568,7 +4568,7 @@
4568
4568
  "nodes": [
4569
4569
  {
4570
4570
  "body": {
4571
- "id": 30504,
4571
+ "id": 30526,
4572
4572
  "nodeType": "Block",
4573
4573
  "src": "4925:53:87",
4574
4574
  "statements": [
@@ -4578,11 +4578,11 @@
4578
4578
  {
4579
4579
  "arguments": [
4580
4580
  {
4581
- "id": 30500,
4581
+ "id": 30522,
4582
4582
  "name": "host",
4583
4583
  "nodeType": "Identifier",
4584
4584
  "overloadedDeclarations": [],
4585
- "referencedDeclaration": 30490,
4585
+ "referencedDeclaration": 30512,
4586
4586
  "src": "4965:4:87",
4587
4587
  "typeDescriptions": {
4588
4588
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
@@ -4597,7 +4597,7 @@
4597
4597
  "typeString": "contract ISuperfluid"
4598
4598
  }
4599
4599
  ],
4600
- "id": 30499,
4600
+ "id": 30521,
4601
4601
  "isConstant": false,
4602
4602
  "isLValue": false,
4603
4603
  "isPure": false,
@@ -4605,28 +4605,28 @@
4605
4605
  "nodeType": "NewExpression",
4606
4606
  "src": "4950:14:87",
4607
4607
  "typeDescriptions": {
4608
- "typeIdentifier": "t_function_creation_nonpayable$_t_contract$_ISuperfluid_$18324_$returns$_t_contract$_SuperToken_$30169_$",
4608
+ "typeIdentifier": "t_function_creation_nonpayable$_t_contract$_ISuperfluid_$18324_$returns$_t_contract$_SuperToken_$30191_$",
4609
4609
  "typeString": "function (contract ISuperfluid) returns (contract SuperToken)"
4610
4610
  },
4611
4611
  "typeName": {
4612
- "id": 30498,
4612
+ "id": 30520,
4613
4613
  "nodeType": "UserDefinedTypeName",
4614
4614
  "pathNode": {
4615
- "id": 30497,
4615
+ "id": 30519,
4616
4616
  "name": "SuperToken",
4617
4617
  "nodeType": "IdentifierPath",
4618
- "referencedDeclaration": 30169,
4618
+ "referencedDeclaration": 30191,
4619
4619
  "src": "4954:10:87"
4620
4620
  },
4621
- "referencedDeclaration": 30169,
4621
+ "referencedDeclaration": 30191,
4622
4622
  "src": "4954:10:87",
4623
4623
  "typeDescriptions": {
4624
- "typeIdentifier": "t_contract$_SuperToken_$30169",
4624
+ "typeIdentifier": "t_contract$_SuperToken_$30191",
4625
4625
  "typeString": "contract SuperToken"
4626
4626
  }
4627
4627
  }
4628
4628
  },
4629
- "id": 30501,
4629
+ "id": 30523,
4630
4630
  "isConstant": false,
4631
4631
  "isLValue": false,
4632
4632
  "isPure": false,
@@ -4637,7 +4637,7 @@
4637
4637
  "src": "4950:20:87",
4638
4638
  "tryCall": false,
4639
4639
  "typeDescriptions": {
4640
- "typeIdentifier": "t_contract$_SuperToken_$30169",
4640
+ "typeIdentifier": "t_contract$_SuperToken_$30191",
4641
4641
  "typeString": "contract SuperToken"
4642
4642
  }
4643
4643
  }
@@ -4645,11 +4645,11 @@
4645
4645
  "expression": {
4646
4646
  "argumentTypes": [
4647
4647
  {
4648
- "typeIdentifier": "t_contract$_SuperToken_$30169",
4648
+ "typeIdentifier": "t_contract$_SuperToken_$30191",
4649
4649
  "typeString": "contract SuperToken"
4650
4650
  }
4651
4651
  ],
4652
- "id": 30496,
4652
+ "id": 30518,
4653
4653
  "isConstant": false,
4654
4654
  "isLValue": false,
4655
4655
  "isPure": true,
@@ -4661,14 +4661,14 @@
4661
4661
  "typeString": "type(address)"
4662
4662
  },
4663
4663
  "typeName": {
4664
- "id": 30495,
4664
+ "id": 30517,
4665
4665
  "name": "address",
4666
4666
  "nodeType": "ElementaryTypeName",
4667
4667
  "src": "4942:7:87",
4668
4668
  "typeDescriptions": {}
4669
4669
  }
4670
4670
  },
4671
- "id": 30502,
4671
+ "id": 30524,
4672
4672
  "isConstant": false,
4673
4673
  "isLValue": false,
4674
4674
  "isPure": false,
@@ -4683,15 +4683,15 @@
4683
4683
  "typeString": "address"
4684
4684
  }
4685
4685
  },
4686
- "functionReturnParameters": 30494,
4687
- "id": 30503,
4686
+ "functionReturnParameters": 30516,
4687
+ "id": 30525,
4688
4688
  "nodeType": "Return",
4689
4689
  "src": "4935:36:87"
4690
4690
  }
4691
4691
  ]
4692
4692
  },
4693
4693
  "functionSelector": "9ed93318",
4694
- "id": 30505,
4694
+ "id": 30527,
4695
4695
  "implemented": true,
4696
4696
  "kind": "function",
4697
4697
  "modifiers": [],
@@ -4699,17 +4699,17 @@
4699
4699
  "nameLocation": "4847:6:87",
4700
4700
  "nodeType": "FunctionDefinition",
4701
4701
  "parameters": {
4702
- "id": 30491,
4702
+ "id": 30513,
4703
4703
  "nodeType": "ParameterList",
4704
4704
  "parameters": [
4705
4705
  {
4706
4706
  "constant": false,
4707
- "id": 30490,
4707
+ "id": 30512,
4708
4708
  "mutability": "mutable",
4709
4709
  "name": "host",
4710
4710
  "nameLocation": "4866:4:87",
4711
4711
  "nodeType": "VariableDeclaration",
4712
- "scope": 30505,
4712
+ "scope": 30527,
4713
4713
  "src": "4854:16:87",
4714
4714
  "stateVariable": false,
4715
4715
  "storageLocation": "default",
@@ -4718,10 +4718,10 @@
4718
4718
  "typeString": "contract ISuperfluid"
4719
4719
  },
4720
4720
  "typeName": {
4721
- "id": 30489,
4721
+ "id": 30511,
4722
4722
  "nodeType": "UserDefinedTypeName",
4723
4723
  "pathNode": {
4724
- "id": 30488,
4724
+ "id": 30510,
4725
4725
  "name": "ISuperfluid",
4726
4726
  "nodeType": "IdentifierPath",
4727
4727
  "referencedDeclaration": 18324,
@@ -4740,17 +4740,17 @@
4740
4740
  "src": "4853:18:87"
4741
4741
  },
4742
4742
  "returnParameters": {
4743
- "id": 30494,
4743
+ "id": 30516,
4744
4744
  "nodeType": "ParameterList",
4745
4745
  "parameters": [
4746
4746
  {
4747
4747
  "constant": false,
4748
- "id": 30493,
4748
+ "id": 30515,
4749
4749
  "mutability": "mutable",
4750
4750
  "name": "logic",
4751
4751
  "nameLocation": "4914:5:87",
4752
4752
  "nodeType": "VariableDeclaration",
4753
- "scope": 30505,
4753
+ "scope": 30527,
4754
4754
  "src": "4906:13:87",
4755
4755
  "stateVariable": false,
4756
4756
  "storageLocation": "default",
@@ -4759,7 +4759,7 @@
4759
4759
  "typeString": "address"
4760
4760
  },
4761
4761
  "typeName": {
4762
- "id": 30492,
4762
+ "id": 30514,
4763
4763
  "name": "address",
4764
4764
  "nodeType": "ElementaryTypeName",
4765
4765
  "src": "4906:7:87",
@@ -4774,14 +4774,14 @@
4774
4774
  ],
4775
4775
  "src": "4905:15:87"
4776
4776
  },
4777
- "scope": 30506,
4777
+ "scope": 30528,
4778
4778
  "src": "4838:140:87",
4779
4779
  "stateMutability": "nonpayable",
4780
4780
  "virtual": false,
4781
4781
  "visibility": "external"
4782
4782
  }
4783
4783
  ],
4784
- "scope": 30545,
4784
+ "scope": 30567,
4785
4785
  "src": "4799:181:87",
4786
4786
  "usedErrors": []
4787
4787
  },
@@ -4790,30 +4790,30 @@
4790
4790
  "baseContracts": [
4791
4791
  {
4792
4792
  "baseName": {
4793
- "id": 30507,
4793
+ "id": 30529,
4794
4794
  "name": "SuperTokenFactoryBase",
4795
4795
  "nodeType": "IdentifierPath",
4796
- "referencedDeclaration": 30487,
4796
+ "referencedDeclaration": 30509,
4797
4797
  "src": "5012:21:87"
4798
4798
  },
4799
- "id": 30508,
4799
+ "id": 30530,
4800
4800
  "nodeType": "InheritanceSpecifier",
4801
4801
  "src": "5012:21:87"
4802
4802
  }
4803
4803
  ],
4804
4804
  "canonicalName": "SuperTokenFactory",
4805
4805
  "contractDependencies": [
4806
- 28577,
4807
- 34895
4806
+ 28599,
4807
+ 34914
4808
4808
  ],
4809
4809
  "contractKind": "contract",
4810
4810
  "fullyImplemented": true,
4811
- "id": 30544,
4811
+ "id": 30566,
4812
4812
  "linearizedBaseContracts": [
4813
- 30544,
4814
- 30487,
4813
+ 30566,
4814
+ 30509,
4815
4815
  17850,
4816
- 34838,
4816
+ 34857,
4817
4817
  762
4818
4818
  ],
4819
4819
  "name": "SuperTokenFactory",
@@ -4822,33 +4822,33 @@
4822
4822
  "nodes": [
4823
4823
  {
4824
4824
  "constant": false,
4825
- "id": 30511,
4825
+ "id": 30533,
4826
4826
  "mutability": "immutable",
4827
4827
  "name": "_helper",
4828
4828
  "nameLocation": "5082:7:87",
4829
4829
  "nodeType": "VariableDeclaration",
4830
- "scope": 30544,
4830
+ "scope": 30566,
4831
4831
  "src": "5040:49:87",
4832
4832
  "stateVariable": true,
4833
4833
  "storageLocation": "default",
4834
4834
  "typeDescriptions": {
4835
- "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30506",
4835
+ "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30528",
4836
4836
  "typeString": "contract SuperTokenFactoryHelper"
4837
4837
  },
4838
4838
  "typeName": {
4839
- "id": 30510,
4839
+ "id": 30532,
4840
4840
  "nodeType": "UserDefinedTypeName",
4841
4841
  "pathNode": {
4842
- "id": 30509,
4842
+ "id": 30531,
4843
4843
  "name": "SuperTokenFactoryHelper",
4844
4844
  "nodeType": "IdentifierPath",
4845
- "referencedDeclaration": 30506,
4845
+ "referencedDeclaration": 30528,
4846
4846
  "src": "5040:23:87"
4847
4847
  },
4848
- "referencedDeclaration": 30506,
4848
+ "referencedDeclaration": 30528,
4849
4849
  "src": "5040:23:87",
4850
4850
  "typeDescriptions": {
4851
- "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30506",
4851
+ "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30528",
4852
4852
  "typeString": "contract SuperTokenFactoryHelper"
4853
4853
  }
4854
4854
  },
@@ -4856,67 +4856,67 @@
4856
4856
  },
4857
4857
  {
4858
4858
  "body": {
4859
- "id": 30527,
4859
+ "id": 30549,
4860
4860
  "nodeType": "Block",
4861
4861
  "src": "5273:33:87",
4862
4862
  "statements": [
4863
4863
  {
4864
4864
  "expression": {
4865
- "id": 30525,
4865
+ "id": 30547,
4866
4866
  "isConstant": false,
4867
4867
  "isLValue": false,
4868
4868
  "isPure": false,
4869
4869
  "lValueRequested": false,
4870
4870
  "leftHandSide": {
4871
- "id": 30523,
4871
+ "id": 30545,
4872
4872
  "name": "_helper",
4873
4873
  "nodeType": "Identifier",
4874
4874
  "overloadedDeclarations": [],
4875
- "referencedDeclaration": 30511,
4875
+ "referencedDeclaration": 30533,
4876
4876
  "src": "5283:7:87",
4877
4877
  "typeDescriptions": {
4878
- "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30506",
4878
+ "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30528",
4879
4879
  "typeString": "contract SuperTokenFactoryHelper"
4880
4880
  }
4881
4881
  },
4882
4882
  "nodeType": "Assignment",
4883
4883
  "operator": "=",
4884
4884
  "rightHandSide": {
4885
- "id": 30524,
4885
+ "id": 30546,
4886
4886
  "name": "helper",
4887
4887
  "nodeType": "Identifier",
4888
4888
  "overloadedDeclarations": [],
4889
- "referencedDeclaration": 30517,
4889
+ "referencedDeclaration": 30539,
4890
4890
  "src": "5293:6:87",
4891
4891
  "typeDescriptions": {
4892
- "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30506",
4892
+ "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30528",
4893
4893
  "typeString": "contract SuperTokenFactoryHelper"
4894
4894
  }
4895
4895
  },
4896
4896
  "src": "5283:16:87",
4897
4897
  "typeDescriptions": {
4898
- "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30506",
4898
+ "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30528",
4899
4899
  "typeString": "contract SuperTokenFactoryHelper"
4900
4900
  }
4901
4901
  },
4902
- "id": 30526,
4902
+ "id": 30548,
4903
4903
  "nodeType": "ExpressionStatement",
4904
4904
  "src": "5283:16:87"
4905
4905
  }
4906
4906
  ]
4907
4907
  },
4908
- "id": 30528,
4908
+ "id": 30550,
4909
4909
  "implemented": true,
4910
4910
  "kind": "constructor",
4911
4911
  "modifiers": [
4912
4912
  {
4913
4913
  "arguments": [
4914
4914
  {
4915
- "id": 30520,
4915
+ "id": 30542,
4916
4916
  "name": "host",
4917
4917
  "nodeType": "Identifier",
4918
4918
  "overloadedDeclarations": [],
4919
- "referencedDeclaration": 30514,
4919
+ "referencedDeclaration": 30536,
4920
4920
  "src": "5210:4:87",
4921
4921
  "typeDescriptions": {
4922
4922
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
@@ -4924,13 +4924,13 @@
4924
4924
  }
4925
4925
  }
4926
4926
  ],
4927
- "id": 30521,
4927
+ "id": 30543,
4928
4928
  "kind": "baseConstructorSpecifier",
4929
4929
  "modifierName": {
4930
- "id": 30519,
4930
+ "id": 30541,
4931
4931
  "name": "SuperTokenFactoryBase",
4932
4932
  "nodeType": "IdentifierPath",
4933
- "referencedDeclaration": 30487,
4933
+ "referencedDeclaration": 30509,
4934
4934
  "src": "5188:21:87"
4935
4935
  },
4936
4936
  "nodeType": "ModifierInvocation",
@@ -4941,17 +4941,17 @@
4941
4941
  "nameLocation": "-1:-1:-1",
4942
4942
  "nodeType": "FunctionDefinition",
4943
4943
  "parameters": {
4944
- "id": 30518,
4944
+ "id": 30540,
4945
4945
  "nodeType": "ParameterList",
4946
4946
  "parameters": [
4947
4947
  {
4948
4948
  "constant": false,
4949
- "id": 30514,
4949
+ "id": 30536,
4950
4950
  "mutability": "mutable",
4951
4951
  "name": "host",
4952
4952
  "nameLocation": "5129:4:87",
4953
4953
  "nodeType": "VariableDeclaration",
4954
- "scope": 30528,
4954
+ "scope": 30550,
4955
4955
  "src": "5117:16:87",
4956
4956
  "stateVariable": false,
4957
4957
  "storageLocation": "default",
@@ -4960,10 +4960,10 @@
4960
4960
  "typeString": "contract ISuperfluid"
4961
4961
  },
4962
4962
  "typeName": {
4963
- "id": 30513,
4963
+ "id": 30535,
4964
4964
  "nodeType": "UserDefinedTypeName",
4965
4965
  "pathNode": {
4966
- "id": 30512,
4966
+ "id": 30534,
4967
4967
  "name": "ISuperfluid",
4968
4968
  "nodeType": "IdentifierPath",
4969
4969
  "referencedDeclaration": 18324,
@@ -4980,33 +4980,33 @@
4980
4980
  },
4981
4981
  {
4982
4982
  "constant": false,
4983
- "id": 30517,
4983
+ "id": 30539,
4984
4984
  "mutability": "mutable",
4985
4985
  "name": "helper",
4986
4986
  "nameLocation": "5167:6:87",
4987
4987
  "nodeType": "VariableDeclaration",
4988
- "scope": 30528,
4988
+ "scope": 30550,
4989
4989
  "src": "5143:30:87",
4990
4990
  "stateVariable": false,
4991
4991
  "storageLocation": "default",
4992
4992
  "typeDescriptions": {
4993
- "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30506",
4993
+ "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30528",
4994
4994
  "typeString": "contract SuperTokenFactoryHelper"
4995
4995
  },
4996
4996
  "typeName": {
4997
- "id": 30516,
4997
+ "id": 30538,
4998
4998
  "nodeType": "UserDefinedTypeName",
4999
4999
  "pathNode": {
5000
- "id": 30515,
5000
+ "id": 30537,
5001
5001
  "name": "SuperTokenFactoryHelper",
5002
5002
  "nodeType": "IdentifierPath",
5003
- "referencedDeclaration": 30506,
5003
+ "referencedDeclaration": 30528,
5004
5004
  "src": "5143:23:87"
5005
5005
  },
5006
- "referencedDeclaration": 30506,
5006
+ "referencedDeclaration": 30528,
5007
5007
  "src": "5143:23:87",
5008
5008
  "typeDescriptions": {
5009
- "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30506",
5009
+ "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30528",
5010
5010
  "typeString": "contract SuperTokenFactoryHelper"
5011
5011
  }
5012
5012
  },
@@ -5016,12 +5016,12 @@
5016
5016
  "src": "5107:72:87"
5017
5017
  },
5018
5018
  "returnParameters": {
5019
- "id": 30522,
5019
+ "id": 30544,
5020
5020
  "nodeType": "ParameterList",
5021
5021
  "parameters": [],
5022
5022
  "src": "5273:0:87"
5023
5023
  },
5024
- "scope": 30544,
5024
+ "scope": 30566,
5025
5025
  "src": "5096:210:87",
5026
5026
  "stateMutability": "nonpayable",
5027
5027
  "virtual": false,
@@ -5029,10 +5029,10 @@
5029
5029
  },
5030
5030
  {
5031
5031
  "baseFunctions": [
5032
- 30306
5032
+ 30328
5033
5033
  ],
5034
5034
  "body": {
5035
- "id": 30542,
5035
+ "id": 30564,
5036
5036
  "nodeType": "Block",
5037
5037
  "src": "5423:44:87",
5038
5038
  "statements": [
@@ -5040,11 +5040,11 @@
5040
5040
  "expression": {
5041
5041
  "arguments": [
5042
5042
  {
5043
- "id": 30539,
5043
+ "id": 30561,
5044
5044
  "name": "host",
5045
5045
  "nodeType": "Identifier",
5046
5046
  "overloadedDeclarations": [],
5047
- "referencedDeclaration": 30531,
5047
+ "referencedDeclaration": 30553,
5048
5048
  "src": "5455:4:87",
5049
5049
  "typeDescriptions": {
5050
5050
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
@@ -5060,32 +5060,32 @@
5060
5060
  }
5061
5061
  ],
5062
5062
  "expression": {
5063
- "id": 30537,
5063
+ "id": 30559,
5064
5064
  "name": "_helper",
5065
5065
  "nodeType": "Identifier",
5066
5066
  "overloadedDeclarations": [],
5067
- "referencedDeclaration": 30511,
5067
+ "referencedDeclaration": 30533,
5068
5068
  "src": "5440:7:87",
5069
5069
  "typeDescriptions": {
5070
- "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30506",
5070
+ "typeIdentifier": "t_contract$_SuperTokenFactoryHelper_$30528",
5071
5071
  "typeString": "contract SuperTokenFactoryHelper"
5072
5072
  }
5073
5073
  },
5074
- "id": 30538,
5074
+ "id": 30560,
5075
5075
  "isConstant": false,
5076
5076
  "isLValue": false,
5077
5077
  "isPure": false,
5078
5078
  "lValueRequested": false,
5079
5079
  "memberName": "create",
5080
5080
  "nodeType": "MemberAccess",
5081
- "referencedDeclaration": 30505,
5081
+ "referencedDeclaration": 30527,
5082
5082
  "src": "5440:14:87",
5083
5083
  "typeDescriptions": {
5084
5084
  "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISuperfluid_$18324_$returns$_t_address_$",
5085
5085
  "typeString": "function (contract ISuperfluid) external returns (address)"
5086
5086
  }
5087
5087
  },
5088
- "id": 30540,
5088
+ "id": 30562,
5089
5089
  "isConstant": false,
5090
5090
  "isLValue": false,
5091
5091
  "isPure": false,
@@ -5100,15 +5100,15 @@
5100
5100
  "typeString": "address"
5101
5101
  }
5102
5102
  },
5103
- "functionReturnParameters": 30536,
5104
- "id": 30541,
5103
+ "functionReturnParameters": 30558,
5104
+ "id": 30563,
5105
5105
  "nodeType": "Return",
5106
5106
  "src": "5433:27:87"
5107
5107
  }
5108
5108
  ]
5109
5109
  },
5110
5110
  "functionSelector": "4dcc4d79",
5111
- "id": 30543,
5111
+ "id": 30565,
5112
5112
  "implemented": true,
5113
5113
  "kind": "function",
5114
5114
  "modifiers": [],
@@ -5116,23 +5116,23 @@
5116
5116
  "nameLocation": "5321:21:87",
5117
5117
  "nodeType": "FunctionDefinition",
5118
5118
  "overrides": {
5119
- "id": 30533,
5119
+ "id": 30555,
5120
5120
  "nodeType": "OverrideSpecifier",
5121
5121
  "overrides": [],
5122
5122
  "src": "5378:8:87"
5123
5123
  },
5124
5124
  "parameters": {
5125
- "id": 30532,
5125
+ "id": 30554,
5126
5126
  "nodeType": "ParameterList",
5127
5127
  "parameters": [
5128
5128
  {
5129
5129
  "constant": false,
5130
- "id": 30531,
5130
+ "id": 30553,
5131
5131
  "mutability": "mutable",
5132
5132
  "name": "host",
5133
5133
  "nameLocation": "5355:4:87",
5134
5134
  "nodeType": "VariableDeclaration",
5135
- "scope": 30543,
5135
+ "scope": 30565,
5136
5136
  "src": "5343:16:87",
5137
5137
  "stateVariable": false,
5138
5138
  "storageLocation": "default",
@@ -5141,10 +5141,10 @@
5141
5141
  "typeString": "contract ISuperfluid"
5142
5142
  },
5143
5143
  "typeName": {
5144
- "id": 30530,
5144
+ "id": 30552,
5145
5145
  "nodeType": "UserDefinedTypeName",
5146
5146
  "pathNode": {
5147
- "id": 30529,
5147
+ "id": 30551,
5148
5148
  "name": "ISuperfluid",
5149
5149
  "nodeType": "IdentifierPath",
5150
5150
  "referencedDeclaration": 18324,
@@ -5163,17 +5163,17 @@
5163
5163
  "src": "5342:18:87"
5164
5164
  },
5165
5165
  "returnParameters": {
5166
- "id": 30536,
5166
+ "id": 30558,
5167
5167
  "nodeType": "ParameterList",
5168
5168
  "parameters": [
5169
5169
  {
5170
5170
  "constant": false,
5171
- "id": 30535,
5171
+ "id": 30557,
5172
5172
  "mutability": "mutable",
5173
5173
  "name": "logic",
5174
5174
  "nameLocation": "5412:5:87",
5175
5175
  "nodeType": "VariableDeclaration",
5176
- "scope": 30543,
5176
+ "scope": 30565,
5177
5177
  "src": "5404:13:87",
5178
5178
  "stateVariable": false,
5179
5179
  "storageLocation": "default",
@@ -5182,7 +5182,7 @@
5182
5182
  "typeString": "address"
5183
5183
  },
5184
5184
  "typeName": {
5185
- "id": 30534,
5185
+ "id": 30556,
5186
5186
  "name": "address",
5187
5187
  "nodeType": "ElementaryTypeName",
5188
5188
  "src": "5404:7:87",
@@ -5197,14 +5197,14 @@
5197
5197
  ],
5198
5198
  "src": "5403:15:87"
5199
5199
  },
5200
- "scope": 30544,
5200
+ "scope": 30566,
5201
5201
  "src": "5312:155:87",
5202
5202
  "stateMutability": "nonpayable",
5203
5203
  "virtual": false,
5204
5204
  "visibility": "external"
5205
5205
  }
5206
5206
  ],
5207
- "scope": 30545,
5207
+ "scope": 30567,
5208
5208
  "src": "4982:487:87",
5209
5209
  "usedErrors": []
5210
5210
  }
@@ -5213,11 +5213,11 @@
5213
5213
  },
5214
5214
  "compiler": {
5215
5215
  "name": "solc",
5216
- "version": "0.8.13+commit.abaa5c0e.Emscripten.clang"
5216
+ "version": "0.8.14+commit.80d49f37.Emscripten.clang"
5217
5217
  },
5218
5218
  "networks": {},
5219
5219
  "schemaVersion": "3.4.7",
5220
- "updatedAt": "2022-06-03T09:45:14.301Z",
5220
+ "updatedAt": "2022-06-15T22:03:58.956Z",
5221
5221
  "devdoc": {
5222
5222
  "kind": "dev",
5223
5223
  "methods": {},