@etherisc/gif-next 0.0.2-c4efd5e → 0.0.2-c576a00-897

Sign up to get free protection for your applications and to get access to all the features.
Files changed (333) hide show
  1. package/README.md +85 -1
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +4 -0
  3. package/artifacts/contracts/components/{Component.sol/Component.json → BaseComponent.sol/BaseComponent.json} +48 -53
  4. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +4 -0
  5. package/artifacts/contracts/components/{IPool.sol/IPoolComponent.json → IBaseComponent.sol/IBaseComponent.json} +48 -53
  6. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  7. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +356 -0
  8. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/{IProduct.sol → IProductComponent.sol}/IProductComponent.json +139 -52
  10. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  11. package/artifacts/contracts/components/Pool.sol/Pool.json +218 -44
  12. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  13. package/artifacts/contracts/components/Product.sol/Product.json +144 -70
  14. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  15. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +2 -2
  16. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  17. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +2 -2
  18. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +2 -2
  20. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +2 -2
  22. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/kvstore/BundleModuleStore.sol/BundleModuleStore.dbg.json +4 -0
  29. package/artifacts/contracts/experiment/kvstore/BundleModuleStore.sol/BundleModuleStore.json +543 -0
  30. package/artifacts/contracts/experiment/kvstore/IBundle.sol/IBundle.dbg.json +4 -0
  31. package/artifacts/contracts/experiment/kvstore/IBundle.sol/IBundle.json +10 -0
  32. package/artifacts/contracts/experiment/kvstore/KeyMapper.sol/KeyMapper.dbg.json +4 -0
  33. package/artifacts/contracts/experiment/kvstore/KeyMapper.sol/KeyMapper.json +185 -0
  34. package/artifacts/contracts/experiment/kvstore/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  35. package/artifacts/contracts/experiment/kvstore/KeyValueStore.sol/KeyValueStore.json +383 -0
  36. package/artifacts/contracts/experiment/kvstore/KvStore.sol/KvStore.dbg.json +4 -0
  37. package/artifacts/contracts/experiment/kvstore/KvStore.sol/KvStore.json +1064 -0
  38. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +4 -0
  39. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +59 -0
  40. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +4 -0
  41. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +124 -0
  42. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +4 -0
  43. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +74 -0
  44. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +4 -0
  45. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +124 -0
  46. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +4 -0
  47. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +207 -0
  48. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  49. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +2 -2
  50. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  51. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +2 -2
  52. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  53. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1414 -289
  54. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +4 -0
  55. package/artifacts/contracts/instance/{component/IComponent.sol → IInstanceLinked.sol}/IInstanceLinked.json +1 -1
  56. package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.dbg.json +4 -0
  57. package/artifacts/contracts/instance/{access/IAccess.sol/IAccessComponentTypeRoles.json → IServiceLinked.sol/IServiceLinked.json} +14 -14
  58. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/Instance.sol/Instance.json +1715 -345
  60. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  61. package/artifacts/contracts/instance/{component/ComponentModule.sol/ComponentModule.json → InstanceBase.sol/InstanceBase.json} +128 -142
  62. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +4 -0
  63. package/artifacts/contracts/instance/{access → module/access}/Access.sol/AccessModule.json +85 -152
  64. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +4 -0
  65. package/artifacts/contracts/instance/{access → module/access}/IAccess.sol/IAccess.json +1 -1
  66. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{access → module/access}/IAccess.sol/IAccessModule.json +96 -99
  68. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +4 -0
  69. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +276 -0
  70. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +4 -0
  71. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.json +10 -0
  72. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +4 -0
  73. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +276 -0
  74. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +4 -0
  75. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +10 -0
  76. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +10 -0
  78. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +4 -0
  79. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +10 -0
  80. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +4 -0
  81. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +188 -0
  82. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +4 -0
  83. package/artifacts/contracts/instance/{component → module/component}/IComponent.sol/IComponent.json +1 -1
  84. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +4 -0
  85. package/artifacts/contracts/instance/{component → module/component}/IComponent.sol/IComponentModule.json +40 -97
  86. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  87. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.json +134 -0
  88. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +4 -0
  89. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.json +182 -0
  90. package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +4 -0
  91. package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.json +221 -0
  92. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{policy → module/policy}/IPolicy.sol/IPolicy.json +1 -1
  94. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +4 -0
  95. package/artifacts/contracts/instance/{policy → module/policy}/IPolicy.sol/IPolicyModule.json +142 -112
  96. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +4 -0
  97. package/artifacts/contracts/instance/{policy → module/policy}/PolicyModule.sol/PolicyModule.json +142 -112
  98. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +4 -0
  99. package/artifacts/contracts/instance/{pool → module/pool}/IPoolModule.sol/IPool.json +1 -1
  100. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +4 -0
  101. package/artifacts/contracts/instance/{pool → module/pool}/IPoolModule.sol/IPoolModule.json +57 -57
  102. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +4 -0
  103. package/artifacts/contracts/instance/{pool → module/pool}/PoolModule.sol/PoolModule.json +50 -63
  104. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +4 -0
  105. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.json +10 -0
  106. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +4 -0
  107. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +167 -0
  108. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +185 -0
  110. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +4 -0
  111. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +10 -0
  112. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +4 -0
  113. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +533 -0
  114. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  115. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +76 -0
  116. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +4 -0
  117. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +533 -0
  118. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +4 -0
  119. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +491 -0
  120. package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
  121. package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.json +300 -0
  122. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +4 -0
  123. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +364 -0
  124. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
  125. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +376 -0
  126. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
  127. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +477 -0
  128. package/artifacts/contracts/instance/service/IService.sol/IService.dbg.json +4 -0
  129. package/artifacts/contracts/instance/{component/IComponent.sol/IComponentContract.json → service/IService.sol/IService.json} +148 -27
  130. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
  131. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +471 -0
  132. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
  133. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +673 -0
  134. package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.dbg.json +4 -0
  135. package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.json +300 -0
  136. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  137. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +65 -2
  138. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
  139. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  140. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +103 -77
  141. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  142. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +24 -0
  143. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  144. package/artifacts/contracts/registry/Registry.sol/Registry.json +194 -69
  145. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  146. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +35 -0
  147. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +4 -0
  148. package/artifacts/contracts/{registry/IRegistry.sol → shared/IOwnable.sol}/IOwnable.json +1 -1
  149. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  150. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegisterable.sol}/IRegisterable.json +18 -63
  151. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  152. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +164 -0
  153. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  154. package/artifacts/contracts/{registry/Registry.sol → shared/Registerable.sol}/Registerable.json +18 -63
  155. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  156. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +164 -0
  157. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +4 -0
  158. package/artifacts/contracts/test/TestFee.sol/TestFee.json +119 -0
  159. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +4 -0
  160. package/artifacts/contracts/test/TestPool.sol/TestPool.json +387 -0
  161. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +4 -0
  162. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +393 -0
  163. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
  164. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +137 -0
  165. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +4 -0
  166. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +82 -0
  167. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +4 -0
  168. package/artifacts/contracts/test/TestService.sol/TestService.json +379 -0
  169. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +4 -0
  170. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +338 -0
  171. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +4 -0
  172. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +218 -0
  173. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +4 -0
  174. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +206 -0
  175. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  176. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +10 -0
  177. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  178. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +40 -2
  179. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  180. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +2 -2
  181. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
  182. package/artifacts/contracts/types/Fee.sol/FeeLib.json +218 -0
  183. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  184. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  185. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  186. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +10 -0
  187. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  188. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +92 -0
  189. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +4 -0
  190. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +92 -0
  191. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  192. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +64 -2
  193. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
  194. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +58 -58
  195. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +4 -0
  196. package/artifacts/contracts/types/Version.sol/VersionLib.json +139 -0
  197. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +4 -0
  198. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +30 -0
  199. package/contracts/components/BaseComponent.sol +89 -0
  200. package/contracts/components/IBaseComponent.sol +19 -0
  201. package/contracts/components/IPoolComponent.sol +57 -0
  202. package/contracts/components/IProductComponent.sol +19 -0
  203. package/contracts/components/Pool.sol +162 -10
  204. package/contracts/components/Product.sol +75 -13
  205. package/contracts/experiment/kvstore/BundleModuleStore.sol +93 -0
  206. package/contracts/experiment/kvstore/IBundle.sol +22 -0
  207. package/contracts/experiment/kvstore/KeyMapper.sol +40 -0
  208. package/contracts/experiment/kvstore/KeyValueStore.sol +156 -0
  209. package/contracts/experiment/kvstore/KvStore.sol +195 -0
  210. package/contracts/experiment/statemachine/Dummy.sol +27 -0
  211. package/contracts/experiment/statemachine/ISM.sol +25 -0
  212. package/contracts/experiment/statemachine/README.md +112 -0
  213. package/contracts/experiment/statemachine/SM.sol +57 -0
  214. package/contracts/experiment/statemachine/SimpleStateMachine.sol +31 -0
  215. package/contracts/instance/IInstance.sol +43 -8
  216. package/contracts/instance/IInstanceLinked.sol +8 -0
  217. package/contracts/instance/IServiceLinked.sol +12 -0
  218. package/contracts/instance/Instance.sol +45 -43
  219. package/contracts/instance/InstanceBase.sol +71 -0
  220. package/contracts/instance/module/access/Access.sol +149 -0
  221. package/contracts/instance/module/access/IAccess.sol +53 -0
  222. package/contracts/instance/module/bundle/BundleModule.sol +228 -0
  223. package/contracts/instance/module/bundle/IBundle.sol +53 -0
  224. package/contracts/instance/module/compensation/CompensationModule.sol +8 -0
  225. package/contracts/instance/module/compensation/ICompensation.sol +10 -0
  226. package/contracts/instance/module/component/ComponentModule.sol +103 -0
  227. package/contracts/instance/module/component/IComponent.sol +53 -0
  228. package/contracts/instance/module/lifecycle/ILifecycle.sol +47 -0
  229. package/contracts/instance/module/lifecycle/LifecycleModule.sol +89 -0
  230. package/contracts/instance/module/policy/IPolicy.sol +60 -0
  231. package/contracts/instance/module/policy/PolicyModule.sol +84 -0
  232. package/contracts/instance/module/pool/IPoolModule.sol +41 -0
  233. package/contracts/instance/module/pool/PoolModule.sol +87 -0
  234. package/contracts/instance/module/risk/IRisk.sol +39 -0
  235. package/contracts/instance/module/risk/RiskModule.sol +55 -0
  236. package/contracts/instance/module/treasury/ITreasury.sol +103 -0
  237. package/contracts/instance/module/treasury/TokenHandler.sol +48 -0
  238. package/contracts/instance/module/treasury/TreasuryModule.sol +152 -0
  239. package/contracts/instance/service/ComponentOwnerService.sol +171 -0
  240. package/contracts/instance/service/ComponentServiceBase.sol +41 -0
  241. package/contracts/instance/service/IComponentOwnerService.sol +22 -0
  242. package/contracts/instance/service/IPoolService.sol +30 -0
  243. package/contracts/instance/service/IProductService.sol +58 -0
  244. package/contracts/instance/service/IService.sol +15 -0
  245. package/contracts/instance/service/PoolService.sol +123 -0
  246. package/contracts/instance/service/ProductService.sol +355 -0
  247. package/contracts/instance/service/ServiceBase.sol +39 -0
  248. package/contracts/registry/ChainNft.sol +61 -37
  249. package/contracts/registry/IRegistry.sol +27 -50
  250. package/contracts/registry/IRegistryLinked.sol +8 -0
  251. package/contracts/registry/Registry.sol +281 -109
  252. package/contracts/shared/ERC165.sol +21 -0
  253. package/contracts/shared/IOwnable.sol +6 -0
  254. package/contracts/shared/IRegisterable.sol +24 -0
  255. package/contracts/shared/IVersionable.sol +52 -0
  256. package/contracts/shared/Registerable.sol +86 -0
  257. package/contracts/shared/Versionable.sol +89 -0
  258. package/contracts/test/TestFee.sol +25 -0
  259. package/contracts/test/TestPool.sol +22 -0
  260. package/contracts/test/TestProduct.sol +44 -0
  261. package/contracts/test/TestRegisterable.sol +19 -0
  262. package/contracts/test/TestRoleId.sol +14 -0
  263. package/contracts/test/TestService.sol +32 -0
  264. package/contracts/test/TestToken.sol +26 -0
  265. package/contracts/test/TestVersion.sol +44 -0
  266. package/contracts/test/TestVersionable.sol +17 -0
  267. package/contracts/types/AddressSet.sol +58 -0
  268. package/contracts/types/Blocknumber.sol +16 -0
  269. package/contracts/types/Fee.sol +51 -0
  270. package/contracts/types/NftId.sol +7 -1
  271. package/contracts/types/NftIdSet.sol +60 -0
  272. package/contracts/types/ObjectType.sol +119 -0
  273. package/contracts/types/RiskId.sol +26 -0
  274. package/contracts/types/RoleId.sol +36 -0
  275. package/contracts/types/StateId.sol +95 -0
  276. package/contracts/types/Timestamp.sol +22 -1
  277. package/contracts/types/UFixed.sol +15 -14
  278. package/contracts/types/Version.sol +95 -0
  279. package/package.json +13 -6
  280. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  281. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  282. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  283. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  284. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  285. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  286. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  287. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  288. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.json +0 -35
  289. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  290. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  291. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  292. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  293. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
  294. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  295. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  296. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  297. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  298. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  299. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  300. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  301. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  302. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  303. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  304. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  305. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  306. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  307. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  308. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  309. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  310. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  311. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  312. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  313. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
  314. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  315. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  316. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  317. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  318. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  319. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  320. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  321. package/contracts/components/Component.sol +0 -60
  322. package/contracts/components/IPool.sol +0 -9
  323. package/contracts/components/IProduct.sol +0 -9
  324. package/contracts/instance/access/Access.sol +0 -165
  325. package/contracts/instance/access/IAccess.sol +0 -63
  326. package/contracts/instance/component/ComponentModule.sol +0 -213
  327. package/contracts/instance/component/IComponent.sol +0 -73
  328. package/contracts/instance/policy/IPolicy.sol +0 -51
  329. package/contracts/instance/policy/PolicyModule.sol +0 -91
  330. package/contracts/instance/pool/IPoolModule.sol +0 -29
  331. package/contracts/instance/pool/PoolModule.sol +0 -73
  332. package/contracts/instance/product/IProductService.sol +0 -36
  333. package/contracts/instance/product/ProductService.sol +0 -112
@@ -0,0 +1,543 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "BundleModuleStore",
4
+ "sourceName": "contracts/experiment/kvstore/BundleModuleStore.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "inputs": [],
13
+ "name": "ID_MASK",
14
+ "outputs": [
15
+ {
16
+ "internalType": "bytes32",
17
+ "name": "",
18
+ "type": "bytes32"
19
+ }
20
+ ],
21
+ "stateMutability": "view",
22
+ "type": "function"
23
+ },
24
+ {
25
+ "inputs": [],
26
+ "name": "ID_SHIFT",
27
+ "outputs": [
28
+ {
29
+ "internalType": "uint8",
30
+ "name": "",
31
+ "type": "uint8"
32
+ }
33
+ ],
34
+ "stateMutability": "view",
35
+ "type": "function"
36
+ },
37
+ {
38
+ "inputs": [],
39
+ "name": "TYPE_MASK",
40
+ "outputs": [
41
+ {
42
+ "internalType": "bytes32",
43
+ "name": "",
44
+ "type": "bytes32"
45
+ }
46
+ ],
47
+ "stateMutability": "view",
48
+ "type": "function"
49
+ },
50
+ {
51
+ "inputs": [],
52
+ "name": "TYPE_SHIFT",
53
+ "outputs": [
54
+ {
55
+ "internalType": "uint8",
56
+ "name": "",
57
+ "type": "uint8"
58
+ }
59
+ ],
60
+ "stateMutability": "view",
61
+ "type": "function"
62
+ },
63
+ {
64
+ "inputs": [
65
+ {
66
+ "components": [
67
+ {
68
+ "internalType": "NftId",
69
+ "name": "nftId",
70
+ "type": "uint96"
71
+ },
72
+ {
73
+ "internalType": "NftId",
74
+ "name": "poolNftId",
75
+ "type": "uint96"
76
+ },
77
+ {
78
+ "internalType": "StateId",
79
+ "name": "state",
80
+ "type": "uint8"
81
+ },
82
+ {
83
+ "internalType": "bytes",
84
+ "name": "filter",
85
+ "type": "bytes"
86
+ },
87
+ {
88
+ "internalType": "uint256",
89
+ "name": "capitalAmount",
90
+ "type": "uint256"
91
+ },
92
+ {
93
+ "internalType": "uint256",
94
+ "name": "lockedAmount",
95
+ "type": "uint256"
96
+ },
97
+ {
98
+ "internalType": "uint256",
99
+ "name": "balanceAmount",
100
+ "type": "uint256"
101
+ },
102
+ {
103
+ "internalType": "Timestamp",
104
+ "name": "expiredAt",
105
+ "type": "uint40"
106
+ },
107
+ {
108
+ "internalType": "Timestamp",
109
+ "name": "closedAt",
110
+ "type": "uint40"
111
+ }
112
+ ],
113
+ "internalType": "struct IBundle.BundleInfo",
114
+ "name": "info",
115
+ "type": "tuple"
116
+ }
117
+ ],
118
+ "name": "createBundleInfo",
119
+ "outputs": [
120
+ {
121
+ "internalType": "bytes32",
122
+ "name": "key",
123
+ "type": "bytes32"
124
+ }
125
+ ],
126
+ "stateMutability": "nonpayable",
127
+ "type": "function"
128
+ },
129
+ {
130
+ "inputs": [
131
+ {
132
+ "internalType": "uint256",
133
+ "name": "bundleId",
134
+ "type": "uint256"
135
+ },
136
+ {
137
+ "internalType": "uint256",
138
+ "name": "amount",
139
+ "type": "uint256"
140
+ },
141
+ {
142
+ "internalType": "bytes",
143
+ "name": "filter",
144
+ "type": "bytes"
145
+ }
146
+ ],
147
+ "name": "createBundleInfo",
148
+ "outputs": [
149
+ {
150
+ "components": [
151
+ {
152
+ "internalType": "NftId",
153
+ "name": "nftId",
154
+ "type": "uint96"
155
+ },
156
+ {
157
+ "internalType": "NftId",
158
+ "name": "poolNftId",
159
+ "type": "uint96"
160
+ },
161
+ {
162
+ "internalType": "StateId",
163
+ "name": "state",
164
+ "type": "uint8"
165
+ },
166
+ {
167
+ "internalType": "bytes",
168
+ "name": "filter",
169
+ "type": "bytes"
170
+ },
171
+ {
172
+ "internalType": "uint256",
173
+ "name": "capitalAmount",
174
+ "type": "uint256"
175
+ },
176
+ {
177
+ "internalType": "uint256",
178
+ "name": "lockedAmount",
179
+ "type": "uint256"
180
+ },
181
+ {
182
+ "internalType": "uint256",
183
+ "name": "balanceAmount",
184
+ "type": "uint256"
185
+ },
186
+ {
187
+ "internalType": "Timestamp",
188
+ "name": "expiredAt",
189
+ "type": "uint40"
190
+ },
191
+ {
192
+ "internalType": "Timestamp",
193
+ "name": "closedAt",
194
+ "type": "uint40"
195
+ }
196
+ ],
197
+ "internalType": "struct IBundle.BundleInfo",
198
+ "name": "info",
199
+ "type": "tuple"
200
+ }
201
+ ],
202
+ "stateMutability": "view",
203
+ "type": "function"
204
+ },
205
+ {
206
+ "inputs": [
207
+ {
208
+ "internalType": "bytes32",
209
+ "name": "key",
210
+ "type": "bytes32"
211
+ }
212
+ ],
213
+ "name": "getBundleInfo",
214
+ "outputs": [
215
+ {
216
+ "components": [
217
+ {
218
+ "internalType": "NftId",
219
+ "name": "nftId",
220
+ "type": "uint96"
221
+ },
222
+ {
223
+ "internalType": "NftId",
224
+ "name": "poolNftId",
225
+ "type": "uint96"
226
+ },
227
+ {
228
+ "internalType": "StateId",
229
+ "name": "state",
230
+ "type": "uint8"
231
+ },
232
+ {
233
+ "internalType": "bytes",
234
+ "name": "filter",
235
+ "type": "bytes"
236
+ },
237
+ {
238
+ "internalType": "uint256",
239
+ "name": "capitalAmount",
240
+ "type": "uint256"
241
+ },
242
+ {
243
+ "internalType": "uint256",
244
+ "name": "lockedAmount",
245
+ "type": "uint256"
246
+ },
247
+ {
248
+ "internalType": "uint256",
249
+ "name": "balanceAmount",
250
+ "type": "uint256"
251
+ },
252
+ {
253
+ "internalType": "Timestamp",
254
+ "name": "expiredAt",
255
+ "type": "uint40"
256
+ },
257
+ {
258
+ "internalType": "Timestamp",
259
+ "name": "closedAt",
260
+ "type": "uint40"
261
+ }
262
+ ],
263
+ "internalType": "struct IBundle.BundleInfo",
264
+ "name": "",
265
+ "type": "tuple"
266
+ }
267
+ ],
268
+ "stateMutability": "view",
269
+ "type": "function"
270
+ },
271
+ {
272
+ "inputs": [],
273
+ "name": "getStore",
274
+ "outputs": [
275
+ {
276
+ "internalType": "contract KeyValueStore",
277
+ "name": "",
278
+ "type": "address"
279
+ }
280
+ ],
281
+ "stateMutability": "view",
282
+ "type": "function"
283
+ },
284
+ {
285
+ "inputs": [
286
+ {
287
+ "internalType": "NftId",
288
+ "name": "bundleNftId",
289
+ "type": "uint96"
290
+ }
291
+ ],
292
+ "name": "toBundleKey32",
293
+ "outputs": [
294
+ {
295
+ "internalType": "bytes32",
296
+ "name": "key",
297
+ "type": "bytes32"
298
+ }
299
+ ],
300
+ "stateMutability": "pure",
301
+ "type": "function"
302
+ },
303
+ {
304
+ "inputs": [
305
+ {
306
+ "internalType": "ObjectType",
307
+ "name": "objectType",
308
+ "type": "uint8"
309
+ },
310
+ {
311
+ "internalType": "KeyId",
312
+ "name": "id",
313
+ "type": "bytes31"
314
+ }
315
+ ],
316
+ "name": "toKey",
317
+ "outputs": [
318
+ {
319
+ "components": [
320
+ {
321
+ "internalType": "ObjectType",
322
+ "name": "objectType",
323
+ "type": "uint8"
324
+ },
325
+ {
326
+ "internalType": "KeyId",
327
+ "name": "id",
328
+ "type": "bytes31"
329
+ }
330
+ ],
331
+ "internalType": "struct KeyMapper.Key",
332
+ "name": "",
333
+ "type": "tuple"
334
+ }
335
+ ],
336
+ "stateMutability": "pure",
337
+ "type": "function"
338
+ },
339
+ {
340
+ "inputs": [
341
+ {
342
+ "internalType": "bytes32",
343
+ "name": "key",
344
+ "type": "bytes32"
345
+ }
346
+ ],
347
+ "name": "toKey",
348
+ "outputs": [
349
+ {
350
+ "components": [
351
+ {
352
+ "internalType": "ObjectType",
353
+ "name": "objectType",
354
+ "type": "uint8"
355
+ },
356
+ {
357
+ "internalType": "KeyId",
358
+ "name": "id",
359
+ "type": "bytes31"
360
+ }
361
+ ],
362
+ "internalType": "struct KeyMapper.Key",
363
+ "name": "",
364
+ "type": "tuple"
365
+ }
366
+ ],
367
+ "stateMutability": "pure",
368
+ "type": "function"
369
+ },
370
+ {
371
+ "inputs": [
372
+ {
373
+ "components": [
374
+ {
375
+ "internalType": "ObjectType",
376
+ "name": "objectType",
377
+ "type": "uint8"
378
+ },
379
+ {
380
+ "internalType": "KeyId",
381
+ "name": "id",
382
+ "type": "bytes31"
383
+ }
384
+ ],
385
+ "internalType": "struct KeyMapper.Key",
386
+ "name": "key",
387
+ "type": "tuple"
388
+ }
389
+ ],
390
+ "name": "toKey32",
391
+ "outputs": [
392
+ {
393
+ "internalType": "bytes32",
394
+ "name": "",
395
+ "type": "bytes32"
396
+ }
397
+ ],
398
+ "stateMutability": "pure",
399
+ "type": "function"
400
+ },
401
+ {
402
+ "inputs": [
403
+ {
404
+ "internalType": "ObjectType",
405
+ "name": "objectType",
406
+ "type": "uint8"
407
+ },
408
+ {
409
+ "internalType": "KeyId",
410
+ "name": "id",
411
+ "type": "bytes31"
412
+ }
413
+ ],
414
+ "name": "toKey32",
415
+ "outputs": [
416
+ {
417
+ "internalType": "bytes32",
418
+ "name": "",
419
+ "type": "bytes32"
420
+ }
421
+ ],
422
+ "stateMutability": "pure",
423
+ "type": "function"
424
+ },
425
+ {
426
+ "inputs": [
427
+ {
428
+ "internalType": "NftId",
429
+ "name": "nftId",
430
+ "type": "uint96"
431
+ }
432
+ ],
433
+ "name": "toKeyId",
434
+ "outputs": [
435
+ {
436
+ "internalType": "KeyId",
437
+ "name": "keyId",
438
+ "type": "bytes31"
439
+ }
440
+ ],
441
+ "stateMutability": "pure",
442
+ "type": "function"
443
+ },
444
+ {
445
+ "inputs": [
446
+ {
447
+ "components": [
448
+ {
449
+ "internalType": "NftId",
450
+ "name": "nftId",
451
+ "type": "uint96"
452
+ },
453
+ {
454
+ "internalType": "NftId",
455
+ "name": "poolNftId",
456
+ "type": "uint96"
457
+ },
458
+ {
459
+ "internalType": "StateId",
460
+ "name": "state",
461
+ "type": "uint8"
462
+ },
463
+ {
464
+ "internalType": "bytes",
465
+ "name": "filter",
466
+ "type": "bytes"
467
+ },
468
+ {
469
+ "internalType": "uint256",
470
+ "name": "capitalAmount",
471
+ "type": "uint256"
472
+ },
473
+ {
474
+ "internalType": "uint256",
475
+ "name": "lockedAmount",
476
+ "type": "uint256"
477
+ },
478
+ {
479
+ "internalType": "uint256",
480
+ "name": "balanceAmount",
481
+ "type": "uint256"
482
+ },
483
+ {
484
+ "internalType": "Timestamp",
485
+ "name": "expiredAt",
486
+ "type": "uint40"
487
+ },
488
+ {
489
+ "internalType": "Timestamp",
490
+ "name": "closedAt",
491
+ "type": "uint40"
492
+ }
493
+ ],
494
+ "internalType": "struct IBundle.BundleInfo",
495
+ "name": "info",
496
+ "type": "tuple"
497
+ }
498
+ ],
499
+ "name": "updateBundleInfo",
500
+ "outputs": [],
501
+ "stateMutability": "nonpayable",
502
+ "type": "function"
503
+ }
504
+ ],
505
+ "bytecode": "0x608060405234801561001057600080fd5b5060405161001d9061007e565b604051809103906000f080158015610039573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061008b565b611b1980611a3483390190565b61199a8061009a6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063837dd0cb11610097578063c2722ecc11610066578063c2722ecc146102d2578063d92bb60d146102f0578063da3fe4121461030e578063f48016ce1461032c576100f5565b8063837dd0cb14610212578063a13df2ab14610242578063a4dc7d8614610272578063bc12c099146102a2576100f5565b806329e9b226116100d357806329e9b2261461017857806340a8cd9e146101965780635651ed82146101c657806360fa775b146101e2576100f5565b80630f94cc50146100fa578063198e89ee14610118578063229660f014610148575b600080fd5b61010261035c565b60405161010f9190610aee565b60405180910390f35b610132600480360381019061012d9190610e59565b610386565b60405161013f9190610aee565b60405180910390f35b610162600480360381019061015d9190610f76565b610451565b60405161016f9190610aee565b60405180910390f35b61018061046c565b60405161018d9190610fb2565b60405180910390f35b6101b060048036038101906101ab9190610fcd565b610471565b6040516101bd919061101b565b60405180910390f35b6101e060048036038101906101db9190610e59565b610518565b005b6101fc60048036038101906101f79190611062565b6105d9565b604051610209919061127f565b60405180910390f35b61022c600480360381019061022791906112a1565b6106a1565b604051610239919061132e565b60405180910390f35b61025c60048036038101906102579190610fcd565b6106cd565b6040516102699190610aee565b60405180910390f35b61028c60048036038101906102879190611062565b6106ef565b604051610299919061132e565b60405180910390f35b6102bc60048036038101906102b791906113a9565b610798565b6040516102c9919061127f565b60405180910390f35b6102da61090f565b6040516102e79190611492565b60405180910390f35b6102f8610938565b6040516103059190610aee565b60405180910390f35b610316610963565b6040516103239190610fb2565b60405180910390f35b610346600480360381019061034191906112a1565b610978565b6040516103539190610aee565b60405180910390f35b60ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b600061039582600001516106cd565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635dee4788826103dc6109d0565b856040516020016103ed919061127f565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161041a93929190611506565b600060405180830381600087803b15801561043457600080fd5b505af1158015610448573d6000803e3d6000fd5b50505050919050565b600061046582600001518360200151610978565b9050919050565b60f881565b600080826bffffffffffffffffffffffff1673__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__6308dc895e90916040518263ffffffff1660e01b81526004016104bb9190611553565b602060405180830381865af41580156104d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fc919061159a565b6bffffffffffffffffffffffff1690508060081b915050919050565b600061052782600001516106cd565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663212788f98284604051602001610577919061127f565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016105a39291906115c7565b600060405180830381600087803b1580156105bd57600080fd5b505af11580156105d1573d6000803e3d6000fd5b505050505050565b6105e1610a3b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166354f6127f846040518263ffffffff1660e01b815260040161063d9190610aee565b600060405180830381865afa15801561065a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906106839190611667565b9050808060200190518101906106999190611800565b915050919050565b6106a9610ab4565b60405180604001604052808460ff1681526020018360ff1916815250905092915050565b60006106e86106da6109d0565b6106e384610471565b610978565b9050919050565b6106f7610ab4565b600060f860ff1660ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916841660001c901c9050600060f860ff166101006107429190611886565b60ff1660ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916198516901b905060405180604001604052808360ff1681526020018260ff191681525092505050919050565b6107a0610a3b565b600062278d0090506040518061012001604052806107bd886109e1565b6bffffffffffffffffffffffff1681526020016107dc6201e2406109e1565b6bffffffffffffffffffffffff1681526020016107f76109eb565b60ff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152602001868152602001600081526020018681526020016108646109fc565b64ffffffffff1673__$d53880c81dc91c20799140d711e5ab8718$__63ef6c0d789091856040518363ffffffff1660e01b81526004016108a59291906118da565b602060405180830381865af41580156108c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e69190611903565b64ffffffffff1681526020016108fa610a0c565b64ffffffffff16815250915050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161981565b60f860ff166101006109759190611886565b81565b6000808360ff16905060008360081c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905060008160f860ff1684901b6109bf9190611930565b90508060001b935050505092915050565b60006109dc60d2610a1d565b905090565b6000819050919050565b60006109f76064610a27565b905090565b6000610a0742610a31565b905090565b6000610a186000610a31565b905090565b6000819050919050565b6000819050919050565b6000819050919050565b60405180610120016040528060006bffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600060ff16815260200160608152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b6040518060400160405280600060ff168152602001600060ff191681525090565b6000819050919050565b610ae881610ad5565b82525050565b6000602082019050610b036000830184610adf565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610b6b82610b22565b810181811067ffffffffffffffff82111715610b8a57610b89610b33565b5b80604052505050565b6000610b9d610b09565b9050610ba98282610b62565b919050565b600080fd5b60006bffffffffffffffffffffffff82169050919050565b610bd481610bb3565b8114610bdf57600080fd5b50565b600081359050610bf181610bcb565b92915050565b600060ff82169050919050565b610c0d81610bf7565b8114610c1857600080fd5b50565b600081359050610c2a81610c04565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff821115610c5557610c54610b33565b5b610c5e82610b22565b9050602081019050919050565b82818337600083830152505050565b6000610c8d610c8884610c3a565b610b93565b905082815260208101848484011115610ca957610ca8610c35565b5b610cb4848285610c6b565b509392505050565b600082601f830112610cd157610cd0610c30565b5b8135610ce1848260208601610c7a565b91505092915050565b6000819050919050565b610cfd81610cea565b8114610d0857600080fd5b50565b600081359050610d1a81610cf4565b92915050565b600064ffffffffff82169050919050565b610d3a81610d20565b8114610d4557600080fd5b50565b600081359050610d5781610d31565b92915050565b60006101208284031215610d7457610d73610b1d565b5b610d7f610120610b93565b90506000610d8f84828501610be2565b6000830152506020610da384828501610be2565b6020830152506040610db784828501610c1b565b604083015250606082013567ffffffffffffffff811115610ddb57610dda610bae565b5b610de784828501610cbc565b6060830152506080610dfb84828501610d0b565b60808301525060a0610e0f84828501610d0b565b60a08301525060c0610e2384828501610d0b565b60c08301525060e0610e3784828501610d48565b60e083015250610100610e4c84828501610d48565b6101008301525092915050565b600060208284031215610e6f57610e6e610b13565b5b600082013567ffffffffffffffff811115610e8d57610e8c610b18565b5b610e9984828501610d5d565b91505092915050565b610eab81610bf7565b8114610eb657600080fd5b50565b600081359050610ec881610ea2565b92915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082169050919050565b610f0381610ece565b8114610f0e57600080fd5b50565b600081359050610f2081610efa565b92915050565b600060408284031215610f3c57610f3b610b1d565b5b610f466040610b93565b90506000610f5684828501610eb9565b6000830152506020610f6a84828501610f11565b60208301525092915050565b600060408284031215610f8c57610f8b610b13565b5b6000610f9a84828501610f26565b91505092915050565b610fac81610bf7565b82525050565b6000602082019050610fc76000830184610fa3565b92915050565b600060208284031215610fe357610fe2610b13565b5b6000610ff184828501610be2565b91505092915050565b600061100582610ece565b9050919050565b61101581610ffa565b82525050565b6000602082019050611030600083018461100c565b92915050565b61103f81610ad5565b811461104a57600080fd5b50565b60008135905061105c81611036565b92915050565b60006020828403121561107857611077610b13565b5b60006110868482850161104d565b91505092915050565b6000819050919050565b60006110b46110af6110aa84610bb3565b61108f565b610bb3565b9050919050565b6110c481611099565b82525050565b60006110e56110e06110db84610bf7565b61108f565b610bf7565b9050919050565b6110f5816110ca565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561113557808201518184015260208101905061111a565b60008484015250505050565b600061114c826110fb565b6111568185611106565b9350611166818560208601611117565b61116f81610b22565b840191505092915050565b61118381610cea565b82525050565b60006111a461119f61119a84610d20565b61108f565b610d20565b9050919050565b6111b481611189565b82525050565b6000610120830160008301516111d360008601826110bb565b5060208301516111e660208601826110bb565b5060408301516111f960408601826110ec565b50606083015184820360608601526112118282611141565b9150506080830151611226608086018261117a565b5060a083015161123960a086018261117a565b5060c083015161124c60c086018261117a565b5060e083015161125f60e08601826111ab565b506101008301516112746101008601826111ab565b508091505092915050565b6000602082019050818103600083015261129981846111ba565b905092915050565b600080604083850312156112b8576112b7610b13565b5b60006112c685828601610eb9565b92505060206112d785828601610f11565b9150509250929050565b6112ea816110ca565b82525050565b6112f981610ffa565b82525050565b60408201600082015161131560008501826112e1565b50602082015161132860208501826112f0565b50505050565b600060408201905061134360008301846112ff565b92915050565b600080fd5b600080fd5b60008083601f84011261136957611368610c30565b5b8235905067ffffffffffffffff81111561138657611385611349565b5b6020830191508360018202830111156113a2576113a161134e565b5b9250929050565b600080600080606085870312156113c3576113c2610b13565b5b60006113d187828801610d0b565b94505060206113e287828801610d0b565b935050604085013567ffffffffffffffff81111561140357611402610b18565b5b61140f87828801611353565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061145861145361144e8461141d565b61108f565b61141d565b9050919050565b600061146a8261143d565b9050919050565b600061147c8261145f565b9050919050565b61148c81611471565b82525050565b60006020820190506114a76000830184611483565b92915050565b6114b6816110ca565b82525050565b600082825260208201905092915050565b60006114d8826110fb565b6114e281856114bc565b93506114f2818560208601611117565b6114fb81610b22565b840191505092915050565b600060608201905061151b6000830186610adf565b61152860208301856114ad565b818103604083015261153a81846114cd565b9050949350505050565b61154d81611099565b82525050565b60006020820190506115686000830184611544565b92915050565b61157781610bb3565b811461158257600080fd5b50565b6000815190506115948161156e565b92915050565b6000602082840312156115b0576115af610b13565b5b60006115be84828501611585565b91505092915050565b60006040820190506115dc6000830185610adf565b81810360208301526115ee81846114cd565b90509392505050565b600061160a61160584610c3a565b610b93565b90508281526020810184848401111561162657611625610c35565b5b611631848285611117565b509392505050565b600082601f83011261164e5761164d610c30565b5b815161165e8482602086016115f7565b91505092915050565b60006020828403121561167d5761167c610b13565b5b600082015167ffffffffffffffff81111561169b5761169a610b18565b5b6116a784828501611639565b91505092915050565b6000815190506116bf81610bcb565b92915050565b6000815190506116d481610c04565b92915050565b6000815190506116e981610cf4565b92915050565b6000815190506116fe81610d31565b92915050565b6000610120828403121561171b5761171a610b1d565b5b611726610120610b93565b90506000611736848285016116b0565b600083015250602061174a848285016116b0565b602083015250604061175e848285016116c5565b604083015250606082015167ffffffffffffffff81111561178257611781610bae565b5b61178e84828501611639565b60608301525060806117a2848285016116da565b60808301525060a06117b6848285016116da565b60a08301525060c06117ca848285016116da565b60c08301525060e06117de848285016116ef565b60e0830152506101006117f3848285016116ef565b6101008301525092915050565b60006020828403121561181657611815610b13565b5b600082015167ffffffffffffffff81111561183457611833610b18565b5b61184084828501611704565b91505092915050565b600061ffff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061189182611849565b915061189c83611849565b9250828203905061ffff8111156118b6576118b5611857565b5b92915050565b6118c581611189565b82525050565b6118d481610cea565b82525050565b60006040820190506118ef60008301856118bc565b6118fc60208301846118cb565b9392505050565b60006020828403121561191957611918610b13565b5b6000611927848285016116ef565b91505092915050565b600061193b82610cea565b915061194683610cea565b925082820190508082111561195e5761195d611857565b5b9291505056fea26469706673582212200fce5b8fd6e72939af465a8629ed2a123c6740ce0f8e244569033768bfe1b81e64736f6c63430008140033608060405234801561001057600080fd5b50611af9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638eaa6ac01161008c578063bb5b27e111610066578063bb5b27e114610283578063ecc86d00146102b3578063ee1ce841146102cf578063eea457c8146102ed576100ea565b80638eaa6ac0146101f3578063a5961b4c14610223578063b028ee1314610253576100ea565b8063426a0c88116100c8578063426a0c881461015957806345414df11461017757806354f6127f146101a75780635dee4788146101d7576100ea565b80630505c8c9146100ef578063212788f91461010d57806338a699a414610129575b600080fd5b6100f761031d565b6040516101049190610c8d565b60405180910390f35b61012760048036038101906101229190610e38565b61032c565b005b610143600480360381019061013e9190610e94565b61033d565b6040516101509190610edc565b60405180910390f35b6101616103ae565b60405161016e9190610c8d565b60405180910390f35b610191600480360381019061018c9190610ef7565b6103bd565b60405161019e9190610fbf565b60405180910390f35b6101c160048036038101906101bc9190610e94565b6103da565b6040516101ce9190611036565b60405180910390f35b6101f160048036038101906101ec9190611084565b610481565b005b61020d60048036038101906102089190610e94565b610673565b60405161021a9190611260565b60405180910390f35b61023d60048036038101906102389190610e94565b610804565b60405161024a91906112d7565b60405180910390f35b61026d60048036038101906102689190611393565b6108f2565b60405161027a9190611036565b60405180910390f35b61029d60048036038101906102989190611412565b61091b565b6040516102aa919061144e565b60405180910390f35b6102cd60048036038101906102c89190611495565b610943565b005b6102d7610b55565b6040516102e49190611527565b60405180910390f35b61030760048036038101906103029190611393565b610b62565b604051610314919061144e565b60405180910390f35b6000610327610b92565b905090565b6103398282600180610943565b5050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60006103b8610ba3565b905090565b6060818060200190518101906103d391906115b2565b9050919050565b606060008083815260200190815260200160002060010180546103fc9061162a565b80601f01602080910402602001604051908101604052809291908181526020018280546104289061162a565b80156104755780601f1061044a57610100808354040283529160200191610475565b820191906000526020600020905b81548152906001019060200180831161045857829003601f168201915b50505050509050919050565b60008060008581526020019081526020016000206000019050600073ffffffffffffffffffffffffffffffffffffffff168160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461052d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610524906116a7565b60405180910390fd5b6000339050600061053c610bb4565b9050848360000160006101000a81548160ff021916908360ff160217905550818360000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808360000160156101000a81548163ffffffff021916908363ffffffff160217905550808360000160196101000a81548163ffffffff021916908363ffffffff1602179055508360008088815260200190815260200160002060010190816106069190611869565b5060018690806001815401808255809150506001900390600052602060002001600090919091909150557fc83c5f6b50f8ff37501f857e58e080a5842f6e8775ccfba956f2047ab6a9a35e8686846040516106639392919061194a565b60405180910390a1505050505050565b61067b610bd8565b600080838152602001908152602001600020604051806040016040529081600082016040518060800160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160159054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160199054906101000a900463ffffffff1663ffffffff1663ffffffff1681525050815260200160018201805461077b9061162a565b80601f01602080910402602001604051908101604052809291908181526020018280546107a79061162a565b80156107f45780601f106107c9576101008083540402835291602001916107f4565b820191906000526020600020905b8154815290600101906020018083116107d757829003601f168201915b5050505050815250509050919050565b61080c610bf8565b6000808381526020019081526020016000206000016040518060800160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160159054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160199054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b6060816040516020016109059190610fbf565b6040516020818303038152906040529050919050565b60006001828154811061093157610930611981565b5b90600052602060002001549050919050565b8260008086815260200190815260200160002060010190816109659190611869565b506000610970610bb4565b905082801561097c5750815b15610b025760008060008781526020019081526020016000206000019050600073ffffffffffffffffffffffffffffffffffffffff168160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a24906119fc565b60405180910390fd5b8215610a96577f01e2a32423aae515ef6611a2ca406f2478536c74f7c875f9d6129997ee76ef68868260000160009054906101000a900460ff16338460000160159054906101000a900463ffffffff16604051610a8d9493929190611a2b565b60405180910390a15b338160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818160000160156101000a81548163ffffffff021916908363ffffffff16021790555050610b4e565b8115610b4d577f01e2a32423aae515ef6611a2ca406f2478536c74f7c875f9d6129997ee76ef6885610b32610b92565b3384604051610b449493929190611a2b565b60405180910390a15b5b5050505050565b6000600180549050905090565b600081604051602001610b759190611aac565b604051602081830303815290604052805190602001209050919050565b6000610b9e60c8610bc4565b905090565b6000610baf6065610bc4565b905090565b6000610bbf43610bce565b905090565b6000819050919050565b6000819050919050565b6040518060400160405280610beb610bf8565b8152602001606081525090565b6040518060800160405280600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff168152602001600063ffffffff1681525090565b600060ff82169050919050565b6000819050919050565b6000610c77610c72610c6d84610c45565b610c52565b610c45565b9050919050565b610c8781610c5c565b82525050565b6000602082019050610ca26000830184610c7e565b92915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610ccf81610cbc565b8114610cda57600080fd5b50565b600081359050610cec81610cc6565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610d4582610cfc565b810181811067ffffffffffffffff82111715610d6457610d63610d0d565b5b80604052505050565b6000610d77610ca8565b9050610d838282610d3c565b919050565b600067ffffffffffffffff821115610da357610da2610d0d565b5b610dac82610cfc565b9050602081019050919050565b82818337600083830152505050565b6000610ddb610dd684610d88565b610d6d565b905082815260208101848484011115610df757610df6610cf7565b5b610e02848285610db9565b509392505050565b600082601f830112610e1f57610e1e610cf2565b5b8135610e2f848260208601610dc8565b91505092915050565b60008060408385031215610e4f57610e4e610cb2565b5b6000610e5d85828601610cdd565b925050602083013567ffffffffffffffff811115610e7e57610e7d610cb7565b5b610e8a85828601610e0a565b9150509250929050565b600060208284031215610eaa57610ea9610cb2565b5b6000610eb884828501610cdd565b91505092915050565b60008115159050919050565b610ed681610ec1565b82525050565b6000602082019050610ef16000830184610ecd565b92915050565b600060208284031215610f0d57610f0c610cb2565b5b600082013567ffffffffffffffff811115610f2b57610f2a610cb7565b5b610f3784828501610e0a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610f7a578082015181840152602081019050610f5f565b60008484015250505050565b6000610f9182610f40565b610f9b8185610f4b565b9350610fab818560208601610f5c565b610fb481610cfc565b840191505092915050565b60006020820190508181036000830152610fd98184610f86565b905092915050565b600081519050919050565b600082825260208201905092915050565b600061100882610fe1565b6110128185610fec565b9350611022818560208601610f5c565b61102b81610cfc565b840191505092915050565b600060208201905081810360008301526110508184610ffd565b905092915050565b61106181610c45565b811461106c57600080fd5b50565b60008135905061107e81611058565b92915050565b60008060006060848603121561109d5761109c610cb2565b5b60006110ab86828701610cdd565b93505060206110bc8682870161106f565b925050604084013567ffffffffffffffff8111156110dd576110dc610cb7565b5b6110e986828701610e0a565b9150509250925092565b6110fc81610c5c565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061112d82611102565b9050919050565b61113d81611122565b82525050565b600063ffffffff82169050919050565b600061116e61116961116484611143565b610c52565b611143565b9050919050565b61117e81611153565b82525050565b60808201600082015161119a60008501826110f3565b5060208201516111ad6020850182611134565b5060408201516111c06040850182611175565b5060608201516111d36060850182611175565b50505050565b600082825260208201905092915050565b60006111f582610fe1565b6111ff81856111d9565b935061120f818560208601610f5c565b61121881610cfc565b840191505092915050565b600060a08301600083015161123b6000860182611184565b506020830151848203608086015261125382826111ea565b9150508091505092915050565b6000602082019050818103600083015261127a8184611223565b905092915050565b60808201600082015161129860008501826110f3565b5060208201516112ab6020850182611134565b5060408201516112be6040850182611175565b5060608201516112d16060850182611175565b50505050565b60006080820190506112ec6000830184611282565b92915050565b600067ffffffffffffffff82111561130d5761130c610d0d565b5b61131682610cfc565b9050602081019050919050565b6000611336611331846112f2565b610d6d565b90508281526020810184848401111561135257611351610cf7565b5b61135d848285610db9565b509392505050565b600082601f83011261137a57611379610cf2565b5b813561138a848260208601611323565b91505092915050565b6000602082840312156113a9576113a8610cb2565b5b600082013567ffffffffffffffff8111156113c7576113c6610cb7565b5b6113d384828501611365565b91505092915050565b6000819050919050565b6113ef816113dc565b81146113fa57600080fd5b50565b60008135905061140c816113e6565b92915050565b60006020828403121561142857611427610cb2565b5b6000611436848285016113fd565b91505092915050565b61144881610cbc565b82525050565b6000602082019050611463600083018461143f565b92915050565b61147281610ec1565b811461147d57600080fd5b50565b60008135905061148f81611469565b92915050565b600080600080608085870312156114af576114ae610cb2565b5b60006114bd87828801610cdd565b945050602085013567ffffffffffffffff8111156114de576114dd610cb7565b5b6114ea87828801610e0a565b93505060406114fb87828801611480565b925050606061150c87828801611480565b91505092959194509250565b611521816113dc565b82525050565b600060208201905061153c6000830184611518565b92915050565b6000611555611550846112f2565b610d6d565b90508281526020810184848401111561157157611570610cf7565b5b61157c848285610f5c565b509392505050565b600082601f83011261159957611598610cf2565b5b81516115a9848260208601611542565b91505092915050565b6000602082840312156115c8576115c7610cb2565b5b600082015167ffffffffffffffff8111156115e6576115e5610cb7565b5b6115f284828501611584565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061164257607f821691505b602082108103611655576116546115fb565b5b50919050565b7f4552524f525f414c52454144595f435245415445440000000000000000000000600082015250565b6000611691601583610f4b565b915061169c8261165b565b602082019050919050565b600060208201905081810360008301526116c081611684565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026117297fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826116ec565b61173386836116ec565b95508019841693508086168417925050509392505050565b600061176661176161175c846113dc565b610c52565b6113dc565b9050919050565b6000819050919050565b6117808361174b565b61179461178c8261176d565b8484546116f9565b825550505050565b600090565b6117a961179c565b6117b4818484611777565b505050565b5b818110156117d8576117cd6000826117a1565b6001810190506117ba565b5050565b601f82111561181d576117ee816116c7565b6117f7846116dc565b81016020851015611806578190505b61181a611812856116dc565b8301826117b9565b50505b505050565b600082821c905092915050565b600061184060001984600802611822565b1980831691505092915050565b6000611859838361182f565b9150826002028217905092915050565b61187282610fe1565b67ffffffffffffffff81111561188b5761188a610d0d565b5b611895825461162a565b6118a08282856117dc565b600060209050601f8311600181146118d357600084156118c1578287015190505b6118cb858261184d565b865550611933565b601f1984166118e1866116c7565b60005b82811015611909578489015182556001820191506020850194506020810190506118e4565b868310156119265784890151611922601f89168261182f565b8355505b6001600288020188555050505b505050505050565b61194481611122565b82525050565b600060608201905061195f600083018661143f565b61196c6020830185610c7e565b611979604083018461193b565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552524f525f4e4f545f4558495354494e470000000000000000000000000000600082015250565b60006119e6601283610f4b565b91506119f1826119b0565b602082019050919050565b60006020820190508181036000830152611a15816119d9565b9050919050565b611a2581611153565b82525050565b6000608082019050611a40600083018761143f565b611a4d6020830186610c7e565b611a5a604083018561193b565b611a676060830184611a1c565b95945050505050565b600081905092915050565b6000611a8682610f40565b611a908185611a70565b9350611aa0818560208601610f5c565b80840191505092915050565b6000611ab88284611a7b565b91508190509291505056fea2646970667358221220d11cbdec198c6f8b80ab39c446016619955d7d5088ac05bbc15f3272e07ec4ed64736f6c63430008140033",
506
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063837dd0cb11610097578063c2722ecc11610066578063c2722ecc146102d2578063d92bb60d146102f0578063da3fe4121461030e578063f48016ce1461032c576100f5565b8063837dd0cb14610212578063a13df2ab14610242578063a4dc7d8614610272578063bc12c099146102a2576100f5565b806329e9b226116100d357806329e9b2261461017857806340a8cd9e146101965780635651ed82146101c657806360fa775b146101e2576100f5565b80630f94cc50146100fa578063198e89ee14610118578063229660f014610148575b600080fd5b61010261035c565b60405161010f9190610aee565b60405180910390f35b610132600480360381019061012d9190610e59565b610386565b60405161013f9190610aee565b60405180910390f35b610162600480360381019061015d9190610f76565b610451565b60405161016f9190610aee565b60405180910390f35b61018061046c565b60405161018d9190610fb2565b60405180910390f35b6101b060048036038101906101ab9190610fcd565b610471565b6040516101bd919061101b565b60405180910390f35b6101e060048036038101906101db9190610e59565b610518565b005b6101fc60048036038101906101f79190611062565b6105d9565b604051610209919061127f565b60405180910390f35b61022c600480360381019061022791906112a1565b6106a1565b604051610239919061132e565b60405180910390f35b61025c60048036038101906102579190610fcd565b6106cd565b6040516102699190610aee565b60405180910390f35b61028c60048036038101906102879190611062565b6106ef565b604051610299919061132e565b60405180910390f35b6102bc60048036038101906102b791906113a9565b610798565b6040516102c9919061127f565b60405180910390f35b6102da61090f565b6040516102e79190611492565b60405180910390f35b6102f8610938565b6040516103059190610aee565b60405180910390f35b610316610963565b6040516103239190610fb2565b60405180910390f35b610346600480360381019061034191906112a1565b610978565b6040516103539190610aee565b60405180910390f35b60ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b600061039582600001516106cd565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635dee4788826103dc6109d0565b856040516020016103ed919061127f565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161041a93929190611506565b600060405180830381600087803b15801561043457600080fd5b505af1158015610448573d6000803e3d6000fd5b50505050919050565b600061046582600001518360200151610978565b9050919050565b60f881565b600080826bffffffffffffffffffffffff1673__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__6308dc895e90916040518263ffffffff1660e01b81526004016104bb9190611553565b602060405180830381865af41580156104d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fc919061159a565b6bffffffffffffffffffffffff1690508060081b915050919050565b600061052782600001516106cd565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663212788f98284604051602001610577919061127f565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016105a39291906115c7565b600060405180830381600087803b1580156105bd57600080fd5b505af11580156105d1573d6000803e3d6000fd5b505050505050565b6105e1610a3b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166354f6127f846040518263ffffffff1660e01b815260040161063d9190610aee565b600060405180830381865afa15801561065a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906106839190611667565b9050808060200190518101906106999190611800565b915050919050565b6106a9610ab4565b60405180604001604052808460ff1681526020018360ff1916815250905092915050565b60006106e86106da6109d0565b6106e384610471565b610978565b9050919050565b6106f7610ab4565b600060f860ff1660ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916841660001c901c9050600060f860ff166101006107429190611886565b60ff1660ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916198516901b905060405180604001604052808360ff1681526020018260ff191681525092505050919050565b6107a0610a3b565b600062278d0090506040518061012001604052806107bd886109e1565b6bffffffffffffffffffffffff1681526020016107dc6201e2406109e1565b6bffffffffffffffffffffffff1681526020016107f76109eb565b60ff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152602001868152602001600081526020018681526020016108646109fc565b64ffffffffff1673__$d53880c81dc91c20799140d711e5ab8718$__63ef6c0d789091856040518363ffffffff1660e01b81526004016108a59291906118da565b602060405180830381865af41580156108c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e69190611903565b64ffffffffff1681526020016108fa610a0c565b64ffffffffff16815250915050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161981565b60f860ff166101006109759190611886565b81565b6000808360ff16905060008360081c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905060008160f860ff1684901b6109bf9190611930565b90508060001b935050505092915050565b60006109dc60d2610a1d565b905090565b6000819050919050565b60006109f76064610a27565b905090565b6000610a0742610a31565b905090565b6000610a186000610a31565b905090565b6000819050919050565b6000819050919050565b6000819050919050565b60405180610120016040528060006bffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600060ff16815260200160608152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b6040518060400160405280600060ff168152602001600060ff191681525090565b6000819050919050565b610ae881610ad5565b82525050565b6000602082019050610b036000830184610adf565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610b6b82610b22565b810181811067ffffffffffffffff82111715610b8a57610b89610b33565b5b80604052505050565b6000610b9d610b09565b9050610ba98282610b62565b919050565b600080fd5b60006bffffffffffffffffffffffff82169050919050565b610bd481610bb3565b8114610bdf57600080fd5b50565b600081359050610bf181610bcb565b92915050565b600060ff82169050919050565b610c0d81610bf7565b8114610c1857600080fd5b50565b600081359050610c2a81610c04565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff821115610c5557610c54610b33565b5b610c5e82610b22565b9050602081019050919050565b82818337600083830152505050565b6000610c8d610c8884610c3a565b610b93565b905082815260208101848484011115610ca957610ca8610c35565b5b610cb4848285610c6b565b509392505050565b600082601f830112610cd157610cd0610c30565b5b8135610ce1848260208601610c7a565b91505092915050565b6000819050919050565b610cfd81610cea565b8114610d0857600080fd5b50565b600081359050610d1a81610cf4565b92915050565b600064ffffffffff82169050919050565b610d3a81610d20565b8114610d4557600080fd5b50565b600081359050610d5781610d31565b92915050565b60006101208284031215610d7457610d73610b1d565b5b610d7f610120610b93565b90506000610d8f84828501610be2565b6000830152506020610da384828501610be2565b6020830152506040610db784828501610c1b565b604083015250606082013567ffffffffffffffff811115610ddb57610dda610bae565b5b610de784828501610cbc565b6060830152506080610dfb84828501610d0b565b60808301525060a0610e0f84828501610d0b565b60a08301525060c0610e2384828501610d0b565b60c08301525060e0610e3784828501610d48565b60e083015250610100610e4c84828501610d48565b6101008301525092915050565b600060208284031215610e6f57610e6e610b13565b5b600082013567ffffffffffffffff811115610e8d57610e8c610b18565b5b610e9984828501610d5d565b91505092915050565b610eab81610bf7565b8114610eb657600080fd5b50565b600081359050610ec881610ea2565b92915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082169050919050565b610f0381610ece565b8114610f0e57600080fd5b50565b600081359050610f2081610efa565b92915050565b600060408284031215610f3c57610f3b610b1d565b5b610f466040610b93565b90506000610f5684828501610eb9565b6000830152506020610f6a84828501610f11565b60208301525092915050565b600060408284031215610f8c57610f8b610b13565b5b6000610f9a84828501610f26565b91505092915050565b610fac81610bf7565b82525050565b6000602082019050610fc76000830184610fa3565b92915050565b600060208284031215610fe357610fe2610b13565b5b6000610ff184828501610be2565b91505092915050565b600061100582610ece565b9050919050565b61101581610ffa565b82525050565b6000602082019050611030600083018461100c565b92915050565b61103f81610ad5565b811461104a57600080fd5b50565b60008135905061105c81611036565b92915050565b60006020828403121561107857611077610b13565b5b60006110868482850161104d565b91505092915050565b6000819050919050565b60006110b46110af6110aa84610bb3565b61108f565b610bb3565b9050919050565b6110c481611099565b82525050565b60006110e56110e06110db84610bf7565b61108f565b610bf7565b9050919050565b6110f5816110ca565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561113557808201518184015260208101905061111a565b60008484015250505050565b600061114c826110fb565b6111568185611106565b9350611166818560208601611117565b61116f81610b22565b840191505092915050565b61118381610cea565b82525050565b60006111a461119f61119a84610d20565b61108f565b610d20565b9050919050565b6111b481611189565b82525050565b6000610120830160008301516111d360008601826110bb565b5060208301516111e660208601826110bb565b5060408301516111f960408601826110ec565b50606083015184820360608601526112118282611141565b9150506080830151611226608086018261117a565b5060a083015161123960a086018261117a565b5060c083015161124c60c086018261117a565b5060e083015161125f60e08601826111ab565b506101008301516112746101008601826111ab565b508091505092915050565b6000602082019050818103600083015261129981846111ba565b905092915050565b600080604083850312156112b8576112b7610b13565b5b60006112c685828601610eb9565b92505060206112d785828601610f11565b9150509250929050565b6112ea816110ca565b82525050565b6112f981610ffa565b82525050565b60408201600082015161131560008501826112e1565b50602082015161132860208501826112f0565b50505050565b600060408201905061134360008301846112ff565b92915050565b600080fd5b600080fd5b60008083601f84011261136957611368610c30565b5b8235905067ffffffffffffffff81111561138657611385611349565b5b6020830191508360018202830111156113a2576113a161134e565b5b9250929050565b600080600080606085870312156113c3576113c2610b13565b5b60006113d187828801610d0b565b94505060206113e287828801610d0b565b935050604085013567ffffffffffffffff81111561140357611402610b18565b5b61140f87828801611353565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061145861145361144e8461141d565b61108f565b61141d565b9050919050565b600061146a8261143d565b9050919050565b600061147c8261145f565b9050919050565b61148c81611471565b82525050565b60006020820190506114a76000830184611483565b92915050565b6114b6816110ca565b82525050565b600082825260208201905092915050565b60006114d8826110fb565b6114e281856114bc565b93506114f2818560208601611117565b6114fb81610b22565b840191505092915050565b600060608201905061151b6000830186610adf565b61152860208301856114ad565b818103604083015261153a81846114cd565b9050949350505050565b61154d81611099565b82525050565b60006020820190506115686000830184611544565b92915050565b61157781610bb3565b811461158257600080fd5b50565b6000815190506115948161156e565b92915050565b6000602082840312156115b0576115af610b13565b5b60006115be84828501611585565b91505092915050565b60006040820190506115dc6000830185610adf565b81810360208301526115ee81846114cd565b90509392505050565b600061160a61160584610c3a565b610b93565b90508281526020810184848401111561162657611625610c35565b5b611631848285611117565b509392505050565b600082601f83011261164e5761164d610c30565b5b815161165e8482602086016115f7565b91505092915050565b60006020828403121561167d5761167c610b13565b5b600082015167ffffffffffffffff81111561169b5761169a610b18565b5b6116a784828501611639565b91505092915050565b6000815190506116bf81610bcb565b92915050565b6000815190506116d481610c04565b92915050565b6000815190506116e981610cf4565b92915050565b6000815190506116fe81610d31565b92915050565b6000610120828403121561171b5761171a610b1d565b5b611726610120610b93565b90506000611736848285016116b0565b600083015250602061174a848285016116b0565b602083015250604061175e848285016116c5565b604083015250606082015167ffffffffffffffff81111561178257611781610bae565b5b61178e84828501611639565b60608301525060806117a2848285016116da565b60808301525060a06117b6848285016116da565b60a08301525060c06117ca848285016116da565b60c08301525060e06117de848285016116ef565b60e0830152506101006117f3848285016116ef565b6101008301525092915050565b60006020828403121561181657611815610b13565b5b600082015167ffffffffffffffff81111561183457611833610b18565b5b61184084828501611704565b91505092915050565b600061ffff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061189182611849565b915061189c83611849565b9250828203905061ffff8111156118b6576118b5611857565b5b92915050565b6118c581611189565b82525050565b6118d481610cea565b82525050565b60006040820190506118ef60008301856118bc565b6118fc60208301846118cb565b9392505050565b60006020828403121561191957611918610b13565b5b6000611927848285016116ef565b91505092915050565b600061193b82610cea565b915061194683610cea565b925082820190508082111561195e5761195d611857565b5b9291505056fea26469706673582212200fce5b8fd6e72939af465a8629ed2a123c6740ce0f8e244569033768bfe1b81e64736f6c63430008140033",
507
+ "linkReferences": {
508
+ "contracts/types/NftId.sol": {
509
+ "NftIdLib": [
510
+ {
511
+ "length": 20,
512
+ "start": 1311
513
+ }
514
+ ]
515
+ },
516
+ "contracts/types/Timestamp.sol": {
517
+ "TimestampLib": [
518
+ {
519
+ "length": 20,
520
+ "start": 2311
521
+ }
522
+ ]
523
+ }
524
+ },
525
+ "deployedLinkReferences": {
526
+ "contracts/types/NftId.sol": {
527
+ "NftIdLib": [
528
+ {
529
+ "length": 20,
530
+ "start": 1157
531
+ }
532
+ ]
533
+ },
534
+ "contracts/types/Timestamp.sol": {
535
+ "TimestampLib": [
536
+ {
537
+ "length": 20,
538
+ "start": 2157
539
+ }
540
+ ]
541
+ }
542
+ }
543
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../../build-info/098ac466bcde21143ae166eab05b431d.json"
4
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IBundle",
4
+ "sourceName": "contracts/experiment/kvstore/IBundle.sol",
5
+ "abi": [],
6
+ "bytecode": "0x",
7
+ "deployedBytecode": "0x",
8
+ "linkReferences": {},
9
+ "deployedLinkReferences": {}
10
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../../build-info/098ac466bcde21143ae166eab05b431d.json"
4
+ }