@etherisc/gif-next 0.0.2-da77c50-824 → 0.0.2-dd8c542-531

Sign up to get free protection for your applications and to get access to all the features.
Files changed (417) hide show
  1. package/README.md +242 -11
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +302 -23
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +744 -0
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +217 -23
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +152 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +90 -171
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +55 -177
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +615 -63
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +620 -70
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +4 -0
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +66 -0
  20. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +4 -0
  21. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +24 -0
  22. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +4 -0
  23. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +42 -0
  24. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  36. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  37. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  38. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  39. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  40. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  41. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  42. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  43. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  44. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  45. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  46. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  47. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +788 -0
  48. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  49. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +185 -0
  50. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +4 -0
  51. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +1082 -0
  52. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  53. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +928 -1226
  54. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  55. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
  56. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  57. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +496 -0
  58. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/Instance.sol/Instance.json +2469 -1188
  60. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  61. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +940 -0
  62. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +1 -1
  63. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +572 -122
  64. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1422 -0
  66. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1066 -0
  68. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +560 -0
  70. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  71. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +285 -0
  72. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +521 -0
  74. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +113 -0
  76. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  77. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +429 -0
  78. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  79. package/artifacts/contracts/instance/{module/lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
  80. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +502 -0
  82. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +211 -0
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  87. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  89. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  90. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  91. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  92. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  93. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IRisk.sol/IRisk.json} +2 -2
  94. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  95. package/artifacts/contracts/instance/module/{pool/IPoolModule.sol/IPool.json → ISetup.sol/ISetup.json} +2 -2
  96. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  97. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  98. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  99. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +923 -0
  100. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +440 -0
  102. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +392 -97
  104. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  105. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +671 -0
  106. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +428 -0
  108. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  109. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +669 -0
  110. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  111. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +190 -88
  112. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  113. package/artifacts/contracts/instance/service/{ComponentServiceBase.sol/ComponentServiceBase.json → IDistributionService.sol/IDistributionService.json} +217 -71
  114. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  115. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +664 -0
  116. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  117. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +205 -82
  118. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  119. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +214 -155
  120. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  121. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +971 -0
  122. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +464 -0
  124. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  125. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +324 -118
  126. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +428 -0
  128. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  129. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +315 -245
  130. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +420 -0
  132. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  133. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +186 -12
  134. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  135. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +309 -41
  136. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  137. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +886 -0
  138. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  139. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  140. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  141. package/artifacts/contracts/registry/Registry.sol/Registry.json +385 -129
  142. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  143. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1195 -0
  144. package/artifacts/contracts/registry/RegistryServiceAccessManager.sol/RegistryServiceAccessManager.dbg.json +4 -0
  145. package/artifacts/contracts/registry/RegistryServiceAccessManager.sol/RegistryServiceAccessManager.json +275 -0
  146. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +451 -0
  148. package/artifacts/contracts/registry/RegistryServiceReleaseManager.sol/RegistryServiceReleaseManager.dbg.json +4 -0
  149. package/artifacts/contracts/registry/RegistryServiceReleaseManager.sol/RegistryServiceReleaseManager.json +521 -0
  150. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  151. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +397 -0
  152. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  153. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  154. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  155. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  156. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
  158. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  159. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
  160. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  161. package/artifacts/contracts/{instance/service → shared}/IService.sol/IService.json +188 -67
  162. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  163. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +60 -19
  164. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  165. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  166. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  167. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  168. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
  170. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
  171. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +442 -0
  172. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  173. package/artifacts/contracts/{instance/service/ServiceBase.sol/ServiceBase.json → shared/Service.sol/Service.json} +229 -61
  174. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  175. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  176. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  177. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  178. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +83 -19
  180. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  181. package/artifacts/contracts/test/TestFee.sol/TestFee.json +30 -6
  182. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  183. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
  184. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  185. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +44 -10
  186. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  187. package/artifacts/contracts/test/TestService.sol/TestService.json +283 -90
  188. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  189. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
  190. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  191. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +14 -18
  192. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  193. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +106 -50
  194. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
  195. package/artifacts/contracts/test/Usdc.sol/USDC.json +376 -0
  196. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  197. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  198. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  199. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  200. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  201. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
  202. package/artifacts/contracts/types/Fee.sol/FeeLib.json +257 -0
  203. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
  204. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +125 -0
  205. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  206. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +65 -4
  207. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  208. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  209. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  210. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  211. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  212. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  213. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  214. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  215. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  216. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  217. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  218. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +156 -0
  219. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  220. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  221. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  222. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +15 -2
  223. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  224. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  225. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  226. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +479 -0
  227. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  228. package/artifacts/contracts/types/Version.sol/VersionLib.json +101 -2
  229. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  230. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  231. package/contracts/components/BaseComponent.sol +75 -32
  232. package/contracts/components/Distribution.sol +163 -0
  233. package/contracts/components/IBaseComponent.sol +15 -3
  234. package/contracts/components/IDistributionComponent.sol +44 -0
  235. package/contracts/components/IPoolComponent.sol +19 -10
  236. package/contracts/components/IProductComponent.sol +25 -9
  237. package/contracts/components/Pool.sol +132 -35
  238. package/contracts/components/Product.sol +211 -36
  239. package/contracts/experiment/cloning/Cloner.sol +47 -0
  240. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
  241. package/contracts/instance/BundleManager.sol +129 -0
  242. package/contracts/instance/Cloneable.sol +46 -0
  243. package/contracts/instance/IAccessManagerSimple.sol +391 -0
  244. package/contracts/instance/IInstance.sol +53 -43
  245. package/contracts/instance/IInstanceBase.sol +26 -0
  246. package/contracts/instance/IInstanceService.sol +34 -0
  247. package/contracts/instance/Instance.sol +447 -45
  248. package/contracts/instance/InstanceAccessManager.sol +288 -0
  249. package/contracts/instance/InstanceBase.sol +33 -66
  250. package/contracts/instance/InstanceReader.sol +315 -0
  251. package/contracts/instance/InstanceService.sol +299 -0
  252. package/contracts/instance/InstanceServiceManager.sol +58 -0
  253. package/contracts/instance/ObjectManager.sol +101 -0
  254. package/contracts/instance/base/ComponentServiceBase.sol +72 -0
  255. package/contracts/instance/base/IInstanceBase.sol +23 -0
  256. package/contracts/instance/base/IKeyValueStore.sol +49 -0
  257. package/contracts/instance/base/ILifecycle.sol +30 -0
  258. package/contracts/instance/base/KeyValueStore.sol +172 -0
  259. package/contracts/instance/{module/lifecycle/LifecycleModule.sol → base/Lifecycle.sol} +51 -40
  260. package/contracts/instance/module/IAccess.sol +38 -0
  261. package/contracts/instance/module/IBundle.sol +20 -0
  262. package/contracts/instance/module/IDistribution.sol +39 -0
  263. package/contracts/instance/module/IPolicy.sol +45 -0
  264. package/contracts/instance/module/IRisk.sol +11 -0
  265. package/contracts/instance/module/ISetup.sol +46 -0
  266. package/contracts/instance/module/ITreasury.sol +23 -0
  267. package/contracts/instance/service/BundleService.sol +260 -0
  268. package/contracts/instance/service/BundleServiceManager.sol +55 -0
  269. package/contracts/instance/service/ComponentOwnerService.sol +246 -105
  270. package/contracts/instance/service/DistributionService.sol +114 -0
  271. package/contracts/instance/service/DistributionServiceManager.sol +55 -0
  272. package/contracts/instance/service/IBundleService.sol +45 -0
  273. package/contracts/instance/service/IComponentOwnerService.sol +1 -3
  274. package/contracts/instance/service/IDistributionService.sol +12 -0
  275. package/contracts/instance/service/IPolicyService.sol +87 -0
  276. package/contracts/instance/service/IPoolService.sol +8 -18
  277. package/contracts/instance/service/IProductService.sol +21 -39
  278. package/contracts/instance/service/PolicyService.sol +503 -0
  279. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  280. package/contracts/instance/service/PoolService.sol +90 -66
  281. package/contracts/instance/service/PoolServiceManager.sol +55 -0
  282. package/contracts/instance/service/ProductService.sol +109 -299
  283. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  284. package/contracts/registry/ChainNft.sol +79 -36
  285. package/contracts/registry/IRegistry.sol +45 -25
  286. package/contracts/registry/IRegistryService.sol +54 -0
  287. package/contracts/registry/ITransferInterceptor.sol +6 -0
  288. package/contracts/registry/Registry.sol +292 -288
  289. package/contracts/registry/RegistryService.sol +330 -0
  290. package/contracts/registry/RegistryServiceAccessManager.sol +210 -0
  291. package/contracts/registry/RegistryServiceManager.sol +60 -0
  292. package/contracts/registry/RegistryServiceReleaseManager.sol +366 -0
  293. package/contracts/registry/TokenRegistry.sol +110 -0
  294. package/contracts/shared/ContractDeployerLib.sol +72 -0
  295. package/contracts/shared/ERC165.sol +6 -2
  296. package/contracts/shared/INftOwnable.sol +22 -0
  297. package/contracts/shared/IRegisterable.sol +8 -15
  298. package/contracts/shared/IService.sol +16 -0
  299. package/contracts/shared/IVersionable.sol +56 -12
  300. package/contracts/shared/NftOwnable.sol +134 -0
  301. package/contracts/shared/ProxyManager.sol +94 -0
  302. package/contracts/shared/Registerable.sol +63 -59
  303. package/contracts/shared/RegisterableUpgradable.sol +16 -0
  304. package/contracts/shared/Service.sol +58 -0
  305. package/contracts/shared/TokenHandler.sol +27 -0
  306. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  307. package/contracts/shared/Versionable.sol +112 -57
  308. package/contracts/test/TestFee.sol +4 -4
  309. package/contracts/test/TestRegisterable.sol +5 -6
  310. package/contracts/test/TestRoleId.sol +2 -2
  311. package/contracts/test/TestService.sol +8 -18
  312. package/contracts/test/TestVersion.sol +4 -7
  313. package/contracts/test/TestVersionable.sol +2 -5
  314. package/contracts/test/Usdc.sol +26 -0
  315. package/contracts/types/DistributorType.sol +55 -0
  316. package/contracts/types/Fee.sol +44 -20
  317. package/contracts/types/Key32.sol +50 -0
  318. package/contracts/types/NftId.sol +16 -1
  319. package/contracts/types/NftIdSet.sol +26 -24
  320. package/contracts/types/NumberId.sol +52 -0
  321. package/contracts/types/ObjectType.sol +51 -14
  322. package/contracts/types/Referral.sol +85 -0
  323. package/contracts/types/RiskId.sol +43 -0
  324. package/contracts/types/RoleId.sol +66 -11
  325. package/contracts/types/StateId.sol +12 -2
  326. package/contracts/types/Timestamp.sol +7 -3
  327. package/contracts/types/UFixed.sol +144 -25
  328. package/contracts/types/Version.sol +42 -26
  329. package/package.json +4 -3
  330. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  331. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  332. package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.dbg.json +0 -4
  333. package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.json +0 -50
  334. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  335. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  336. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  337. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  338. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  339. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  340. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -276
  341. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  342. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  343. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -276
  344. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  345. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
  346. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  347. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  348. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  349. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
  350. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  351. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  352. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  353. package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  354. package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  355. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  356. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  357. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
  358. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  359. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
  360. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  361. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  362. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  363. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  364. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  365. package/artifacts/contracts/instance/module/product/IProductModule.sol/IProductModule.dbg.json +0 -4
  366. package/artifacts/contracts/instance/module/product/IProductModule.sol/IProductModule.json +0 -10
  367. package/artifacts/contracts/instance/module/product/ProductModule.sol/ProductModule.dbg.json +0 -4
  368. package/artifacts/contracts/instance/module/product/ProductModule.sol/ProductModule.json +0 -10
  369. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  370. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  371. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -538
  372. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  373. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  374. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  375. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -538
  376. package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  377. package/artifacts/contracts/instance/service/IService.sol/IService.dbg.json +0 -4
  378. package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  379. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  380. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  381. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  382. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  383. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  384. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  385. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  386. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  387. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  388. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  389. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  390. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
  391. package/contracts/experiment/statemachine/README.md +0 -112
  392. package/contracts/instance/IInstanceLinked.sol +0 -8
  393. package/contracts/instance/IServiceLinked.sol +0 -12
  394. package/contracts/instance/module/access/Access.sol +0 -149
  395. package/contracts/instance/module/access/IAccess.sol +0 -53
  396. package/contracts/instance/module/bundle/BundleModule.sol +0 -228
  397. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  398. package/contracts/instance/module/component/ComponentModule.sol +0 -104
  399. package/contracts/instance/module/component/IComponent.sol +0 -53
  400. package/contracts/instance/module/lifecycle/ILifecycle.sol +0 -47
  401. package/contracts/instance/module/policy/IPolicy.sol +0 -60
  402. package/contracts/instance/module/policy/PolicyModule.sol +0 -84
  403. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  404. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  405. package/contracts/instance/module/product/IProductModule.sol +0 -6
  406. package/contracts/instance/module/product/ProductModule.sol +0 -8
  407. package/contracts/instance/module/treasury/ITreasury.sol +0 -104
  408. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  409. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -148
  410. package/contracts/instance/service/ComponentServiceBase.sol +0 -41
  411. package/contracts/instance/service/IService.sol +0 -15
  412. package/contracts/instance/service/ServiceBase.sol +0 -39
  413. package/contracts/registry/IChainNft.sol +0 -21
  414. package/contracts/registry/IRegistryLinked.sol +0 -8
  415. package/contracts/shared/IOwnable.sol +0 -6
  416. package/contracts/test/TestPool.sol +0 -22
  417. package/contracts/test/TestProduct.sol +0 -44
@@ -0,0 +1,1195 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "RegistryService",
4
+ "sourceName": "contracts/registry/RegistryService.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "authority",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "name": "AccessManagedInvalidAuthority",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "caller",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "internalType": "uint32",
26
+ "name": "delay",
27
+ "type": "uint32"
28
+ }
29
+ ],
30
+ "name": "AccessManagedRequiredDelay",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "caller",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "AccessManagedUnauthorized",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "registry",
49
+ "type": "address"
50
+ },
51
+ {
52
+ "internalType": "NftId",
53
+ "name": "nftId",
54
+ "type": "uint96"
55
+ }
56
+ ],
57
+ "name": "ErrorAlreadyLinked",
58
+ "type": "error"
59
+ },
60
+ {
61
+ "inputs": [
62
+ {
63
+ "internalType": "address",
64
+ "name": "contractAddress",
65
+ "type": "address"
66
+ }
67
+ ],
68
+ "name": "ErrorContractNotRegistered",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "address",
75
+ "name": "account",
76
+ "type": "address"
77
+ }
78
+ ],
79
+ "name": "ErrorNotOwner",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "inputs": [
84
+ {
85
+ "internalType": "address",
86
+ "name": "registryAddress",
87
+ "type": "address"
88
+ }
89
+ ],
90
+ "name": "ErrorNotRegistry",
91
+ "type": "error"
92
+ },
93
+ {
94
+ "inputs": [
95
+ {
96
+ "internalType": "address",
97
+ "name": "registryAddress",
98
+ "type": "address"
99
+ }
100
+ ],
101
+ "name": "ErrorRegisterableNotRegistry",
102
+ "type": "error"
103
+ },
104
+ {
105
+ "inputs": [],
106
+ "name": "ErrorRegistryAddressZero",
107
+ "type": "error"
108
+ },
109
+ {
110
+ "inputs": [
111
+ {
112
+ "internalType": "address",
113
+ "name": "registry",
114
+ "type": "address"
115
+ }
116
+ ],
117
+ "name": "ErrorRegistryAlreadyInitialized",
118
+ "type": "error"
119
+ },
120
+ {
121
+ "inputs": [],
122
+ "name": "ErrorRegistryNotInitialized",
123
+ "type": "error"
124
+ },
125
+ {
126
+ "inputs": [
127
+ {
128
+ "internalType": "address",
129
+ "name": "registerableAddress",
130
+ "type": "address"
131
+ }
132
+ ],
133
+ "name": "InvalidAddress",
134
+ "type": "error"
135
+ },
136
+ {
137
+ "inputs": [
138
+ {
139
+ "internalType": "address",
140
+ "name": "initialOwner",
141
+ "type": "address"
142
+ }
143
+ ],
144
+ "name": "InvalidInitialOwner",
145
+ "type": "error"
146
+ },
147
+ {
148
+ "inputs": [],
149
+ "name": "InvalidInitialization",
150
+ "type": "error"
151
+ },
152
+ {
153
+ "inputs": [],
154
+ "name": "NotDistribution",
155
+ "type": "error"
156
+ },
157
+ {
158
+ "inputs": [],
159
+ "name": "NotInitializing",
160
+ "type": "error"
161
+ },
162
+ {
163
+ "inputs": [],
164
+ "name": "NotInstance",
165
+ "type": "error"
166
+ },
167
+ {
168
+ "inputs": [],
169
+ "name": "NotPool",
170
+ "type": "error"
171
+ },
172
+ {
173
+ "inputs": [],
174
+ "name": "NotProduct",
175
+ "type": "error"
176
+ },
177
+ {
178
+ "inputs": [
179
+ {
180
+ "internalType": "address",
181
+ "name": "expectedOwner",
182
+ "type": "address"
183
+ }
184
+ ],
185
+ "name": "NotRegisterableOwner",
186
+ "type": "error"
187
+ },
188
+ {
189
+ "inputs": [],
190
+ "name": "NotRegistryOwner",
191
+ "type": "error"
192
+ },
193
+ {
194
+ "inputs": [],
195
+ "name": "NotService",
196
+ "type": "error"
197
+ },
198
+ {
199
+ "inputs": [],
200
+ "name": "RegisterableOwnerIsRegistered",
201
+ "type": "error"
202
+ },
203
+ {
204
+ "inputs": [],
205
+ "name": "RegisterableOwnerIsZero",
206
+ "type": "error"
207
+ },
208
+ {
209
+ "inputs": [],
210
+ "name": "SelfRegistration",
211
+ "type": "error"
212
+ },
213
+ {
214
+ "inputs": [
215
+ {
216
+ "internalType": "ObjectType",
217
+ "name": "expected",
218
+ "type": "uint8"
219
+ },
220
+ {
221
+ "internalType": "ObjectType",
222
+ "name": "found",
223
+ "type": "uint8"
224
+ }
225
+ ],
226
+ "name": "UnexpectedRegisterableType",
227
+ "type": "error"
228
+ },
229
+ {
230
+ "anonymous": false,
231
+ "inputs": [
232
+ {
233
+ "indexed": false,
234
+ "internalType": "address",
235
+ "name": "authority",
236
+ "type": "address"
237
+ }
238
+ ],
239
+ "name": "AuthorityUpdated",
240
+ "type": "event"
241
+ },
242
+ {
243
+ "anonymous": false,
244
+ "inputs": [
245
+ {
246
+ "indexed": false,
247
+ "internalType": "uint64",
248
+ "name": "version",
249
+ "type": "uint64"
250
+ }
251
+ ],
252
+ "name": "Initialized",
253
+ "type": "event"
254
+ },
255
+ {
256
+ "anonymous": false,
257
+ "inputs": [
258
+ {
259
+ "indexed": false,
260
+ "internalType": "Version",
261
+ "name": "version",
262
+ "type": "uint24"
263
+ },
264
+ {
265
+ "indexed": false,
266
+ "internalType": "address",
267
+ "name": "implementation",
268
+ "type": "address"
269
+ },
270
+ {
271
+ "indexed": false,
272
+ "internalType": "address",
273
+ "name": "activatedBy",
274
+ "type": "address"
275
+ }
276
+ ],
277
+ "name": "LogVersionableInitialized",
278
+ "type": "event"
279
+ },
280
+ {
281
+ "inputs": [],
282
+ "name": "NFT_LOCK_ADDRESS",
283
+ "outputs": [
284
+ {
285
+ "internalType": "address",
286
+ "name": "",
287
+ "type": "address"
288
+ }
289
+ ],
290
+ "stateMutability": "view",
291
+ "type": "function"
292
+ },
293
+ {
294
+ "inputs": [],
295
+ "name": "REGISTERABLE_LOCATION_V1",
296
+ "outputs": [
297
+ {
298
+ "internalType": "bytes32",
299
+ "name": "",
300
+ "type": "bytes32"
301
+ }
302
+ ],
303
+ "stateMutability": "view",
304
+ "type": "function"
305
+ },
306
+ {
307
+ "inputs": [],
308
+ "name": "REGISTRY_CREATION_CODE_HASH",
309
+ "outputs": [
310
+ {
311
+ "internalType": "bytes32",
312
+ "name": "",
313
+ "type": "bytes32"
314
+ }
315
+ ],
316
+ "stateMutability": "view",
317
+ "type": "function"
318
+ },
319
+ {
320
+ "inputs": [],
321
+ "name": "authority",
322
+ "outputs": [
323
+ {
324
+ "internalType": "address",
325
+ "name": "",
326
+ "type": "address"
327
+ }
328
+ ],
329
+ "stateMutability": "view",
330
+ "type": "function"
331
+ },
332
+ {
333
+ "inputs": [],
334
+ "name": "getDomain",
335
+ "outputs": [
336
+ {
337
+ "internalType": "ObjectType",
338
+ "name": "serviceDomain",
339
+ "type": "uint8"
340
+ }
341
+ ],
342
+ "stateMutability": "pure",
343
+ "type": "function"
344
+ },
345
+ {
346
+ "inputs": [],
347
+ "name": "getInitialInfo",
348
+ "outputs": [
349
+ {
350
+ "components": [
351
+ {
352
+ "internalType": "NftId",
353
+ "name": "nftId",
354
+ "type": "uint96"
355
+ },
356
+ {
357
+ "internalType": "NftId",
358
+ "name": "parentNftId",
359
+ "type": "uint96"
360
+ },
361
+ {
362
+ "internalType": "ObjectType",
363
+ "name": "objectType",
364
+ "type": "uint8"
365
+ },
366
+ {
367
+ "internalType": "bool",
368
+ "name": "isInterceptor",
369
+ "type": "bool"
370
+ },
371
+ {
372
+ "internalType": "address",
373
+ "name": "objectAddress",
374
+ "type": "address"
375
+ },
376
+ {
377
+ "internalType": "address",
378
+ "name": "initialOwner",
379
+ "type": "address"
380
+ },
381
+ {
382
+ "internalType": "bytes",
383
+ "name": "data",
384
+ "type": "bytes"
385
+ }
386
+ ],
387
+ "internalType": "struct IRegistry.ObjectInfo",
388
+ "name": "info",
389
+ "type": "tuple"
390
+ },
391
+ {
392
+ "internalType": "bytes",
393
+ "name": "data",
394
+ "type": "bytes"
395
+ }
396
+ ],
397
+ "stateMutability": "view",
398
+ "type": "function"
399
+ },
400
+ {
401
+ "inputs": [],
402
+ "name": "getInitializedVersion",
403
+ "outputs": [
404
+ {
405
+ "internalType": "uint64",
406
+ "name": "",
407
+ "type": "uint64"
408
+ }
409
+ ],
410
+ "stateMutability": "view",
411
+ "type": "function"
412
+ },
413
+ {
414
+ "inputs": [],
415
+ "name": "getMajorVersion",
416
+ "outputs": [
417
+ {
418
+ "internalType": "VersionPart",
419
+ "name": "majorVersion",
420
+ "type": "uint8"
421
+ }
422
+ ],
423
+ "stateMutability": "view",
424
+ "type": "function"
425
+ },
426
+ {
427
+ "inputs": [],
428
+ "name": "getNftId",
429
+ "outputs": [
430
+ {
431
+ "internalType": "NftId",
432
+ "name": "",
433
+ "type": "uint96"
434
+ }
435
+ ],
436
+ "stateMutability": "view",
437
+ "type": "function"
438
+ },
439
+ {
440
+ "inputs": [],
441
+ "name": "getOwner",
442
+ "outputs": [
443
+ {
444
+ "internalType": "address",
445
+ "name": "",
446
+ "type": "address"
447
+ }
448
+ ],
449
+ "stateMutability": "view",
450
+ "type": "function"
451
+ },
452
+ {
453
+ "inputs": [],
454
+ "name": "getRegistry",
455
+ "outputs": [
456
+ {
457
+ "internalType": "contract IRegistry",
458
+ "name": "",
459
+ "type": "address"
460
+ }
461
+ ],
462
+ "stateMutability": "view",
463
+ "type": "function"
464
+ },
465
+ {
466
+ "inputs": [],
467
+ "name": "getVersion",
468
+ "outputs": [
469
+ {
470
+ "internalType": "Version",
471
+ "name": "",
472
+ "type": "uint24"
473
+ }
474
+ ],
475
+ "stateMutability": "pure",
476
+ "type": "function"
477
+ },
478
+ {
479
+ "inputs": [
480
+ {
481
+ "internalType": "uint256",
482
+ "name": "idx",
483
+ "type": "uint256"
484
+ }
485
+ ],
486
+ "name": "getVersion",
487
+ "outputs": [
488
+ {
489
+ "internalType": "Version",
490
+ "name": "",
491
+ "type": "uint24"
492
+ }
493
+ ],
494
+ "stateMutability": "view",
495
+ "type": "function"
496
+ },
497
+ {
498
+ "inputs": [],
499
+ "name": "getVersionCount",
500
+ "outputs": [
501
+ {
502
+ "internalType": "uint256",
503
+ "name": "",
504
+ "type": "uint256"
505
+ }
506
+ ],
507
+ "stateMutability": "view",
508
+ "type": "function"
509
+ },
510
+ {
511
+ "inputs": [
512
+ {
513
+ "internalType": "Version",
514
+ "name": "_version",
515
+ "type": "uint24"
516
+ }
517
+ ],
518
+ "name": "getVersionInfo",
519
+ "outputs": [
520
+ {
521
+ "components": [
522
+ {
523
+ "internalType": "Version",
524
+ "name": "version",
525
+ "type": "uint24"
526
+ },
527
+ {
528
+ "internalType": "address",
529
+ "name": "implementation",
530
+ "type": "address"
531
+ },
532
+ {
533
+ "internalType": "address",
534
+ "name": "activatedBy",
535
+ "type": "address"
536
+ },
537
+ {
538
+ "internalType": "Timestamp",
539
+ "name": "activatedAt",
540
+ "type": "uint40"
541
+ },
542
+ {
543
+ "internalType": "Blocknumber",
544
+ "name": "activatedIn",
545
+ "type": "uint32"
546
+ }
547
+ ],
548
+ "internalType": "struct IVersionable.VersionInfo",
549
+ "name": "",
550
+ "type": "tuple"
551
+ }
552
+ ],
553
+ "stateMutability": "view",
554
+ "type": "function"
555
+ },
556
+ {
557
+ "inputs": [
558
+ {
559
+ "internalType": "address",
560
+ "name": "implementation",
561
+ "type": "address"
562
+ },
563
+ {
564
+ "internalType": "address",
565
+ "name": "activatedBy",
566
+ "type": "address"
567
+ },
568
+ {
569
+ "internalType": "bytes",
570
+ "name": "data",
571
+ "type": "bytes"
572
+ }
573
+ ],
574
+ "name": "initialize",
575
+ "outputs": [],
576
+ "stateMutability": "nonpayable",
577
+ "type": "function"
578
+ },
579
+ {
580
+ "inputs": [],
581
+ "name": "isConsumingScheduledOp",
582
+ "outputs": [
583
+ {
584
+ "internalType": "bytes4",
585
+ "name": "",
586
+ "type": "bytes4"
587
+ }
588
+ ],
589
+ "stateMutability": "view",
590
+ "type": "function"
591
+ },
592
+ {
593
+ "inputs": [
594
+ {
595
+ "internalType": "Version",
596
+ "name": "_version",
597
+ "type": "uint24"
598
+ }
599
+ ],
600
+ "name": "isInitialized",
601
+ "outputs": [
602
+ {
603
+ "internalType": "bool",
604
+ "name": "",
605
+ "type": "bool"
606
+ }
607
+ ],
608
+ "stateMutability": "view",
609
+ "type": "function"
610
+ },
611
+ {
612
+ "inputs": [],
613
+ "name": "linkToRegisteredNftId",
614
+ "outputs": [],
615
+ "stateMutability": "nonpayable",
616
+ "type": "function"
617
+ },
618
+ {
619
+ "inputs": [
620
+ {
621
+ "components": [
622
+ {
623
+ "internalType": "NftId",
624
+ "name": "nftId",
625
+ "type": "uint96"
626
+ },
627
+ {
628
+ "internalType": "NftId",
629
+ "name": "parentNftId",
630
+ "type": "uint96"
631
+ },
632
+ {
633
+ "internalType": "ObjectType",
634
+ "name": "objectType",
635
+ "type": "uint8"
636
+ },
637
+ {
638
+ "internalType": "bool",
639
+ "name": "isInterceptor",
640
+ "type": "bool"
641
+ },
642
+ {
643
+ "internalType": "address",
644
+ "name": "objectAddress",
645
+ "type": "address"
646
+ },
647
+ {
648
+ "internalType": "address",
649
+ "name": "initialOwner",
650
+ "type": "address"
651
+ },
652
+ {
653
+ "internalType": "bytes",
654
+ "name": "data",
655
+ "type": "bytes"
656
+ }
657
+ ],
658
+ "internalType": "struct IRegistry.ObjectInfo",
659
+ "name": "info",
660
+ "type": "tuple"
661
+ }
662
+ ],
663
+ "name": "registerBundle",
664
+ "outputs": [
665
+ {
666
+ "internalType": "NftId",
667
+ "name": "nftId",
668
+ "type": "uint96"
669
+ }
670
+ ],
671
+ "stateMutability": "nonpayable",
672
+ "type": "function"
673
+ },
674
+ {
675
+ "inputs": [
676
+ {
677
+ "internalType": "contract IBaseComponent",
678
+ "name": "distribution",
679
+ "type": "address"
680
+ },
681
+ {
682
+ "internalType": "address",
683
+ "name": "owner",
684
+ "type": "address"
685
+ }
686
+ ],
687
+ "name": "registerDistribution",
688
+ "outputs": [
689
+ {
690
+ "components": [
691
+ {
692
+ "internalType": "NftId",
693
+ "name": "nftId",
694
+ "type": "uint96"
695
+ },
696
+ {
697
+ "internalType": "NftId",
698
+ "name": "parentNftId",
699
+ "type": "uint96"
700
+ },
701
+ {
702
+ "internalType": "ObjectType",
703
+ "name": "objectType",
704
+ "type": "uint8"
705
+ },
706
+ {
707
+ "internalType": "bool",
708
+ "name": "isInterceptor",
709
+ "type": "bool"
710
+ },
711
+ {
712
+ "internalType": "address",
713
+ "name": "objectAddress",
714
+ "type": "address"
715
+ },
716
+ {
717
+ "internalType": "address",
718
+ "name": "initialOwner",
719
+ "type": "address"
720
+ },
721
+ {
722
+ "internalType": "bytes",
723
+ "name": "data",
724
+ "type": "bytes"
725
+ }
726
+ ],
727
+ "internalType": "struct IRegistry.ObjectInfo",
728
+ "name": "info",
729
+ "type": "tuple"
730
+ },
731
+ {
732
+ "internalType": "bytes",
733
+ "name": "data",
734
+ "type": "bytes"
735
+ }
736
+ ],
737
+ "stateMutability": "nonpayable",
738
+ "type": "function"
739
+ },
740
+ {
741
+ "inputs": [
742
+ {
743
+ "internalType": "contract IRegisterable",
744
+ "name": "instance",
745
+ "type": "address"
746
+ }
747
+ ],
748
+ "name": "registerInstance",
749
+ "outputs": [
750
+ {
751
+ "components": [
752
+ {
753
+ "internalType": "NftId",
754
+ "name": "nftId",
755
+ "type": "uint96"
756
+ },
757
+ {
758
+ "internalType": "NftId",
759
+ "name": "parentNftId",
760
+ "type": "uint96"
761
+ },
762
+ {
763
+ "internalType": "ObjectType",
764
+ "name": "objectType",
765
+ "type": "uint8"
766
+ },
767
+ {
768
+ "internalType": "bool",
769
+ "name": "isInterceptor",
770
+ "type": "bool"
771
+ },
772
+ {
773
+ "internalType": "address",
774
+ "name": "objectAddress",
775
+ "type": "address"
776
+ },
777
+ {
778
+ "internalType": "address",
779
+ "name": "initialOwner",
780
+ "type": "address"
781
+ },
782
+ {
783
+ "internalType": "bytes",
784
+ "name": "data",
785
+ "type": "bytes"
786
+ }
787
+ ],
788
+ "internalType": "struct IRegistry.ObjectInfo",
789
+ "name": "info",
790
+ "type": "tuple"
791
+ },
792
+ {
793
+ "internalType": "bytes",
794
+ "name": "data",
795
+ "type": "bytes"
796
+ }
797
+ ],
798
+ "stateMutability": "nonpayable",
799
+ "type": "function"
800
+ },
801
+ {
802
+ "inputs": [
803
+ {
804
+ "components": [
805
+ {
806
+ "internalType": "NftId",
807
+ "name": "nftId",
808
+ "type": "uint96"
809
+ },
810
+ {
811
+ "internalType": "NftId",
812
+ "name": "parentNftId",
813
+ "type": "uint96"
814
+ },
815
+ {
816
+ "internalType": "ObjectType",
817
+ "name": "objectType",
818
+ "type": "uint8"
819
+ },
820
+ {
821
+ "internalType": "bool",
822
+ "name": "isInterceptor",
823
+ "type": "bool"
824
+ },
825
+ {
826
+ "internalType": "address",
827
+ "name": "objectAddress",
828
+ "type": "address"
829
+ },
830
+ {
831
+ "internalType": "address",
832
+ "name": "initialOwner",
833
+ "type": "address"
834
+ },
835
+ {
836
+ "internalType": "bytes",
837
+ "name": "data",
838
+ "type": "bytes"
839
+ }
840
+ ],
841
+ "internalType": "struct IRegistry.ObjectInfo",
842
+ "name": "info",
843
+ "type": "tuple"
844
+ }
845
+ ],
846
+ "name": "registerPolicy",
847
+ "outputs": [
848
+ {
849
+ "internalType": "NftId",
850
+ "name": "nftId",
851
+ "type": "uint96"
852
+ }
853
+ ],
854
+ "stateMutability": "nonpayable",
855
+ "type": "function"
856
+ },
857
+ {
858
+ "inputs": [
859
+ {
860
+ "internalType": "contract IBaseComponent",
861
+ "name": "pool",
862
+ "type": "address"
863
+ },
864
+ {
865
+ "internalType": "address",
866
+ "name": "owner",
867
+ "type": "address"
868
+ }
869
+ ],
870
+ "name": "registerPool",
871
+ "outputs": [
872
+ {
873
+ "components": [
874
+ {
875
+ "internalType": "NftId",
876
+ "name": "nftId",
877
+ "type": "uint96"
878
+ },
879
+ {
880
+ "internalType": "NftId",
881
+ "name": "parentNftId",
882
+ "type": "uint96"
883
+ },
884
+ {
885
+ "internalType": "ObjectType",
886
+ "name": "objectType",
887
+ "type": "uint8"
888
+ },
889
+ {
890
+ "internalType": "bool",
891
+ "name": "isInterceptor",
892
+ "type": "bool"
893
+ },
894
+ {
895
+ "internalType": "address",
896
+ "name": "objectAddress",
897
+ "type": "address"
898
+ },
899
+ {
900
+ "internalType": "address",
901
+ "name": "initialOwner",
902
+ "type": "address"
903
+ },
904
+ {
905
+ "internalType": "bytes",
906
+ "name": "data",
907
+ "type": "bytes"
908
+ }
909
+ ],
910
+ "internalType": "struct IRegistry.ObjectInfo",
911
+ "name": "info",
912
+ "type": "tuple"
913
+ },
914
+ {
915
+ "internalType": "bytes",
916
+ "name": "data",
917
+ "type": "bytes"
918
+ }
919
+ ],
920
+ "stateMutability": "nonpayable",
921
+ "type": "function"
922
+ },
923
+ {
924
+ "inputs": [
925
+ {
926
+ "internalType": "contract IBaseComponent",
927
+ "name": "product",
928
+ "type": "address"
929
+ },
930
+ {
931
+ "internalType": "address",
932
+ "name": "owner",
933
+ "type": "address"
934
+ }
935
+ ],
936
+ "name": "registerProduct",
937
+ "outputs": [
938
+ {
939
+ "components": [
940
+ {
941
+ "internalType": "NftId",
942
+ "name": "nftId",
943
+ "type": "uint96"
944
+ },
945
+ {
946
+ "internalType": "NftId",
947
+ "name": "parentNftId",
948
+ "type": "uint96"
949
+ },
950
+ {
951
+ "internalType": "ObjectType",
952
+ "name": "objectType",
953
+ "type": "uint8"
954
+ },
955
+ {
956
+ "internalType": "bool",
957
+ "name": "isInterceptor",
958
+ "type": "bool"
959
+ },
960
+ {
961
+ "internalType": "address",
962
+ "name": "objectAddress",
963
+ "type": "address"
964
+ },
965
+ {
966
+ "internalType": "address",
967
+ "name": "initialOwner",
968
+ "type": "address"
969
+ },
970
+ {
971
+ "internalType": "bytes",
972
+ "name": "data",
973
+ "type": "bytes"
974
+ }
975
+ ],
976
+ "internalType": "struct IRegistry.ObjectInfo",
977
+ "name": "info",
978
+ "type": "tuple"
979
+ },
980
+ {
981
+ "internalType": "bytes",
982
+ "name": "data",
983
+ "type": "bytes"
984
+ }
985
+ ],
986
+ "stateMutability": "nonpayable",
987
+ "type": "function"
988
+ },
989
+ {
990
+ "inputs": [
991
+ {
992
+ "components": [
993
+ {
994
+ "internalType": "NftId",
995
+ "name": "nftId",
996
+ "type": "uint96"
997
+ },
998
+ {
999
+ "internalType": "NftId",
1000
+ "name": "parentNftId",
1001
+ "type": "uint96"
1002
+ },
1003
+ {
1004
+ "internalType": "ObjectType",
1005
+ "name": "objectType",
1006
+ "type": "uint8"
1007
+ },
1008
+ {
1009
+ "internalType": "bool",
1010
+ "name": "isInterceptor",
1011
+ "type": "bool"
1012
+ },
1013
+ {
1014
+ "internalType": "address",
1015
+ "name": "objectAddress",
1016
+ "type": "address"
1017
+ },
1018
+ {
1019
+ "internalType": "address",
1020
+ "name": "initialOwner",
1021
+ "type": "address"
1022
+ },
1023
+ {
1024
+ "internalType": "bytes",
1025
+ "name": "data",
1026
+ "type": "bytes"
1027
+ }
1028
+ ],
1029
+ "internalType": "struct IRegistry.ObjectInfo",
1030
+ "name": "info",
1031
+ "type": "tuple"
1032
+ }
1033
+ ],
1034
+ "name": "registerStake",
1035
+ "outputs": [
1036
+ {
1037
+ "internalType": "NftId",
1038
+ "name": "nftId",
1039
+ "type": "uint96"
1040
+ }
1041
+ ],
1042
+ "stateMutability": "nonpayable",
1043
+ "type": "function"
1044
+ },
1045
+ {
1046
+ "inputs": [
1047
+ {
1048
+ "internalType": "address",
1049
+ "name": "newAuthority",
1050
+ "type": "address"
1051
+ }
1052
+ ],
1053
+ "name": "setAuthority",
1054
+ "outputs": [],
1055
+ "stateMutability": "nonpayable",
1056
+ "type": "function"
1057
+ },
1058
+ {
1059
+ "inputs": [
1060
+ {
1061
+ "internalType": "bytes4",
1062
+ "name": "interfaceId",
1063
+ "type": "bytes4"
1064
+ }
1065
+ ],
1066
+ "name": "supportsInterface",
1067
+ "outputs": [
1068
+ {
1069
+ "internalType": "bool",
1070
+ "name": "",
1071
+ "type": "bool"
1072
+ }
1073
+ ],
1074
+ "stateMutability": "view",
1075
+ "type": "function"
1076
+ },
1077
+ {
1078
+ "inputs": [
1079
+ {
1080
+ "internalType": "address",
1081
+ "name": "implementation",
1082
+ "type": "address"
1083
+ },
1084
+ {
1085
+ "internalType": "address",
1086
+ "name": "activatedBy",
1087
+ "type": "address"
1088
+ },
1089
+ {
1090
+ "internalType": "bytes",
1091
+ "name": "data",
1092
+ "type": "bytes"
1093
+ }
1094
+ ],
1095
+ "name": "upgrade",
1096
+ "outputs": [],
1097
+ "stateMutability": "nonpayable",
1098
+ "type": "function"
1099
+ }
1100
+ ],
1101
+ "bytecode": "0x60806040523480156200001157600080fd5b50620000546301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b600280546001600160a01b031916331790556200007062000076565b6200012a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000c75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001275780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6131c6806200013a6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063834af15311610104578063b68d1809116100a2578063cde749f411610071578063cde749f414610547578063cf7a1d771461054f578063e285c9c414610562578063ed841d0c1461056a57600080fd5b8063b68d180914610504578063b88da75914610519578063bf7e214f1461052c578063c2bf08c81461053457600080fd5b80638fbc2d81116100de5780638fbc2d8114610497578063946dfcfe146104aa578063a745e3df146104d1578063b3c65015146104e457600080fd5b8063834af15314610467578063893d20e81461047a5780638fb360371461048257600080fd5b80635ab1bd5311610171578063644c45e01161014b578063644c45e0146104165780637286e5e51461042e5780637a9e5e4b146104415780638105cc7f1461045457600080fd5b80635ab1bd53146103b35780635c992fed146103d85780635d9662891461040357600080fd5b8063138461e0116101ad578063138461e0146102485780631eff4b22146102525780634d459c90146102875780634f421333146103a057600080fd5b806301ffc9a7146101d45780630d8e6e2c146102165780630fec111c14610232575b600080fd5b6102016101e236600461272b565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61021e610572565b60405162ffffff909116815260200161020d565b61023a6105fc565b60405161020d929190612825565b610250610b07565b005b6102797f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161020d565b610343610295366004612864565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061317183398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a00161020d565b6102016103ae366004612864565b610d29565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161020d565b6103eb6103e63660046129e4565b610ddc565b6040516001600160601b03909116815260200161020d565b61023a610411366004612ab6565b610e6f565b600154600160a01b90046001600160601b03166103eb565b61023a61043c366004612ab6565b611001565b61025061044f366004612aef565b6110b0565b6103eb6104623660046129e4565b611137565b61023a610475366004612aef565b61114d565b6103c06112d4565b61048a6113ed565b60405161020d9190612b0c565b61023a6104a5366004612ab6565b611426565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610279565b6102506104df366004612b21565b6114d5565b6104ec61162f565b6040516001600160401b03909116815260200161020d565b603c5b60405160ff909116815260200161020d565b61021e610527366004612b82565b611650565b6103c06116a1565b6103eb6105423660046129e4565b6116bd565b6105076116d3565b61025061055d366004612b21565b611756565b6103c0600181565b610279600081565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156105d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f79190612b9b565b905090565b6106046126ed565b606061060e61185f565b60408051600680825260e0820190925292945090925060009190816020015b60408051808201909152600081526060602082015281526020019060019003908161062d57905050905061065f604690565b8160008151811061067257610672612bb8565b602090810291909101015160ff9190911690526040805160018082528183019092529081602001602082028036833701905050816000815181106106b8576106b8612bb8565b60200260200101516020018190525063834af15360e01b816000815181106106e2576106e2612bb8565b60200260200101516020015160008151811061070057610700612bb8565b6001600160e01b031990921660209283029190910190910152610721608c90565b8160018151811061073457610734612bb8565b602090810291909101015160ff91909116905260408051600180825281830190925290816020016020820280368337019050508160018151811061077a5761077a612bb8565b602002602001015160200181905250637286e5e560e01b816001815181106107a4576107a4612bb8565b6020026020010151602001516000815181106107c2576107c2612bb8565b6001600160e01b0319909216602092830291909101909101526107e3607890565b816002815181106107f6576107f6612bb8565b602090810291909101015160ff91909116905260408051600180825281830190925290816020016020820280368337019050508160028151811061083c5761083c612bb8565b602002602001015160200181905250638fbc2d8160e01b8160028151811061086657610866612bb8565b60200260200101516020015160008151811061088457610884612bb8565b6001600160e01b0319909216602092830291909101909101526108a5606e90565b816003815181106108b8576108b8612bb8565b602090810291909101015160ff9190911690526040805160018082528183019092529081602001602082028036833701905050816003815181106108fe576108fe612bb8565b602002602001015160200181905250635d96628960e01b8160038151811061092857610928612bb8565b60200260200101516020015160008151811061094657610946612bb8565b6001600160e01b03199092166020928302919091019091015261096760d290565b8160048151811061097a5761097a612bb8565b602090810291909101015160ff9190911690526040805160018082528183019092529081602001602082028036833701905050816004815181106109c0576109c0612bb8565b602002602001015160200181905250635c992fed60e01b816004815181106109ea576109ea612bb8565b602002602001015160200151600081518110610a0857610a08612bb8565b6001600160e01b031990921660209283029190910190910152610a2960dc90565b81600581518110610a3c57610a3c612bb8565b602090810291909101015160ff919091169052604080516001808252818301909252908160200160208202803683370190505081600581518110610a8257610a82612bb8565b60200260200101516020018190525063c2bf08c860e01b81600581518110610aac57610aac612bb8565b602002602001015160200151600081518110610aca57610aca612bb8565b6001600160e01b0319909216602092830291909101820152604051610af191839101612bce565b6040516020818303038152906040529150509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8d9190612c86565b15610bd4576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b0316610bfd5760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190612c86565b610c92576040516372657a5160e01b81526001600160a01b0382166004820152602401610bcb565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d009190612cae565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b60008060008051602061317183398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015610db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd59190612ccb565b1192915050565b6000610deb335b6000366119b2565b610df68260d2611ab8565b6001546040516352efcf2760e11b81526001600160a01b039091169063a5df9e4e90610e26908590600401612ce4565b6020604051808303816000875af1158015610e45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e699190612cae565b92915050565b610e776126ed565b6060610e8233610de3565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a790610eb590633ad74e8160e01b90600401612b0c565b602060405180830381865afa158015610ed2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef69190612c86565b610f1357604051637a71998760e01b815260040160405180910390fd5b610f2084606e5b85611bc3565b6001546040516352efcf2760e11b81529294509092506001600160a01b03169063a5df9e4e90610f54908590600401612ce4565b6020604051808303816000875af1158015610f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f979190612cae565b6001600160601b0316825260408051629c230f60e51b815290516001600160a01b0386169163138461e091600480830192600092919082900301818387803b158015610fe257600080fd5b505af1158015610ff6573d6000803e3d6000fd5b505050509250929050565b6110096126ed565b606061101433610de3565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a79061104790634ce2a6c760e11b90600401612b0c565b602060405180830381865afa158015611064573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110889190612c86565b6110a557604051636f61f64160e01b815260040160405180910390fd5b610f2084608c610f1a565b336110b96116a1565b6001600160a01b0316816001600160a01b0316146110f45760405162d1953b60e31b81526001600160a01b0382166004820152602401610bcb565b816001600160a01b03163b60000361112a576040516361798f2f60e11b81526001600160a01b0383166004820152602401610bcb565b61113382611dc9565b5050565b600061114233610de3565b610df6826050611ab8565b6111556126ed565b6040516301ffc9a760e01b81526060906001600160a01b038416906301ffc9a79061118b9063d442f11960e01b90600401612b0c565b602060405180830381865afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc9190612c86565b6111e957604051636795c76360e01b815260040160405180910390fd5b6111f583604633611bc3565b6001546040516352efcf2760e11b81529294509092506001600160a01b03169063a5df9e4e90611229908590600401612ce4565b6020604051808303816000875af1158015611248573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126c9190612cae565b6001600160601b0316825260408051629c230f60e51b815290516001600160a01b0385169163138461e091600480830192600092919082900301818387803b1580156112b757600080fd5b505af11580156112cb573d6000803e3d6000fd5b50505050915091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015611339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135d9190612c86565b156113dd57600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa1580156113b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f79190612d02565b506002546001600160a01b031690565b600080516020613131833981519152805460009190600160a01b900460ff16611417576000611420565b638fb3603760e01b5b91505090565b61142e6126ed565b606061143933610de3565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a79061146c9063c8ea96c560e01b90600401612b0c565b602060405180830381865afa158015611489573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ad9190612c86565b6114ca576040516308707e3160e41b815260040160405180910390fd5b610f20846078610f1a565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6114f7610572565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015611537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155b9190612d1f565b6000805160206131518339815191528054600160401b900460ff168061158e575080546001600160401b03808416911610155b156115ac5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556115d78585611e2a565b6115e0836120c9565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006105f7600080516020613151833981519152546001600160401b031690565b6000600080516020613171833981519152600101828154811061167557611675612bb8565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080516020613131833981519152546001600160a01b031690565b60006116c833610de3565b610df68260dc611ab8565b60006116dd610572565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015611732573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f79190612d53565b6000805160206131518339815191528054600160401b810460ff1615906001600160401b03166000811580156117895750825b90506000826001600160401b031660011480156117a55750303b155b9050811580156117b3575080155b156117d15760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156117fb57845460ff60401b1916600160401b1785555b6118058888611e2a565b61180f87876120d1565b831561185557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6118676126ed565b606060007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e001604052806118b36001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016118fb6112d4565b6001600160a01b0316815260200182600101805461191890612d70565b80601f016020809104026020016040519081016040528092919081815260200182805461194490612d70565b80156119915780601f1061196657610100808354040283529160200191611991565b820191906000526020600020905b81548152906001019060200180831161197457829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6000805160206131318339815191526000806119ed6119cf6116a1565b87306119df600460008a8c612daa565b6119e891612dd4565b612205565b9150915081611ab05763ffffffff811615611a8d57825460ff60a01b1916600160a01b178355611a1b6116a1565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401611a4a93929190612e04565b600060405180830381600087803b158015611a6457600080fd5b505af1158015611a78573d6000803e3d6000fd5b5050845460ff60a01b1916855550611ab09050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610bcb565b505050505050565b60006080830152604082015160ff828116911614611afc576040808301519051632208245760e11b815260ff80841660048301529091166024820152604401610bcb565b60a08201516001600160a01b038116611b2857604051630fd187d360e01b815260040160405180910390fd5b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa158015611b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba09190612c86565b15611bbe57604051637142ceb360e11b815260040160405180910390fd5b505050565b611bcb6126ed565b6060846001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611c0b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c339190810190612e89565b6001600160a01b03871660808301526040820151919350915060ff858116911614611c84576040808301519051632208245760e11b815260ff80871660048301529091166024820152604401610bcb565b60a082015160ff8516604614611cd157836001600160a01b0316816001600160a01b031614611cd15760405163dfc430cb60e01b81526001600160a01b0385166004820152602401610bcb565b856001600160a01b0316816001600160a01b031603611d03576040516317faf4db60e11b815260040160405180910390fd5b6001600160a01b038116611d2a57604051630fd187d360e01b815260040160405180910390fd5b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa158015611d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da29190612c86565b15611dc057604051637142ceb360e11b815260040160405180910390fd5b50935093915050565b60008051602061313183398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b611e32612311565b6000805160206131718339815191526000611e62600080516020613151833981519152546001600160401b031690565b90506000611e6e610572565b9050816001600160401b0316600103611e9b5760028301805462ffffff191662ffffff8316179055611ee9565b600283015462ffffff90811690821611611ee95760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b6044820152606401610bcb565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015611f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc19190612f81565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906116209083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101cf612311565b6000805160206131518339815191528054600160401b810460ff1615906001600160401b03166000811580156121045750825b90506000826001600160401b031660011480156121205750303b155b90508115801561212e575080155b1561214c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561217657845460ff60401b1916600160401b1785555b6000808780602001905181019061218d9190612fa8565b9150915061219a8261234a565b6121a4818a61235e565b6121b463bdc07c9b60e01b6123c9565b505083156121fc57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516122749190612fd7565b600060405180830381855afa9150503d80600081146122af576040519150601f19603f3d011682016040523d82523d6000602084013e6122b4565b606091505b509150915081156123065760408151106122e657808060200190518101906122dc9190612ff3565b9094509250612306565b602081511061230657808060200190518101906123039190612c86565b93505b505094509492505050565b60008051602061315183398151915254600160401b900460ff1661234857604051631afcd79f60e31b815260040160405180910390fd5b565b612352612311565b61235b816123ee565b50565b6000603c61236a6116d3565b6040805160ff938416602082015292909116908201526060016040516020818303038152906040529050600061239f846123ff565b905060006123b28583603c848888612446565b6123c2637b6a51fd60e01b6123c9565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6123f6612311565b61235b81611dc9565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa158015610e45573d6000803e3d6000fd5b6124876301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6124918287612512565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b861515021781559050600181016125018382613071565b506121fc6303fb044760e21b6123c9565b6001600160a01b0382166125685760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e6572206973203000006044820152606401610bcb565b600280546001600160a01b0319166001600160a01b038416179055611133816001546001600160a01b0316156125c05760015460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401610bcb565b6001600160a01b0381166125e75760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b60000361261d5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610bcb565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526301ffc9a7906126639063cc7f293160e01b90600401612b0c565b602060405180830381865afa92505050801561269c575060408051601f3d908101601f1916820190925261269991810190612c86565b60015b6126c45760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610bcb565b806111335760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610bcb565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60006020828403121561273d57600080fd5b81356001600160e01b03198116811461275557600080fd5b9392505050565b60005b8381101561277757818101518382015260200161275f565b50506000910152565b6000815180845261279881602086016020860161275c565b601f01601f19169290920160200192915050565b60006001600160601b038083511684528060208401511660208501525060ff6040830151166040840152606082015115156060840152608082015160018060a01b0380821660808601528060a08501511660a0860152505060c082015160e060c085015261281d60e0850182612780565b949350505050565b60408152600061283860408301856127ac565b828103602084015261284a8185612780565b95945050505050565b62ffffff8116811461235b57600080fd5b60006020828403121561287657600080fd5b813561275581612853565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156128b9576128b9612881565b60405290565b604051601f8201601f191681016001600160401b03811182821017156128e7576128e7612881565b604052919050565b6001600160601b038116811461235b57600080fd5b803561290f816128ef565b919050565b60ff8116811461235b57600080fd5b803561290f81612914565b801515811461235b57600080fd5b803561290f8161292e565b6001600160a01b038116811461235b57600080fd5b803561290f81612947565b60006001600160401b0382111561298057612980612881565b50601f01601f191660200190565b600082601f83011261299f57600080fd5b81356129b26129ad82612967565b6128bf565b8181528460208386010111156129c757600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156129f657600080fd5b81356001600160401b0380821115612a0d57600080fd5b9083019060e08286031215612a2157600080fd5b612a29612897565b612a3283612904565b8152612a4060208401612904565b6020820152612a5160408401612923565b6040820152612a626060840161293c565b6060820152612a736080840161295c565b6080820152612a8460a0840161295c565b60a082015260c083013582811115612a9b57600080fd5b612aa78782860161298e565b60c08301525095945050505050565b60008060408385031215612ac957600080fd5b8235612ad481612947565b91506020830135612ae481612947565b809150509250929050565b600060208284031215612b0157600080fd5b813561275581612947565b6001600160e01b031991909116815260200190565b600080600060608486031215612b3657600080fd5b8335612b4181612947565b92506020840135612b5181612947565b915060408401356001600160401b03811115612b6c57600080fd5b612b788682870161298e565b9150509250925092565b600060208284031215612b9457600080fd5b5035919050565b600060208284031215612bad57600080fd5b815161275581612853565b634e487b7160e01b600052603260045260246000fd5b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b84811015612c6c57898403603f190186528251805160ff168552880151888501889052805188860181905290890190839060608701905b80831015612c575783516001600160e01b0319168252928b019260019290920191908b0190612c2d565b50978a01979550505091870191600101612bf6565b50919998505050505050505050565b805161290f8161292e565b600060208284031215612c9857600080fd5b81516127558161292e565b805161290f816128ef565b600060208284031215612cc057600080fd5b8151612755816128ef565b600060208284031215612cdd57600080fd5b5051919050565b60208152600061275560208301846127ac565b805161290f81612947565b600060208284031215612d1457600080fd5b815161275581612947565b600060208284031215612d3157600080fd5b81516001600160401b038116811461275557600080fd5b805161290f81612914565b600060208284031215612d6557600080fd5b815161275581612914565b600181811c90821680612d8457607f821691505b602082108103612da457634e487b7160e01b600052602260045260246000fd5b50919050565b60008085851115612dba57600080fd5b83861115612dc757600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015612dfc5780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b600082601f830112612e5557600080fd5b8151612e636129ad82612967565b818152846020838601011115612e7857600080fd5b61281d82602083016020870161275c565b60008060408385031215612e9c57600080fd5b82516001600160401b0380821115612eb357600080fd5b9084019060e08287031215612ec757600080fd5b612ecf612897565b612ed883612ca3565b8152612ee660208401612ca3565b6020820152612ef760408401612d48565b6040820152612f0860608401612c7b565b6060820152612f1960808401612cf7565b6080820152612f2a60a08401612cf7565b60a082015260c083015182811115612f4157600080fd5b612f4d88828601612e44565b60c0830152506020860151909450915080821115612f6a57600080fd5b50612f7785828601612e44565b9150509250929050565b600060208284031215612f9357600080fd5b815164ffffffffff8116811461275557600080fd5b60008060408385031215612fbb57600080fd5b8251612fc681612947565b6020840151909250612ae481612947565b60008251612fe981846020870161275c565b9190910192915050565b6000806040838503121561300657600080fd5b82516130118161292e565b602084015190925063ffffffff81168114612ae457600080fd5b601f821115611bbe57600081815260208120601f850160051c810160208610156130525750805b601f850160051c820191505b81811015611ab05782815560010161305e565b81516001600160401b0381111561308a5761308a612881565b61309e816130988454612d70565b8461302b565b602080601f8311600181146130d357600084156130bb5750858301515b600019600386901b1c1916600185901b178555611ab0565b600085815260208120601f198616915b82811015613102578886015182559484019460019091019084016130e3565b50858210156131205787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a26469706673582212200fcc53462bee2b691540f248064c1cc017faf91136d12e41777ab40bafafa0ae64736f6c63430008140033",
1102
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063834af15311610104578063b68d1809116100a2578063cde749f411610071578063cde749f414610547578063cf7a1d771461054f578063e285c9c414610562578063ed841d0c1461056a57600080fd5b8063b68d180914610504578063b88da75914610519578063bf7e214f1461052c578063c2bf08c81461053457600080fd5b80638fbc2d81116100de5780638fbc2d8114610497578063946dfcfe146104aa578063a745e3df146104d1578063b3c65015146104e457600080fd5b8063834af15314610467578063893d20e81461047a5780638fb360371461048257600080fd5b80635ab1bd5311610171578063644c45e01161014b578063644c45e0146104165780637286e5e51461042e5780637a9e5e4b146104415780638105cc7f1461045457600080fd5b80635ab1bd53146103b35780635c992fed146103d85780635d9662891461040357600080fd5b8063138461e0116101ad578063138461e0146102485780631eff4b22146102525780634d459c90146102875780634f421333146103a057600080fd5b806301ffc9a7146101d45780630d8e6e2c146102165780630fec111c14610232575b600080fd5b6102016101e236600461272b565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61021e610572565b60405162ffffff909116815260200161020d565b61023a6105fc565b60405161020d929190612825565b610250610b07565b005b6102797f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161020d565b610343610295366004612864565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061317183398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a00161020d565b6102016103ae366004612864565b610d29565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161020d565b6103eb6103e63660046129e4565b610ddc565b6040516001600160601b03909116815260200161020d565b61023a610411366004612ab6565b610e6f565b600154600160a01b90046001600160601b03166103eb565b61023a61043c366004612ab6565b611001565b61025061044f366004612aef565b6110b0565b6103eb6104623660046129e4565b611137565b61023a610475366004612aef565b61114d565b6103c06112d4565b61048a6113ed565b60405161020d9190612b0c565b61023a6104a5366004612ab6565b611426565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610279565b6102506104df366004612b21565b6114d5565b6104ec61162f565b6040516001600160401b03909116815260200161020d565b603c5b60405160ff909116815260200161020d565b61021e610527366004612b82565b611650565b6103c06116a1565b6103eb6105423660046129e4565b6116bd565b6105076116d3565b61025061055d366004612b21565b611756565b6103c0600181565b610279600081565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156105d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f79190612b9b565b905090565b6106046126ed565b606061060e61185f565b60408051600680825260e0820190925292945090925060009190816020015b60408051808201909152600081526060602082015281526020019060019003908161062d57905050905061065f604690565b8160008151811061067257610672612bb8565b602090810291909101015160ff9190911690526040805160018082528183019092529081602001602082028036833701905050816000815181106106b8576106b8612bb8565b60200260200101516020018190525063834af15360e01b816000815181106106e2576106e2612bb8565b60200260200101516020015160008151811061070057610700612bb8565b6001600160e01b031990921660209283029190910190910152610721608c90565b8160018151811061073457610734612bb8565b602090810291909101015160ff91909116905260408051600180825281830190925290816020016020820280368337019050508160018151811061077a5761077a612bb8565b602002602001015160200181905250637286e5e560e01b816001815181106107a4576107a4612bb8565b6020026020010151602001516000815181106107c2576107c2612bb8565b6001600160e01b0319909216602092830291909101909101526107e3607890565b816002815181106107f6576107f6612bb8565b602090810291909101015160ff91909116905260408051600180825281830190925290816020016020820280368337019050508160028151811061083c5761083c612bb8565b602002602001015160200181905250638fbc2d8160e01b8160028151811061086657610866612bb8565b60200260200101516020015160008151811061088457610884612bb8565b6001600160e01b0319909216602092830291909101909101526108a5606e90565b816003815181106108b8576108b8612bb8565b602090810291909101015160ff9190911690526040805160018082528183019092529081602001602082028036833701905050816003815181106108fe576108fe612bb8565b602002602001015160200181905250635d96628960e01b8160038151811061092857610928612bb8565b60200260200101516020015160008151811061094657610946612bb8565b6001600160e01b03199092166020928302919091019091015261096760d290565b8160048151811061097a5761097a612bb8565b602090810291909101015160ff9190911690526040805160018082528183019092529081602001602082028036833701905050816004815181106109c0576109c0612bb8565b602002602001015160200181905250635c992fed60e01b816004815181106109ea576109ea612bb8565b602002602001015160200151600081518110610a0857610a08612bb8565b6001600160e01b031990921660209283029190910190910152610a2960dc90565b81600581518110610a3c57610a3c612bb8565b602090810291909101015160ff919091169052604080516001808252818301909252908160200160208202803683370190505081600581518110610a8257610a82612bb8565b60200260200101516020018190525063c2bf08c860e01b81600581518110610aac57610aac612bb8565b602002602001015160200151600081518110610aca57610aca612bb8565b6001600160e01b0319909216602092830291909101820152604051610af191839101612bce565b6040516020818303038152906040529150509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8d9190612c86565b15610bd4576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b0316610bfd5760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190612c86565b610c92576040516372657a5160e01b81526001600160a01b0382166004820152602401610bcb565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d009190612cae565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b60008060008051602061317183398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015610db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd59190612ccb565b1192915050565b6000610deb335b6000366119b2565b610df68260d2611ab8565b6001546040516352efcf2760e11b81526001600160a01b039091169063a5df9e4e90610e26908590600401612ce4565b6020604051808303816000875af1158015610e45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e699190612cae565b92915050565b610e776126ed565b6060610e8233610de3565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a790610eb590633ad74e8160e01b90600401612b0c565b602060405180830381865afa158015610ed2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef69190612c86565b610f1357604051637a71998760e01b815260040160405180910390fd5b610f2084606e5b85611bc3565b6001546040516352efcf2760e11b81529294509092506001600160a01b03169063a5df9e4e90610f54908590600401612ce4565b6020604051808303816000875af1158015610f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f979190612cae565b6001600160601b0316825260408051629c230f60e51b815290516001600160a01b0386169163138461e091600480830192600092919082900301818387803b158015610fe257600080fd5b505af1158015610ff6573d6000803e3d6000fd5b505050509250929050565b6110096126ed565b606061101433610de3565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a79061104790634ce2a6c760e11b90600401612b0c565b602060405180830381865afa158015611064573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110889190612c86565b6110a557604051636f61f64160e01b815260040160405180910390fd5b610f2084608c610f1a565b336110b96116a1565b6001600160a01b0316816001600160a01b0316146110f45760405162d1953b60e31b81526001600160a01b0382166004820152602401610bcb565b816001600160a01b03163b60000361112a576040516361798f2f60e11b81526001600160a01b0383166004820152602401610bcb565b61113382611dc9565b5050565b600061114233610de3565b610df6826050611ab8565b6111556126ed565b6040516301ffc9a760e01b81526060906001600160a01b038416906301ffc9a79061118b9063d442f11960e01b90600401612b0c565b602060405180830381865afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc9190612c86565b6111e957604051636795c76360e01b815260040160405180910390fd5b6111f583604633611bc3565b6001546040516352efcf2760e11b81529294509092506001600160a01b03169063a5df9e4e90611229908590600401612ce4565b6020604051808303816000875af1158015611248573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126c9190612cae565b6001600160601b0316825260408051629c230f60e51b815290516001600160a01b0385169163138461e091600480830192600092919082900301818387803b1580156112b757600080fd5b505af11580156112cb573d6000803e3d6000fd5b50505050915091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015611339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135d9190612c86565b156113dd57600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa1580156113b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f79190612d02565b506002546001600160a01b031690565b600080516020613131833981519152805460009190600160a01b900460ff16611417576000611420565b638fb3603760e01b5b91505090565b61142e6126ed565b606061143933610de3565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a79061146c9063c8ea96c560e01b90600401612b0c565b602060405180830381865afa158015611489573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ad9190612c86565b6114ca576040516308707e3160e41b815260040160405180910390fd5b610f20846078610f1a565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6114f7610572565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015611537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155b9190612d1f565b6000805160206131518339815191528054600160401b900460ff168061158e575080546001600160401b03808416911610155b156115ac5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556115d78585611e2a565b6115e0836120c9565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006105f7600080516020613151833981519152546001600160401b031690565b6000600080516020613171833981519152600101828154811061167557611675612bb8565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080516020613131833981519152546001600160a01b031690565b60006116c833610de3565b610df68260dc611ab8565b60006116dd610572565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015611732573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f79190612d53565b6000805160206131518339815191528054600160401b810460ff1615906001600160401b03166000811580156117895750825b90506000826001600160401b031660011480156117a55750303b155b9050811580156117b3575080155b156117d15760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156117fb57845460ff60401b1916600160401b1785555b6118058888611e2a565b61180f87876120d1565b831561185557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6118676126ed565b606060007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e001604052806118b36001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016118fb6112d4565b6001600160a01b0316815260200182600101805461191890612d70565b80601f016020809104026020016040519081016040528092919081815260200182805461194490612d70565b80156119915780601f1061196657610100808354040283529160200191611991565b820191906000526020600020905b81548152906001019060200180831161197457829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6000805160206131318339815191526000806119ed6119cf6116a1565b87306119df600460008a8c612daa565b6119e891612dd4565b612205565b9150915081611ab05763ffffffff811615611a8d57825460ff60a01b1916600160a01b178355611a1b6116a1565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401611a4a93929190612e04565b600060405180830381600087803b158015611a6457600080fd5b505af1158015611a78573d6000803e3d6000fd5b5050845460ff60a01b1916855550611ab09050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610bcb565b505050505050565b60006080830152604082015160ff828116911614611afc576040808301519051632208245760e11b815260ff80841660048301529091166024820152604401610bcb565b60a08201516001600160a01b038116611b2857604051630fd187d360e01b815260040160405180910390fd5b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa158015611b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba09190612c86565b15611bbe57604051637142ceb360e11b815260040160405180910390fd5b505050565b611bcb6126ed565b6060846001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611c0b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c339190810190612e89565b6001600160a01b03871660808301526040820151919350915060ff858116911614611c84576040808301519051632208245760e11b815260ff80871660048301529091166024820152604401610bcb565b60a082015160ff8516604614611cd157836001600160a01b0316816001600160a01b031614611cd15760405163dfc430cb60e01b81526001600160a01b0385166004820152602401610bcb565b856001600160a01b0316816001600160a01b031603611d03576040516317faf4db60e11b815260040160405180910390fd5b6001600160a01b038116611d2a57604051630fd187d360e01b815260040160405180910390fd5b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa158015611d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da29190612c86565b15611dc057604051637142ceb360e11b815260040160405180910390fd5b50935093915050565b60008051602061313183398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b611e32612311565b6000805160206131718339815191526000611e62600080516020613151833981519152546001600160401b031690565b90506000611e6e610572565b9050816001600160401b0316600103611e9b5760028301805462ffffff191662ffffff8316179055611ee9565b600283015462ffffff90811690821611611ee95760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b6044820152606401610bcb565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015611f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc19190612f81565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906116209083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101cf612311565b6000805160206131518339815191528054600160401b810460ff1615906001600160401b03166000811580156121045750825b90506000826001600160401b031660011480156121205750303b155b90508115801561212e575080155b1561214c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561217657845460ff60401b1916600160401b1785555b6000808780602001905181019061218d9190612fa8565b9150915061219a8261234a565b6121a4818a61235e565b6121b463bdc07c9b60e01b6123c9565b505083156121fc57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516122749190612fd7565b600060405180830381855afa9150503d80600081146122af576040519150601f19603f3d011682016040523d82523d6000602084013e6122b4565b606091505b509150915081156123065760408151106122e657808060200190518101906122dc9190612ff3565b9094509250612306565b602081511061230657808060200190518101906123039190612c86565b93505b505094509492505050565b60008051602061315183398151915254600160401b900460ff1661234857604051631afcd79f60e31b815260040160405180910390fd5b565b612352612311565b61235b816123ee565b50565b6000603c61236a6116d3565b6040805160ff938416602082015292909116908201526060016040516020818303038152906040529050600061239f846123ff565b905060006123b28583603c848888612446565b6123c2637b6a51fd60e01b6123c9565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6123f6612311565b61235b81611dc9565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa158015610e45573d6000803e3d6000fd5b6124876301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6124918287612512565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b861515021781559050600181016125018382613071565b506121fc6303fb044760e21b6123c9565b6001600160a01b0382166125685760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e6572206973203000006044820152606401610bcb565b600280546001600160a01b0319166001600160a01b038416179055611133816001546001600160a01b0316156125c05760015460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401610bcb565b6001600160a01b0381166125e75760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b60000361261d5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610bcb565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526301ffc9a7906126639063cc7f293160e01b90600401612b0c565b602060405180830381865afa92505050801561269c575060408051601f3d908101601f1916820190925261269991810190612c86565b60015b6126c45760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610bcb565b806111335760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610bcb565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60006020828403121561273d57600080fd5b81356001600160e01b03198116811461275557600080fd5b9392505050565b60005b8381101561277757818101518382015260200161275f565b50506000910152565b6000815180845261279881602086016020860161275c565b601f01601f19169290920160200192915050565b60006001600160601b038083511684528060208401511660208501525060ff6040830151166040840152606082015115156060840152608082015160018060a01b0380821660808601528060a08501511660a0860152505060c082015160e060c085015261281d60e0850182612780565b949350505050565b60408152600061283860408301856127ac565b828103602084015261284a8185612780565b95945050505050565b62ffffff8116811461235b57600080fd5b60006020828403121561287657600080fd5b813561275581612853565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156128b9576128b9612881565b60405290565b604051601f8201601f191681016001600160401b03811182821017156128e7576128e7612881565b604052919050565b6001600160601b038116811461235b57600080fd5b803561290f816128ef565b919050565b60ff8116811461235b57600080fd5b803561290f81612914565b801515811461235b57600080fd5b803561290f8161292e565b6001600160a01b038116811461235b57600080fd5b803561290f81612947565b60006001600160401b0382111561298057612980612881565b50601f01601f191660200190565b600082601f83011261299f57600080fd5b81356129b26129ad82612967565b6128bf565b8181528460208386010111156129c757600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156129f657600080fd5b81356001600160401b0380821115612a0d57600080fd5b9083019060e08286031215612a2157600080fd5b612a29612897565b612a3283612904565b8152612a4060208401612904565b6020820152612a5160408401612923565b6040820152612a626060840161293c565b6060820152612a736080840161295c565b6080820152612a8460a0840161295c565b60a082015260c083013582811115612a9b57600080fd5b612aa78782860161298e565b60c08301525095945050505050565b60008060408385031215612ac957600080fd5b8235612ad481612947565b91506020830135612ae481612947565b809150509250929050565b600060208284031215612b0157600080fd5b813561275581612947565b6001600160e01b031991909116815260200190565b600080600060608486031215612b3657600080fd5b8335612b4181612947565b92506020840135612b5181612947565b915060408401356001600160401b03811115612b6c57600080fd5b612b788682870161298e565b9150509250925092565b600060208284031215612b9457600080fd5b5035919050565b600060208284031215612bad57600080fd5b815161275581612853565b634e487b7160e01b600052603260045260246000fd5b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b84811015612c6c57898403603f190186528251805160ff168552880151888501889052805188860181905290890190839060608701905b80831015612c575783516001600160e01b0319168252928b019260019290920191908b0190612c2d565b50978a01979550505091870191600101612bf6565b50919998505050505050505050565b805161290f8161292e565b600060208284031215612c9857600080fd5b81516127558161292e565b805161290f816128ef565b600060208284031215612cc057600080fd5b8151612755816128ef565b600060208284031215612cdd57600080fd5b5051919050565b60208152600061275560208301846127ac565b805161290f81612947565b600060208284031215612d1457600080fd5b815161275581612947565b600060208284031215612d3157600080fd5b81516001600160401b038116811461275557600080fd5b805161290f81612914565b600060208284031215612d6557600080fd5b815161275581612914565b600181811c90821680612d8457607f821691505b602082108103612da457634e487b7160e01b600052602260045260246000fd5b50919050565b60008085851115612dba57600080fd5b83861115612dc757600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015612dfc5780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b600082601f830112612e5557600080fd5b8151612e636129ad82612967565b818152846020838601011115612e7857600080fd5b61281d82602083016020870161275c565b60008060408385031215612e9c57600080fd5b82516001600160401b0380821115612eb357600080fd5b9084019060e08287031215612ec757600080fd5b612ecf612897565b612ed883612ca3565b8152612ee660208401612ca3565b6020820152612ef760408401612d48565b6040820152612f0860608401612c7b565b6060820152612f1960808401612cf7565b6080820152612f2a60a08401612cf7565b60a082015260c083015182811115612f4157600080fd5b612f4d88828601612e44565b60c0830152506020860151909450915080821115612f6a57600080fd5b50612f7785828601612e44565b9150509250929050565b600060208284031215612f9357600080fd5b815164ffffffffff8116811461275557600080fd5b60008060408385031215612fbb57600080fd5b8251612fc681612947565b6020840151909250612ae481612947565b60008251612fe981846020870161275c565b9190910192915050565b6000806040838503121561300657600080fd5b82516130118161292e565b602084015190925063ffffffff81168114612ae457600080fd5b601f821115611bbe57600081815260208120601f850160051c810160208610156130525750805b601f850160051c820191505b81811015611ab05782815560010161305e565b81516001600160401b0381111561308a5761308a612881565b61309e816130988454612d70565b8461302b565b602080601f8311600181146130d357600084156130bb5750858301515b600019600386901b1c1916600185901b178555611ab0565b600085815260208120601f198616915b82811015613102578886015182559484019460019091019084016130e3565b50858210156131205787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a26469706673582212200fcc53462bee2b691540f248064c1cc017faf91136d12e41777ab40bafafa0ae64736f6c63430008140033",
1103
+ "linkReferences": {
1104
+ "contracts/types/Blocknumber.sol": {
1105
+ "BlocknumberLib": [
1106
+ {
1107
+ "length": 20,
1108
+ "start": 3761
1109
+ }
1110
+ ]
1111
+ },
1112
+ "contracts/types/NftId.sol": {
1113
+ "NftIdLib": [
1114
+ {
1115
+ "length": 20,
1116
+ "start": 3177
1117
+ },
1118
+ {
1119
+ "length": 20,
1120
+ "start": 5177
1121
+ }
1122
+ ]
1123
+ },
1124
+ "contracts/types/Timestamp.sol": {
1125
+ "TimestampLib": [
1126
+ {
1127
+ "length": 20,
1128
+ "start": 8349
1129
+ }
1130
+ ]
1131
+ },
1132
+ "contracts/types/Version.sol": {
1133
+ "VersionLib": [
1134
+ {
1135
+ "length": 20,
1136
+ "start": 1747
1137
+ },
1138
+ {
1139
+ "length": 20,
1140
+ "start": 5649
1141
+ },
1142
+ {
1143
+ "length": 20,
1144
+ "start": 6194
1145
+ }
1146
+ ]
1147
+ }
1148
+ },
1149
+ "deployedLinkReferences": {
1150
+ "contracts/types/Blocknumber.sol": {
1151
+ "BlocknumberLib": [
1152
+ {
1153
+ "length": 20,
1154
+ "start": 3447
1155
+ }
1156
+ ]
1157
+ },
1158
+ "contracts/types/NftId.sol": {
1159
+ "NftIdLib": [
1160
+ {
1161
+ "length": 20,
1162
+ "start": 2863
1163
+ },
1164
+ {
1165
+ "length": 20,
1166
+ "start": 4863
1167
+ }
1168
+ ]
1169
+ },
1170
+ "contracts/types/Timestamp.sol": {
1171
+ "TimestampLib": [
1172
+ {
1173
+ "length": 20,
1174
+ "start": 8035
1175
+ }
1176
+ ]
1177
+ },
1178
+ "contracts/types/Version.sol": {
1179
+ "VersionLib": [
1180
+ {
1181
+ "length": 20,
1182
+ "start": 1433
1183
+ },
1184
+ {
1185
+ "length": 20,
1186
+ "start": 5335
1187
+ },
1188
+ {
1189
+ "length": 20,
1190
+ "start": 5880
1191
+ }
1192
+ ]
1193
+ }
1194
+ }
1195
+ }