@etherisc/gif-next 0.0.2-ed4dd55 → 0.0.2-edd8f00-238

Sign up to get free protection for your applications and to get access to all the features.
Files changed (553) hide show
  1. package/README.md +367 -8
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +709 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +304 -531
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +769 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +534 -578
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1220 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +758 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3597 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  40. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  42. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  44. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  45. package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
  46. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  47. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  48. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  50. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  51. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  52. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  53. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
  54. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  55. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  56. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +10 -0
  58. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  60. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  62. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  63. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  64. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  65. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  66. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  68. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  69. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  70. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  72. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  73. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
  74. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  75. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  76. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  77. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  78. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  79. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  80. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  81. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  82. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  84. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  85. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  86. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  88. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  90. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  92. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  93. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  94. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  95. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  96. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  97. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  98. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  99. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  100. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  101. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  102. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  103. package/artifacts/contracts/product/IProductService.sol/IProductService.json +400 -0
  104. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  105. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  106. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  108. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  109. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  110. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  112. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  113. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  114. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  115. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  116. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  118. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  119. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
  120. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +695 -68
  122. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  123. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1123 -0
  124. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  125. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  126. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  127. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  128. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  129. package/artifacts/contracts/registry/Registry.sol/Registry.json +1051 -126
  130. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  131. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  132. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  133. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  134. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  136. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  137. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +187 -0
  138. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  139. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1234 -0
  140. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  141. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  142. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  143. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +206 -0
  144. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  145. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  146. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  148. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  150. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  151. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  152. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  153. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  154. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  155. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  156. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  158. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  159. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  160. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  162. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  164. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  165. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  166. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  167. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
  168. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  170. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  172. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  173. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  174. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  175. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  176. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  178. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  179. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  180. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  181. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
  182. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  183. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +110 -0
  184. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  185. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +131 -0
  186. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  188. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  189. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +181 -0
  190. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  192. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IService.sol/IService.json +346 -0
  194. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  195. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -0
  196. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  197. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  198. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  199. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  200. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  201. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +570 -0
  202. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  203. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +156 -0
  204. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  205. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  206. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  207. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  208. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  209. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  210. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  211. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  212. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  213. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +353 -0
  214. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  215. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  216. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  217. package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
  218. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  219. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  220. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  221. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  222. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  223. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -0
  224. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  225. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  226. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  227. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  228. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  230. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  231. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  232. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +187 -0
  234. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  236. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  238. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  240. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  242. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2260 -0
  244. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  245. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  246. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  247. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  248. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  250. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  252. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  254. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  256. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  258. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  260. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  262. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  263. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  264. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  266. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  268. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  270. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  272. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  274. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  276. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  278. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  282. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +92 -0
  284. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  286. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  288. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  290. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +479 -0
  292. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  294. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  296. package/contracts/distribution/Distribution.sol +261 -0
  297. package/contracts/distribution/DistributionService.sol +297 -0
  298. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  299. package/contracts/distribution/IDistributionComponent.sol +66 -0
  300. package/contracts/distribution/IDistributionService.sol +81 -0
  301. package/contracts/instance/BundleManager.sol +126 -0
  302. package/contracts/instance/IInstance.sol +82 -15
  303. package/contracts/instance/IInstanceService.sol +97 -0
  304. package/contracts/instance/Instance.sol +244 -44
  305. package/contracts/instance/InstanceAdmin.sol +331 -0
  306. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  307. package/contracts/instance/InstanceReader.sol +392 -0
  308. package/contracts/instance/InstanceService.sol +439 -0
  309. package/contracts/instance/InstanceServiceManager.sol +44 -0
  310. package/contracts/instance/InstanceStore.sol +272 -0
  311. package/contracts/instance/base/BalanceStore.sol +123 -0
  312. package/contracts/instance/base/Cloneable.sol +28 -0
  313. package/contracts/instance/base/ObjectCounter.sol +21 -0
  314. package/contracts/instance/base/ObjectLifecycle.sol +96 -0
  315. package/contracts/instance/base/ObjectManager.sol +80 -0
  316. package/contracts/instance/module/IAccess.sol +46 -0
  317. package/contracts/instance/module/IBundle.sol +20 -0
  318. package/contracts/instance/module/IComponents.sol +52 -0
  319. package/contracts/instance/module/IDistribution.sol +42 -0
  320. package/contracts/instance/module/IPolicy.sol +84 -0
  321. package/contracts/instance/module/IRisk.sol +11 -0
  322. package/contracts/mock/Dip.sol +26 -0
  323. package/contracts/oracle/IOracle.sol +20 -0
  324. package/contracts/oracle/IOracleComponent.sol +32 -0
  325. package/contracts/oracle/IOracleService.sol +65 -0
  326. package/contracts/oracle/Oracle.sol +145 -0
  327. package/contracts/oracle/OracleService.sol +278 -0
  328. package/contracts/oracle/OracleServiceManager.sol +42 -0
  329. package/contracts/pool/BundleService.sol +296 -0
  330. package/contracts/pool/BundleServiceManager.sol +42 -0
  331. package/contracts/pool/IBundleService.sol +106 -0
  332. package/contracts/pool/IPoolComponent.sol +112 -0
  333. package/contracts/pool/IPoolService.sol +150 -0
  334. package/contracts/pool/Pool.sol +299 -0
  335. package/contracts/pool/PoolService.sol +452 -0
  336. package/contracts/pool/PoolServiceManager.sol +42 -0
  337. package/contracts/product/ApplicationService.sol +254 -0
  338. package/contracts/product/ApplicationServiceManager.sol +38 -0
  339. package/contracts/product/ClaimService.sol +442 -0
  340. package/contracts/product/ClaimServiceManager.sol +38 -0
  341. package/contracts/product/IApplicationService.sol +62 -0
  342. package/contracts/product/IClaimService.sol +99 -0
  343. package/contracts/product/IPolicyService.sol +78 -0
  344. package/contracts/product/IPricingService.sol +39 -0
  345. package/contracts/product/IProductComponent.sol +42 -0
  346. package/contracts/product/IProductService.sol +33 -0
  347. package/contracts/product/PolicyService.sol +475 -0
  348. package/contracts/product/PolicyServiceManager.sol +42 -0
  349. package/contracts/product/PricingService.sol +300 -0
  350. package/contracts/product/PricingServiceManager.sol +42 -0
  351. package/contracts/product/Product.sol +377 -0
  352. package/contracts/product/ProductService.sol +124 -0
  353. package/contracts/product/ProductServiceManager.sol +42 -0
  354. package/contracts/registry/ChainNft.sol +152 -108
  355. package/contracts/registry/IRegistry.sol +105 -49
  356. package/contracts/registry/IRegistryService.sol +69 -0
  357. package/contracts/registry/IServiceAuthorization.sol +38 -0
  358. package/contracts/registry/ITransferInterceptor.sol +7 -0
  359. package/contracts/registry/Registry.sol +518 -112
  360. package/contracts/registry/RegistryAdmin.sol +333 -0
  361. package/contracts/registry/RegistryService.sol +266 -0
  362. package/contracts/registry/RegistryServiceManager.sol +53 -0
  363. package/contracts/registry/ReleaseLifecycle.sol +28 -0
  364. package/contracts/registry/ReleaseManager.sol +523 -0
  365. package/contracts/registry/ServiceAuthorization.sol +90 -0
  366. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  367. package/contracts/registry/TokenRegistry.sol +315 -0
  368. package/contracts/shared/AccessAdmin.sol +759 -0
  369. package/contracts/shared/AccessManagerCustom.sol +741 -0
  370. package/contracts/shared/AccessManagerExtended.sol +481 -0
  371. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  372. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  373. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  374. package/contracts/shared/Component.sol +281 -0
  375. package/contracts/shared/ComponentService.sol +620 -0
  376. package/contracts/shared/ComponentServiceManager.sol +35 -0
  377. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  378. package/contracts/shared/ERC165.sol +27 -0
  379. package/contracts/shared/IAccessAdmin.sol +168 -0
  380. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  381. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  382. package/contracts/shared/IComponent.sol +70 -0
  383. package/contracts/shared/IComponentService.sol +102 -0
  384. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  385. package/contracts/shared/IKeyValueStore.sol +54 -0
  386. package/contracts/shared/ILifecycle.sol +29 -0
  387. package/contracts/shared/INftOwnable.sol +23 -0
  388. package/contracts/shared/IPolicyHolder.sol +45 -0
  389. package/contracts/shared/IRegisterable.sol +15 -0
  390. package/contracts/shared/IRegistryLinked.sol +11 -0
  391. package/contracts/shared/IService.sol +25 -0
  392. package/contracts/shared/IVersionable.sol +53 -0
  393. package/contracts/shared/InitializableCustom.sol +177 -0
  394. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  395. package/contracts/shared/KeyValueStore.sol +131 -0
  396. package/contracts/shared/Lifecycle.sol +71 -0
  397. package/contracts/shared/NftIdSetManager.sol +65 -0
  398. package/contracts/shared/NftOwnable.sol +107 -0
  399. package/contracts/shared/PolicyHolder.sol +102 -0
  400. package/contracts/shared/ProxyManager.sol +199 -0
  401. package/contracts/shared/Registerable.sol +75 -0
  402. package/contracts/shared/RegistryLinked.sol +43 -0
  403. package/contracts/shared/Service.sol +83 -0
  404. package/contracts/shared/TokenHandler.sol +58 -0
  405. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  406. package/contracts/shared/Versionable.sol +59 -0
  407. package/contracts/staking/IStaking.sol +168 -0
  408. package/contracts/staking/IStakingService.sol +153 -0
  409. package/contracts/staking/StakeManagerLib.sol +231 -0
  410. package/contracts/staking/Staking.sol +513 -0
  411. package/contracts/staking/StakingLifecycle.sol +24 -0
  412. package/contracts/staking/StakingManager.sol +54 -0
  413. package/contracts/staking/StakingReader.sol +187 -0
  414. package/contracts/staking/StakingService.sol +411 -0
  415. package/contracts/staking/StakingServiceManager.sol +44 -0
  416. package/contracts/staking/StakingStore.sol +615 -0
  417. package/contracts/staking/TargetManagerLib.sol +207 -0
  418. package/contracts/type/AddressSet.sol +58 -0
  419. package/contracts/type/Amount.sol +128 -0
  420. package/contracts/type/Blocknumber.sol +136 -0
  421. package/contracts/type/ClaimId.sol +75 -0
  422. package/contracts/type/DistributorType.sol +55 -0
  423. package/contracts/type/Fee.sol +66 -0
  424. package/contracts/type/Key32.sol +50 -0
  425. package/contracts/type/NftId.sol +78 -0
  426. package/contracts/type/NftIdSet.sol +62 -0
  427. package/contracts/type/ObjectType.sol +241 -0
  428. package/contracts/type/PayoutId.sol +82 -0
  429. package/contracts/type/Referral.sol +89 -0
  430. package/contracts/type/RequestId.sol +75 -0
  431. package/contracts/type/RiskId.sol +43 -0
  432. package/contracts/type/RoleId.sol +201 -0
  433. package/contracts/type/Seconds.sol +81 -0
  434. package/contracts/type/Selector.sol +102 -0
  435. package/contracts/type/StateId.sol +135 -0
  436. package/contracts/type/String.sol +53 -0
  437. package/contracts/type/Timestamp.sol +136 -0
  438. package/contracts/type/UFixed.sol +326 -0
  439. package/contracts/type/Version.sol +108 -0
  440. package/package.json +23 -7
  441. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  442. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  443. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  444. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  445. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  446. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  447. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  448. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  449. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  450. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -195
  451. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  452. package/artifacts/contracts/components/Product.sol/Product.json +0 -213
  453. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  454. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  455. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  456. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  457. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  458. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  459. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  460. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  461. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  462. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  463. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  464. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  465. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  466. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  467. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  468. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  469. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  471. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  472. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  473. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  474. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  475. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  476. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  477. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  478. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  479. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  480. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  481. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  482. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -327
  483. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  484. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -105
  485. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  486. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  487. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  488. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  489. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  490. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  491. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  492. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  493. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  494. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  495. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  496. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  497. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  498. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  499. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  500. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  501. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  502. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  503. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  504. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  505. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  506. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  507. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  508. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  509. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  510. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  511. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -125
  512. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  513. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  514. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  515. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  516. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  517. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  518. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  519. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  520. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  521. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  522. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  523. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  524. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  525. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  526. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  527. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -10
  528. package/contracts/components/Component.sol +0 -62
  529. package/contracts/components/IPool.sol +0 -9
  530. package/contracts/components/IProduct.sol +0 -11
  531. package/contracts/components/Pool.sol +0 -29
  532. package/contracts/components/Product.sol +0 -65
  533. package/contracts/experiment/inheritance/A.sol +0 -56
  534. package/contracts/experiment/inheritance/B.sol +0 -23
  535. package/contracts/experiment/inheritance/C.sol +0 -28
  536. package/contracts/experiment/inheritance/IA.sol +0 -18
  537. package/contracts/experiment/inheritance/IB.sol +0 -9
  538. package/contracts/experiment/inheritance/IC.sol +0 -11
  539. package/contracts/experiment/types/TypeA.sol +0 -42
  540. package/contracts/experiment/types/TypeB.sol +0 -24
  541. package/contracts/instance/access/Access.sol +0 -218
  542. package/contracts/instance/access/IAccess.sol +0 -83
  543. package/contracts/instance/component/ComponentModule.sol +0 -259
  544. package/contracts/instance/component/IComponent.sol +0 -94
  545. package/contracts/instance/policy/IPolicy.sol +0 -66
  546. package/contracts/instance/policy/PolicyModule.sol +0 -106
  547. package/contracts/instance/pool/IPoolModule.sol +0 -40
  548. package/contracts/instance/pool/PoolModule.sol +0 -83
  549. package/contracts/instance/product/IProductService.sol +0 -45
  550. package/contracts/instance/product/ProductService.sol +0 -105
  551. package/contracts/registry/IChainNft.sol +0 -18
  552. package/contracts/types/ChainId.sol +0 -24
  553. package/contracts/types/NftId.sol +0 -25
@@ -7,343 +7,265 @@
7
7
  "inputs": [
8
8
  {
9
9
  "internalType": "address",
10
- "name": "registry",
10
+ "name": "authority",
11
11
  "type": "address"
12
- },
12
+ }
13
+ ],
14
+ "name": "AccessManagedInvalidAuthority",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
13
19
  {
14
20
  "internalType": "address",
15
- "name": "componentOwnerService",
21
+ "name": "caller",
16
22
  "type": "address"
17
23
  },
18
24
  {
19
- "internalType": "address",
20
- "name": "productService",
21
- "type": "address"
25
+ "internalType": "uint32",
26
+ "name": "delay",
27
+ "type": "uint32"
22
28
  }
23
29
  ],
24
- "stateMutability": "nonpayable",
25
- "type": "constructor"
30
+ "name": "AccessManagedRequiredDelay",
31
+ "type": "error"
26
32
  },
27
33
  {
28
- "anonymous": false,
29
34
  "inputs": [
30
35
  {
31
- "indexed": false,
32
- "internalType": "bytes32",
33
- "name": "role",
34
- "type": "bytes32"
35
- },
36
- {
37
- "indexed": false,
38
36
  "internalType": "address",
39
- "name": "member",
37
+ "name": "caller",
40
38
  "type": "address"
41
- },
42
- {
43
- "indexed": false,
44
- "internalType": "bool",
45
- "name": "isMember",
46
- "type": "bool"
47
39
  }
48
40
  ],
49
- "name": "LogAccessRoleGranted",
50
- "type": "event"
41
+ "name": "AccessManagedUnauthorized",
42
+ "type": "error"
51
43
  },
52
44
  {
53
- "anonymous": false,
54
45
  "inputs": [
55
46
  {
56
- "indexed": false,
57
- "internalType": "uint256",
58
- "name": "idx",
59
- "type": "uint256"
60
- },
61
- {
62
- "indexed": false,
63
47
  "internalType": "address",
64
- "name": "module",
48
+ "name": "instanceBundleManager",
65
49
  "type": "address"
66
- },
67
- {
68
- "indexed": false,
69
- "internalType": "string",
70
- "name": "comment",
71
- "type": "string"
72
50
  }
73
51
  ],
74
- "name": "LogDebug",
75
- "type": "event"
52
+ "name": "ErrorInstanceBundleManagerAlreadySet",
53
+ "type": "error"
76
54
  },
77
55
  {
78
- "inputs": [],
79
- "name": "INITIAL_CAPITAL",
80
- "outputs": [
56
+ "inputs": [
81
57
  {
82
- "internalType": "uint256",
83
- "name": "",
84
- "type": "uint256"
58
+ "internalType": "address",
59
+ "name": "instanceAuthority",
60
+ "type": "address"
85
61
  }
86
62
  ],
87
- "stateMutability": "view",
88
- "type": "function"
63
+ "name": "ErrorInstanceBundleManagerAuthorityMismatch",
64
+ "type": "error"
89
65
  },
90
66
  {
91
- "inputs": [],
92
- "name": "ORACLE_OWNER",
93
- "outputs": [
67
+ "inputs": [
94
68
  {
95
- "internalType": "string",
96
- "name": "",
97
- "type": "string"
69
+ "internalType": "address",
70
+ "name": "instance",
71
+ "type": "address"
98
72
  }
99
73
  ],
100
- "stateMutability": "view",
101
- "type": "function"
74
+ "name": "ErrorInstanceBundleManagerInstanceMismatch",
75
+ "type": "error"
102
76
  },
103
77
  {
104
- "inputs": [],
105
- "name": "ORACLE_OWNER_ROLE",
106
- "outputs": [
78
+ "inputs": [
107
79
  {
108
- "internalType": "bytes32",
109
- "name": "role",
110
- "type": "bytes32"
80
+ "internalType": "address",
81
+ "name": "InstanceAdmin",
82
+ "type": "address"
111
83
  }
112
84
  ],
113
- "stateMutability": "view",
114
- "type": "function"
85
+ "name": "ErrorInstanceInstanceAdminAlreadySet",
86
+ "type": "error"
115
87
  },
116
88
  {
117
- "inputs": [],
118
- "name": "POOL_OWNER",
119
- "outputs": [
89
+ "inputs": [
120
90
  {
121
- "internalType": "string",
122
- "name": "",
123
- "type": "string"
91
+ "internalType": "address",
92
+ "name": "instanceAuthority",
93
+ "type": "address"
124
94
  }
125
95
  ],
126
- "stateMutability": "view",
127
- "type": "function"
96
+ "name": "ErrorInstanceInstanceAdminAuthorityMismatch",
97
+ "type": "error"
128
98
  },
129
99
  {
130
100
  "inputs": [],
131
- "name": "POOL_OWNER_ROLE",
132
- "outputs": [
101
+ "name": "ErrorInstanceInstanceAdminZero",
102
+ "type": "error"
103
+ },
104
+ {
105
+ "inputs": [
133
106
  {
134
- "internalType": "bytes32",
135
- "name": "role",
136
- "type": "bytes32"
107
+ "internalType": "address",
108
+ "name": "instanceAuthority",
109
+ "type": "address"
137
110
  }
138
111
  ],
139
- "stateMutability": "view",
140
- "type": "function"
112
+ "name": "ErrorInstanceInstanceReaderInstanceMismatch",
113
+ "type": "error"
141
114
  },
142
115
  {
143
- "inputs": [],
144
- "name": "PRODUCT_OWNER",
145
- "outputs": [
116
+ "inputs": [
146
117
  {
147
- "internalType": "string",
148
- "name": "",
149
- "type": "string"
118
+ "internalType": "address",
119
+ "name": "instanceStore",
120
+ "type": "address"
150
121
  }
151
122
  ],
152
- "stateMutability": "view",
153
- "type": "function"
123
+ "name": "ErrorInstanceInstanceStoreAlreadySet",
124
+ "type": "error"
154
125
  },
155
126
  {
156
- "inputs": [],
157
- "name": "PRODUCT_OWNER_ROLE",
158
- "outputs": [
127
+ "inputs": [
159
128
  {
160
- "internalType": "bytes32",
161
- "name": "role",
162
- "type": "bytes32"
129
+ "internalType": "address",
130
+ "name": "instanceAuthority",
131
+ "type": "address"
163
132
  }
164
133
  ],
165
- "stateMutability": "view",
166
- "type": "function"
134
+ "name": "ErrorInstanceInstanceStoreAuthorityMismatch",
135
+ "type": "error"
167
136
  },
168
137
  {
169
138
  "inputs": [
170
139
  {
171
- "internalType": "uint256",
140
+ "internalType": "NftId",
172
141
  "name": "nftId",
173
- "type": "uint256"
142
+ "type": "uint96"
174
143
  }
175
144
  ],
176
- "name": "activate",
177
- "outputs": [],
178
- "stateMutability": "nonpayable",
179
- "type": "function"
145
+ "name": "ErrorNftOwnableAlreadyLinked",
146
+ "type": "error"
180
147
  },
181
148
  {
182
- "inputs": [],
183
- "name": "components",
184
- "outputs": [
149
+ "inputs": [
185
150
  {
186
- "internalType": "uint256",
187
- "name": "numberOfCompnents",
188
- "type": "uint256"
151
+ "internalType": "address",
152
+ "name": "contractAddress",
153
+ "type": "address"
189
154
  }
190
155
  ],
191
- "stateMutability": "view",
192
- "type": "function"
156
+ "name": "ErrorNftOwnableContractNotRegistered",
157
+ "type": "error"
158
+ },
159
+ {
160
+ "inputs": [],
161
+ "name": "ErrorNftOwnableInitialOwnerZero",
162
+ "type": "error"
193
163
  },
194
164
  {
195
165
  "inputs": [
196
- {
197
- "components": [
198
- {
199
- "internalType": "uint256",
200
- "name": "nftId",
201
- "type": "uint256"
202
- },
203
- {
204
- "internalType": "uint256",
205
- "name": "parentNftId",
206
- "type": "uint256"
207
- },
208
- {
209
- "internalType": "uint256",
210
- "name": "objectType",
211
- "type": "uint256"
212
- },
213
- {
214
- "internalType": "address",
215
- "name": "objectAddress",
216
- "type": "address"
217
- },
218
- {
219
- "internalType": "address",
220
- "name": "initialOwner",
221
- "type": "address"
222
- }
223
- ],
224
- "internalType": "struct IRegistry.RegistryInfo",
225
- "name": "productInfo",
226
- "type": "tuple"
227
- },
228
166
  {
229
167
  "internalType": "address",
230
- "name": "applicationOwner",
168
+ "name": "account",
231
169
  "type": "address"
232
- },
233
- {
234
- "internalType": "uint256",
235
- "name": "sumInsuredAmount",
236
- "type": "uint256"
237
- },
238
- {
239
- "internalType": "uint256",
240
- "name": "premiumAmount",
241
- "type": "uint256"
242
- },
243
- {
244
- "internalType": "uint256",
245
- "name": "lifetime",
246
- "type": "uint256"
247
- },
248
- {
249
- "internalType": "uint256",
250
- "name": "bundleNftId",
251
- "type": "uint256"
252
170
  }
253
171
  ],
254
- "name": "createApplication",
255
- "outputs": [
256
- {
257
- "internalType": "uint256",
258
- "name": "nftId",
259
- "type": "uint256"
260
- }
261
- ],
262
- "stateMutability": "nonpayable",
263
- "type": "function"
172
+ "name": "ErrorNftOwnableNotOwner",
173
+ "type": "error"
264
174
  },
265
175
  {
266
176
  "inputs": [
267
- {
268
- "internalType": "uint256",
269
- "name": "nftId",
270
- "type": "uint256"
271
- },
272
177
  {
273
178
  "internalType": "address",
274
- "name": "wallet",
179
+ "name": "registryAddress",
275
180
  "type": "address"
276
- },
181
+ }
182
+ ],
183
+ "name": "ErrorNotRegistry",
184
+ "type": "error"
185
+ },
186
+ {
187
+ "inputs": [],
188
+ "name": "InvalidInitialization",
189
+ "type": "error"
190
+ },
191
+ {
192
+ "inputs": [],
193
+ "name": "NotInitializing",
194
+ "type": "error"
195
+ },
196
+ {
197
+ "anonymous": false,
198
+ "inputs": [
277
199
  {
200
+ "indexed": false,
278
201
  "internalType": "address",
279
- "name": "token",
202
+ "name": "authority",
280
203
  "type": "address"
281
204
  }
282
205
  ],
283
- "name": "createPoolInfo",
284
- "outputs": [],
285
- "stateMutability": "nonpayable",
286
- "type": "function"
206
+ "name": "AuthorityUpdated",
207
+ "type": "event"
287
208
  },
288
209
  {
210
+ "anonymous": false,
289
211
  "inputs": [
290
212
  {
291
- "internalType": "string",
292
- "name": "roleName",
293
- "type": "string"
213
+ "indexed": false,
214
+ "internalType": "uint64",
215
+ "name": "version",
216
+ "type": "uint64"
294
217
  }
295
218
  ],
296
- "name": "createRole",
219
+ "name": "Initialized",
220
+ "type": "event"
221
+ },
222
+ {
223
+ "inputs": [],
224
+ "name": "GIF_MAJOR_VERSION",
297
225
  "outputs": [
298
226
  {
299
- "internalType": "bytes32",
300
- "name": "role",
301
- "type": "bytes32"
227
+ "internalType": "uint256",
228
+ "name": "",
229
+ "type": "uint256"
302
230
  }
303
231
  ],
304
- "stateMutability": "nonpayable",
232
+ "stateMutability": "view",
305
233
  "type": "function"
306
234
  },
307
235
  {
308
- "inputs": [
236
+ "inputs": [],
237
+ "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
238
+ "outputs": [
309
239
  {
310
240
  "internalType": "bytes32",
311
- "name": "role",
241
+ "name": "",
312
242
  "type": "bytes32"
313
243
  }
314
244
  ],
315
- "name": "disableRole",
316
- "outputs": [],
317
- "stateMutability": "nonpayable",
245
+ "stateMutability": "view",
318
246
  "type": "function"
319
247
  },
320
248
  {
321
- "inputs": [
249
+ "inputs": [],
250
+ "name": "REGISTERABLE_LOCATION_V1",
251
+ "outputs": [
322
252
  {
323
253
  "internalType": "bytes32",
324
- "name": "role",
254
+ "name": "",
325
255
  "type": "bytes32"
326
256
  }
327
257
  ],
328
- "name": "enableRole",
329
- "outputs": [],
330
- "stateMutability": "nonpayable",
258
+ "stateMutability": "view",
331
259
  "type": "function"
332
260
  },
333
261
  {
334
- "inputs": [
335
- {
336
- "internalType": "uint256",
337
- "name": "nftId",
338
- "type": "uint256"
339
- }
340
- ],
341
- "name": "getBundleNftForPolicy",
262
+ "inputs": [],
263
+ "name": "authority",
342
264
  "outputs": [
343
265
  {
344
- "internalType": "uint256",
345
- "name": "bundleNft",
346
- "type": "uint256"
266
+ "internalType": "address",
267
+ "name": "",
268
+ "type": "address"
347
269
  }
348
270
  ],
349
271
  "stateMutability": "view",
@@ -352,66 +274,107 @@
352
274
  {
353
275
  "inputs": [
354
276
  {
355
- "internalType": "address",
356
- "name": "componentAddress",
357
- "type": "address"
277
+ "internalType": "string",
278
+ "name": "roleName",
279
+ "type": "string"
280
+ },
281
+ {
282
+ "internalType": "string",
283
+ "name": "adminName",
284
+ "type": "string"
358
285
  }
359
286
  ],
360
- "name": "getComponentId",
287
+ "name": "createRole",
361
288
  "outputs": [
362
289
  {
363
- "internalType": "uint256",
364
- "name": "id",
365
- "type": "uint256"
290
+ "internalType": "RoleId",
291
+ "name": "roleId",
292
+ "type": "uint64"
293
+ },
294
+ {
295
+ "internalType": "RoleId",
296
+ "name": "admin",
297
+ "type": "uint64"
366
298
  }
367
299
  ],
368
- "stateMutability": "view",
300
+ "stateMutability": "nonpayable",
369
301
  "type": "function"
370
302
  },
371
303
  {
372
304
  "inputs": [
373
305
  {
374
- "internalType": "uint256",
375
- "name": "idx",
376
- "type": "uint256"
306
+ "internalType": "address",
307
+ "name": "target",
308
+ "type": "address"
309
+ },
310
+ {
311
+ "internalType": "string",
312
+ "name": "name",
313
+ "type": "string"
377
314
  }
378
315
  ],
379
- "name": "getComponentId",
316
+ "name": "createTarget",
317
+ "outputs": [],
318
+ "stateMutability": "nonpayable",
319
+ "type": "function"
320
+ },
321
+ {
322
+ "inputs": [],
323
+ "name": "getBundleManager",
380
324
  "outputs": [
381
325
  {
382
- "internalType": "uint256",
383
- "name": "id",
384
- "type": "uint256"
326
+ "internalType": "contract BundleManager",
327
+ "name": "",
328
+ "type": "address"
385
329
  }
386
330
  ],
387
331
  "stateMutability": "view",
388
332
  "type": "function"
389
333
  },
390
334
  {
391
- "inputs": [
392
- {
393
- "internalType": "uint256",
394
- "name": "id",
395
- "type": "uint256"
396
- }
397
- ],
398
- "name": "getComponentInfo",
335
+ "inputs": [],
336
+ "name": "getInitialInfo",
399
337
  "outputs": [
400
338
  {
401
339
  "components": [
402
340
  {
403
- "internalType": "uint256",
341
+ "internalType": "NftId",
404
342
  "name": "nftId",
405
- "type": "uint256"
343
+ "type": "uint96"
406
344
  },
407
345
  {
408
- "internalType": "enum IComponent.CState",
409
- "name": "state",
346
+ "internalType": "NftId",
347
+ "name": "parentNftId",
348
+ "type": "uint96"
349
+ },
350
+ {
351
+ "internalType": "ObjectType",
352
+ "name": "objectType",
410
353
  "type": "uint8"
354
+ },
355
+ {
356
+ "internalType": "bool",
357
+ "name": "isInterceptor",
358
+ "type": "bool"
359
+ },
360
+ {
361
+ "internalType": "address",
362
+ "name": "objectAddress",
363
+ "type": "address"
364
+ },
365
+ {
366
+ "internalType": "address",
367
+ "name": "initialOwner",
368
+ "type": "address"
369
+ },
370
+ {
371
+ "internalType": "bytes",
372
+ "name": "data",
373
+ "type": "bytes"
411
374
  }
412
375
  ],
413
- "internalType": "struct IComponent.ComponentInfo",
414
- "name": "",
376
+ "internalType": "struct IRegistry.ObjectInfo",
377
+ "name": "info",
415
378
  "type": "tuple"
416
379
  }
417
380
  ],
@@ -419,18 +382,25 @@
419
382
  "type": "function"
420
383
  },
421
384
  {
422
- "inputs": [
385
+ "inputs": [],
386
+ "name": "getInstanceAccessManager",
387
+ "outputs": [
423
388
  {
424
- "internalType": "uint256",
425
- "name": "id",
426
- "type": "uint256"
389
+ "internalType": "contract AccessManagerExtendedInitializeable",
390
+ "name": "",
391
+ "type": "address"
427
392
  }
428
393
  ],
429
- "name": "getComponentOwner",
394
+ "stateMutability": "view",
395
+ "type": "function"
396
+ },
397
+ {
398
+ "inputs": [],
399
+ "name": "getInstanceAdmin",
430
400
  "outputs": [
431
401
  {
432
- "internalType": "address",
433
- "name": "owner",
402
+ "internalType": "contract InstanceAdmin",
403
+ "name": "",
434
404
  "type": "address"
435
405
  }
436
406
  ],
@@ -439,10 +409,10 @@
439
409
  },
440
410
  {
441
411
  "inputs": [],
442
- "name": "getComponentOwnerService",
412
+ "name": "getInstanceReader",
443
413
  "outputs": [
444
414
  {
445
- "internalType": "contract IComponentOwnerService",
415
+ "internalType": "contract InstanceReader",
446
416
  "name": "",
447
417
  "type": "address"
448
418
  }
@@ -452,12 +422,12 @@
452
422
  },
453
423
  {
454
424
  "inputs": [],
455
- "name": "getData",
425
+ "name": "getInstanceStore",
456
426
  "outputs": [
457
427
  {
458
- "internalType": "bytes",
459
- "name": "data",
460
- "type": "bytes"
428
+ "internalType": "contract InstanceStore",
429
+ "name": "",
430
+ "type": "address"
461
431
  }
462
432
  ],
463
433
  "stateMutability": "view",
@@ -465,15 +435,15 @@
465
435
  },
466
436
  {
467
437
  "inputs": [],
468
- "name": "getInitialOwner",
438
+ "name": "getMajorVersion",
469
439
  "outputs": [
470
440
  {
471
- "internalType": "address",
472
- "name": "deployer",
473
- "type": "address"
441
+ "internalType": "VersionPart",
442
+ "name": "majorVersion",
443
+ "type": "uint8"
474
444
  }
475
445
  ],
476
- "stateMutability": "view",
446
+ "stateMutability": "pure",
477
447
  "type": "function"
478
448
  },
479
449
  {
@@ -481,9 +451,9 @@
481
451
  "name": "getNftId",
482
452
  "outputs": [
483
453
  {
484
- "internalType": "uint256",
485
- "name": "id",
486
- "type": "uint256"
454
+ "internalType": "NftId",
455
+ "name": "",
456
+ "type": "uint96"
487
457
  }
488
458
  ],
489
459
  "stateMutability": "view",
@@ -495,7 +465,7 @@
495
465
  "outputs": [
496
466
  {
497
467
  "internalType": "address",
498
- "name": "owner",
468
+ "name": "",
499
469
  "type": "address"
500
470
  }
501
471
  ],
@@ -504,12 +474,12 @@
504
474
  },
505
475
  {
506
476
  "inputs": [],
507
- "name": "getParentNftId",
477
+ "name": "getRegistry",
508
478
  "outputs": [
509
479
  {
510
- "internalType": "uint256",
480
+ "internalType": "contract IRegistry",
511
481
  "name": "",
512
- "type": "uint256"
482
+ "type": "address"
513
483
  }
514
484
  ],
515
485
  "stateMutability": "view",
@@ -518,142 +488,128 @@
518
488
  {
519
489
  "inputs": [
520
490
  {
521
- "internalType": "uint256",
522
- "name": "nftId",
523
- "type": "uint256"
491
+ "internalType": "RoleId",
492
+ "name": "roleId",
493
+ "type": "uint64"
494
+ },
495
+ {
496
+ "internalType": "address",
497
+ "name": "account",
498
+ "type": "address"
524
499
  }
525
500
  ],
526
- "name": "getPolicyInfo",
527
- "outputs": [
501
+ "name": "grantRole",
502
+ "outputs": [],
503
+ "stateMutability": "nonpayable",
504
+ "type": "function"
505
+ },
506
+ {
507
+ "inputs": [
528
508
  {
529
- "components": [
530
- {
531
- "internalType": "uint256",
532
- "name": "nftId",
533
- "type": "uint256"
534
- },
535
- {
536
- "internalType": "enum IPolicy.PolicyState",
537
- "name": "state",
538
- "type": "uint8"
539
- },
540
- {
541
- "internalType": "uint256",
542
- "name": "sumInsuredAmount",
543
- "type": "uint256"
544
- },
545
- {
546
- "internalType": "uint256",
547
- "name": "premiumAmount",
548
- "type": "uint256"
549
- },
550
- {
551
- "internalType": "uint256",
552
- "name": "lifetime",
553
- "type": "uint256"
554
- },
555
- {
556
- "internalType": "uint256",
557
- "name": "createdAt",
558
- "type": "uint256"
559
- },
560
- {
561
- "internalType": "uint256",
562
- "name": "activatedAt",
563
- "type": "uint256"
564
- },
565
- {
566
- "internalType": "uint256",
567
- "name": "expiredAt",
568
- "type": "uint256"
569
- },
570
- {
571
- "internalType": "uint256",
572
- "name": "closedAt",
573
- "type": "uint256"
574
- }
575
- ],
576
- "internalType": "struct IPolicy.PolicyInfo",
577
- "name": "info",
578
- "type": "tuple"
509
+ "internalType": "address",
510
+ "name": "authority",
511
+ "type": "address"
512
+ },
513
+ {
514
+ "internalType": "address",
515
+ "name": "registryAddress",
516
+ "type": "address"
517
+ },
518
+ {
519
+ "internalType": "address",
520
+ "name": "initialOwner",
521
+ "type": "address"
579
522
  }
580
523
  ],
581
- "stateMutability": "view",
524
+ "name": "initialize",
525
+ "outputs": [],
526
+ "stateMutability": "nonpayable",
527
+ "type": "function"
528
+ },
529
+ {
530
+ "inputs": [],
531
+ "name": "initializeERC165",
532
+ "outputs": [],
533
+ "stateMutability": "nonpayable",
582
534
  "type": "function"
583
535
  },
584
536
  {
585
537
  "inputs": [
586
538
  {
587
- "internalType": "uint256",
588
- "name": "nftId",
589
- "type": "uint256"
539
+ "internalType": "address",
540
+ "name": "initialOwner",
541
+ "type": "address"
542
+ },
543
+ {
544
+ "internalType": "address",
545
+ "name": "registryAddress",
546
+ "type": "address"
590
547
  }
591
548
  ],
592
- "name": "getPoolInfo",
593
- "outputs": [
549
+ "name": "initializeNftOwnable",
550
+ "outputs": [],
551
+ "stateMutability": "nonpayable",
552
+ "type": "function"
553
+ },
554
+ {
555
+ "inputs": [
594
556
  {
595
- "components": [
596
- {
597
- "internalType": "uint256",
598
- "name": "nftId",
599
- "type": "uint256"
600
- },
601
- {
602
- "internalType": "address",
603
- "name": "wallet",
604
- "type": "address"
605
- },
606
- {
607
- "internalType": "address",
608
- "name": "token",
609
- "type": "address"
610
- },
611
- {
612
- "internalType": "uint256",
613
- "name": "capital",
614
- "type": "uint256"
615
- },
616
- {
617
- "internalType": "uint256",
618
- "name": "lockedCapital",
619
- "type": "uint256"
620
- }
621
- ],
622
- "internalType": "struct IPool.PoolInfo",
623
- "name": "info",
624
- "type": "tuple"
557
+ "internalType": "address",
558
+ "name": "registryAddress",
559
+ "type": "address"
560
+ },
561
+ {
562
+ "internalType": "NftId",
563
+ "name": "parentNftId",
564
+ "type": "uint96"
565
+ },
566
+ {
567
+ "internalType": "ObjectType",
568
+ "name": "objectType",
569
+ "type": "uint8"
570
+ },
571
+ {
572
+ "internalType": "bool",
573
+ "name": "isInterceptor",
574
+ "type": "bool"
575
+ },
576
+ {
577
+ "internalType": "address",
578
+ "name": "initialOwner",
579
+ "type": "address"
580
+ },
581
+ {
582
+ "internalType": "bytes",
583
+ "name": "registryData",
584
+ "type": "bytes"
625
585
  }
626
586
  ],
627
- "stateMutability": "view",
587
+ "name": "initializeRegisterable",
588
+ "outputs": [],
589
+ "stateMutability": "nonpayable",
628
590
  "type": "function"
629
591
  },
630
592
  {
631
593
  "inputs": [
632
594
  {
633
- "internalType": "uint256",
634
- "name": "productNftId",
635
- "type": "uint256"
636
- }
637
- ],
638
- "name": "getPoolNftId",
639
- "outputs": [
640
- {
641
- "internalType": "uint256",
642
- "name": "poolNftId",
643
- "type": "uint256"
595
+ "internalType": "address",
596
+ "name": "registryAddress",
597
+ "type": "address"
644
598
  }
645
599
  ],
646
- "stateMutability": "view",
600
+ "name": "initializeRegistryLinked",
601
+ "outputs": [],
602
+ "stateMutability": "nonpayable",
647
603
  "type": "function"
648
604
  },
649
605
  {
650
606
  "inputs": [],
651
- "name": "getProductService",
607
+ "name": "isConsumingScheduledOp",
652
608
  "outputs": [
653
609
  {
654
- "internalType": "contract IProductService",
610
+ "internalType": "bytes4",
655
611
  "name": "",
656
- "type": "address"
612
+ "type": "bytes4"
657
613
  }
658
614
  ],
659
615
  "stateMutability": "view",
@@ -661,237 +617,243 @@
661
617
  },
662
618
  {
663
619
  "inputs": [],
664
- "name": "getRegistry",
620
+ "name": "linkToRegisteredNftId",
665
621
  "outputs": [
666
622
  {
667
- "internalType": "contract IRegistry",
668
- "name": "registry",
669
- "type": "address"
623
+ "internalType": "NftId",
624
+ "name": "nftId",
625
+ "type": "uint96"
670
626
  }
671
627
  ],
672
- "stateMutability": "view",
628
+ "stateMutability": "nonpayable",
673
629
  "type": "function"
674
630
  },
675
631
  {
676
632
  "inputs": [
633
+ {
634
+ "internalType": "address",
635
+ "name": "to",
636
+ "type": "address"
637
+ },
677
638
  {
678
639
  "internalType": "uint256",
679
- "name": "idx",
640
+ "name": "tokenId",
680
641
  "type": "uint256"
681
642
  }
682
643
  ],
683
- "name": "getRole",
684
- "outputs": [
685
- {
686
- "internalType": "bytes32",
687
- "name": "role",
688
- "type": "bytes32"
689
- }
690
- ],
691
- "stateMutability": "view",
644
+ "name": "nftMint",
645
+ "outputs": [],
646
+ "stateMutability": "nonpayable",
692
647
  "type": "function"
693
648
  },
694
649
  {
695
- "inputs": [],
696
- "name": "getRoleCount",
697
- "outputs": [
650
+ "inputs": [
651
+ {
652
+ "internalType": "address",
653
+ "name": "from",
654
+ "type": "address"
655
+ },
656
+ {
657
+ "internalType": "address",
658
+ "name": "to",
659
+ "type": "address"
660
+ },
698
661
  {
699
662
  "internalType": "uint256",
700
- "name": "roles",
663
+ "name": "tokenId",
701
664
  "type": "uint256"
702
665
  }
703
666
  ],
704
- "stateMutability": "view",
667
+ "name": "nftTransferFrom",
668
+ "outputs": [],
669
+ "stateMutability": "nonpayable",
705
670
  "type": "function"
706
671
  },
707
672
  {
708
673
  "inputs": [
709
674
  {
710
- "internalType": "string",
711
- "name": "roleName",
712
- "type": "string"
675
+ "internalType": "Amount",
676
+ "name": "dipAmount",
677
+ "type": "uint96"
713
678
  }
714
679
  ],
715
- "name": "getRoleForName",
716
- "outputs": [
680
+ "name": "refillStakingRewardReserves",
681
+ "outputs": [],
682
+ "stateMutability": "nonpayable",
683
+ "type": "function"
684
+ },
685
+ {
686
+ "inputs": [
717
687
  {
718
- "internalType": "bytes32",
719
- "name": "role",
720
- "type": "bytes32"
688
+ "internalType": "bytes4",
689
+ "name": "interfaceId",
690
+ "type": "bytes4"
721
691
  }
722
692
  ],
723
- "stateMutability": "pure",
693
+ "name": "registerInterface",
694
+ "outputs": [],
695
+ "stateMutability": "nonpayable",
724
696
  "type": "function"
725
697
  },
726
698
  {
727
699
  "inputs": [
728
700
  {
729
- "internalType": "uint256",
730
- "name": "cType",
731
- "type": "uint256"
732
- }
733
- ],
734
- "name": "getRoleForType",
735
- "outputs": [
701
+ "internalType": "RoleId",
702
+ "name": "roleId",
703
+ "type": "uint64"
704
+ },
736
705
  {
737
- "internalType": "bytes32",
738
- "name": "role",
739
- "type": "bytes32"
706
+ "internalType": "address",
707
+ "name": "account",
708
+ "type": "address"
740
709
  }
741
710
  ],
742
- "stateMutability": "view",
711
+ "name": "revokeRole",
712
+ "outputs": [],
713
+ "stateMutability": "nonpayable",
743
714
  "type": "function"
744
715
  },
745
716
  {
746
717
  "inputs": [
747
718
  {
748
- "internalType": "bytes32",
749
- "name": "role",
750
- "type": "bytes32"
719
+ "internalType": "address",
720
+ "name": "newAuthority",
721
+ "type": "address"
751
722
  }
752
723
  ],
753
- "name": "getRoleInfo",
754
- "outputs": [
724
+ "name": "setAuthority",
725
+ "outputs": [],
726
+ "stateMutability": "nonpayable",
727
+ "type": "function"
728
+ },
729
+ {
730
+ "inputs": [
755
731
  {
756
- "components": [
757
- {
758
- "internalType": "bytes32",
759
- "name": "id",
760
- "type": "bytes32"
761
- },
762
- {
763
- "internalType": "string",
764
- "name": "name",
765
- "type": "string"
766
- },
767
- {
768
- "internalType": "bool",
769
- "name": "isActive",
770
- "type": "bool"
771
- }
772
- ],
773
- "internalType": "struct IAccess.RoleInfo",
774
- "name": "info",
775
- "type": "tuple"
732
+ "internalType": "contract BundleManager",
733
+ "name": "bundleManager",
734
+ "type": "address"
776
735
  }
777
736
  ],
778
- "stateMutability": "view",
737
+ "name": "setBundleManager",
738
+ "outputs": [],
739
+ "stateMutability": "nonpayable",
779
740
  "type": "function"
780
741
  },
781
742
  {
782
743
  "inputs": [
783
744
  {
784
- "internalType": "bytes32",
785
- "name": "role",
786
- "type": "bytes32"
787
- },
788
- {
789
- "internalType": "uint256",
790
- "name": "idx",
791
- "type": "uint256"
745
+ "internalType": "contract InstanceAdmin",
746
+ "name": "accessManager",
747
+ "type": "address"
792
748
  }
793
749
  ],
794
- "name": "getRoleMember",
795
- "outputs": [
750
+ "name": "setInstanceAdmin",
751
+ "outputs": [],
752
+ "stateMutability": "nonpayable",
753
+ "type": "function"
754
+ },
755
+ {
756
+ "inputs": [
796
757
  {
797
- "internalType": "address",
798
- "name": "roleMembers",
758
+ "internalType": "contract InstanceReader",
759
+ "name": "instanceReader",
799
760
  "type": "address"
800
761
  }
801
762
  ],
802
- "stateMutability": "view",
763
+ "name": "setInstanceReader",
764
+ "outputs": [],
765
+ "stateMutability": "nonpayable",
803
766
  "type": "function"
804
767
  },
805
768
  {
806
769
  "inputs": [
807
770
  {
808
- "internalType": "bytes32",
809
- "name": "role",
810
- "type": "bytes32"
771
+ "internalType": "contract InstanceStore",
772
+ "name": "instanceStore",
773
+ "type": "address"
811
774
  }
812
775
  ],
813
- "name": "getRoleMemberCount",
814
- "outputs": [
776
+ "name": "setInstanceStore",
777
+ "outputs": [],
778
+ "stateMutability": "nonpayable",
779
+ "type": "function"
780
+ },
781
+ {
782
+ "inputs": [
815
783
  {
816
- "internalType": "uint256",
817
- "name": "roleMembers",
818
- "type": "uint256"
784
+ "internalType": "Seconds",
785
+ "name": "stakeLockingPeriod",
786
+ "type": "uint40"
819
787
  }
820
788
  ],
821
- "stateMutability": "view",
789
+ "name": "setStakingLockingPeriod",
790
+ "outputs": [],
791
+ "stateMutability": "nonpayable",
822
792
  "type": "function"
823
793
  },
824
794
  {
825
- "inputs": [],
826
- "name": "getType",
827
- "outputs": [
795
+ "inputs": [
828
796
  {
829
- "internalType": "uint256",
830
- "name": "objectType",
797
+ "internalType": "UFixed",
798
+ "name": "rewardRate",
831
799
  "type": "uint256"
832
800
  }
833
801
  ],
834
- "stateMutability": "view",
802
+ "name": "setStakingRewardRate",
803
+ "outputs": [],
804
+ "stateMutability": "nonpayable",
835
805
  "type": "function"
836
806
  },
837
807
  {
838
808
  "inputs": [
839
809
  {
840
- "internalType": "bytes32",
841
- "name": "role",
842
- "type": "bytes32"
810
+ "internalType": "string",
811
+ "name": "targetName",
812
+ "type": "string"
843
813
  },
844
814
  {
845
- "internalType": "address",
846
- "name": "member",
847
- "type": "address"
815
+ "internalType": "bytes4[]",
816
+ "name": "selectors",
817
+ "type": "bytes4[]"
818
+ },
819
+ {
820
+ "internalType": "RoleId",
821
+ "name": "roleId",
822
+ "type": "uint64"
848
823
  }
849
824
  ],
850
- "name": "grantRole",
825
+ "name": "setTargetFunctionRole",
851
826
  "outputs": [],
852
827
  "stateMutability": "nonpayable",
853
828
  "type": "function"
854
829
  },
855
830
  {
856
831
  "inputs": [
857
- {
858
- "internalType": "bytes32",
859
- "name": "role",
860
- "type": "bytes32"
861
- },
862
832
  {
863
833
  "internalType": "address",
864
- "name": "member",
834
+ "name": "target",
865
835
  "type": "address"
866
- }
867
- ],
868
- "name": "hasRole",
869
- "outputs": [
836
+ },
870
837
  {
871
838
  "internalType": "bool",
872
- "name": "",
839
+ "name": "locked",
873
840
  "type": "bool"
874
841
  }
875
842
  ],
876
- "stateMutability": "view",
843
+ "name": "setTargetLocked",
844
+ "outputs": [],
845
+ "stateMutability": "nonpayable",
877
846
  "type": "function"
878
847
  },
879
848
  {
880
- "inputs": [],
881
- "name": "isRegisterable",
882
- "outputs": [
849
+ "inputs": [
883
850
  {
884
- "internalType": "bool",
885
- "name": "",
886
- "type": "bool"
851
+ "internalType": "bytes4",
852
+ "name": "interfaceId",
853
+ "type": "bytes4"
887
854
  }
888
855
  ],
889
- "stateMutability": "pure",
890
- "type": "function"
891
- },
892
- {
893
- "inputs": [],
894
- "name": "isRegistered",
856
+ "name": "supportsInterface",
895
857
  "outputs": [
896
858
  {
897
859
  "internalType": "bool",
@@ -902,108 +864,102 @@
902
864
  "stateMutability": "view",
903
865
  "type": "function"
904
866
  },
905
- {
906
- "inputs": [],
907
- "name": "register",
908
- "outputs": [
909
- {
910
- "internalType": "uint256",
911
- "name": "id",
912
- "type": "uint256"
913
- }
914
- ],
915
- "stateMutability": "nonpayable",
916
- "type": "function"
917
- },
918
867
  {
919
868
  "inputs": [
920
869
  {
921
- "internalType": "contract IComponentContract",
922
- "name": "component",
923
- "type": "address"
870
+ "internalType": "Amount",
871
+ "name": "dipAmount",
872
+ "type": "uint96"
924
873
  }
925
874
  ],
926
- "name": "registerComponent",
875
+ "name": "withdrawStakingRewardReserves",
927
876
  "outputs": [
928
877
  {
929
- "internalType": "uint256",
930
- "name": "nftId",
931
- "type": "uint256"
878
+ "internalType": "Amount",
879
+ "name": "newBalance",
880
+ "type": "uint96"
932
881
  }
933
882
  ],
934
883
  "stateMutability": "nonpayable",
935
884
  "type": "function"
885
+ }
886
+ ],
887
+ "bytecode": "0x608060405234801561001057600080fd5b50612a08806100206000396000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c8063770ab1021161013b578063bf7e214f116100b8578063e52ba1cb1161007c578063e52ba1cb14610568578063e5f6cd271461057b578063e7f7fb8614610583578063f7bc431c14610596578063f7c34ee0146105a957600080fd5b8063bf7e214f146104ef578063c0c53b8b146104f7578063cde749f41461050a578063d2192dbf14610524578063d4cda0d81461055757600080fd5b8063ada9652e116100ff578063ada9652e1461048e578063b428b0b0146104a3578063b7d2b162146104b6578063b7d68519146104c9578063bb1e0e59146104dc57600080fd5b8063770ab1021461042c5780637a9e5e4b1461043f5780638689231314610452578063893d20e8146104655780638fb360371461046d57600080fd5b80632d764ef8116101c95780635ab1bd531161018d5780635ab1bd53146103c65780635fa8aad4146103d757806361f5f420146103ea578063644c45e0146103fb578063675393bf1461041957600080fd5b80632d764ef814610374578063311adb681461038757806336fc697e14610398578063422c9d00146103a05780634f8b8aba146103b357600080fd5b8063214cdb8011610210578063214cdb801461031e5780632449aea8146103335780632781d4431461034657806327bb7a331461034e57806329db8c3d1461036157600080fd5b806301ffc9a71461024d57806302cd30711461028f5780630fec111c146102b4578063138461e0146102c95780631eff4b22146102e9575b600080fd5b61027a61025b366004612015565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6004546001600160a01b03165b6040516001600160a01b039091168152602001610286565b6102bc6105bc565b6040516102869190612087565b6102d1610780565b6040516001600160601b039091168152602001610286565b6103107f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610286565b61033161032c366004612015565b610790565b005b610331610341366004612127565b6107bd565b610310600381565b61033161035c366004612201565b6108d8565b61033161036f3660046122ed565b61097d565b610331610382366004612397565b6109ea565b6003546001600160a01b031661029c565b610331610a8d565b6103316103ae366004612127565b610ad3565b6103316103c13660046123be565b610c7a565b6001546001600160a01b031661029c565b6103316103e53660046123db565b610d27565b6005546001600160a01b031661029c565b600080516020612993833981519152546001600160601b03166102d1565b610331610427366004612127565b610d62565b61033161043a366004612127565b610e70565b61033161044d366004612127565b610f82565b61033161046036600461242a565b611005565b61029c611048565b61047561117f565b6040516001600160e01b03199091168152602001610286565b61031060008051602061299383398151915281565b6103316104b1366004612463565b6111b7565b6103316104c4366004612463565b611299565b6103316104d7366004612491565b611374565b6103316104ea3660046124aa565b6113e0565b61029c6114a3565b6103316105053660046124d6565b6114bf565b61051261172f565b60405160ff9091168152602001610286565b610537610532366004612521565b6117a6565b604080516001600160401b03938416815292909116602083015201610286565b6006546001600160a01b031661029c565b6102d16105763660046123be565b611831565b61029c6118ed565b61033161059136600461257a565b6118f7565b6103316105a4366004612127565b6119ed565b6103316105b73660046125bb565b611aad565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069491906125d9565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016106dc611048565b6001600160a01b031681526020018260010180546106f9906125f6565b80601f0160208091040260200160405190810160405280929190818152602001828054610725906125f6565b80156107725780601f1061074757610100808354040283529160200191610772565b820191906000526020600020905b81548152906001019060200180831161075557829003601f168201915b505050505081525091505090565b600061078b30611b24565b905090565b610798611d25565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6107ca335b600036611d70565b6006546001600160a01b03161561080857600654604051632e67e2ab60e21b81526001600160a01b0390911660048201526024015b60405180910390fd5b6108106114a3565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087b9190612630565b6001600160a01b0316146108b6576108916114a3565b6040516348263eef60e01b81526001600160a01b0390911660048201526024016107ff565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6108e0611d25565b6108ea8287611aad565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3016109738382612698565b5050505050505050565b610986336107c2565b60035460405163dc85dcb160e01b81526001600160a01b039091169063dc85dcb1906109bc908790879087908790600401612757565b600060405180830381600087803b1580156109d657600080fd5b505af1158015610973573d6000803e3d6000fd5b6109f2611048565b6001600160a01b0316336001600160a01b031614610a255760405163086391f760e31b81523360048201526024016107ff565b6002546040516305aec9df60e31b815264ffffffffff831660048201526001600160a01b0390911690632d764ef8906024015b600060405180830381600087803b158015610a7257600080fd5b505af1158015610a86573d6000803e3d6000fd5b5050505050565b610a95611d25565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b610adc336107c2565b6005546001600160a01b031615610b155760055460405163384c2dbd60e11b81526001600160a01b0390911660048201526024016107ff565b306001600160a01b0316816001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b819190612630565b6001600160a01b031614610baa5760405163decb98c560e01b81523060048201526024016107ff565b610bb26114a3565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1d9190612630565b6001600160a01b031614610c5857610c336114a3565b604051630312205960e41b81526001600160a01b0390911660048201526024016107ff565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b610c82611048565b6001600160a01b0316336001600160a01b031614610cb55760405163086391f760e31b81523360048201526024016107ff565b60025460405163511ab59d60e11b815233600482018190526001600160601b0384166024830152916001600160a01b03169063a2356b3a906044015b600060405180830381600087803b158015610d0b57600080fd5b505af1158015610d1f573d6000803e3d6000fd5b505050505050565b610d30336107c2565b6003546040516317ea2ab560e21b81526001600160a01b0390911690635fa8aad490610cf190859085906004016127cc565b610d6a611d25565b806001600160a01b03163b600003610da05760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107ff565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e607072160e01b60048201526301ffc9a790602401602060405180830381865afa925050508015610e1a575060408051601f3d908101601f19168201909252610e17918101906127f0565b60015b610e425760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107ff565b80610e6b5760405163fdeac91f60e01b81526001600160a01b03831660048201526024016107ff565b505b50565b610e79336107c2565b6003546001600160a01b031615610eb25760035460405163078a818f60e31b81526001600160a01b0390911660048201526024016107ff565b610eba6114a3565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f259190612630565b6001600160a01b031614610f6057610f3b6114a3565b60405163021f1e5360e61b81526001600160a01b0390911660048201526024016107ff565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b33610f8b6114a3565b6001600160a01b0316816001600160a01b031614610fc65760405162d1953b60e31b81526001600160a01b03821660048201526024016107ff565b816001600160a01b03163b600003610ffc576040516361798f2f60e11b81526001600160a01b03831660048201526024016107ff565b610e6b82611e6e565b61100e336107c2565b6003546040516308b6d1c760e21b81526001600160a01b0384811660048301528315156024830152909116906322db471c90604401610cf1565b60008060008051602061299383398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156110b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dc91906127f0565b15611169576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa15801561113f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111639190612630565b91505090565b54600160601b90046001600160a01b0316919050565b6000805160206129b3833981519152805460009190600160a01b900460ff166111a9576000611163565b638fb3603760e01b91505090565b6111c0336107c2565b6111c86114a3565b604051631517388760e21b81526001600160401b03841660048201526001600160a01b0391909116906325c471a09073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611233573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611257919061280d565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038416602482015260006044820152606401610cf1565b6112a2336107c2565b6112aa6114a3565b604051631517388760e21b81526001600160401b03841660048201526001600160a01b03919091169063b7d2b1629073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611315573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611339919061280d565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0384166024820152604401610cf1565b61137c611048565b6001600160a01b0316336001600160a01b0316146113af5760405163086391f760e31b81523360048201526024016107ff565b60025460405163b7d6851960e01b8152600481018390526001600160a01b039091169063b7d6851990602401610a58565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611429573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144d9190612630565b6001600160a01b0316336001600160a01b03161461146a57600080fd5b600354604051632f42b9a560e11b8152600060048201526001600160a01b03848116602483015290911690635e85734a90604401610cf1565b6000805160206129b3833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156115045750825b90506000826001600160401b031660011480156115205750303b155b90508115801561152e575080155b1561154c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561157657845460ff60401b1916600160401b1785555b6001600160a01b03881661159d576040516377dbcd1760e01b815260040160405180910390fd5b6115a688611ecf565b600087905061162b88826001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161191906125d9565b600a60018b604051806020016040528060008152506108d8565b6001546001600160a01b031663d39e6043600a61164661172f565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801561168b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116af9190612630565b600280546001600160a01b0319166001600160a01b03929092169190911790556116df63bfe7f23560e01b610790565b50831561097357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b604051632392b61b60e21b81526003600482015260009073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015611782573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b919061282a565b6000806117b2336107c2565b60035460405163d2192dbf60e01b81526001600160a01b039091169063d2192dbf906117e49087908790600401612847565b60408051808303816000875af1158015611802573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118269190612875565b909590945092505050565b600061183b611048565b6001600160a01b0316336001600160a01b03161461186e5760405163086391f760e31b81523360048201526024016107ff565b60025460405163e52ba1cb60e01b81526001600160601b03841660048201526001600160a01b039091169063e52ba1cb906024016020604051808303816000875af11580156118c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e591906125d9565b90505b919050565b600061078b6114a3565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611940573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119649190612630565b6001600160a01b0316336001600160a01b03161461198157600080fd5b600354604051632f42b9a560e11b81526001600160a01b038581166004830152848116602483015290911690635e85734a90604401600060405180830381600087803b1580156119d057600080fd5b505af11580156119e4573d6000803e3d6000fd5b50505050505050565b6119f6336107c2565b306001600160a01b0316816001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a629190612630565b6001600160a01b031614611a8b576040516345789cf560e01b81523060048201526024016107ff565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b611ab5611d25565b611abe81610d62565b611ac6610a8d565b6001600160a01b038216611aed5760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061299383398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b60008060008051602061299383398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611b94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb891906127f0565b15611be45780546040516301ab8b6760e21b81526001600160601b0390911660048201526024016107ff565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5c91906127f0565b611c845760405163b9304b0d60e01b81526001600160a01b03841660048201526024016107ff565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa158015611cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfc91906125d9565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611d6e57604051631afcd79f60e31b815260040160405180910390fd5b565b6000805160206129b3833981519152600080611dab611d8d6114a3565b8730611d9d600460008a8c6128a4565b611da6916128ce565b611ee0565b9150915081610d1f5763ffffffff811615611e4b57825460ff60a01b1916600160a01b178355611dd96114a3565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401611e08939291906128fe565b600060405180830381600087803b158015611e2257600080fd5b505af1158015611e36573d6000803e3d6000fd5b5050845460ff60a01b1916855550610d1f9050565b60405162d1953b60e31b81526001600160a01b03871660048201526024016107ff565b6000805160206129b383398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b611ed7611d25565b610e6d81611fec565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611f4f919061293e565b600060405180830381855afa9150503d8060008114611f8a576040519150601f19603f3d011682016040523d82523d6000602084013e611f8f565b606091505b50915091508115611fe1576040815110611fc15780806020019051810190611fb7919061295a565b9094509250611fe1565b6020815110611fe15780806020019051810190611fde91906127f0565b93505b505094509492505050565b611ff4611d25565b610e6d81611e6e565b80356001600160e01b0319811681146118e857600080fd5b60006020828403121561202757600080fd5b61203082611ffd565b9392505050565b60005b8381101561205257818101518382015260200161203a565b50506000910152565b60008151808452612073816020860160208601612037565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a08301516120f060c08401826001600160a01b03169052565b5060c083015160e08084015261210a61010084018261205b565b949350505050565b6001600160a01b0381168114610e6d57600080fd5b60006020828403121561213957600080fd5b813561203081612112565b6001600160601b0381168114610e6d57600080fd5b60ff81168114610e6d57600080fd5b8015158114610e6d57600080fd5b634e487b7160e01b600052604160045260246000fd5b60006001600160401b03808411156121a6576121a6612176565b604051601f8501601f19908116603f011681019082821181831017156121ce576121ce612176565b816040528093508581528686860111156121e757600080fd5b858560208301376000602087830101525050509392505050565b60008060008060008060c0878903121561221a57600080fd5b863561222581612112565b9550602087013561223581612144565b9450604087013561224581612159565b9350606087013561225581612168565b9250608087013561226581612112565b915060a08701356001600160401b0381111561228057600080fd5b8701601f8101891361229157600080fd5b6122a08982356020840161218c565b9150509295509295509295565b600082601f8301126122be57600080fd5b6120308383356020850161218c565b6001600160401b0381168114610e6d57600080fd5b80356118e8816122cd565b6000806000806060858703121561230357600080fd5b84356001600160401b038082111561231a57600080fd5b612326888389016122ad565b9550602087013591508082111561233c57600080fd5b818701915087601f83011261235057600080fd5b81358181111561235f57600080fd5b8860208260051b850101111561237457600080fd5b60208301955080945050505061238c604086016122e2565b905092959194509250565b6000602082840312156123a957600080fd5b813564ffffffffff8116811461203057600080fd5b6000602082840312156123d057600080fd5b813561203081612144565b600080604083850312156123ee57600080fd5b82356123f981612112565b915060208301356001600160401b0381111561241457600080fd5b612420858286016122ad565b9150509250929050565b6000806040838503121561243d57600080fd5b823561244881612112565b9150602083013561245881612168565b809150509250929050565b6000806040838503121561247657600080fd5b8235612481816122cd565b9150602083013561245881612112565b6000602082840312156124a357600080fd5b5035919050565b600080604083850312156124bd57600080fd5b82356124c881612112565b946020939093013593505050565b6000806000606084860312156124eb57600080fd5b83356124f681612112565b9250602084013561250681612112565b9150604084013561251681612112565b809150509250925092565b6000806040838503121561253457600080fd5b82356001600160401b038082111561254b57600080fd5b612557868387016122ad565b9350602085013591508082111561256d57600080fd5b50612420858286016122ad565b60008060006060848603121561258f57600080fd5b833561259a81612112565b925060208401356125aa81612112565b929592945050506040919091013590565b600080604083850312156125ce57600080fd5b823561248181612112565b6000602082840312156125eb57600080fd5b815161203081612144565b600181811c9082168061260a57607f821691505b60208210810361262a57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561264257600080fd5b815161203081612112565b601f82111561269357600081815260208120601f850160051c810160208610156126745750805b601f850160051c820191505b81811015610d1f57828155600101612680565b505050565b81516001600160401b038111156126b1576126b1612176565b6126c5816126bf84546125f6565b8461264d565b602080601f8311600181146126fa57600084156126e25750858301515b600019600386901b1c1916600185901b178555610d1f565b600085815260208120601f198616915b828110156127295788860151825594840194600190910190840161270a565b50858210156127475787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60608152600061276a606083018761205b565b8281036020848101919091528582528691810160005b878110156127ad576001600160e01b031961279a85611ffd565b1682529282019290820190600101612780565b508093505050506001600160401b038316604083015295945050505050565b6001600160a01b038316815260406020820181905260009061210a9083018461205b565b60006020828403121561280257600080fd5b815161203081612168565b60006020828403121561281f57600080fd5b8151612030816122cd565b60006020828403121561283c57600080fd5b815161203081612159565b60408152600061285a604083018561205b565b828103602084015261286c818561205b565b95945050505050565b6000806040838503121561288857600080fd5b8251612893816122cd565b6020840151909250612458816122cd565b600080858511156128b457600080fd5b838611156128c157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156128f65780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251612950818460208701612037565b9190910192915050565b6000806040838503121561296d57600080fd5b825161297881612168565b602084015190925063ffffffff8116811461245857600080fdfe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a2646970667358221220794dcc14f9d641352e89182e87f65c3c636f4172ee9544ab65ef2414cac734c864736f6c63430008140033",
888
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102485760003560e01c8063770ab1021161013b578063bf7e214f116100b8578063e52ba1cb1161007c578063e52ba1cb14610568578063e5f6cd271461057b578063e7f7fb8614610583578063f7bc431c14610596578063f7c34ee0146105a957600080fd5b8063bf7e214f146104ef578063c0c53b8b146104f7578063cde749f41461050a578063d2192dbf14610524578063d4cda0d81461055757600080fd5b8063ada9652e116100ff578063ada9652e1461048e578063b428b0b0146104a3578063b7d2b162146104b6578063b7d68519146104c9578063bb1e0e59146104dc57600080fd5b8063770ab1021461042c5780637a9e5e4b1461043f5780638689231314610452578063893d20e8146104655780638fb360371461046d57600080fd5b80632d764ef8116101c95780635ab1bd531161018d5780635ab1bd53146103c65780635fa8aad4146103d757806361f5f420146103ea578063644c45e0146103fb578063675393bf1461041957600080fd5b80632d764ef814610374578063311adb681461038757806336fc697e14610398578063422c9d00146103a05780634f8b8aba146103b357600080fd5b8063214cdb8011610210578063214cdb801461031e5780632449aea8146103335780632781d4431461034657806327bb7a331461034e57806329db8c3d1461036157600080fd5b806301ffc9a71461024d57806302cd30711461028f5780630fec111c146102b4578063138461e0146102c95780631eff4b22146102e9575b600080fd5b61027a61025b366004612015565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6004546001600160a01b03165b6040516001600160a01b039091168152602001610286565b6102bc6105bc565b6040516102869190612087565b6102d1610780565b6040516001600160601b039091168152602001610286565b6103107f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610286565b61033161032c366004612015565b610790565b005b610331610341366004612127565b6107bd565b610310600381565b61033161035c366004612201565b6108d8565b61033161036f3660046122ed565b61097d565b610331610382366004612397565b6109ea565b6003546001600160a01b031661029c565b610331610a8d565b6103316103ae366004612127565b610ad3565b6103316103c13660046123be565b610c7a565b6001546001600160a01b031661029c565b6103316103e53660046123db565b610d27565b6005546001600160a01b031661029c565b600080516020612993833981519152546001600160601b03166102d1565b610331610427366004612127565b610d62565b61033161043a366004612127565b610e70565b61033161044d366004612127565b610f82565b61033161046036600461242a565b611005565b61029c611048565b61047561117f565b6040516001600160e01b03199091168152602001610286565b61031060008051602061299383398151915281565b6103316104b1366004612463565b6111b7565b6103316104c4366004612463565b611299565b6103316104d7366004612491565b611374565b6103316104ea3660046124aa565b6113e0565b61029c6114a3565b6103316105053660046124d6565b6114bf565b61051261172f565b60405160ff9091168152602001610286565b610537610532366004612521565b6117a6565b604080516001600160401b03938416815292909116602083015201610286565b6006546001600160a01b031661029c565b6102d16105763660046123be565b611831565b61029c6118ed565b61033161059136600461257a565b6118f7565b6103316105a4366004612127565b6119ed565b6103316105b73660046125bb565b611aad565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069491906125d9565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016106dc611048565b6001600160a01b031681526020018260010180546106f9906125f6565b80601f0160208091040260200160405190810160405280929190818152602001828054610725906125f6565b80156107725780601f1061074757610100808354040283529160200191610772565b820191906000526020600020905b81548152906001019060200180831161075557829003601f168201915b505050505081525091505090565b600061078b30611b24565b905090565b610798611d25565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6107ca335b600036611d70565b6006546001600160a01b03161561080857600654604051632e67e2ab60e21b81526001600160a01b0390911660048201526024015b60405180910390fd5b6108106114a3565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087b9190612630565b6001600160a01b0316146108b6576108916114a3565b6040516348263eef60e01b81526001600160a01b0390911660048201526024016107ff565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6108e0611d25565b6108ea8287611aad565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3016109738382612698565b5050505050505050565b610986336107c2565b60035460405163dc85dcb160e01b81526001600160a01b039091169063dc85dcb1906109bc908790879087908790600401612757565b600060405180830381600087803b1580156109d657600080fd5b505af1158015610973573d6000803e3d6000fd5b6109f2611048565b6001600160a01b0316336001600160a01b031614610a255760405163086391f760e31b81523360048201526024016107ff565b6002546040516305aec9df60e31b815264ffffffffff831660048201526001600160a01b0390911690632d764ef8906024015b600060405180830381600087803b158015610a7257600080fd5b505af1158015610a86573d6000803e3d6000fd5b5050505050565b610a95611d25565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b610adc336107c2565b6005546001600160a01b031615610b155760055460405163384c2dbd60e11b81526001600160a01b0390911660048201526024016107ff565b306001600160a01b0316816001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b819190612630565b6001600160a01b031614610baa5760405163decb98c560e01b81523060048201526024016107ff565b610bb26114a3565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1d9190612630565b6001600160a01b031614610c5857610c336114a3565b604051630312205960e41b81526001600160a01b0390911660048201526024016107ff565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b610c82611048565b6001600160a01b0316336001600160a01b031614610cb55760405163086391f760e31b81523360048201526024016107ff565b60025460405163511ab59d60e11b815233600482018190526001600160601b0384166024830152916001600160a01b03169063a2356b3a906044015b600060405180830381600087803b158015610d0b57600080fd5b505af1158015610d1f573d6000803e3d6000fd5b505050505050565b610d30336107c2565b6003546040516317ea2ab560e21b81526001600160a01b0390911690635fa8aad490610cf190859085906004016127cc565b610d6a611d25565b806001600160a01b03163b600003610da05760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107ff565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e607072160e01b60048201526301ffc9a790602401602060405180830381865afa925050508015610e1a575060408051601f3d908101601f19168201909252610e17918101906127f0565b60015b610e425760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107ff565b80610e6b5760405163fdeac91f60e01b81526001600160a01b03831660048201526024016107ff565b505b50565b610e79336107c2565b6003546001600160a01b031615610eb25760035460405163078a818f60e31b81526001600160a01b0390911660048201526024016107ff565b610eba6114a3565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f259190612630565b6001600160a01b031614610f6057610f3b6114a3565b60405163021f1e5360e61b81526001600160a01b0390911660048201526024016107ff565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b33610f8b6114a3565b6001600160a01b0316816001600160a01b031614610fc65760405162d1953b60e31b81526001600160a01b03821660048201526024016107ff565b816001600160a01b03163b600003610ffc576040516361798f2f60e11b81526001600160a01b03831660048201526024016107ff565b610e6b82611e6e565b61100e336107c2565b6003546040516308b6d1c760e21b81526001600160a01b0384811660048301528315156024830152909116906322db471c90604401610cf1565b60008060008051602061299383398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156110b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dc91906127f0565b15611169576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa15801561113f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111639190612630565b91505090565b54600160601b90046001600160a01b0316919050565b6000805160206129b3833981519152805460009190600160a01b900460ff166111a9576000611163565b638fb3603760e01b91505090565b6111c0336107c2565b6111c86114a3565b604051631517388760e21b81526001600160401b03841660048201526001600160a01b0391909116906325c471a09073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611233573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611257919061280d565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038416602482015260006044820152606401610cf1565b6112a2336107c2565b6112aa6114a3565b604051631517388760e21b81526001600160401b03841660048201526001600160a01b03919091169063b7d2b1629073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611315573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611339919061280d565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0384166024820152604401610cf1565b61137c611048565b6001600160a01b0316336001600160a01b0316146113af5760405163086391f760e31b81523360048201526024016107ff565b60025460405163b7d6851960e01b8152600481018390526001600160a01b039091169063b7d6851990602401610a58565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611429573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144d9190612630565b6001600160a01b0316336001600160a01b03161461146a57600080fd5b600354604051632f42b9a560e11b8152600060048201526001600160a01b03848116602483015290911690635e85734a90604401610cf1565b6000805160206129b3833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156115045750825b90506000826001600160401b031660011480156115205750303b155b90508115801561152e575080155b1561154c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561157657845460ff60401b1916600160401b1785555b6001600160a01b03881661159d576040516377dbcd1760e01b815260040160405180910390fd5b6115a688611ecf565b600087905061162b88826001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161191906125d9565b600a60018b604051806020016040528060008152506108d8565b6001546001600160a01b031663d39e6043600a61164661172f565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801561168b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116af9190612630565b600280546001600160a01b0319166001600160a01b03929092169190911790556116df63bfe7f23560e01b610790565b50831561097357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b604051632392b61b60e21b81526003600482015260009073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015611782573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b919061282a565b6000806117b2336107c2565b60035460405163d2192dbf60e01b81526001600160a01b039091169063d2192dbf906117e49087908790600401612847565b60408051808303816000875af1158015611802573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118269190612875565b909590945092505050565b600061183b611048565b6001600160a01b0316336001600160a01b03161461186e5760405163086391f760e31b81523360048201526024016107ff565b60025460405163e52ba1cb60e01b81526001600160601b03841660048201526001600160a01b039091169063e52ba1cb906024016020604051808303816000875af11580156118c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e591906125d9565b90505b919050565b600061078b6114a3565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611940573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119649190612630565b6001600160a01b0316336001600160a01b03161461198157600080fd5b600354604051632f42b9a560e11b81526001600160a01b038581166004830152848116602483015290911690635e85734a90604401600060405180830381600087803b1580156119d057600080fd5b505af11580156119e4573d6000803e3d6000fd5b50505050505050565b6119f6336107c2565b306001600160a01b0316816001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a629190612630565b6001600160a01b031614611a8b576040516345789cf560e01b81523060048201526024016107ff565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b611ab5611d25565b611abe81610d62565b611ac6610a8d565b6001600160a01b038216611aed5760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061299383398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b60008060008051602061299383398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611b94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb891906127f0565b15611be45780546040516301ab8b6760e21b81526001600160601b0390911660048201526024016107ff565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5c91906127f0565b611c845760405163b9304b0d60e01b81526001600160a01b03841660048201526024016107ff565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa158015611cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfc91906125d9565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611d6e57604051631afcd79f60e31b815260040160405180910390fd5b565b6000805160206129b3833981519152600080611dab611d8d6114a3565b8730611d9d600460008a8c6128a4565b611da6916128ce565b611ee0565b9150915081610d1f5763ffffffff811615611e4b57825460ff60a01b1916600160a01b178355611dd96114a3565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401611e08939291906128fe565b600060405180830381600087803b158015611e2257600080fd5b505af1158015611e36573d6000803e3d6000fd5b5050845460ff60a01b1916855550610d1f9050565b60405162d1953b60e31b81526001600160a01b03871660048201526024016107ff565b6000805160206129b383398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b611ed7611d25565b610e6d81611fec565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611f4f919061293e565b600060405180830381855afa9150503d8060008114611f8a576040519150601f19603f3d011682016040523d82523d6000602084013e611f8f565b606091505b50915091508115611fe1576040815110611fc15780806020019051810190611fb7919061295a565b9094509250611fe1565b6020815110611fe15780806020019051810190611fde91906127f0565b93505b505094509492505050565b611ff4611d25565b610e6d81611e6e565b80356001600160e01b0319811681146118e857600080fd5b60006020828403121561202757600080fd5b61203082611ffd565b9392505050565b60005b8381101561205257818101518382015260200161203a565b50506000910152565b60008151808452612073816020860160208601612037565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a08301516120f060c08401826001600160a01b03169052565b5060c083015160e08084015261210a61010084018261205b565b949350505050565b6001600160a01b0381168114610e6d57600080fd5b60006020828403121561213957600080fd5b813561203081612112565b6001600160601b0381168114610e6d57600080fd5b60ff81168114610e6d57600080fd5b8015158114610e6d57600080fd5b634e487b7160e01b600052604160045260246000fd5b60006001600160401b03808411156121a6576121a6612176565b604051601f8501601f19908116603f011681019082821181831017156121ce576121ce612176565b816040528093508581528686860111156121e757600080fd5b858560208301376000602087830101525050509392505050565b60008060008060008060c0878903121561221a57600080fd5b863561222581612112565b9550602087013561223581612144565b9450604087013561224581612159565b9350606087013561225581612168565b9250608087013561226581612112565b915060a08701356001600160401b0381111561228057600080fd5b8701601f8101891361229157600080fd5b6122a08982356020840161218c565b9150509295509295509295565b600082601f8301126122be57600080fd5b6120308383356020850161218c565b6001600160401b0381168114610e6d57600080fd5b80356118e8816122cd565b6000806000806060858703121561230357600080fd5b84356001600160401b038082111561231a57600080fd5b612326888389016122ad565b9550602087013591508082111561233c57600080fd5b818701915087601f83011261235057600080fd5b81358181111561235f57600080fd5b8860208260051b850101111561237457600080fd5b60208301955080945050505061238c604086016122e2565b905092959194509250565b6000602082840312156123a957600080fd5b813564ffffffffff8116811461203057600080fd5b6000602082840312156123d057600080fd5b813561203081612144565b600080604083850312156123ee57600080fd5b82356123f981612112565b915060208301356001600160401b0381111561241457600080fd5b612420858286016122ad565b9150509250929050565b6000806040838503121561243d57600080fd5b823561244881612112565b9150602083013561245881612168565b809150509250929050565b6000806040838503121561247657600080fd5b8235612481816122cd565b9150602083013561245881612112565b6000602082840312156124a357600080fd5b5035919050565b600080604083850312156124bd57600080fd5b82356124c881612112565b946020939093013593505050565b6000806000606084860312156124eb57600080fd5b83356124f681612112565b9250602084013561250681612112565b9150604084013561251681612112565b809150509250925092565b6000806040838503121561253457600080fd5b82356001600160401b038082111561254b57600080fd5b612557868387016122ad565b9350602085013591508082111561256d57600080fd5b50612420858286016122ad565b60008060006060848603121561258f57600080fd5b833561259a81612112565b925060208401356125aa81612112565b929592945050506040919091013590565b600080604083850312156125ce57600080fd5b823561248181612112565b6000602082840312156125eb57600080fd5b815161203081612144565b600181811c9082168061260a57607f821691505b60208210810361262a57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561264257600080fd5b815161203081612112565b601f82111561269357600081815260208120601f850160051c810160208610156126745750805b601f850160051c820191505b81811015610d1f57828155600101612680565b505050565b81516001600160401b038111156126b1576126b1612176565b6126c5816126bf84546125f6565b8461264d565b602080601f8311600181146126fa57600084156126e25750858301515b600019600386901b1c1916600185901b178555610d1f565b600085815260208120601f198616915b828110156127295788860151825594840194600190910190840161270a565b50858210156127475787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60608152600061276a606083018761205b565b8281036020848101919091528582528691810160005b878110156127ad576001600160e01b031961279a85611ffd565b1682529282019290820190600101612780565b508093505050506001600160401b038316604083015295945050505050565b6001600160a01b038316815260406020820181905260009061210a9083018461205b565b60006020828403121561280257600080fd5b815161203081612168565b60006020828403121561281f57600080fd5b8151612030816122cd565b60006020828403121561283c57600080fd5b815161203081612159565b60408152600061285a604083018561205b565b828103602084015261286c818561205b565b95945050505050565b6000806040838503121561288857600080fd5b8251612893816122cd565b6020840151909250612458816122cd565b600080858511156128b457600080fd5b838611156128c157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156128f65780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251612950818460208701612037565b9190910192915050565b6000806040838503121561296d57600080fd5b825161297881612168565b602084015190925063ffffffff8116811461245857600080fdfe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a2646970667358221220794dcc14f9d641352e89182e87f65c3c636f4172ee9544ab65ef2414cac734c864736f6c63430008140033",
889
+ "linkReferences": {
890
+ "contracts/type/NftId.sol": {
891
+ "NftIdLib": [
892
+ {
893
+ "length": 20,
894
+ "start": 1609
895
+ },
896
+ {
897
+ "length": 20,
898
+ "start": 4254
899
+ },
900
+ {
901
+ "length": 20,
902
+ "start": 7034
903
+ }
904
+ ]
936
905
  },
937
- {
938
- "inputs": [
906
+ "contracts/type/RoleId.sol": {
907
+ "RoleIdLib": [
939
908
  {
940
- "internalType": "bytes32",
941
- "name": "role",
942
- "type": "bytes32"
909
+ "length": 20,
910
+ "start": 4633
943
911
  },
944
912
  {
945
- "internalType": "address",
946
- "name": "member",
947
- "type": "address"
913
+ "length": 20,
914
+ "start": 4859
948
915
  }
949
- ],
950
- "name": "revokeRole",
951
- "outputs": [],
952
- "stateMutability": "nonpayable",
953
- "type": "function"
916
+ ]
954
917
  },
955
- {
956
- "inputs": [
918
+ "contracts/type/Version.sol": {
919
+ "VersionPartLib": [
957
920
  {
958
- "components": [
959
- {
960
- "internalType": "uint256",
961
- "name": "nftId",
962
- "type": "uint256"
963
- },
964
- {
965
- "internalType": "enum IComponent.CState",
966
- "name": "state",
967
- "type": "uint8"
968
- }
969
- ],
970
- "internalType": "struct IComponent.ComponentInfo",
971
- "name": "info",
972
- "type": "tuple"
921
+ "length": 20,
922
+ "start": 5992
973
923
  }
974
- ],
975
- "name": "setComponentInfo",
976
- "outputs": [
924
+ ]
925
+ }
926
+ },
927
+ "deployedLinkReferences": {
928
+ "contracts/type/NftId.sol": {
929
+ "NftIdLib": [
977
930
  {
978
- "internalType": "uint256",
979
- "name": "nftId",
980
- "type": "uint256"
931
+ "length": 20,
932
+ "start": 1577
933
+ },
934
+ {
935
+ "length": 20,
936
+ "start": 4222
937
+ },
938
+ {
939
+ "length": 20,
940
+ "start": 7002
981
941
  }
982
- ],
983
- "stateMutability": "nonpayable",
984
- "type": "function"
942
+ ]
985
943
  },
986
- {
987
- "inputs": [
944
+ "contracts/type/RoleId.sol": {
945
+ "RoleIdLib": [
988
946
  {
989
- "internalType": "uint256",
990
- "name": "poolNftId",
991
- "type": "uint256"
947
+ "length": 20,
948
+ "start": 4601
992
949
  },
993
950
  {
994
- "internalType": "uint256",
995
- "name": "policyNftId",
996
- "type": "uint256"
951
+ "length": 20,
952
+ "start": 4827
997
953
  }
998
- ],
999
- "name": "underwrite",
1000
- "outputs": [],
1001
- "stateMutability": "nonpayable",
1002
- "type": "function"
954
+ ]
955
+ },
956
+ "contracts/type/Version.sol": {
957
+ "VersionPartLib": [
958
+ {
959
+ "length": 20,
960
+ "start": 5960
961
+ }
962
+ ]
1003
963
  }
1004
- ],
1005
- "bytecode": "0x60e06040523480156200001157600080fd5b5060405162005edb38038062005edb833981810160405281019062000037919062000450565b808182848680806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001066040518060400160405280600c81526020017f50726f647563744f776e65720000000000000000000000000000000000000000815250620002b860201b60201c565b60808181525050620001536040518060400160405280600b81526020017f4f7261636c654f776e6572000000000000000000000000000000000000000000815250620002b860201b60201c565b60a08181525050620001a06040518060400160405280600981526020017f506f6f6c4f776e65720000000000000000000000000000000000000000000000815250620002b860201b60201c565b60c0818152505080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620008c0565b60008060405180606001604052806000801b8152602001848152602001600115158152509050620002ef81620002f760201b60201c565b915050919050565b6000816000015190506000801b81036200035657620003208260200151620003b460201b60201c565b90508082600001818152505060038190806001815401808255809150506001900390600052602060002001600090919091909150555b81600260008381526020019081526020016000206000820151816000015560208201518160010190816200038b919062000726565b5060408201518160020160006101000a81548160ff021916908315150217905550905050919050565b600081604051602001620003c991906200089c565b604051602081830303815290604052805190602001209050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200041882620003eb565b9050919050565b6200042a816200040b565b81146200043657600080fd5b50565b6000815190506200044a816200041f565b92915050565b6000806000606084860312156200046c576200046b620003e6565b5b60006200047c8682870162000439565b93505060206200048f8682870162000439565b9250506040620004a28682870162000439565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200052e57607f821691505b602082108103620005445762000543620004e6565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200056f565b620005ba86836200056f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200060762000601620005fb84620005d2565b620005dc565b620005d2565b9050919050565b6000819050919050565b6200062383620005e6565b6200063b62000632826200060e565b8484546200057c565b825550505050565b600090565b6200065262000643565b6200065f81848462000618565b505050565b5b8181101562000687576200067b60008262000648565b60018101905062000665565b5050565b601f821115620006d657620006a0816200054a565b620006ab846200055f565b81016020851015620006bb578190505b620006d3620006ca856200055f565b83018262000664565b50505b505050565b600082821c905092915050565b6000620006fb60001984600802620006db565b1980831691505092915050565b6000620007168383620006e8565b9150826002028217905092915050565b6200073182620004ac565b67ffffffffffffffff8111156200074d576200074c620004b7565b5b62000759825462000515565b620007668282856200068b565b600060209050601f8311600181146200079e576000841562000789578287015190505b62000795858262000708565b86555062000805565b601f198416620007ae866200054a565b60005b82811015620007d857848901518255600182019150602085019450602081019050620007b1565b86831015620007f85784890151620007f4601f891682620006e8565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b60005b838110156200083e57808201518184015260208101905062000821565b60008484015250505050565b6000601f19601f8301169050919050565b60006200086882620004ac565b6200087481856200080d565b9350620008868185602086016200081e565b62000891816200084a565b840191505092915050565b60006020820190508181036000830152620008b881846200085b565b905092915050565b60805160a05160c0516155eb620008f0600039600061109a01526000610c6b0152600061237401526155eb6000f3fe608060405234801561001057600080fd5b50600436106102955760003560e01c80636fa2985311610167578063af17d38a116100ce578063d4b0a5ac11610087578063d4b0a5ac146108a2578063d547741f146108d2578063eb71e8c4146108ee578063eb7f494d1461090c578063f174ce1914610928578063fb2cb1011461094657610295565b8063af17d38a146107ba578063b260c42a146107ea578063b909155214610806578063ba62fbe414610824578063be409a1114610842578063ca15c8731461087257610295565b8063893d20e811610120578063893d20e8146106c05780639010d07c146106de57806391d148541461070e5780639588d85b1461073e5780639cad00521461076e578063a41d8a8f1461079e57610295565b80636fa29853146105ea57806379e829d0146106085780637ab4253a146106265780637c4a13b1146106565780637fec8b311461067257806383d33319146106a257610295565b806332e3a6e91161020b5780636078a3b2116101c45780636078a3b214610502578063644c45e0146105325780636b34608a146105505780636c137ea9146105805780636c1ddffa1461059e5780636f5db1e3146105ba57610295565b806332e3a6e91461042a5780633bc5de30146104485780634288121d146104665780635312fdc2146104845780635ab1bd53146104b45780635ede3c2f146104d257610295565b80632a3d616e1161025d5780632a3d616e146103425780632a5f6e85146103725780632b1c7f73146103905780632f2ff15d146103c05780632f380b35146103dc57806331b62a3b1461040c57610295565b806302393c411461029a578063105bdcb2146102b857806315dae03e146102e85780631aa3a008146103065780632236684414610324575b600080fd5b6102a2610964565b6040516102af9190613a4e565b60405180910390f35b6102d260048036038101906102cd9190613aa9565b61096d565b6040516102df9190613a4e565b60405180910390f35b6102f061098a565b6040516102fd9190613a4e565b60405180910390f35b61030e610a21565b60405161031b9190613a4e565b60405180910390f35b61032c610b52565b6040516103399190613af1565b60405180910390f35b61035c60048036038101906103579190613aa9565b610bf5565b6040516103699190613bc1565b60405180910390f35b61037a610c67565b6040516103879190613bf5565b60405180910390f35b6103aa60048036038101906103a59190613c6e565b610c8f565b6040516103b79190613a4e565b60405180910390f35b6103da60048036038101906103d59190613cc7565b610cd8565b005b6103f660048036038101906103f19190613aa9565b610f9a565b6040516104039190613d7e565b60405180910390f35b610414611091565b6040516104219190613a4e565b60405180910390f35b610432611096565b60405161043f9190613bf5565b60405180910390f35b6104506110be565b60405161045d9190613e29565b60405180910390f35b61046e6110e6565b60405161047b9190613eaa565b60405180910390f35b61049e60048036038101906104999190613aa9565b611110565b6040516104ab9190613bf5565b60405180910390f35b6104bc611138565b6040516104c99190613ee6565b60405180910390f35b6104ec60048036038101906104e7919061400d565b611161565b6040516104f99190613a4e565b60405180910390f35b61051c600480360381019061051791906140db565b6116ba565b6040516105299190613a4e565b60405180910390f35b61053a611ebb565b6040516105479190613a4e565b60405180910390f35b61056a60048036038101906105659190613aa9565b611f5d565b6040516105779190613bf5565b60405180910390f35b610588612370565b6040516105959190613bf5565b60405180910390f35b6105b860048036038101906105b39190614108565b612398565b005b6105d460048036038101906105cf9190613aa9565b612589565b6040516105e19190613a4e565b60405180910390f35b6105f26125a6565b6040516105ff9190614169565b60405180910390f35b6106106125d0565b60405161061d9190613af1565b60405180910390f35b610640600480360381019061063b91906141f9565b6125d9565b60405161064d9190613a4e565b60405180910390f35b610670600480360381019061066b9190614226565b61272f565b005b61068c60048036038101906106879190613aa9565b612949565b6040516106999190613a4e565b60405180910390f35b6106aa612971565b6040516106b79190613a4e565b60405180910390f35b6106c861297e565b6040516106d59190614262565b60405180910390f35b6106f860048036038101906106f3919061427d565b612b1d565b6040516107059190614262565b60405180910390f35b61072860048036038101906107239190613cc7565b612b4c565b6040516107359190613af1565b60405180910390f35b61075860048036038101906107539190613aa9565b612bb4565b60405161076591906143bc565b60405180910390f35b61078860048036038101906107839190614492565b612c6d565b6040516107959190613bf5565b60405180910390f35b6107b860048036038101906107b391906144db565b612c9d565b005b6107d460048036038101906107cf9190614492565b612e16565b6040516107e19190613bf5565b60405180910390f35b61080460048036038101906107ff9190613aa9565b612f04565b005b61080e612ffd565b60405161081b9190614583565b60405180910390f35b61082c613036565b6040516108399190613a4e565b60405180910390f35b61085c60048036038101906108579190614226565b613043565b604051610869919061465d565b60405180910390f35b61088c60048036038101906108879190614226565b613127565b6040516108999190613a4e565b60405180910390f35b6108bc60048036038101906108b79190613aa9565b61314b565b6040516108c99190614262565b60405180910390f35b6108ec60048036038101906108e79190613cc7565b613152565b005b6108f6613319565b6040516109039190614583565b60405180910390f35b61092660048036038101906109219190614226565b613352565b005b61093061356c565b60405161093d9190614583565b60405180910390f35b61094e6135a5565b60405161095b9190614262565b60405180910390f35b6402540be40081565b6000600d6000838152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d15db8b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1c9190614694565b905090565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa89061470d565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b8152600401610b0a9190614262565b6020604051808303816000875af1158015610b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4d9190614694565b905090565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d272ac1e306040518263ffffffff1660e01b8152600401610bae9190614262565b602060405180830381865afa158015610bcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bef9190614694565b11905090565b610bfd61392a565b60066000838152602001908152602001600020604051806040016040529081600082015481526020016001820160009054906101000a900460ff166002811115610c4a57610c49613b1b565b5b6002811115610c5c57610c5b613b1b565b5b815250509050919050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3073ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d479190614742565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dab906147bb565b60405180910390fd5b81600260008481526020019081526020016000206000015414610e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0390614827565b60405180910390fd5b6002600083815260200190815260200160002060020160009054906101000a900460ff16610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6690614893565b60405180910390fd5b60016004600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610efd81600560008581526020019081526020016000206135cf90919063ffffffff16565b507f9a2df6ca1a9ab5e734f2f076b73fd00974eca8e06b9895f8f4eaebb590cc09a582826004600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16604051610f8e939291906148b3565b60405180910390a15050565b610fa2613956565b600f60008381526020019081526020016000206040518060a0016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015481526020016004820154815250509050919050565b600090565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b606060006040516020016110d29190614932565b604051602081830303815290604052905090565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600382815481106111265761112561494d565b5b90600052602060002001549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60003373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ea906149ee565b60405180910390fd5b60008211156113db5760003073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126d9190614a4c565b73ffffffffffffffffffffffffffffffffffffffff16631a3cd59a846040518263ffffffff1660e01b81526004016112a59190613a4e565b60a060405180830381865afa1580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e69190614b05565b905060003073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113599190614a4c565b73ffffffffffffffffffffffffffffffffffffffff16631a3cd59a83602001516040518263ffffffff1660e01b81526004016113959190613a4e565b60a060405180830381865afa1580156113b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d69190614b05565b905050505b3073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144a9190614a4c565b73ffffffffffffffffffffffffffffffffffffffff1663ab10b8ec88600001513073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d99190614a4c565b73ffffffffffffffffffffffffffffffffffffffff1663dadbccee6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611523573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115479190614694565b896040518463ffffffff1660e01b815260040161156693929190614b32565b6020604051808303816000875af1158015611585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a99190614694565b9050604051806101200160405280828152602001600160048111156115d1576115d0613b1b565b5b815260200186815260200185815260200184815260200142815260200160008152602001600081526020016000815250600c60008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083600481111561164957611648613b1b565b5b021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070155610100820151816008015590505081600d6000838152602001908152602001600020819055509695505050505050565b60003373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390614bb5565b60405180910390fd5b60006117c58373ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561179c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c09190614694565b611f5d565b90503073ffffffffffffffffffffffffffffffffffffffff166391d14854828573ffffffffffffffffffffffffffffffffffffffff1663fb2cb1016040518163ffffffff1660e01b8152600401602060405180830381865afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118539190614742565b6040518363ffffffff1660e01b8152600401611870929190614bd5565b602060405180830381865afa15801561188d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b19190614c2a565b6118f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e790614ca3565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa15801561193b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195f9190614a4c565b73ffffffffffffffffffffffffffffffffffffffff16634420e486846040518263ffffffff1660e01b81526004016119979190614262565b6020604051808303816000875af11580156119b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119da9190614694565b9150604051806040016040528083815260200160016002811115611a0157611a00613b1b565b5b815250600660008481526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff02191690836002811115611a4c57611a4b613b1b565b5b02179055509050503073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac39190614a4c565b73ffffffffffffffffffffffffffffffffffffffff166325425a916040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b319190614694565b8373ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba09190614694565b03611c7f57600083905060008173ffffffffffffffffffffffffffffffffffffffff16631bdd6b766040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1b9190614694565b905060008111611c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5790614d0f565b60405180910390fd5b8060076000868152602001908152602001600020819055505050611e48565b3073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cee9190614a4c565b73ffffffffffffffffffffffffffffffffffffffff16637535d2466040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5c9190614694565b8373ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dcb9190614694565b03611e475760003090508073ffffffffffffffffffffffffffffffffffffffff1663a41d8a8f848660006040518463ffffffff1660e01b8152600401611e1393929190614d2f565b600060405180830381600087803b158015611e2d57600080fd5b505af1158015611e41573d6000803e3d6000fd5b50505050505b5b81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600982908060018154018082558091505060019003906000526020600020016000909190919091505550919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d272ac1e306040518263ffffffff1660e01b8152600401611f179190614262565b602060405180830381865afa158015611f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f589190614694565b905090565b60003073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611faa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fce9190614a4c565b73ffffffffffffffffffffffffffffffffffffffff166325425a916040518163ffffffff1660e01b8152600401602060405180830381865afa158015612018573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203c9190614694565b82036120b8573073ffffffffffffffffffffffffffffffffffffffff16636c137ea96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561208d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b19190614d7b565b905061236b565b3073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121279190614a4c565b73ffffffffffffffffffffffffffffffffffffffff16637535d2466040518163ffffffff1660e01b8152600401602060405180830381865afa158015612171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121959190614694565b8203612211573073ffffffffffffffffffffffffffffffffffffffff166332e3a6e96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220a9190614d7b565b905061236b565b3073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa15801561225c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122809190614a4c565b73ffffffffffffffffffffffffffffffffffffffff166338013f026040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ee9190614694565b820361236a573073ffffffffffffffffffffffffffffffffffffffff16632a5f6e856040518163ffffffff1660e01b8152600401602060405180830381865afa15801561233f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123639190614d7b565b905061236b565b5b919050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b3373ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241f906149ee565b60405180910390fd5b6000600f6000848152602001908152602001600020905082816000015414612485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247c90614df4565b60405180910390fd5b600030905060008173ffffffffffffffffffffffffffffffffffffffff16639588d85b856040518263ffffffff1660e01b81526004016124c59190613a4e565b61012060405180830381865afa1580156124e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125079190614f19565b90508060400151836004015484600301546125229190614f76565b1015612563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255a90614ff6565b60405180910390fd5b806040015183600401600082825461257b9190615016565b925050819055505050505050565b600060076000838152602001908152602001600020549050919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006001905090565b60003373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461266b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266290614bb5565b60405180910390fd5b6000826000015190506000811180156126995750806006600083815260200190815260200160002060000154145b6126d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cf90615096565b60405180910390fd5b82600660008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083600281111561272157612720613b1b565b5b021790555090505050919050565b3073ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561277a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279e9190614742565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461280b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612802906147bb565b60405180910390fd5b60006002600083815260200190815260200160002060405180606001604052908160008201548152602001600182018054612845906150e5565b80601f0160208091040260200160405190810160405280929190818152602001828054612871906150e5565b80156128be5780601f10612893576101008083540402835291602001916128be565b820191906000526020600020905b8154815290600101906020018083116128a157829003601f168201915b505050505081526020016002820160009054906101000a900460ff16151515158152505090508181600001511461292a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292190615188565b60405180910390fd5b6000816040019015159081151581525050612944816135ff565b505050565b60006009828154811061295f5761295e61494d565b5b90600052602060002001549050919050565b6000600380549050905090565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d272ac1e306040518263ffffffff1660e01b81526004016129da9190614262565b602060405180830381865afa1580156129f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1b9190614694565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c41a360a826040518263ffffffff1660e01b8152600401612a769190613a4e565b602060405180830381865afa158015612a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab79190614742565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b1557600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b17565b815b91505090565b6000612b4482600560008681526020019081526020016000206136b190919063ffffffff16565b905092915050565b60006004600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612bbc6139b1565b600c600083815260200190815260200160002060405180610120016040529081600082015481526020016001820160009054906101000a900460ff166004811115612c0a57612c09613b1b565b5b6004811115612c1c57612c1b613b1b565b5b81526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815250509050919050565b600081604051602001612c809190614583565b604051602081830303815290604052805190602001209050919050565b6000600f60008581526020019081526020016000206000015414612cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ced906151f4565b60405180910390fd5b6040518060a001604052808481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020016402540be40081526020016000815250600f60008581526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040155905050505050565b60003073ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e879190614742565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eeb906147bb565b60405180910390fd5b612efd826136cb565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8b906149ee565b60405180910390fd5b6000600c60008381526020019081526020016000209050428160060181905550806004015442612fc49190615016565b816007018190555060038160010160006101000a81548160ff02191690836004811115612ff457612ff3613b1b565b5b02179055505050565b6040518060400160405280600b81526020017f4f7261636c654f776e657200000000000000000000000000000000000000000081525081565b6000600980549050905090565b61304b613a0f565b6002600083815260200190815260200160002060405180606001604052908160008201548152602001600182018054613083906150e5565b80601f01602080910402602001604051908101604052809291908181526020018280546130af906150e5565b80156130fc5780601f106130d1576101008083540402835291602001916130fc565b820191906000526020600020905b8154815290600101906020018083116130df57829003601f168201915b505050505081526020016002820160009054906101000a900460ff1615151515815250509050919050565b600061314460056000848152602001908152602001600020613702565b9050919050565b6000919050565b3073ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561319d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c19190614742565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461322e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613225906147bb565b60405180910390fd5b81600260008481526020019081526020016000206000015414613286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161327d90615260565b60405180910390fd5b60006004600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613314816005600085815260200190815260200160002061371790919063ffffffff16565b505050565b6040518060400160405280600981526020017f506f6f6c4f776e6572000000000000000000000000000000000000000000000081525081565b3073ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561339d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c19190614742565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461342e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613425906147bb565b60405180910390fd5b60006002600083815260200190815260200160002060405180606001604052908160008201548152602001600182018054613468906150e5565b80601f0160208091040260200160405190810160405280929190818152602001828054613494906150e5565b80156134e15780601f106134b6576101008083540402835291602001916134e1565b820191906000526020600020905b8154815290600101906020018083116134c457829003601f168201915b505050505081526020016002820160009054906101000a900460ff16151515158152505090508181600001511461354d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613544906152f2565b60405180910390fd5b6001816040019015159081151581525050613567816135ff565b505050565b6040518060400160405280600c81526020017f50726f647563744f776e6572000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006135f7836000018373ffffffffffffffffffffffffffffffffffffffff1660001b613747565b905092915050565b6000816000015190506000801b81036136555761361f8260200151612c6d565b90508082600001818152505060038190806001815401808255809150506001900390600052602060002001600090919091909150555b816002600083815260200190815260200160002060008201518160000155602082015181600101908161368891906154b4565b5060408201518160020160006101000a81548160ff021916908315150217905550905050919050565b60006136c083600001836137b7565b60001c905092915050565b60008060405180606001604052806000801b81526020018481526020016001151581525090506136fa816135ff565b915050919050565b6000613710826000016137e2565b9050919050565b600061373f836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6137f3565b905092915050565b60006137538383613907565b6137ac5782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506137b1565b600090505b92915050565b60008260000182815481106137cf576137ce61494d565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020549050600081146138fb5760006001826138259190614f76565b905060006001866000018054905061383d9190614f76565b90508181146138ac57600086600001828154811061385e5761385d61494d565b5b90600052602060002001549050808760000184815481106138825761388161494d565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806138c0576138bf615586565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050613901565b60009150505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b604051806040016040528060008152602001600060028111156139505761394f613b1b565b5b81525090565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b60405180610120016040528060008152602001600060048111156139d8576139d7613b1b565b5b8152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806060016040528060008019168152602001606081526020016000151581525090565b6000819050919050565b613a4881613a35565b82525050565b6000602082019050613a636000830184613a3f565b92915050565b6000604051905090565b600080fd5b600080fd5b613a8681613a35565b8114613a9157600080fd5b50565b600081359050613aa381613a7d565b92915050565b600060208284031215613abf57613abe613a73565b5b6000613acd84828501613a94565b91505092915050565b60008115159050919050565b613aeb81613ad6565b82525050565b6000602082019050613b066000830184613ae2565b92915050565b613b1581613a35565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60038110613b5b57613b5a613b1b565b5b50565b6000819050613b6c82613b4a565b919050565b6000613b7c82613b5e565b9050919050565b613b8c81613b71565b82525050565b604082016000820151613ba86000850182613b0c565b506020820151613bbb6020850182613b83565b50505050565b6000604082019050613bd66000830184613b92565b92915050565b6000819050919050565b613bef81613bdc565b82525050565b6000602082019050613c0a6000830184613be6565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c3b82613c10565b9050919050565b613c4b81613c30565b8114613c5657600080fd5b50565b600081359050613c6881613c42565b92915050565b600060208284031215613c8457613c83613a73565b5b6000613c9284828501613c59565b91505092915050565b613ca481613bdc565b8114613caf57600080fd5b50565b600081359050613cc181613c9b565b92915050565b60008060408385031215613cde57613cdd613a73565b5b6000613cec85828601613cb2565b9250506020613cfd85828601613c59565b9150509250929050565b613d1081613c30565b82525050565b60a082016000820151613d2c6000850182613b0c565b506020820151613d3f6020850182613d07565b506040820151613d526040850182613d07565b506060820151613d656060850182613b0c565b506080820151613d786080850182613b0c565b50505050565b600060a082019050613d936000830184613d16565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613dd3578082015181840152602081019050613db8565b60008484015250505050565b6000601f19601f8301169050919050565b6000613dfb82613d99565b613e058185613da4565b9350613e15818560208601613db5565b613e1e81613ddf565b840191505092915050565b60006020820190508181036000830152613e438184613df0565b905092915050565b6000819050919050565b6000613e70613e6b613e6684613c10565b613e4b565b613c10565b9050919050565b6000613e8282613e55565b9050919050565b6000613e9482613e77565b9050919050565b613ea481613e89565b82525050565b6000602082019050613ebf6000830184613e9b565b92915050565b6000613ed082613e77565b9050919050565b613ee081613ec5565b82525050565b6000602082019050613efb6000830184613ed7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613f3e82613ddf565b810181811067ffffffffffffffff82111715613f5d57613f5c613f06565b5b80604052505050565b6000613f70613a69565b9050613f7c8282613f35565b919050565b600060a08284031215613f9757613f96613f01565b5b613fa160a0613f66565b90506000613fb184828501613a94565b6000830152506020613fc584828501613a94565b6020830152506040613fd984828501613a94565b6040830152506060613fed84828501613c59565b606083015250608061400184828501613c59565b60808301525092915050565b600080600080600080610140878903121561402b5761402a613a73565b5b600061403989828a01613f81565b96505060a061404a89828a01613c59565b95505060c061405b89828a01613a94565b94505060e061406c89828a01613a94565b93505061010061407e89828a01613a94565b92505061012061409089828a01613a94565b9150509295509295509295565b60006140a882613c30565b9050919050565b6140b88161409d565b81146140c357600080fd5b50565b6000813590506140d5816140af565b92915050565b6000602082840312156140f1576140f0613a73565b5b60006140ff848285016140c6565b91505092915050565b6000806040838503121561411f5761411e613a73565b5b600061412d85828601613a94565b925050602061413e85828601613a94565b9150509250929050565b600061415382613e77565b9050919050565b61416381614148565b82525050565b600060208201905061417e600083018461415a565b92915050565b6003811061419157600080fd5b50565b6000813590506141a381614184565b92915050565b6000604082840312156141bf576141be613f01565b5b6141c96040613f66565b905060006141d984828501613a94565b60008301525060206141ed84828501614194565b60208301525092915050565b60006040828403121561420f5761420e613a73565b5b600061421d848285016141a9565b91505092915050565b60006020828403121561423c5761423b613a73565b5b600061424a84828501613cb2565b91505092915050565b61425c81613c30565b82525050565b60006020820190506142776000830184614253565b92915050565b6000806040838503121561429457614293613a73565b5b60006142a285828601613cb2565b92505060206142b385828601613a94565b9150509250929050565b600581106142ce576142cd613b1b565b5b50565b60008190506142df826142bd565b919050565b60006142ef826142d1565b9050919050565b6142ff816142e4565b82525050565b6101208201600082015161431c6000850182613b0c565b50602082015161432f60208501826142f6565b5060408201516143426040850182613b0c565b5060608201516143556060850182613b0c565b5060808201516143686080850182613b0c565b5060a082015161437b60a0850182613b0c565b5060c082015161438e60c0850182613b0c565b5060e08201516143a160e0850182613b0c565b506101008201516143b6610100850182613b0c565b50505050565b6000610120820190506143d26000830184614305565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff8211156143fd576143fc613f06565b5b61440682613ddf565b9050602081019050919050565b82818337600083830152505050565b6000614435614430846143e2565b613f66565b905082815260208101848484011115614451576144506143dd565b5b61445c848285614413565b509392505050565b600082601f830112614479576144786143d8565b5b8135614489848260208601614422565b91505092915050565b6000602082840312156144a8576144a7613a73565b5b600082013567ffffffffffffffff8111156144c6576144c5613a78565b5b6144d284828501614464565b91505092915050565b6000806000606084860312156144f4576144f3613a73565b5b600061450286828701613a94565b935050602061451386828701613c59565b925050604061452486828701613c59565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60006145558261452e565b61455f8185614539565b935061456f818560208601613db5565b61457881613ddf565b840191505092915050565b6000602082019050818103600083015261459d818461454a565b905092915050565b6145ae81613bdc565b82525050565b600082825260208201905092915050565b60006145d08261452e565b6145da81856145b4565b93506145ea818560208601613db5565b6145f381613ddf565b840191505092915050565b61460781613ad6565b82525050565b600060608301600083015161462560008601826145a5565b506020830151848203602086015261463d82826145c5565b915050604083015161465260408601826145fe565b508091505092915050565b60006020820190508181036000830152614677818461460d565b905092915050565b60008151905061468e81613a7d565b92915050565b6000602082840312156146aa576146a9613a73565b5b60006146b88482850161467f565b91505092915050565b7f4552524f523a5052442d3030313a52454749535452595f5a45524f0000000000600082015250565b60006146f7601b83614539565b9150614702826146c1565b602082019050919050565b60006020820190508181036000830152614726816146ea565b9050919050565b60008151905061473c81613c42565b92915050565b60006020828403121561475857614757613a73565b5b60006147668482850161472d565b91505092915050565b7f4552524f523a41434d2d3030313a4e4f545f4f574e4552000000000000000000600082015250565b60006147a5601783614539565b91506147b08261476f565b602082019050919050565b600060208201905081810360008301526147d481614798565b9050919050565b7f4552524f523a41434d2d3031303a524f4c455f4e4f545f4558495354494e4700600082015250565b6000614811601f83614539565b915061481c826147db565b602082019050919050565b6000602082019050818103600083015261484081614804565b9050919050565b7f4552524f523a41434d2d3031313a524f4c455f4e4f545f414354495645000000600082015250565b600061487d601d83614539565b915061488882614847565b602082019050919050565b600060208201905081810360008301526148ac81614870565b9050919050565b60006060820190506148c86000830186613be6565b6148d56020830185614253565b6148e26040830184613ae2565b949350505050565b6000819050919050565b600060ff82169050919050565b600061491c614917614912846148ea565b613e4b565b6148f4565b9050919050565b61492c81614901565b82525050565b60006020820190506149476000830184614923565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552524f523a504f4c2d3030313a4e4f545f50524f445543545f53455256494360008201527f4500000000000000000000000000000000000000000000000000000000000000602082015250565b60006149d8602183614539565b91506149e38261497c565b604082019050919050565b60006020820190508181036000830152614a07816149cb565b9050919050565b6000614a1982613c30565b9050919050565b614a2981614a0e565b8114614a3457600080fd5b50565b600081519050614a4681614a20565b92915050565b600060208284031215614a6257614a61613a73565b5b6000614a7084828501614a37565b91505092915050565b600060a08284031215614a8f57614a8e613f01565b5b614a9960a0613f66565b90506000614aa98482850161467f565b6000830152506020614abd8482850161467f565b6020830152506040614ad18482850161467f565b6040830152506060614ae58482850161472d565b6060830152506080614af98482850161472d565b60808301525092915050565b600060a08284031215614b1b57614b1a613a73565b5b6000614b2984828501614a79565b91505092915050565b6000606082019050614b476000830186613a3f565b614b546020830185613a3f565b614b616040830184614253565b949350505050565b7f4552524f523a434d502d3030313a4e4f545f4f574e45525f5345525649434500600082015250565b6000614b9f601f83614539565b9150614baa82614b69565b602082019050919050565b60006020820190508181036000830152614bce81614b92565b9050919050565b6000604082019050614bea6000830185613be6565b614bf76020830184614253565b9392505050565b614c0781613ad6565b8114614c1257600080fd5b50565b600081519050614c2481614bfe565b92915050565b600060208284031215614c4057614c3f613a73565b5b6000614c4e84828501614c15565b91505092915050565b7f4552524f523a434d502d3030343a545950455f524f4c455f4d495353494e4700600082015250565b6000614c8d601f83614539565b9150614c9882614c57565b602082019050919050565b60006020820190508181036000830152614cbc81614c80565b9050919050565b7f4552524f523a434d502d3030353a504f4f4c5f554e4b4e4f574e000000000000600082015250565b6000614cf9601a83614539565b9150614d0482614cc3565b602082019050919050565b60006020820190508181036000830152614d2881614cec565b9050919050565b6000606082019050614d446000830186613a3f565b614d516020830185614253565b614d5e6040830184614253565b949350505050565b600081519050614d7581613c9b565b92915050565b600060208284031215614d9157614d90613a73565b5b6000614d9f84828501614d66565b91505092915050565b7f4552524f523a504c2d3030323a504f4f4c5f554e4b4e4f574e00000000000000600082015250565b6000614dde601983614539565b9150614de982614da8565b602082019050919050565b60006020820190508181036000830152614e0d81614dd1565b9050919050565b60058110614e2157600080fd5b50565b600081519050614e3381614e14565b92915050565b60006101208284031215614e5057614e4f613f01565b5b614e5b610120613f66565b90506000614e6b8482850161467f565b6000830152506020614e7f84828501614e24565b6020830152506040614e938482850161467f565b6040830152506060614ea78482850161467f565b6060830152506080614ebb8482850161467f565b60808301525060a0614ecf8482850161467f565b60a08301525060c0614ee38482850161467f565b60c08301525060e0614ef78482850161467f565b60e083015250610100614f0c8482850161467f565b6101008301525092915050565b60006101208284031215614f3057614f2f613a73565b5b6000614f3e84828501614e39565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614f8182613a35565b9150614f8c83613a35565b9250828203905081811115614fa457614fa3614f47565b5b92915050565b7f4552524f523a504c2d3030333a43415041434954595f544f4f5f4c4f57000000600082015250565b6000614fe0601d83614539565b9150614feb82614faa565b602082019050919050565b6000602082019050818103600083015261500f81614fd3565b9050919050565b600061502182613a35565b915061502c83613a35565b925082820190508082111561504457615043614f47565b5b92915050565b7f4552524f523a434d502d3030353a434f4d504f4e454e545f554e4b4e4f574e00600082015250565b6000615080601f83614539565b915061508b8261504a565b602082019050919050565b600060208201905081810360008301526150af81615073565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806150fd57607f821691505b6020821081036151105761510f6150b6565b5b50919050565b7f4552524f523a414f532d3030313a524f4c455f444f45535f4e4f545f4558495360008201527f5400000000000000000000000000000000000000000000000000000000000000602082015250565b6000615172602183614539565b915061517d82615116565b604082019050919050565b600060208201905081810360008301526151a181615165565b9050919050565b7f4552524f523a504c2d3030313a414c52454144595f4352454154454400000000600082015250565b60006151de601c83614539565b91506151e9826151a8565b602082019050919050565b6000602082019050818103600083015261520d816151d1565b9050919050565b7f4552524f523a41434d2d3032303a524f4c455f4e4f545f4558495354494e4700600082015250565b600061524a601f83614539565b915061525582615214565b602082019050919050565b600060208201905081810360008301526152798161523d565b9050919050565b7f4552524f523a414f532d3030323a524f4c455f444f45535f4e4f545f4558495360008201527f5400000000000000000000000000000000000000000000000000000000000000602082015250565b60006152dc602183614539565b91506152e782615280565b604082019050919050565b6000602082019050818103600083015261530b816152cf565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026153747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82615337565b61537e8683615337565b95508019841693508086168417925050509392505050565b60006153b16153ac6153a784613a35565b613e4b565b613a35565b9050919050565b6000819050919050565b6153cb83615396565b6153df6153d7826153b8565b848454615344565b825550505050565b600090565b6153f46153e7565b6153ff8184846153c2565b505050565b5b81811015615423576154186000826153ec565b600181019050615405565b5050565b601f8211156154685761543981615312565b61544284615327565b81016020851015615451578190505b61546561545d85615327565b830182615404565b50505b505050565b600082821c905092915050565b600061548b6000198460080261546d565b1980831691505092915050565b60006154a4838361547a565b9150826002028217905092915050565b6154bd8261452e565b67ffffffffffffffff8111156154d6576154d5613f06565b5b6154e082546150e5565b6154eb828285615427565b600060209050601f83116001811461551e576000841561550c578287015190505b6155168582615498565b86555061557e565b601f19841661552c86615312565b60005b828110156155545784890151825560018201915060208501945060208101905061552f565b86831015615571578489015161556d601f89168261547a565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220fe8d3469c34dbd7367481af69396594319bd9d664588206722c44a96e1fb592964736f6c63430008140033",
1006
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102955760003560e01c80636fa2985311610167578063af17d38a116100ce578063d4b0a5ac11610087578063d4b0a5ac146108a2578063d547741f146108d2578063eb71e8c4146108ee578063eb7f494d1461090c578063f174ce1914610928578063fb2cb1011461094657610295565b8063af17d38a146107ba578063b260c42a146107ea578063b909155214610806578063ba62fbe414610824578063be409a1114610842578063ca15c8731461087257610295565b8063893d20e811610120578063893d20e8146106c05780639010d07c146106de57806391d148541461070e5780639588d85b1461073e5780639cad00521461076e578063a41d8a8f1461079e57610295565b80636fa29853146105ea57806379e829d0146106085780637ab4253a146106265780637c4a13b1146106565780637fec8b311461067257806383d33319146106a257610295565b806332e3a6e91161020b5780636078a3b2116101c45780636078a3b214610502578063644c45e0146105325780636b34608a146105505780636c137ea9146105805780636c1ddffa1461059e5780636f5db1e3146105ba57610295565b806332e3a6e91461042a5780633bc5de30146104485780634288121d146104665780635312fdc2146104845780635ab1bd53146104b45780635ede3c2f146104d257610295565b80632a3d616e1161025d5780632a3d616e146103425780632a5f6e85146103725780632b1c7f73146103905780632f2ff15d146103c05780632f380b35146103dc57806331b62a3b1461040c57610295565b806302393c411461029a578063105bdcb2146102b857806315dae03e146102e85780631aa3a008146103065780632236684414610324575b600080fd5b6102a2610964565b6040516102af9190613a4e565b60405180910390f35b6102d260048036038101906102cd9190613aa9565b61096d565b6040516102df9190613a4e565b60405180910390f35b6102f061098a565b6040516102fd9190613a4e565b60405180910390f35b61030e610a21565b60405161031b9190613a4e565b60405180910390f35b61032c610b52565b6040516103399190613af1565b60405180910390f35b61035c60048036038101906103579190613aa9565b610bf5565b6040516103699190613bc1565b60405180910390f35b61037a610c67565b6040516103879190613bf5565b60405180910390f35b6103aa60048036038101906103a59190613c6e565b610c8f565b6040516103b79190613a4e565b60405180910390f35b6103da60048036038101906103d59190613cc7565b610cd8565b005b6103f660048036038101906103f19190613aa9565b610f9a565b6040516104039190613d7e565b60405180910390f35b610414611091565b6040516104219190613a4e565b60405180910390f35b610432611096565b60405161043f9190613bf5565b60405180910390f35b6104506110be565b60405161045d9190613e29565b60405180910390f35b61046e6110e6565b60405161047b9190613eaa565b60405180910390f35b61049e60048036038101906104999190613aa9565b611110565b6040516104ab9190613bf5565b60405180910390f35b6104bc611138565b6040516104c99190613ee6565b60405180910390f35b6104ec60048036038101906104e7919061400d565b611161565b6040516104f99190613a4e565b60405180910390f35b61051c600480360381019061051791906140db565b6116ba565b6040516105299190613a4e565b60405180910390f35b61053a611ebb565b6040516105479190613a4e565b60405180910390f35b61056a60048036038101906105659190613aa9565b611f5d565b6040516105779190613bf5565b60405180910390f35b610588612370565b6040516105959190613bf5565b60405180910390f35b6105b860048036038101906105b39190614108565b612398565b005b6105d460048036038101906105cf9190613aa9565b612589565b6040516105e19190613a4e565b60405180910390f35b6105f26125a6565b6040516105ff9190614169565b60405180910390f35b6106106125d0565b60405161061d9190613af1565b60405180910390f35b610640600480360381019061063b91906141f9565b6125d9565b60405161064d9190613a4e565b60405180910390f35b610670600480360381019061066b9190614226565b61272f565b005b61068c60048036038101906106879190613aa9565b612949565b6040516106999190613a4e565b60405180910390f35b6106aa612971565b6040516106b79190613a4e565b60405180910390f35b6106c861297e565b6040516106d59190614262565b60405180910390f35b6106f860048036038101906106f3919061427d565b612b1d565b6040516107059190614262565b60405180910390f35b61072860048036038101906107239190613cc7565b612b4c565b6040516107359190613af1565b60405180910390f35b61075860048036038101906107539190613aa9565b612bb4565b60405161076591906143bc565b60405180910390f35b61078860048036038101906107839190614492565b612c6d565b6040516107959190613bf5565b60405180910390f35b6107b860048036038101906107b391906144db565b612c9d565b005b6107d460048036038101906107cf9190614492565b612e16565b6040516107e19190613bf5565b60405180910390f35b61080460048036038101906107ff9190613aa9565b612f04565b005b61080e612ffd565b60405161081b9190614583565b60405180910390f35b61082c613036565b6040516108399190613a4e565b60405180910390f35b61085c60048036038101906108579190614226565b613043565b604051610869919061465d565b60405180910390f35b61088c60048036038101906108879190614226565b613127565b6040516108999190613a4e565b60405180910390f35b6108bc60048036038101906108b79190613aa9565b61314b565b6040516108c99190614262565b60405180910390f35b6108ec60048036038101906108e79190613cc7565b613152565b005b6108f6613319565b6040516109039190614583565b60405180910390f35b61092660048036038101906109219190614226565b613352565b005b61093061356c565b60405161093d9190614583565b60405180910390f35b61094e6135a5565b60405161095b9190614262565b60405180910390f35b6402540be40081565b6000600d6000838152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d15db8b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1c9190614694565b905090565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa89061470d565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b8152600401610b0a9190614262565b6020604051808303816000875af1158015610b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4d9190614694565b905090565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d272ac1e306040518263ffffffff1660e01b8152600401610bae9190614262565b602060405180830381865afa158015610bcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bef9190614694565b11905090565b610bfd61392a565b60066000838152602001908152602001600020604051806040016040529081600082015481526020016001820160009054906101000a900460ff166002811115610c4a57610c49613b1b565b5b6002811115610c5c57610c5b613b1b565b5b815250509050919050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3073ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d479190614742565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dab906147bb565b60405180910390fd5b81600260008481526020019081526020016000206000015414610e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0390614827565b60405180910390fd5b6002600083815260200190815260200160002060020160009054906101000a900460ff16610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6690614893565b60405180910390fd5b60016004600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610efd81600560008581526020019081526020016000206135cf90919063ffffffff16565b507f9a2df6ca1a9ab5e734f2f076b73fd00974eca8e06b9895f8f4eaebb590cc09a582826004600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16604051610f8e939291906148b3565b60405180910390a15050565b610fa2613956565b600f60008381526020019081526020016000206040518060a0016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015481526020016004820154815250509050919050565b600090565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b606060006040516020016110d29190614932565b604051602081830303815290604052905090565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600382815481106111265761112561494d565b5b90600052602060002001549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60003373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ea906149ee565b60405180910390fd5b60008211156113db5760003073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126d9190614a4c565b73ffffffffffffffffffffffffffffffffffffffff16631a3cd59a846040518263ffffffff1660e01b81526004016112a59190613a4e565b60a060405180830381865afa1580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e69190614b05565b905060003073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113599190614a4c565b73ffffffffffffffffffffffffffffffffffffffff16631a3cd59a83602001516040518263ffffffff1660e01b81526004016113959190613a4e565b60a060405180830381865afa1580156113b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d69190614b05565b905050505b3073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144a9190614a4c565b73ffffffffffffffffffffffffffffffffffffffff1663ab10b8ec88600001513073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d99190614a4c565b73ffffffffffffffffffffffffffffffffffffffff1663dadbccee6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611523573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115479190614694565b896040518463ffffffff1660e01b815260040161156693929190614b32565b6020604051808303816000875af1158015611585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a99190614694565b9050604051806101200160405280828152602001600160048111156115d1576115d0613b1b565b5b815260200186815260200185815260200184815260200142815260200160008152602001600081526020016000815250600c60008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083600481111561164957611648613b1b565b5b021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070155610100820151816008015590505081600d6000838152602001908152602001600020819055509695505050505050565b60003373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390614bb5565b60405180910390fd5b60006117c58373ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561179c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c09190614694565b611f5d565b90503073ffffffffffffffffffffffffffffffffffffffff166391d14854828573ffffffffffffffffffffffffffffffffffffffff1663fb2cb1016040518163ffffffff1660e01b8152600401602060405180830381865afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118539190614742565b6040518363ffffffff1660e01b8152600401611870929190614bd5565b602060405180830381865afa15801561188d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b19190614c2a565b6118f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e790614ca3565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa15801561193b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195f9190614a4c565b73ffffffffffffffffffffffffffffffffffffffff16634420e486846040518263ffffffff1660e01b81526004016119979190614262565b6020604051808303816000875af11580156119b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119da9190614694565b9150604051806040016040528083815260200160016002811115611a0157611a00613b1b565b5b815250600660008481526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff02191690836002811115611a4c57611a4b613b1b565b5b02179055509050503073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac39190614a4c565b73ffffffffffffffffffffffffffffffffffffffff166325425a916040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b319190614694565b8373ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba09190614694565b03611c7f57600083905060008173ffffffffffffffffffffffffffffffffffffffff16631bdd6b766040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1b9190614694565b905060008111611c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5790614d0f565b60405180910390fd5b8060076000868152602001908152602001600020819055505050611e48565b3073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cee9190614a4c565b73ffffffffffffffffffffffffffffffffffffffff16637535d2466040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5c9190614694565b8373ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dcb9190614694565b03611e475760003090508073ffffffffffffffffffffffffffffffffffffffff1663a41d8a8f848660006040518463ffffffff1660e01b8152600401611e1393929190614d2f565b600060405180830381600087803b158015611e2d57600080fd5b505af1158015611e41573d6000803e3d6000fd5b50505050505b5b81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600982908060018154018082558091505060019003906000526020600020016000909190919091505550919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d272ac1e306040518263ffffffff1660e01b8152600401611f179190614262565b602060405180830381865afa158015611f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f589190614694565b905090565b60003073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611faa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fce9190614a4c565b73ffffffffffffffffffffffffffffffffffffffff166325425a916040518163ffffffff1660e01b8152600401602060405180830381865afa158015612018573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203c9190614694565b82036120b8573073ffffffffffffffffffffffffffffffffffffffff16636c137ea96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561208d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b19190614d7b565b905061236b565b3073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121279190614a4c565b73ffffffffffffffffffffffffffffffffffffffff16637535d2466040518163ffffffff1660e01b8152600401602060405180830381865afa158015612171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121959190614694565b8203612211573073ffffffffffffffffffffffffffffffffffffffff166332e3a6e96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220a9190614d7b565b905061236b565b3073ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa15801561225c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122809190614a4c565b73ffffffffffffffffffffffffffffffffffffffff166338013f026040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ee9190614694565b820361236a573073ffffffffffffffffffffffffffffffffffffffff16632a5f6e856040518163ffffffff1660e01b8152600401602060405180830381865afa15801561233f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123639190614d7b565b905061236b565b5b919050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b3373ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241f906149ee565b60405180910390fd5b6000600f6000848152602001908152602001600020905082816000015414612485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247c90614df4565b60405180910390fd5b600030905060008173ffffffffffffffffffffffffffffffffffffffff16639588d85b856040518263ffffffff1660e01b81526004016124c59190613a4e565b61012060405180830381865afa1580156124e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125079190614f19565b90508060400151836004015484600301546125229190614f76565b1015612563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255a90614ff6565b60405180910390fd5b806040015183600401600082825461257b9190615016565b925050819055505050505050565b600060076000838152602001908152602001600020549050919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006001905090565b60003373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461266b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266290614bb5565b60405180910390fd5b6000826000015190506000811180156126995750806006600083815260200190815260200160002060000154145b6126d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cf90615096565b60405180910390fd5b82600660008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083600281111561272157612720613b1b565b5b021790555090505050919050565b3073ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561277a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279e9190614742565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461280b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612802906147bb565b60405180910390fd5b60006002600083815260200190815260200160002060405180606001604052908160008201548152602001600182018054612845906150e5565b80601f0160208091040260200160405190810160405280929190818152602001828054612871906150e5565b80156128be5780601f10612893576101008083540402835291602001916128be565b820191906000526020600020905b8154815290600101906020018083116128a157829003601f168201915b505050505081526020016002820160009054906101000a900460ff16151515158152505090508181600001511461292a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292190615188565b60405180910390fd5b6000816040019015159081151581525050612944816135ff565b505050565b60006009828154811061295f5761295e61494d565b5b90600052602060002001549050919050565b6000600380549050905090565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d272ac1e306040518263ffffffff1660e01b81526004016129da9190614262565b602060405180830381865afa1580156129f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1b9190614694565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c41a360a826040518263ffffffff1660e01b8152600401612a769190613a4e565b602060405180830381865afa158015612a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab79190614742565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b1557600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b17565b815b91505090565b6000612b4482600560008681526020019081526020016000206136b190919063ffffffff16565b905092915050565b60006004600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612bbc6139b1565b600c600083815260200190815260200160002060405180610120016040529081600082015481526020016001820160009054906101000a900460ff166004811115612c0a57612c09613b1b565b5b6004811115612c1c57612c1b613b1b565b5b81526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815250509050919050565b600081604051602001612c809190614583565b604051602081830303815290604052805190602001209050919050565b6000600f60008581526020019081526020016000206000015414612cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ced906151f4565b60405180910390fd5b6040518060a001604052808481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020016402540be40081526020016000815250600f60008581526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040155905050505050565b60003073ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e879190614742565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eeb906147bb565b60405180910390fd5b612efd826136cb565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8b906149ee565b60405180910390fd5b6000600c60008381526020019081526020016000209050428160060181905550806004015442612fc49190615016565b816007018190555060038160010160006101000a81548160ff02191690836004811115612ff457612ff3613b1b565b5b02179055505050565b6040518060400160405280600b81526020017f4f7261636c654f776e657200000000000000000000000000000000000000000081525081565b6000600980549050905090565b61304b613a0f565b6002600083815260200190815260200160002060405180606001604052908160008201548152602001600182018054613083906150e5565b80601f01602080910402602001604051908101604052809291908181526020018280546130af906150e5565b80156130fc5780601f106130d1576101008083540402835291602001916130fc565b820191906000526020600020905b8154815290600101906020018083116130df57829003601f168201915b505050505081526020016002820160009054906101000a900460ff1615151515815250509050919050565b600061314460056000848152602001908152602001600020613702565b9050919050565b6000919050565b3073ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561319d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c19190614742565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461322e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613225906147bb565b60405180910390fd5b81600260008481526020019081526020016000206000015414613286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161327d90615260565b60405180910390fd5b60006004600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613314816005600085815260200190815260200160002061371790919063ffffffff16565b505050565b6040518060400160405280600981526020017f506f6f6c4f776e6572000000000000000000000000000000000000000000000081525081565b3073ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561339d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c19190614742565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461342e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613425906147bb565b60405180910390fd5b60006002600083815260200190815260200160002060405180606001604052908160008201548152602001600182018054613468906150e5565b80601f0160208091040260200160405190810160405280929190818152602001828054613494906150e5565b80156134e15780601f106134b6576101008083540402835291602001916134e1565b820191906000526020600020905b8154815290600101906020018083116134c457829003601f168201915b505050505081526020016002820160009054906101000a900460ff16151515158152505090508181600001511461354d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613544906152f2565b60405180910390fd5b6001816040019015159081151581525050613567816135ff565b505050565b6040518060400160405280600c81526020017f50726f647563744f776e6572000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006135f7836000018373ffffffffffffffffffffffffffffffffffffffff1660001b613747565b905092915050565b6000816000015190506000801b81036136555761361f8260200151612c6d565b90508082600001818152505060038190806001815401808255809150506001900390600052602060002001600090919091909150555b816002600083815260200190815260200160002060008201518160000155602082015181600101908161368891906154b4565b5060408201518160020160006101000a81548160ff021916908315150217905550905050919050565b60006136c083600001836137b7565b60001c905092915050565b60008060405180606001604052806000801b81526020018481526020016001151581525090506136fa816135ff565b915050919050565b6000613710826000016137e2565b9050919050565b600061373f836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6137f3565b905092915050565b60006137538383613907565b6137ac5782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506137b1565b600090505b92915050565b60008260000182815481106137cf576137ce61494d565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020549050600081146138fb5760006001826138259190614f76565b905060006001866000018054905061383d9190614f76565b90508181146138ac57600086600001828154811061385e5761385d61494d565b5b90600052602060002001549050808760000184815481106138825761388161494d565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806138c0576138bf615586565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050613901565b60009150505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b604051806040016040528060008152602001600060028111156139505761394f613b1b565b5b81525090565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b60405180610120016040528060008152602001600060048111156139d8576139d7613b1b565b5b8152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806060016040528060008019168152602001606081526020016000151581525090565b6000819050919050565b613a4881613a35565b82525050565b6000602082019050613a636000830184613a3f565b92915050565b6000604051905090565b600080fd5b600080fd5b613a8681613a35565b8114613a9157600080fd5b50565b600081359050613aa381613a7d565b92915050565b600060208284031215613abf57613abe613a73565b5b6000613acd84828501613a94565b91505092915050565b60008115159050919050565b613aeb81613ad6565b82525050565b6000602082019050613b066000830184613ae2565b92915050565b613b1581613a35565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60038110613b5b57613b5a613b1b565b5b50565b6000819050613b6c82613b4a565b919050565b6000613b7c82613b5e565b9050919050565b613b8c81613b71565b82525050565b604082016000820151613ba86000850182613b0c565b506020820151613bbb6020850182613b83565b50505050565b6000604082019050613bd66000830184613b92565b92915050565b6000819050919050565b613bef81613bdc565b82525050565b6000602082019050613c0a6000830184613be6565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c3b82613c10565b9050919050565b613c4b81613c30565b8114613c5657600080fd5b50565b600081359050613c6881613c42565b92915050565b600060208284031215613c8457613c83613a73565b5b6000613c9284828501613c59565b91505092915050565b613ca481613bdc565b8114613caf57600080fd5b50565b600081359050613cc181613c9b565b92915050565b60008060408385031215613cde57613cdd613a73565b5b6000613cec85828601613cb2565b9250506020613cfd85828601613c59565b9150509250929050565b613d1081613c30565b82525050565b60a082016000820151613d2c6000850182613b0c565b506020820151613d3f6020850182613d07565b506040820151613d526040850182613d07565b506060820151613d656060850182613b0c565b506080820151613d786080850182613b0c565b50505050565b600060a082019050613d936000830184613d16565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613dd3578082015181840152602081019050613db8565b60008484015250505050565b6000601f19601f8301169050919050565b6000613dfb82613d99565b613e058185613da4565b9350613e15818560208601613db5565b613e1e81613ddf565b840191505092915050565b60006020820190508181036000830152613e438184613df0565b905092915050565b6000819050919050565b6000613e70613e6b613e6684613c10565b613e4b565b613c10565b9050919050565b6000613e8282613e55565b9050919050565b6000613e9482613e77565b9050919050565b613ea481613e89565b82525050565b6000602082019050613ebf6000830184613e9b565b92915050565b6000613ed082613e77565b9050919050565b613ee081613ec5565b82525050565b6000602082019050613efb6000830184613ed7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613f3e82613ddf565b810181811067ffffffffffffffff82111715613f5d57613f5c613f06565b5b80604052505050565b6000613f70613a69565b9050613f7c8282613f35565b919050565b600060a08284031215613f9757613f96613f01565b5b613fa160a0613f66565b90506000613fb184828501613a94565b6000830152506020613fc584828501613a94565b6020830152506040613fd984828501613a94565b6040830152506060613fed84828501613c59565b606083015250608061400184828501613c59565b60808301525092915050565b600080600080600080610140878903121561402b5761402a613a73565b5b600061403989828a01613f81565b96505060a061404a89828a01613c59565b95505060c061405b89828a01613a94565b94505060e061406c89828a01613a94565b93505061010061407e89828a01613a94565b92505061012061409089828a01613a94565b9150509295509295509295565b60006140a882613c30565b9050919050565b6140b88161409d565b81146140c357600080fd5b50565b6000813590506140d5816140af565b92915050565b6000602082840312156140f1576140f0613a73565b5b60006140ff848285016140c6565b91505092915050565b6000806040838503121561411f5761411e613a73565b5b600061412d85828601613a94565b925050602061413e85828601613a94565b9150509250929050565b600061415382613e77565b9050919050565b61416381614148565b82525050565b600060208201905061417e600083018461415a565b92915050565b6003811061419157600080fd5b50565b6000813590506141a381614184565b92915050565b6000604082840312156141bf576141be613f01565b5b6141c96040613f66565b905060006141d984828501613a94565b60008301525060206141ed84828501614194565b60208301525092915050565b60006040828403121561420f5761420e613a73565b5b600061421d848285016141a9565b91505092915050565b60006020828403121561423c5761423b613a73565b5b600061424a84828501613cb2565b91505092915050565b61425c81613c30565b82525050565b60006020820190506142776000830184614253565b92915050565b6000806040838503121561429457614293613a73565b5b60006142a285828601613cb2565b92505060206142b385828601613a94565b9150509250929050565b600581106142ce576142cd613b1b565b5b50565b60008190506142df826142bd565b919050565b60006142ef826142d1565b9050919050565b6142ff816142e4565b82525050565b6101208201600082015161431c6000850182613b0c565b50602082015161432f60208501826142f6565b5060408201516143426040850182613b0c565b5060608201516143556060850182613b0c565b5060808201516143686080850182613b0c565b5060a082015161437b60a0850182613b0c565b5060c082015161438e60c0850182613b0c565b5060e08201516143a160e0850182613b0c565b506101008201516143b6610100850182613b0c565b50505050565b6000610120820190506143d26000830184614305565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff8211156143fd576143fc613f06565b5b61440682613ddf565b9050602081019050919050565b82818337600083830152505050565b6000614435614430846143e2565b613f66565b905082815260208101848484011115614451576144506143dd565b5b61445c848285614413565b509392505050565b600082601f830112614479576144786143d8565b5b8135614489848260208601614422565b91505092915050565b6000602082840312156144a8576144a7613a73565b5b600082013567ffffffffffffffff8111156144c6576144c5613a78565b5b6144d284828501614464565b91505092915050565b6000806000606084860312156144f4576144f3613a73565b5b600061450286828701613a94565b935050602061451386828701613c59565b925050604061452486828701613c59565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60006145558261452e565b61455f8185614539565b935061456f818560208601613db5565b61457881613ddf565b840191505092915050565b6000602082019050818103600083015261459d818461454a565b905092915050565b6145ae81613bdc565b82525050565b600082825260208201905092915050565b60006145d08261452e565b6145da81856145b4565b93506145ea818560208601613db5565b6145f381613ddf565b840191505092915050565b61460781613ad6565b82525050565b600060608301600083015161462560008601826145a5565b506020830151848203602086015261463d82826145c5565b915050604083015161465260408601826145fe565b508091505092915050565b60006020820190508181036000830152614677818461460d565b905092915050565b60008151905061468e81613a7d565b92915050565b6000602082840312156146aa576146a9613a73565b5b60006146b88482850161467f565b91505092915050565b7f4552524f523a5052442d3030313a52454749535452595f5a45524f0000000000600082015250565b60006146f7601b83614539565b9150614702826146c1565b602082019050919050565b60006020820190508181036000830152614726816146ea565b9050919050565b60008151905061473c81613c42565b92915050565b60006020828403121561475857614757613a73565b5b60006147668482850161472d565b91505092915050565b7f4552524f523a41434d2d3030313a4e4f545f4f574e4552000000000000000000600082015250565b60006147a5601783614539565b91506147b08261476f565b602082019050919050565b600060208201905081810360008301526147d481614798565b9050919050565b7f4552524f523a41434d2d3031303a524f4c455f4e4f545f4558495354494e4700600082015250565b6000614811601f83614539565b915061481c826147db565b602082019050919050565b6000602082019050818103600083015261484081614804565b9050919050565b7f4552524f523a41434d2d3031313a524f4c455f4e4f545f414354495645000000600082015250565b600061487d601d83614539565b915061488882614847565b602082019050919050565b600060208201905081810360008301526148ac81614870565b9050919050565b60006060820190506148c86000830186613be6565b6148d56020830185614253565b6148e26040830184613ae2565b949350505050565b6000819050919050565b600060ff82169050919050565b600061491c614917614912846148ea565b613e4b565b6148f4565b9050919050565b61492c81614901565b82525050565b60006020820190506149476000830184614923565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552524f523a504f4c2d3030313a4e4f545f50524f445543545f53455256494360008201527f4500000000000000000000000000000000000000000000000000000000000000602082015250565b60006149d8602183614539565b91506149e38261497c565b604082019050919050565b60006020820190508181036000830152614a07816149cb565b9050919050565b6000614a1982613c30565b9050919050565b614a2981614a0e565b8114614a3457600080fd5b50565b600081519050614a4681614a20565b92915050565b600060208284031215614a6257614a61613a73565b5b6000614a7084828501614a37565b91505092915050565b600060a08284031215614a8f57614a8e613f01565b5b614a9960a0613f66565b90506000614aa98482850161467f565b6000830152506020614abd8482850161467f565b6020830152506040614ad18482850161467f565b6040830152506060614ae58482850161472d565b6060830152506080614af98482850161472d565b60808301525092915050565b600060a08284031215614b1b57614b1a613a73565b5b6000614b2984828501614a79565b91505092915050565b6000606082019050614b476000830186613a3f565b614b546020830185613a3f565b614b616040830184614253565b949350505050565b7f4552524f523a434d502d3030313a4e4f545f4f574e45525f5345525649434500600082015250565b6000614b9f601f83614539565b9150614baa82614b69565b602082019050919050565b60006020820190508181036000830152614bce81614b92565b9050919050565b6000604082019050614bea6000830185613be6565b614bf76020830184614253565b9392505050565b614c0781613ad6565b8114614c1257600080fd5b50565b600081519050614c2481614bfe565b92915050565b600060208284031215614c4057614c3f613a73565b5b6000614c4e84828501614c15565b91505092915050565b7f4552524f523a434d502d3030343a545950455f524f4c455f4d495353494e4700600082015250565b6000614c8d601f83614539565b9150614c9882614c57565b602082019050919050565b60006020820190508181036000830152614cbc81614c80565b9050919050565b7f4552524f523a434d502d3030353a504f4f4c5f554e4b4e4f574e000000000000600082015250565b6000614cf9601a83614539565b9150614d0482614cc3565b602082019050919050565b60006020820190508181036000830152614d2881614cec565b9050919050565b6000606082019050614d446000830186613a3f565b614d516020830185614253565b614d5e6040830184614253565b949350505050565b600081519050614d7581613c9b565b92915050565b600060208284031215614d9157614d90613a73565b5b6000614d9f84828501614d66565b91505092915050565b7f4552524f523a504c2d3030323a504f4f4c5f554e4b4e4f574e00000000000000600082015250565b6000614dde601983614539565b9150614de982614da8565b602082019050919050565b60006020820190508181036000830152614e0d81614dd1565b9050919050565b60058110614e2157600080fd5b50565b600081519050614e3381614e14565b92915050565b60006101208284031215614e5057614e4f613f01565b5b614e5b610120613f66565b90506000614e6b8482850161467f565b6000830152506020614e7f84828501614e24565b6020830152506040614e938482850161467f565b6040830152506060614ea78482850161467f565b6060830152506080614ebb8482850161467f565b60808301525060a0614ecf8482850161467f565b60a08301525060c0614ee38482850161467f565b60c08301525060e0614ef78482850161467f565b60e083015250610100614f0c8482850161467f565b6101008301525092915050565b60006101208284031215614f3057614f2f613a73565b5b6000614f3e84828501614e39565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614f8182613a35565b9150614f8c83613a35565b9250828203905081811115614fa457614fa3614f47565b5b92915050565b7f4552524f523a504c2d3030333a43415041434954595f544f4f5f4c4f57000000600082015250565b6000614fe0601d83614539565b9150614feb82614faa565b602082019050919050565b6000602082019050818103600083015261500f81614fd3565b9050919050565b600061502182613a35565b915061502c83613a35565b925082820190508082111561504457615043614f47565b5b92915050565b7f4552524f523a434d502d3030353a434f4d504f4e454e545f554e4b4e4f574e00600082015250565b6000615080601f83614539565b915061508b8261504a565b602082019050919050565b600060208201905081810360008301526150af81615073565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806150fd57607f821691505b6020821081036151105761510f6150b6565b5b50919050565b7f4552524f523a414f532d3030313a524f4c455f444f45535f4e4f545f4558495360008201527f5400000000000000000000000000000000000000000000000000000000000000602082015250565b6000615172602183614539565b915061517d82615116565b604082019050919050565b600060208201905081810360008301526151a181615165565b9050919050565b7f4552524f523a504c2d3030313a414c52454144595f4352454154454400000000600082015250565b60006151de601c83614539565b91506151e9826151a8565b602082019050919050565b6000602082019050818103600083015261520d816151d1565b9050919050565b7f4552524f523a41434d2d3032303a524f4c455f4e4f545f4558495354494e4700600082015250565b600061524a601f83614539565b915061525582615214565b602082019050919050565b600060208201905081810360008301526152798161523d565b9050919050565b7f4552524f523a414f532d3030323a524f4c455f444f45535f4e4f545f4558495360008201527f5400000000000000000000000000000000000000000000000000000000000000602082015250565b60006152dc602183614539565b91506152e782615280565b604082019050919050565b6000602082019050818103600083015261530b816152cf565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026153747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82615337565b61537e8683615337565b95508019841693508086168417925050509392505050565b60006153b16153ac6153a784613a35565b613e4b565b613a35565b9050919050565b6000819050919050565b6153cb83615396565b6153df6153d7826153b8565b848454615344565b825550505050565b600090565b6153f46153e7565b6153ff8184846153c2565b505050565b5b81811015615423576154186000826153ec565b600181019050615405565b5050565b601f8211156154685761543981615312565b61544284615327565b81016020851015615451578190505b61546561545d85615327565b830182615404565b50505b505050565b600082821c905092915050565b600061548b6000198460080261546d565b1980831691505092915050565b60006154a4838361547a565b9150826002028217905092915050565b6154bd8261452e565b67ffffffffffffffff8111156154d6576154d5613f06565b5b6154e082546150e5565b6154eb828285615427565b600060209050601f83116001811461551e576000841561550c578287015190505b6155168582615498565b86555061557e565b601f19841661552c86615312565b60005b828110156155545784890151825560018201915060208501945060208101905061552f565b86831015615571578489015161556d601f89168261547a565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220fe8d3469c34dbd7367481af69396594319bd9d664588206722c44a96e1fb592964736f6c63430008140033",
1007
- "linkReferences": {},
1008
- "deployedLinkReferences": {}
964
+ }
1009
965
  }