@etherisc/gif-next 0.0.2-00142a5-254

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +478 -0
  3. package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
  4. package/artifacts/contracts/components/Component.sol/Component.json +842 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  6. package/artifacts/contracts/components/Distribution.sol/Distribution.json +1345 -0
  7. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  8. package/artifacts/contracts/components/IComponent.sol/IComponent.json +605 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  10. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +969 -0
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  12. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +1064 -0
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  14. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +830 -0
  15. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +4 -0
  16. package/artifacts/contracts/components/Pool.sol/Pool.json +1376 -0
  17. package/artifacts/contracts/components/Product.sol/Product.dbg.json +4 -0
  18. package/artifacts/contracts/components/Product.sol/Product.json +1167 -0
  19. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  20. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  21. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  22. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  23. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  24. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +190 -0
  25. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +4 -0
  26. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +2611 -0
  27. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  28. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +633 -0
  29. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +4 -0
  30. package/artifacts/contracts/instance/Instance.sol/Instance.json +3276 -0
  31. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  32. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1330 -0
  33. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  34. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1403 -0
  35. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  36. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1140 -0
  37. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  38. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +741 -0
  39. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  40. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +256 -0
  41. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
  42. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +639 -0
  43. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  44. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +429 -0
  45. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  46. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.json +115 -0
  47. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  48. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +532 -0
  49. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  50. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +194 -0
  51. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  52. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
  53. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  54. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.json +10 -0
  55. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  56. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  57. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  58. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  59. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  60. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.json +10 -0
  61. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  62. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  63. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  64. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +10 -0
  65. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  66. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +10 -0
  67. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  68. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +1092 -0
  69. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  70. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +681 -0
  71. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  72. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1321 -0
  73. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  74. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +725 -0
  75. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
  76. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +1072 -0
  77. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  78. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +685 -0
  79. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  80. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1806 -0
  81. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  82. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +793 -0
  83. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  84. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +627 -0
  85. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  86. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +709 -0
  87. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
  88. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +602 -0
  89. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  90. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +1090 -0
  91. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  92. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +969 -0
  93. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
  94. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +960 -0
  95. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
  96. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +450 -0
  97. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  98. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1575 -0
  99. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  100. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +741 -0
  101. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
  102. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +1481 -0
  103. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  104. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +709 -0
  105. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
  106. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +872 -0
  107. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +653 -0
  109. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +4 -0
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +784 -0
  111. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +4 -0
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +756 -0
  113. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +866 -0
  115. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  116. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  117. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +4 -0
  118. package/artifacts/contracts/registry/Registry.sol/Registry.json +858 -0
  119. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  120. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  121. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  122. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1158 -0
  123. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +670 -0
  125. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  126. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
  127. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  128. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +498 -0
  129. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  130. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  131. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  132. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
  133. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  134. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +138 -0
  135. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  136. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
  137. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  138. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +188 -0
  139. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  140. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +48 -0
  141. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  142. package/artifacts/contracts/shared/IService.sol/IService.json +335 -0
  143. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  144. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -0
  145. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  146. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +251 -0
  147. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  148. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
  149. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  150. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +582 -0
  151. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  152. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +352 -0
  153. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  154. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
  155. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  156. package/artifacts/contracts/shared/Service.sol/Service.json +496 -0
  157. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  158. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  159. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  160. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  161. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  162. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -0
  163. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +4 -0
  164. package/artifacts/contracts/test/TestFee.sol/TestFee.json +119 -0
  165. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
  166. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +383 -0
  167. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +4 -0
  168. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +116 -0
  169. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +4 -0
  170. package/artifacts/contracts/test/TestService.sol/TestService.json +596 -0
  171. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +4 -0
  172. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +376 -0
  173. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +4 -0
  174. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +218 -0
  175. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +4 -0
  176. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +104 -0
  177. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
  178. package/artifacts/contracts/test/Usdc.sol/USDC.json +376 -0
  179. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  180. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +10 -0
  181. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
  182. package/artifacts/contracts/types/Amount.sol/AmountLib.json +209 -0
  183. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  184. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +174 -0
  185. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +4 -0
  186. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +10 -0
  187. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  188. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +179 -0
  189. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  190. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  191. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
  192. package/artifacts/contracts/types/Fee.sol/FeeLib.json +288 -0
  193. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
  194. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +125 -0
  195. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +4 -0
  196. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +166 -0
  197. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  198. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +33 -0
  199. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  200. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  201. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  202. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +92 -0
  203. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  204. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +209 -0
  205. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  206. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +142 -0
  207. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  208. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  209. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  210. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +156 -0
  211. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
  212. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
  213. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +4 -0
  214. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +92 -0
  215. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +4 -0
  216. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +280 -0
  217. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  218. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  219. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  220. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +479 -0
  221. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +4 -0
  222. package/artifacts/contracts/types/Version.sol/VersionLib.json +177 -0
  223. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +4 -0
  224. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +49 -0
  225. package/contracts/components/Component.sol +253 -0
  226. package/contracts/components/Distribution.sol +284 -0
  227. package/contracts/components/IComponent.sol +76 -0
  228. package/contracts/components/IDistributionComponent.sol +71 -0
  229. package/contracts/components/IPoolComponent.sol +113 -0
  230. package/contracts/components/IProductComponent.sol +40 -0
  231. package/contracts/components/Pool.sol +302 -0
  232. package/contracts/components/Product.sol +371 -0
  233. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
  234. package/contracts/instance/BundleManager.sol +126 -0
  235. package/contracts/instance/Cloneable.sol +51 -0
  236. package/contracts/instance/IInstance.sol +102 -0
  237. package/contracts/instance/IInstanceService.sol +68 -0
  238. package/contracts/instance/Instance.sol +310 -0
  239. package/contracts/instance/InstanceAccessManager.sol +527 -0
  240. package/contracts/instance/InstanceReader.sol +317 -0
  241. package/contracts/instance/InstanceService.sol +478 -0
  242. package/contracts/instance/InstanceServiceManager.sol +54 -0
  243. package/contracts/instance/ObjectManager.sol +82 -0
  244. package/contracts/instance/base/ComponentService.sol +130 -0
  245. package/contracts/instance/base/IKeyValueStore.sol +49 -0
  246. package/contracts/instance/base/ILifecycle.sol +30 -0
  247. package/contracts/instance/base/KeyValueStore.sol +180 -0
  248. package/contracts/instance/base/Lifecycle.sol +117 -0
  249. package/contracts/instance/module/IAccess.sol +54 -0
  250. package/contracts/instance/module/IBundle.sol +23 -0
  251. package/contracts/instance/module/IComponents.sol +41 -0
  252. package/contracts/instance/module/IDistribution.sol +41 -0
  253. package/contracts/instance/module/IPolicy.sol +77 -0
  254. package/contracts/instance/module/IRisk.sol +11 -0
  255. package/contracts/instance/module/ISetup.sol +33 -0
  256. package/contracts/instance/module/ITreasury.sol +23 -0
  257. package/contracts/instance/service/ApplicationService.sol +355 -0
  258. package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
  259. package/contracts/instance/service/BundleService.sol +443 -0
  260. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  261. package/contracts/instance/service/ClaimService.sol +239 -0
  262. package/contracts/instance/service/ClaimServiceManager.sol +35 -0
  263. package/contracts/instance/service/DistributionService.sol +431 -0
  264. package/contracts/instance/service/DistributionServiceManager.sol +51 -0
  265. package/contracts/instance/service/IApplicationService.sol +78 -0
  266. package/contracts/instance/service/IBundleService.sol +102 -0
  267. package/contracts/instance/service/IClaimService.sol +92 -0
  268. package/contracts/instance/service/IDistributionService.sol +99 -0
  269. package/contracts/instance/service/IPolicyService.sol +139 -0
  270. package/contracts/instance/service/IPoolService.sol +102 -0
  271. package/contracts/instance/service/IProductService.sol +40 -0
  272. package/contracts/instance/service/PolicyService.sol +570 -0
  273. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  274. package/contracts/instance/service/PoolService.sol +336 -0
  275. package/contracts/instance/service/PoolServiceManager.sol +51 -0
  276. package/contracts/instance/service/ProductService.sol +210 -0
  277. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  278. package/contracts/registry/ChainNft.sol +210 -0
  279. package/contracts/registry/IRegistry.sol +101 -0
  280. package/contracts/registry/IRegistryService.sol +68 -0
  281. package/contracts/registry/ITransferInterceptor.sol +7 -0
  282. package/contracts/registry/Registry.sol +467 -0
  283. package/contracts/registry/RegistryAccessManager.sol +216 -0
  284. package/contracts/registry/RegistryService.sol +282 -0
  285. package/contracts/registry/RegistryServiceManager.sol +62 -0
  286. package/contracts/registry/ReleaseManager.sol +324 -0
  287. package/contracts/registry/TokenRegistry.sol +116 -0
  288. package/contracts/shared/ContractDeployerLib.sol +72 -0
  289. package/contracts/shared/ERC165.sol +27 -0
  290. package/contracts/shared/INftOwnable.sol +23 -0
  291. package/contracts/shared/IPolicyHolder.sol +26 -0
  292. package/contracts/shared/IRegisterable.sol +15 -0
  293. package/contracts/shared/IRegistryLinked.sol +12 -0
  294. package/contracts/shared/IService.sol +16 -0
  295. package/contracts/shared/IVersionable.sol +53 -0
  296. package/contracts/shared/NftOwnable.sol +120 -0
  297. package/contracts/shared/PolicyHolder.sol +81 -0
  298. package/contracts/shared/ProxyManager.sol +169 -0
  299. package/contracts/shared/Registerable.sol +74 -0
  300. package/contracts/shared/RegistryLinked.sol +48 -0
  301. package/contracts/shared/Service.sol +72 -0
  302. package/contracts/shared/TokenHandler.sol +33 -0
  303. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  304. package/contracts/shared/Versionable.sol +59 -0
  305. package/contracts/test/TestFee.sol +25 -0
  306. package/contracts/test/TestRegisterable.sol +18 -0
  307. package/contracts/test/TestRoleId.sol +14 -0
  308. package/contracts/test/TestService.sol +25 -0
  309. package/contracts/test/TestToken.sol +26 -0
  310. package/contracts/test/TestVersion.sol +44 -0
  311. package/contracts/test/TestVersionable.sol +17 -0
  312. package/contracts/test/Usdc.sol +26 -0
  313. package/contracts/types/AddressSet.sol +58 -0
  314. package/contracts/types/Amount.sol +70 -0
  315. package/contracts/types/Blocknumber.sol +119 -0
  316. package/contracts/types/ChainId.sol +38 -0
  317. package/contracts/types/ClaimId.sol +75 -0
  318. package/contracts/types/DistributorType.sol +55 -0
  319. package/contracts/types/Fee.sol +64 -0
  320. package/contracts/types/Key32.sol +50 -0
  321. package/contracts/types/NftId.sol +80 -0
  322. package/contracts/types/NftIdSet.sol +62 -0
  323. package/contracts/types/NumberId.sol +52 -0
  324. package/contracts/types/ObjectType.sol +157 -0
  325. package/contracts/types/PayoutId.sol +82 -0
  326. package/contracts/types/Referral.sol +89 -0
  327. package/contracts/types/RiskId.sol +43 -0
  328. package/contracts/types/RoleId.sol +97 -0
  329. package/contracts/types/Seconds.sol +54 -0
  330. package/contracts/types/StateId.sol +110 -0
  331. package/contracts/types/Timestamp.sol +132 -0
  332. package/contracts/types/UFixed.sol +326 -0
  333. package/contracts/types/Version.sol +108 -0
  334. package/package.json +52 -0
@@ -0,0 +1,1575 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PolicyService",
4
+ "sourceName": "contracts/instance/service/PolicyService.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "authority",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "name": "AccessManagedInvalidAuthority",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "caller",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "internalType": "uint32",
26
+ "name": "delay",
27
+ "type": "uint32"
28
+ }
29
+ ],
30
+ "name": "AccessManagedRequiredDelay",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "caller",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "AccessManagedUnauthorized",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "component",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "ErrorComponentServiceComponentLocked",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "component",
60
+ "type": "address"
61
+ },
62
+ {
63
+ "internalType": "ObjectType",
64
+ "name": "expectedType",
65
+ "type": "uint8"
66
+ },
67
+ {
68
+ "internalType": "ObjectType",
69
+ "name": "foundType",
70
+ "type": "uint8"
71
+ }
72
+ ],
73
+ "name": "ErrorComponentServiceComponentTypeInvalid",
74
+ "type": "error"
75
+ },
76
+ {
77
+ "inputs": [
78
+ {
79
+ "internalType": "NftId",
80
+ "name": "instanceNftId",
81
+ "type": "uint96"
82
+ },
83
+ {
84
+ "internalType": "RoleId",
85
+ "name": "requiredRole",
86
+ "type": "uint64"
87
+ },
88
+ {
89
+ "internalType": "address",
90
+ "name": "sender",
91
+ "type": "address"
92
+ }
93
+ ],
94
+ "name": "ErrorComponentServiceExpectedRoleMissing",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "inputs": [
99
+ {
100
+ "internalType": "address",
101
+ "name": "component",
102
+ "type": "address"
103
+ },
104
+ {
105
+ "internalType": "ObjectType",
106
+ "name": "requiredType",
107
+ "type": "uint8"
108
+ },
109
+ {
110
+ "internalType": "ObjectType",
111
+ "name": "componentType",
112
+ "type": "uint8"
113
+ }
114
+ ],
115
+ "name": "ErrorComponentServiceInvalidType",
116
+ "type": "error"
117
+ },
118
+ {
119
+ "inputs": [
120
+ {
121
+ "internalType": "address",
122
+ "name": "component",
123
+ "type": "address"
124
+ }
125
+ ],
126
+ "name": "ErrorComponentServiceNotComponent",
127
+ "type": "error"
128
+ },
129
+ {
130
+ "inputs": [
131
+ {
132
+ "internalType": "address",
133
+ "name": "component",
134
+ "type": "address"
135
+ },
136
+ {
137
+ "internalType": "address",
138
+ "name": "initialOwner",
139
+ "type": "address"
140
+ },
141
+ {
142
+ "internalType": "address",
143
+ "name": "sender",
144
+ "type": "address"
145
+ }
146
+ ],
147
+ "name": "ErrorComponentServiceSenderNotOwner",
148
+ "type": "error"
149
+ },
150
+ {
151
+ "inputs": [
152
+ {
153
+ "internalType": "address",
154
+ "name": "sender",
155
+ "type": "address"
156
+ }
157
+ ],
158
+ "name": "ErrorComponentServiceSenderNotService",
159
+ "type": "error"
160
+ },
161
+ {
162
+ "inputs": [
163
+ {
164
+ "internalType": "address",
165
+ "name": "target",
166
+ "type": "address"
167
+ }
168
+ ],
169
+ "name": "ErrorIAccessTargetLocked",
170
+ "type": "error"
171
+ },
172
+ {
173
+ "inputs": [
174
+ {
175
+ "internalType": "address",
176
+ "name": "customer",
177
+ "type": "address"
178
+ },
179
+ {
180
+ "internalType": "address",
181
+ "name": "tokenHandlerAddress",
182
+ "type": "address"
183
+ },
184
+ {
185
+ "internalType": "uint256",
186
+ "name": "amount",
187
+ "type": "uint256"
188
+ }
189
+ ],
190
+ "name": "ErrorIPolicyServiceInsufficientAllowance",
191
+ "type": "error"
192
+ },
193
+ {
194
+ "inputs": [
195
+ {
196
+ "internalType": "NftId",
197
+ "name": "policyNftId",
198
+ "type": "uint96"
199
+ },
200
+ {
201
+ "internalType": "uint16",
202
+ "name": "openClaimsCount",
203
+ "type": "uint16"
204
+ }
205
+ ],
206
+ "name": "ErrorIPolicyServiceOpenClaims",
207
+ "type": "error"
208
+ },
209
+ {
210
+ "inputs": [
211
+ {
212
+ "internalType": "NftId",
213
+ "name": "policyNftId",
214
+ "type": "uint96"
215
+ }
216
+ ],
217
+ "name": "ErrorIPolicyServicePolicyAlreadyClosed",
218
+ "type": "error"
219
+ },
220
+ {
221
+ "inputs": [
222
+ {
223
+ "internalType": "NftId",
224
+ "name": "policyNftId",
225
+ "type": "uint96"
226
+ },
227
+ {
228
+ "internalType": "Timestamp",
229
+ "name": "expiredAt",
230
+ "type": "uint40"
231
+ }
232
+ ],
233
+ "name": "ErrorIPolicyServicePolicyHasNotExpired",
234
+ "type": "error"
235
+ },
236
+ {
237
+ "inputs": [
238
+ {
239
+ "internalType": "NftId",
240
+ "name": "policyNftId",
241
+ "type": "uint96"
242
+ }
243
+ ],
244
+ "name": "ErrorIPolicyServicePolicyNotActivated",
245
+ "type": "error"
246
+ },
247
+ {
248
+ "inputs": [
249
+ {
250
+ "internalType": "NftId",
251
+ "name": "policyNftId",
252
+ "type": "uint96"
253
+ },
254
+ {
255
+ "internalType": "StateId",
256
+ "name": "state",
257
+ "type": "uint8"
258
+ }
259
+ ],
260
+ "name": "ErrorIPolicyServicePolicyNotActive",
261
+ "type": "error"
262
+ },
263
+ {
264
+ "inputs": [
265
+ {
266
+ "internalType": "NftId",
267
+ "name": "policyNftId",
268
+ "type": "uint96"
269
+ },
270
+ {
271
+ "internalType": "uint256",
272
+ "name": "premiumPaidAmount",
273
+ "type": "uint256"
274
+ }
275
+ ],
276
+ "name": "ErrorIPolicyServicePremiumAlreadyPaid",
277
+ "type": "error"
278
+ },
279
+ {
280
+ "inputs": [
281
+ {
282
+ "internalType": "NftId",
283
+ "name": "policyNftId",
284
+ "type": "uint96"
285
+ },
286
+ {
287
+ "internalType": "uint256",
288
+ "name": "expectedPremiumAmount",
289
+ "type": "uint256"
290
+ },
291
+ {
292
+ "internalType": "uint256",
293
+ "name": "recalculatedPremiumAmount",
294
+ "type": "uint256"
295
+ }
296
+ ],
297
+ "name": "ErrorIPolicyServicePremiumMismatch",
298
+ "type": "error"
299
+ },
300
+ {
301
+ "inputs": [
302
+ {
303
+ "internalType": "NftId",
304
+ "name": "policyNftId",
305
+ "type": "uint96"
306
+ },
307
+ {
308
+ "internalType": "uint256",
309
+ "name": "premiumAmount",
310
+ "type": "uint256"
311
+ },
312
+ {
313
+ "internalType": "uint256",
314
+ "name": "premiumPaidAmount",
315
+ "type": "uint256"
316
+ }
317
+ ],
318
+ "name": "ErrorIPolicyServicePremiumNotFullyPaid",
319
+ "type": "error"
320
+ },
321
+ {
322
+ "inputs": [
323
+ {
324
+ "internalType": "NftId",
325
+ "name": "nftId",
326
+ "type": "uint96"
327
+ }
328
+ ],
329
+ "name": "ErrorNftOwnableAlreadyLinked",
330
+ "type": "error"
331
+ },
332
+ {
333
+ "inputs": [
334
+ {
335
+ "internalType": "address",
336
+ "name": "contractAddress",
337
+ "type": "address"
338
+ }
339
+ ],
340
+ "name": "ErrorNftOwnableContractNotRegistered",
341
+ "type": "error"
342
+ },
343
+ {
344
+ "inputs": [],
345
+ "name": "ErrorNftOwnableInitialOwnerZero",
346
+ "type": "error"
347
+ },
348
+ {
349
+ "inputs": [
350
+ {
351
+ "internalType": "address",
352
+ "name": "account",
353
+ "type": "address"
354
+ }
355
+ ],
356
+ "name": "ErrorNftOwnableNotOwner",
357
+ "type": "error"
358
+ },
359
+ {
360
+ "inputs": [
361
+ {
362
+ "internalType": "address",
363
+ "name": "registryAddress",
364
+ "type": "address"
365
+ }
366
+ ],
367
+ "name": "ErrorNotRegistry",
368
+ "type": "error"
369
+ },
370
+ {
371
+ "inputs": [
372
+ {
373
+ "internalType": "NftId",
374
+ "name": "policyNftId",
375
+ "type": "uint96"
376
+ },
377
+ {
378
+ "internalType": "Amount",
379
+ "name": "sumInsured",
380
+ "type": "uint96"
381
+ },
382
+ {
383
+ "internalType": "Amount",
384
+ "name": "payoutsIncludingClaimAmount",
385
+ "type": "uint96"
386
+ }
387
+ ],
388
+ "name": "ErrorPolicyServiceClaimExceedsSumInsured",
389
+ "type": "error"
390
+ },
391
+ {
392
+ "inputs": [
393
+ {
394
+ "internalType": "NftId",
395
+ "name": "policyNftId",
396
+ "type": "uint96"
397
+ }
398
+ ],
399
+ "name": "ErrorPolicyServicePolicyNotOpen",
400
+ "type": "error"
401
+ },
402
+ {
403
+ "inputs": [
404
+ {
405
+ "internalType": "NftId",
406
+ "name": "applicationNftId",
407
+ "type": "uint96"
408
+ }
409
+ ],
410
+ "name": "ErrorPolicyServicePolicyStateNotApplied",
411
+ "type": "error"
412
+ },
413
+ {
414
+ "inputs": [
415
+ {
416
+ "internalType": "NftId",
417
+ "name": "policyNftId",
418
+ "type": "uint96"
419
+ },
420
+ {
421
+ "internalType": "NftId",
422
+ "name": "expectedProduct",
423
+ "type": "uint96"
424
+ },
425
+ {
426
+ "internalType": "NftId",
427
+ "name": "actualProduct",
428
+ "type": "uint96"
429
+ }
430
+ ],
431
+ "name": "ErrorPolicyServiceProductMismatch",
432
+ "type": "error"
433
+ },
434
+ {
435
+ "inputs": [
436
+ {
437
+ "internalType": "NftId",
438
+ "name": "policyNftId",
439
+ "type": "uint96"
440
+ },
441
+ {
442
+ "internalType": "uint256",
443
+ "name": "expectedPremiumAmount",
444
+ "type": "uint256"
445
+ },
446
+ {
447
+ "internalType": "uint256",
448
+ "name": "transferredPremiumAmount",
449
+ "type": "uint256"
450
+ }
451
+ ],
452
+ "name": "ErrorPolicyServiceTransferredPremiumMismatch",
453
+ "type": "error"
454
+ },
455
+ {
456
+ "inputs": [],
457
+ "name": "InvalidInitialization",
458
+ "type": "error"
459
+ },
460
+ {
461
+ "inputs": [],
462
+ "name": "NotInitializing",
463
+ "type": "error"
464
+ },
465
+ {
466
+ "anonymous": false,
467
+ "inputs": [
468
+ {
469
+ "indexed": false,
470
+ "internalType": "address",
471
+ "name": "authority",
472
+ "type": "address"
473
+ }
474
+ ],
475
+ "name": "AuthorityUpdated",
476
+ "type": "event"
477
+ },
478
+ {
479
+ "anonymous": false,
480
+ "inputs": [
481
+ {
482
+ "indexed": false,
483
+ "internalType": "uint64",
484
+ "name": "version",
485
+ "type": "uint64"
486
+ }
487
+ ],
488
+ "name": "Initialized",
489
+ "type": "event"
490
+ },
491
+ {
492
+ "anonymous": false,
493
+ "inputs": [
494
+ {
495
+ "indexed": false,
496
+ "internalType": "NftId",
497
+ "name": "policyNftId",
498
+ "type": "uint96"
499
+ },
500
+ {
501
+ "indexed": false,
502
+ "internalType": "ClaimId",
503
+ "name": "claimId",
504
+ "type": "uint16"
505
+ }
506
+ ],
507
+ "name": "LogPolicyServiceClaimClosed",
508
+ "type": "event"
509
+ },
510
+ {
511
+ "anonymous": false,
512
+ "inputs": [
513
+ {
514
+ "indexed": false,
515
+ "internalType": "NftId",
516
+ "name": "policyNftId",
517
+ "type": "uint96"
518
+ },
519
+ {
520
+ "indexed": false,
521
+ "internalType": "ClaimId",
522
+ "name": "claimId",
523
+ "type": "uint16"
524
+ },
525
+ {
526
+ "indexed": false,
527
+ "internalType": "Amount",
528
+ "name": "confirmedAmount",
529
+ "type": "uint96"
530
+ }
531
+ ],
532
+ "name": "LogPolicyServiceClaimConfirmed",
533
+ "type": "event"
534
+ },
535
+ {
536
+ "anonymous": false,
537
+ "inputs": [
538
+ {
539
+ "indexed": false,
540
+ "internalType": "NftId",
541
+ "name": "policyNftId",
542
+ "type": "uint96"
543
+ },
544
+ {
545
+ "indexed": false,
546
+ "internalType": "ClaimId",
547
+ "name": "claimId",
548
+ "type": "uint16"
549
+ }
550
+ ],
551
+ "name": "LogPolicyServiceClaimDeclined",
552
+ "type": "event"
553
+ },
554
+ {
555
+ "anonymous": false,
556
+ "inputs": [
557
+ {
558
+ "indexed": false,
559
+ "internalType": "NftId",
560
+ "name": "policyNftId",
561
+ "type": "uint96"
562
+ },
563
+ {
564
+ "indexed": false,
565
+ "internalType": "ClaimId",
566
+ "name": "claimId",
567
+ "type": "uint16"
568
+ },
569
+ {
570
+ "indexed": false,
571
+ "internalType": "Amount",
572
+ "name": "claimAmount",
573
+ "type": "uint96"
574
+ }
575
+ ],
576
+ "name": "LogPolicyServiceClaimSubmitted",
577
+ "type": "event"
578
+ },
579
+ {
580
+ "anonymous": false,
581
+ "inputs": [
582
+ {
583
+ "indexed": false,
584
+ "internalType": "NftId",
585
+ "name": "policyNftId",
586
+ "type": "uint96"
587
+ },
588
+ {
589
+ "indexed": false,
590
+ "internalType": "PayoutId",
591
+ "name": "payoutId",
592
+ "type": "uint24"
593
+ },
594
+ {
595
+ "indexed": false,
596
+ "internalType": "Amount",
597
+ "name": "amount",
598
+ "type": "uint96"
599
+ }
600
+ ],
601
+ "name": "LogPolicyServicePayoutCreated",
602
+ "type": "event"
603
+ },
604
+ {
605
+ "anonymous": false,
606
+ "inputs": [
607
+ {
608
+ "indexed": false,
609
+ "internalType": "NftId",
610
+ "name": "policyNftId",
611
+ "type": "uint96"
612
+ },
613
+ {
614
+ "indexed": false,
615
+ "internalType": "PayoutId",
616
+ "name": "payoutId",
617
+ "type": "uint24"
618
+ },
619
+ {
620
+ "indexed": false,
621
+ "internalType": "Amount",
622
+ "name": "amount",
623
+ "type": "uint96"
624
+ }
625
+ ],
626
+ "name": "LogPolicyServicePayoutProcessed",
627
+ "type": "event"
628
+ },
629
+ {
630
+ "anonymous": false,
631
+ "inputs": [
632
+ {
633
+ "indexed": false,
634
+ "internalType": "address",
635
+ "name": "sender",
636
+ "type": "address"
637
+ }
638
+ ],
639
+ "name": "LogProductServiceSender",
640
+ "type": "event"
641
+ },
642
+ {
643
+ "inputs": [],
644
+ "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
645
+ "outputs": [
646
+ {
647
+ "internalType": "bytes32",
648
+ "name": "",
649
+ "type": "bytes32"
650
+ }
651
+ ],
652
+ "stateMutability": "view",
653
+ "type": "function"
654
+ },
655
+ {
656
+ "inputs": [],
657
+ "name": "REGISTERABLE_LOCATION_V1",
658
+ "outputs": [
659
+ {
660
+ "internalType": "bytes32",
661
+ "name": "",
662
+ "type": "bytes32"
663
+ }
664
+ ],
665
+ "stateMutability": "view",
666
+ "type": "function"
667
+ },
668
+ {
669
+ "inputs": [
670
+ {
671
+ "internalType": "NftId",
672
+ "name": "policyNftId",
673
+ "type": "uint96"
674
+ },
675
+ {
676
+ "internalType": "Timestamp",
677
+ "name": "activateAt",
678
+ "type": "uint40"
679
+ }
680
+ ],
681
+ "name": "activate",
682
+ "outputs": [],
683
+ "stateMutability": "nonpayable",
684
+ "type": "function"
685
+ },
686
+ {
687
+ "inputs": [],
688
+ "name": "authority",
689
+ "outputs": [
690
+ {
691
+ "internalType": "address",
692
+ "name": "",
693
+ "type": "address"
694
+ }
695
+ ],
696
+ "stateMutability": "view",
697
+ "type": "function"
698
+ },
699
+ {
700
+ "inputs": [
701
+ {
702
+ "internalType": "UFixed",
703
+ "name": "collateralizationLevel",
704
+ "type": "uint256"
705
+ },
706
+ {
707
+ "internalType": "uint256",
708
+ "name": "sumInsuredAmount",
709
+ "type": "uint256"
710
+ }
711
+ ],
712
+ "name": "calculateRequiredCollateral",
713
+ "outputs": [
714
+ {
715
+ "internalType": "uint256",
716
+ "name": "collateralAmount",
717
+ "type": "uint256"
718
+ }
719
+ ],
720
+ "stateMutability": "pure",
721
+ "type": "function"
722
+ },
723
+ {
724
+ "inputs": [
725
+ {
726
+ "internalType": "NftId",
727
+ "name": "policyNftId",
728
+ "type": "uint96"
729
+ }
730
+ ],
731
+ "name": "close",
732
+ "outputs": [],
733
+ "stateMutability": "nonpayable",
734
+ "type": "function"
735
+ },
736
+ {
737
+ "inputs": [
738
+ {
739
+ "internalType": "NftId",
740
+ "name": "policyNftId",
741
+ "type": "uint96"
742
+ },
743
+ {
744
+ "internalType": "ClaimId",
745
+ "name": "claimId",
746
+ "type": "uint16"
747
+ }
748
+ ],
749
+ "name": "closeClaim",
750
+ "outputs": [],
751
+ "stateMutability": "nonpayable",
752
+ "type": "function"
753
+ },
754
+ {
755
+ "inputs": [
756
+ {
757
+ "internalType": "NftId",
758
+ "name": "applicationNftId",
759
+ "type": "uint96"
760
+ },
761
+ {
762
+ "internalType": "bool",
763
+ "name": "requirePremiumPayment",
764
+ "type": "bool"
765
+ },
766
+ {
767
+ "internalType": "Timestamp",
768
+ "name": "activateAt",
769
+ "type": "uint40"
770
+ }
771
+ ],
772
+ "name": "collateralize",
773
+ "outputs": [],
774
+ "stateMutability": "nonpayable",
775
+ "type": "function"
776
+ },
777
+ {
778
+ "inputs": [
779
+ {
780
+ "internalType": "NftId",
781
+ "name": "policyNftId",
782
+ "type": "uint96"
783
+ },
784
+ {
785
+ "internalType": "Timestamp",
786
+ "name": "activateAt",
787
+ "type": "uint40"
788
+ }
789
+ ],
790
+ "name": "collectPremium",
791
+ "outputs": [],
792
+ "stateMutability": "nonpayable",
793
+ "type": "function"
794
+ },
795
+ {
796
+ "inputs": [
797
+ {
798
+ "internalType": "NftId",
799
+ "name": "policyNftId",
800
+ "type": "uint96"
801
+ },
802
+ {
803
+ "internalType": "ClaimId",
804
+ "name": "claimId",
805
+ "type": "uint16"
806
+ },
807
+ {
808
+ "internalType": "Amount",
809
+ "name": "confirmedAmount",
810
+ "type": "uint96"
811
+ }
812
+ ],
813
+ "name": "confirmClaim",
814
+ "outputs": [],
815
+ "stateMutability": "nonpayable",
816
+ "type": "function"
817
+ },
818
+ {
819
+ "inputs": [
820
+ {
821
+ "internalType": "NftId",
822
+ "name": "policyNftId",
823
+ "type": "uint96"
824
+ },
825
+ {
826
+ "internalType": "ClaimId",
827
+ "name": "claimId",
828
+ "type": "uint16"
829
+ },
830
+ {
831
+ "internalType": "Amount",
832
+ "name": "amount",
833
+ "type": "uint96"
834
+ },
835
+ {
836
+ "internalType": "bytes",
837
+ "name": "data",
838
+ "type": "bytes"
839
+ }
840
+ ],
841
+ "name": "createPayout",
842
+ "outputs": [
843
+ {
844
+ "internalType": "PayoutId",
845
+ "name": "payoutId",
846
+ "type": "uint24"
847
+ }
848
+ ],
849
+ "stateMutability": "nonpayable",
850
+ "type": "function"
851
+ },
852
+ {
853
+ "inputs": [
854
+ {
855
+ "internalType": "NftId",
856
+ "name": "policyNftId",
857
+ "type": "uint96"
858
+ }
859
+ ],
860
+ "name": "decline",
861
+ "outputs": [],
862
+ "stateMutability": "nonpayable",
863
+ "type": "function"
864
+ },
865
+ {
866
+ "inputs": [
867
+ {
868
+ "internalType": "NftId",
869
+ "name": "policyNftId",
870
+ "type": "uint96"
871
+ },
872
+ {
873
+ "internalType": "ClaimId",
874
+ "name": "claimId",
875
+ "type": "uint16"
876
+ }
877
+ ],
878
+ "name": "declineClaim",
879
+ "outputs": [],
880
+ "stateMutability": "nonpayable",
881
+ "type": "function"
882
+ },
883
+ {
884
+ "inputs": [
885
+ {
886
+ "internalType": "NftId",
887
+ "name": "policyNftId",
888
+ "type": "uint96"
889
+ }
890
+ ],
891
+ "name": "expire",
892
+ "outputs": [],
893
+ "stateMutability": "nonpayable",
894
+ "type": "function"
895
+ },
896
+ {
897
+ "inputs": [],
898
+ "name": "getDomain",
899
+ "outputs": [
900
+ {
901
+ "internalType": "ObjectType",
902
+ "name": "",
903
+ "type": "uint8"
904
+ }
905
+ ],
906
+ "stateMutability": "pure",
907
+ "type": "function"
908
+ },
909
+ {
910
+ "inputs": [],
911
+ "name": "getInitialInfo",
912
+ "outputs": [
913
+ {
914
+ "components": [
915
+ {
916
+ "internalType": "NftId",
917
+ "name": "nftId",
918
+ "type": "uint96"
919
+ },
920
+ {
921
+ "internalType": "NftId",
922
+ "name": "parentNftId",
923
+ "type": "uint96"
924
+ },
925
+ {
926
+ "internalType": "ObjectType",
927
+ "name": "objectType",
928
+ "type": "uint8"
929
+ },
930
+ {
931
+ "internalType": "bool",
932
+ "name": "isInterceptor",
933
+ "type": "bool"
934
+ },
935
+ {
936
+ "internalType": "address",
937
+ "name": "objectAddress",
938
+ "type": "address"
939
+ },
940
+ {
941
+ "internalType": "address",
942
+ "name": "initialOwner",
943
+ "type": "address"
944
+ },
945
+ {
946
+ "internalType": "bytes",
947
+ "name": "data",
948
+ "type": "bytes"
949
+ }
950
+ ],
951
+ "internalType": "struct IRegistry.ObjectInfo",
952
+ "name": "info",
953
+ "type": "tuple"
954
+ }
955
+ ],
956
+ "stateMutability": "view",
957
+ "type": "function"
958
+ },
959
+ {
960
+ "inputs": [],
961
+ "name": "getInstanceService",
962
+ "outputs": [
963
+ {
964
+ "internalType": "contract InstanceService",
965
+ "name": "",
966
+ "type": "address"
967
+ }
968
+ ],
969
+ "stateMutability": "view",
970
+ "type": "function"
971
+ },
972
+ {
973
+ "inputs": [],
974
+ "name": "getNftId",
975
+ "outputs": [
976
+ {
977
+ "internalType": "NftId",
978
+ "name": "",
979
+ "type": "uint96"
980
+ }
981
+ ],
982
+ "stateMutability": "view",
983
+ "type": "function"
984
+ },
985
+ {
986
+ "inputs": [],
987
+ "name": "getOwner",
988
+ "outputs": [
989
+ {
990
+ "internalType": "address",
991
+ "name": "",
992
+ "type": "address"
993
+ }
994
+ ],
995
+ "stateMutability": "view",
996
+ "type": "function"
997
+ },
998
+ {
999
+ "inputs": [],
1000
+ "name": "getRegistry",
1001
+ "outputs": [
1002
+ {
1003
+ "internalType": "contract IRegistry",
1004
+ "name": "",
1005
+ "type": "address"
1006
+ }
1007
+ ],
1008
+ "stateMutability": "view",
1009
+ "type": "function"
1010
+ },
1011
+ {
1012
+ "inputs": [],
1013
+ "name": "getRegistryAddress",
1014
+ "outputs": [
1015
+ {
1016
+ "internalType": "address",
1017
+ "name": "",
1018
+ "type": "address"
1019
+ }
1020
+ ],
1021
+ "stateMutability": "view",
1022
+ "type": "function"
1023
+ },
1024
+ {
1025
+ "inputs": [],
1026
+ "name": "getRegistryService",
1027
+ "outputs": [
1028
+ {
1029
+ "internalType": "contract IRegistryService",
1030
+ "name": "",
1031
+ "type": "address"
1032
+ }
1033
+ ],
1034
+ "stateMutability": "view",
1035
+ "type": "function"
1036
+ },
1037
+ {
1038
+ "inputs": [],
1039
+ "name": "getVersion",
1040
+ "outputs": [
1041
+ {
1042
+ "internalType": "Version",
1043
+ "name": "",
1044
+ "type": "uint24"
1045
+ }
1046
+ ],
1047
+ "stateMutability": "pure",
1048
+ "type": "function"
1049
+ },
1050
+ {
1051
+ "inputs": [],
1052
+ "name": "initializeERC165",
1053
+ "outputs": [],
1054
+ "stateMutability": "nonpayable",
1055
+ "type": "function"
1056
+ },
1057
+ {
1058
+ "inputs": [
1059
+ {
1060
+ "internalType": "address",
1061
+ "name": "initialOwner",
1062
+ "type": "address"
1063
+ },
1064
+ {
1065
+ "internalType": "address",
1066
+ "name": "registryAddress",
1067
+ "type": "address"
1068
+ }
1069
+ ],
1070
+ "name": "initializeNftOwnable",
1071
+ "outputs": [],
1072
+ "stateMutability": "nonpayable",
1073
+ "type": "function"
1074
+ },
1075
+ {
1076
+ "inputs": [
1077
+ {
1078
+ "internalType": "address",
1079
+ "name": "registryAddress",
1080
+ "type": "address"
1081
+ },
1082
+ {
1083
+ "internalType": "NftId",
1084
+ "name": "parentNftId",
1085
+ "type": "uint96"
1086
+ },
1087
+ {
1088
+ "internalType": "ObjectType",
1089
+ "name": "objectType",
1090
+ "type": "uint8"
1091
+ },
1092
+ {
1093
+ "internalType": "bool",
1094
+ "name": "isInterceptor",
1095
+ "type": "bool"
1096
+ },
1097
+ {
1098
+ "internalType": "address",
1099
+ "name": "initialOwner",
1100
+ "type": "address"
1101
+ },
1102
+ {
1103
+ "internalType": "bytes",
1104
+ "name": "registryData",
1105
+ "type": "bytes"
1106
+ }
1107
+ ],
1108
+ "name": "initializeRegisterable",
1109
+ "outputs": [],
1110
+ "stateMutability": "nonpayable",
1111
+ "type": "function"
1112
+ },
1113
+ {
1114
+ "inputs": [
1115
+ {
1116
+ "internalType": "address",
1117
+ "name": "registryAddress",
1118
+ "type": "address"
1119
+ }
1120
+ ],
1121
+ "name": "initializeRegistryLinked",
1122
+ "outputs": [],
1123
+ "stateMutability": "nonpayable",
1124
+ "type": "function"
1125
+ },
1126
+ {
1127
+ "inputs": [
1128
+ {
1129
+ "internalType": "address",
1130
+ "name": "registry",
1131
+ "type": "address"
1132
+ },
1133
+ {
1134
+ "internalType": "address",
1135
+ "name": "authority",
1136
+ "type": "address"
1137
+ },
1138
+ {
1139
+ "internalType": "address",
1140
+ "name": "initialOwner",
1141
+ "type": "address"
1142
+ }
1143
+ ],
1144
+ "name": "initializeService",
1145
+ "outputs": [],
1146
+ "stateMutability": "nonpayable",
1147
+ "type": "function"
1148
+ },
1149
+ {
1150
+ "inputs": [
1151
+ {
1152
+ "internalType": "address",
1153
+ "name": "activatedBy",
1154
+ "type": "address"
1155
+ },
1156
+ {
1157
+ "internalType": "bytes",
1158
+ "name": "data",
1159
+ "type": "bytes"
1160
+ }
1161
+ ],
1162
+ "name": "initializeVersionable",
1163
+ "outputs": [],
1164
+ "stateMutability": "nonpayable",
1165
+ "type": "function"
1166
+ },
1167
+ {
1168
+ "inputs": [],
1169
+ "name": "isConsumingScheduledOp",
1170
+ "outputs": [
1171
+ {
1172
+ "internalType": "bytes4",
1173
+ "name": "",
1174
+ "type": "bytes4"
1175
+ }
1176
+ ],
1177
+ "stateMutability": "view",
1178
+ "type": "function"
1179
+ },
1180
+ {
1181
+ "inputs": [],
1182
+ "name": "linkToRegisteredNftId",
1183
+ "outputs": [],
1184
+ "stateMutability": "nonpayable",
1185
+ "type": "function"
1186
+ },
1187
+ {
1188
+ "inputs": [
1189
+ {
1190
+ "internalType": "NftId",
1191
+ "name": "policyNftId",
1192
+ "type": "uint96"
1193
+ },
1194
+ {
1195
+ "internalType": "PayoutId",
1196
+ "name": "payoutId",
1197
+ "type": "uint24"
1198
+ }
1199
+ ],
1200
+ "name": "processPayout",
1201
+ "outputs": [],
1202
+ "stateMutability": "nonpayable",
1203
+ "type": "function"
1204
+ },
1205
+ {
1206
+ "inputs": [
1207
+ {
1208
+ "internalType": "bytes4",
1209
+ "name": "interfaceId",
1210
+ "type": "bytes4"
1211
+ }
1212
+ ],
1213
+ "name": "registerInterface",
1214
+ "outputs": [],
1215
+ "stateMutability": "nonpayable",
1216
+ "type": "function"
1217
+ },
1218
+ {
1219
+ "inputs": [
1220
+ {
1221
+ "internalType": "address",
1222
+ "name": "newAuthority",
1223
+ "type": "address"
1224
+ }
1225
+ ],
1226
+ "name": "setAuthority",
1227
+ "outputs": [],
1228
+ "stateMutability": "nonpayable",
1229
+ "type": "function"
1230
+ },
1231
+ {
1232
+ "inputs": [
1233
+ {
1234
+ "internalType": "NftId",
1235
+ "name": "policyNftId",
1236
+ "type": "uint96"
1237
+ },
1238
+ {
1239
+ "internalType": "Amount",
1240
+ "name": "claimAmount",
1241
+ "type": "uint96"
1242
+ },
1243
+ {
1244
+ "internalType": "bytes",
1245
+ "name": "claimData",
1246
+ "type": "bytes"
1247
+ }
1248
+ ],
1249
+ "name": "submitClaim",
1250
+ "outputs": [
1251
+ {
1252
+ "internalType": "ClaimId",
1253
+ "name": "claimId",
1254
+ "type": "uint16"
1255
+ }
1256
+ ],
1257
+ "stateMutability": "nonpayable",
1258
+ "type": "function"
1259
+ },
1260
+ {
1261
+ "inputs": [
1262
+ {
1263
+ "internalType": "bytes4",
1264
+ "name": "interfaceId",
1265
+ "type": "bytes4"
1266
+ }
1267
+ ],
1268
+ "name": "supportsInterface",
1269
+ "outputs": [
1270
+ {
1271
+ "internalType": "bool",
1272
+ "name": "",
1273
+ "type": "bool"
1274
+ }
1275
+ ],
1276
+ "stateMutability": "view",
1277
+ "type": "function"
1278
+ },
1279
+ {
1280
+ "inputs": [
1281
+ {
1282
+ "internalType": "bytes",
1283
+ "name": "data",
1284
+ "type": "bytes"
1285
+ }
1286
+ ],
1287
+ "name": "upgradeVersionable",
1288
+ "outputs": [],
1289
+ "stateMutability": "nonpayable",
1290
+ "type": "function"
1291
+ }
1292
+ ],
1293
+ "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615d0e80620000e66000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80634d5e16a9116101305780639996c6b9116100b8578063bf7e214f1161007c578063bf7e214f14610508578063caf4e3d414610526578063cc9fc59a1461052e578063f21de1e8146103ee578063f7c34ee01461053657600080fd5b80639996c6b9146104b05780639ffcede9146104c3578063ada9652e146104d1578063b68d1809146104e6578063bbfbbfba146104f557600080fd5b8063675393bf116100ff578063675393bf1461044e5780637a9e5e4b14610461578063893d20e8146104745780638e32e9791461047c5780638fb360371461048f57600080fd5b80634d5e16a9146103db5780635ab1bd53146103ee5780635fd1a5f514610413578063644c45e01461042657600080fd5b806327bb7a33116101b35780633c53258e116101825780633c53258e1461036b5780633d3cf0231461037e57806349bb9e4b1461038f5780634a7d34cb146103a25780634d4889ad146103b557600080fd5b806327bb7a331461032a57806327c054b71461033d578063329d6e741461035057806336fc697e1461036357600080fd5b80630fec111c116101fa5780630fec111c146102b2578063138461e0146102c75780631c817972146102cf5780631eff4b22146102e2578063214cdb801461031757600080fd5b806301a57efc1461022c57806301ffc9a7146102415780630aaba8e8146102835780630d8e6e2c14610296575b600080fd5b61023f61023a36600461476f565b610549565b005b61026e61024f3660046147a8565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61023f6102913660046147d2565b610693565b61029e610b77565b60405162ffffff909116815260200161027a565b6102ba610c01565b60405161027a919061483f565b61023f610db5565b61023f6102dd3660046148eb565b610fb7565b6103097f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161027a565b61023f6103253660046147a8565b61135a565b61023f610338366004614ad0565b611387565b61023f61034b366004614b79565b611413565b61023f61035e366004614ba7565b6115a9565b61023f6116f6565b61029e610379366004614bdb565b61173c565b61023f61038c3660046147d2565b50565b61023f61039d366004614c4f565b611ac6565b61023f6103b036600461476f565b611bc0565b6103c86103c3366004614c9e565b611cff565b60405161ffff909116815260200161027a565b61023f6103e9366004614cff565b612372565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161027a565b610309610421366004614d2d565b6125e9565b600080516020615c79833981519152546040516001600160601b03909116815260200161027a565b61023f61045c366004614d4f565b6126f2565b61023f61046f366004614d4f565b6127ff565b6103fb612899565b61023f61048a366004614d6c565b6129d0565b610497612c09565b6040516001600160e01b0319909116815260200161027a565b61023f6104be366004614dac565b612c41565b61023f6102273660046147d2565b610309600080516020615c7983398151915281565b60405160d3815260200161027a565b61023f610503366004614cff565b612da0565b600080516020615c99833981519152546001600160a01b03166103fb565b6103fb613103565b6103fb61310f565b61023f610544366004614dec565b61311b565b600080600061055785613192565b6004805460405163a0e4494d60e01b81529497509295509093506001600160a01b039091169163a0e4494d9161059591879187918b918b9101614e1a565b600060405180830381600087803b1580156105af57600080fd5b505af11580156105c3573d6000803e3d6000fd5b50505050600181610160018181516105db9190614e65565b61ffff1690525060405163cbe8642560e01b81526001600160a01b0384169063cbe8642590610613908890859060ff90600401614fce565b600060405180830381600087803b15801561062d57600080fd5b505af1158015610641573d6000803e3d6000fd5b5050604080516001600160601b038916815261ffff881660208201527f77e6967c9588f9075fc07841c0d009a55111911ce2745eb58d0333272c9ca3ac93500190505b60405180910390a15050505050565b600061069f606e613358565b925050506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107079190615003565b60405163bd7d9d8560e01b81526001600160601b03851660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa15801561075a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261078291908101906150a3565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af41580156107e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108069190615230565b15610834576040516308cbe08b60e21b81526001600160601b03851660048201526024015b60405180910390fd5b604051639096a1f360e01b81526001600160601b03851660048201526000906001600160a01b03841690639096a1f390602401602060405180830381865afa158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190615258565b90506108bd8160645b60ff9081169116141590565b156108ef57604051634de91cf360e11b81526001600160601b038616600482015260ff8216602482015260440161082b565b6101e0820151604051638d38cd4b60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b90602401602060405180830381865af415801561094c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109709190615230565b1561099957604051634b80547760e11b81526001600160601b038616600482015260240161082b565b8160c001518260a00151146109e35760a082015160c0830151604051632b14368360e11b81526001600160601b03881660048201526024810192909252604482015260640161082b565b61016082015161ffff1615610a275761016082015160405163a5bb07ed60e01b81526001600160601b038716600482015261ffff909116602482015260440161082b565b73__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610a70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a949190615275565b64ffffffffff166101e0830152600654604051632f2e849d60e21b81526001600160a01b039091169063bcba127490610ad590879089908790600401615292565b600060405180830381600087803b158015610aef57600080fd5b505af1158015610b03573d6000803e3d6000fd5b50505050836001600160a01b031663cbe864258684610b2060c890565b6040518463ffffffff1660e01b8152600401610b3e93929190614fce565b600060405180830381600087803b158015610b5857600080fd5b505af1158015610b6c573d6000803e3d6000fd5b505050505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610bd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfc91906152ce565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3006040805160808101825282546001600160601b038116825260ff600160601b820481166020840152600160681b90910416151591810191909152600182018054919291606084019190610cb1906152eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610cdd906152eb565b8015610d2a5780601f10610cff57610100808354040283529160200191610d2a565b820191906000526020600020905b815481529060010190602001808311610d0d57829003601f168201915b50505050508152505090506040518060e00160405280610d48600090565b6001600160601b0316815260200182600001516001600160601b03168152602001826020015160ff168152602001826040015115158152602001306001600160a01b03168152602001610d99612899565b6001600160a01b03168152602001826060015181525091505090565b6000600080516020615c7983398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610e24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e489190615230565b15610e745780546040516301ab8b6760e21b81526001600160601b03909116600482015260240161082b565b30610e876001546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190615230565b610f1b5760405163b9304b0d60e01b81526001600160a01b038216600482015260240161082b565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f939190615325565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b600080610fc4606e613358565b92505091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102d9190615003565b60405163bd7d9d8560e01b81526001600160601b03881660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015611080573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110a891908101906150a3565b80519091506001600160601b038581169116146110f657805160405163605b071960e01b81526001600160601b03808a1660048301529182166024820152908516604482015260640161082b565b604051639096a1f360e01b81526001600160601b0388166004820152611172906001600160a01b03841690639096a1f390602401602060405180830381865afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190615258565b600a6108b1565b1561119b57604051631130ddad60e21b81526001600160601b038816600482015260240161082b565b602864ffffffffff86161561125057606464ffffffffff8781166101a0850181905260e08501516040516352bcc5a760e11b81526004810192909252909116602482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063a5798b4e90604401602060405180830381865af415801561121e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112429190615275565b64ffffffffff166101c08301525b6000871561128357611267858a8560a00151613583565b90508260a001518360c00181815161127f9190615342565b9052505b60405163cbe8642560e01b81526001600160a01b0386169063cbe86425906112b3908c9087908790600401614fce565b600060405180830381600087803b1580156112cd57600080fd5b505af11580156112e1573d6000803e3d6000fd5b505060065460405163363b3b3960e11b81526001600160a01b039091169250636c767672915061131d9088908a908e9089908890600401615355565b600060405180830381600087803b15801561133757600080fd5b505af115801561134b573d6000803e3d6000fd5b50505050505050505050505050565b611362613f4e565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b61138f613f4e565b611399828761311b565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b8615150217815590506001810161140983826153f0565b5050505050505050565b600080600061142185613192565b60048054604051630c02e8ad60e01b81526001600160a01b038087169382019390935282851660248201526001600160601b038b16604482015262ffffff8a16606482015294975092955090935060009283929190911690630c02e8ad9060840160408051808303816000875af11580156114a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c491906154af565b91509150801561154d57600183610160018181516114e29190614e65565b61ffff1690525060405163cbe8642560e01b81526001600160a01b0386169063cbe864259061151a908a90879060ff90600401614fce565b600060405180830381600087803b15801561153457600080fd5b505af1158015611548573d6000803e3d6000fd5b505050505b604080516001600160601b03808a16825262ffffff891660208301528416918101919091527f902f21240dd81ead776e9f49b4c2b8640514e4d1705c450f6e50bab12ec03543906060015b60405180910390a150505050505050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6115cb610b77565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801561160b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162f91906154de565b600080516020615cb98339815191528054600160401b900460ff1680611662575080546001600160401b03808416911610155b156116805760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556116aa83613f87565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b6116fe613f4e565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b60008060008061174b88613192565b60405163a7ef3d2160e01b81526001600160601b038c16600482015261ffff8b16602482015292955090935091506000906001600160a01b0384169063a7ef3d2190604401600060405180830381865afa1580156117ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117d59190810190615507565b60405163078ae93560e41b81526001600160601b038b16600482015261ffff8a1660248201529091506000906001600160a01b038516906378ae935090604401602060405180830381865afa158015611832573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118569190615258565b905060008260400151600161186b91906155ce565b60405163d5b5ee5d60e01b815261ffff8c16600482015260ff8216602482015290915073__$e1d43d4fb5c0494c5b7331f52c1ee41012$__9063d5b5ee5d90604401602060405180830381865af41580156118ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ee91906152ce565b9650600460009054906101000a90046001600160a01b03166001600160a01b031663fe7631d5878d8a8d8d6040518663ffffffff1660e01b81526004016119399594939291906155e7565b600060405180830381600087803b15801561195357600080fd5b505af1158015611967573d6000803e3d6000fd5b5050505061018084015160405163274acb3560e01b81526001600160601b039182166004820152908a16602482015273__$ea4dcf94bcd4a5d2e83a2341ef616bff8d$__9063274acb3590604401602060405180830381865af41580156119d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f69190615325565b5060405163cbe8642560e01b81526001600160a01b0387169063cbe8642590611a28908e90889060ff90600401614fce565b600060405180830381600087803b158015611a4257600080fd5b505af1158015611a56573d6000803e3d6000fd5b505050507f49582759c7297fe14c480e8acab67b42fd37c9f3004b859c9a0e7bdd97bfca728b888b604051611ab0939291906001600160601b03938416815262ffffff929092166020830152909116604082015260600190565b60405180910390a1505050505050949350505050565b600080516020615cb98339815191528054600160401b810460ff1615906001600160401b0316600081158015611af95750825b90506000826001600160401b03166001148015611b155750303b155b905081158015611b23575080155b15611b415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611b6b57845460ff60401b1916600160401b1785555b611b758787613f8f565b8315611bb757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001611598565b50505050505050565b6000806000611bce85613192565b60048054604051632ecc6ca560e21b81529497509295509093506001600160a01b039091169163bb31b29491611c0c91879187918b918b9101614e1a565b600060405180830381600087803b158015611c2657600080fd5b505af1158015611c3a573d6000803e3d6000fd5b5050505060018161016001818151611c529190614e65565b61ffff1690525060405163cbe8642560e01b81526001600160a01b0384169063cbe8642590611c8a908890859060ff90600401614fce565b600060405180830381600087803b158015611ca457600080fd5b505af1158015611cb8573d6000803e3d6000fd5b5050604080516001600160601b038916815261ffff881660208201527fe3ce18abb523f21452f7ac3d58c5f9377fd1d33be26b261de38c988bbb8880ea9350019050610684565b600080600080611d0e87613192565b6101a081015160405163790a38ad60e01b815264ffffffffff9091166004820152929550909350915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015611d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d979190615230565b80611e235750611e2373__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611de9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0d9190615275565b826101c0015164ffffffffff9081169116101590565b15611e4c57604051630479f37160e41b81526001600160601b038816600482015260240161082b565b608081015160405163046e44af60e11b81526001600160601b038816600482015273__$ea4dcf94bcd4a5d2e83a2341ef616bff8d$__906308dc895e90602401602060405180830381865af4158015611ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecd9190615638565b61018083015160405163046e44af60e11b81526001600160601b03909116600482015273__$ea4dcf94bcd4a5d2e83a2341ef616bff8d$__906308dc895e90602401602060405180830381865af4158015611f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f509190615638565b611f5a9190615342565b1115612186576080810151604051632620eecb60e11b8152889173__$ea4dcf94bcd4a5d2e83a2341ef616bff8d$__91634c41dd9691611fa09160040190815260200190565b602060405180830381865af4158015611fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe19190615325565b60405163046e44af60e11b81526001600160601b038916600482015273__$ea4dcf94bcd4a5d2e83a2341ef616bff8d$__90634c41dd969082906308dc895e90602401602060405180830381865af4158015612041573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120659190615638565b61018086015160405163046e44af60e11b81526001600160601b03909116600482015273__$ea4dcf94bcd4a5d2e83a2341ef616bff8d$__906308dc895e90602401602060405180830381865af41580156120c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e89190615638565b6120f29190615342565b6040518263ffffffff1660e01b815260040161211091815260200190565b602060405180830381865af415801561212d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121519190615325565b6040516350be842960e01b81526001600160601b0393841660048201529183166024830152909116604482015260640161082b565b73__$0e0c503522f35343ef1955427c5075b143$__639cc45a3682610140015160016121b29190615651565b6040516001600160e01b031960e084901b16815261ffff9091166004820152602401602060405180830381865af41580156121f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612215919061566c565b6004805460405163c898bbaf60e01b81529296506001600160a01b03169163c898bbaf9161224d9187918c918a918d918d9101615689565b600060405180830381600087803b15801561226757600080fd5b505af115801561227b573d6000803e3d6000fd5b50505050600181610140018181516122939190615651565b61ffff1690525061016081018051600191906122b0908390615651565b61ffff1690525060405163cbe8642560e01b81526001600160a01b0384169063cbe86425906122e8908a90859060ff90600401614fce565b600060405180830381600087803b15801561230257600080fd5b505af1158015612316573d6000803e3d6000fd5b5050604080516001600160601b038b8116825261ffff891660208301528a168183015290517f4b55d90307f307fd56cbb5e999a830a5db89f39b367ad6a6191172bc9700ef2e9350908190036060019150a15050509392505050565b600061237e606e613358565b925050506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e69190615003565b60405163bd7d9d8560e01b81526001600160601b03861660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015612439573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261246191908101906150a3565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af41580156124c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e59190615230565b6125315760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032303a414c52454144595f41435449564154454400604482015260640161082b565b64ffffffffff8481166101a0830181905260e08301516040516352bcc5a760e11b81526004810192909252909116602482015273__$d53880c81dc91c20799140d711e5ab8718$__9063a5798b4e90604401602060405180830381865af41580156125a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c49190615275565b64ffffffffff166101c08201526001600160a01b03831663cbe8642586836064610b20565b6040516322f5db0f60e11b815260048101829052600090819073__$5ac3274b8cf1e01ea223bf093142af05b0$__906345ebb61e90602401602060405180830381865af415801561263e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126629190615638565b905060006126708583614426565b604051632255341b60e11b81526004810182905290915073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa683690602401602060405180830381865af41580156126c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e79190615638565b925050505b92915050565b6126fa613f4e565b806001600160a01b03163b6000036127305760405163fdeac91f60e01b81526001600160a01b038216600482015260240161082b565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152630a3888e560e31b60048201526301ffc9a790602401602060405180830381865afa9250505080156127aa575060408051601f3d908101601f191682019092526127a791810190615230565b60015b6127d25760405163fdeac91f60e01b81526001600160a01b038216600482015260240161082b565b806127fb5760405163fdeac91f60e01b81526001600160a01b038316600482015260240161082b565b5050565b3361281f600080516020615c99833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b03161461285a5760405162d1953b60e31b81526001600160a01b038216600482015260240161082b565b816001600160a01b03163b600003612890576040516361798f2f60e11b81526001600160a01b038316600482015260240161082b565b6127fb8261443b565b600080600080516020615c7983398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015612909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292d9190615230565b156129ba576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129b49190615003565b91505090565b54600160601b90046001600160a01b0316919050565b6129d8613f4e565b612a5883846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a3e9190615325565b603c60008560405180602001604052806000815250611387565b6001600160a01b03821615612a7557612a708261449c565b612be4565b6000612a896001546001600160a01b031690565b6001600160a01b031663d39e60436028604051632392b61b60e21b81526003600482015273__$9dab98ad7ae1a426029e5739f922230a41$__90638e4ad86c90602401602060405180830381865af4158015612ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0d9190615258565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b769190615003565b9050612be2816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdd9190615003565b61449c565b505b612bf4634a531f3360e01b61135a565b612c0463b68d180960e01b61135a565b505050565b600080516020615c99833981519152805460009190600160a01b900460ff16612c335760006129b4565b638fb3603760e01b91505090565b6000806000612c4f86613192565b6004805460405163b962574f60e01b81526001600160a01b038087169382019390935282851660248201526001600160601b03808d16604483015261ffff8c1660648301528a166084820152949750929550909350169063b962574f9060a401600060405180830381600087803b158015612cc957600080fd5b505af1158015612cdd573d6000803e3d6000fd5b50505050826001600160a01b031663cbe864258783612cfa603390565b6040518463ffffffff1660e01b8152600401612d1893929190614fce565b600060405180830381600087803b158015612d3257600080fd5b505af1158015612d46573d6000803e3d6000fd5b5050604080516001600160601b038a8116825261ffff8a16602083015288168183015290517f717b1d3270371ccb32ccdefe73a57559ac67e1ea57b50cfff6f7c85be1267b089350908190036060019150a1505050505050565b600080612dad606e613358565b92505091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e169190615003565b60405163bd7d9d8560e01b81526001600160601b03871660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015612e69573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e9191908101906150a3565b90508060a001518160c0015103612ed35760c081015160405163038a855760e51b81526001600160601b0388166004820152602481019190915260440161082b565b60008160c001518260a00151612ee991906156d9565b90506000612ef8858984613583565b9050818360c001818151612f0c9190615342565b9052506003546020840151604051639babe3bf60e01b81526001600160a01b0388811660048301526001600160601b03909216602482015260448101849052911690639babe3bf90606401600060405180830381600087803b158015612f7157600080fd5b505af1158015612f85573d6000803e3d6000fd5b50505050846001600160a01b031663cbe864258985612fa260ff90565b6040518463ffffffff1660e01b8152600401612fc093929190614fce565b600060405180830381600087803b158015612fda57600080fd5b505af1158015612fee573d6000803e3d6000fd5b5050604051638d38cd4b60e01b815264ffffffffff8a16600482015273__$d53880c81dc91c20799140d711e5ab8718$__9250638d38cd4b9150602401602060405180830381865af4158015613048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061306c9190615230565b80156130f457506101a083015160405163790a38ad60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af41580156130d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f49190615230565b15611409576114098888612372565b6000610bfc60286144ad565b6000610bfc60466144ad565b613123613f4e565b61312c816126f2565b6131346116f6565b6001600160a01b03821661315b5760405163f17ef42d60e01b815260040160405180910390fd5b50600080516020615c7983398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b604080516102008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018190526101208201526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e0810182905281908161321e606e613358565b90508095508192505050836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328a9190615003565b60405163bd7d9d8560e01b81526001600160601b03871660048201529093506001600160a01b0384169063bd7d9d8590602401600060405180830381865afa1580156132da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261330291908101906150a3565b80519092506001600160601b0382811691161461335057815160405163605b071960e01b81526001600160601b0380881660048301529182166024820152908216604482015260640161082b565b509193909250565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c08201526000806133a46001546001600160a01b031690565b6040516308b09a5f60e41b81523360048201529091506001600160a01b03821690638b09a5f090602401600060405180830381865afa1580156133eb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261341391908101906156ec565b925061342a83604001518660ff9081169116141590565b1561346e57608083015160408085015190516304081d4960e41b81526001600160a01b03909216600483015260ff808816602484015216604482015260640161082b565b8260000151935061348283602001516145ba565b9150816001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134e69190615003565b6080840151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa158015613530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135549190615230565b1561335057608083015160405163d53987e560e01b81526001600160a01b03909116600482015260240161082b565b60008160000361359557506000613f47565b60006135a96001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03861660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa1580156135f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261362091908101906156ec565b6020015190506000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613666573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061368a9190615003565b60405163bd7d9d8560e01b81526001600160601b03871660048201526001600160a01b03919091169063bd7d9d8590602401600060405180830381865afa1580156136d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261370191908101906150a3565b6002546060820151608083015160e084015161010085015160208601516040808801519051630e1c629d60e31b81529798506000976001600160a01b03909716966370e314e89661375e968c9691959094919390926004016157be565b6101e060405180830381865afa15801561377c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a09190615824565b9050848160400151146137e55760408082015190516355e9883560e11b81526001600160601b038816600482015260248101879052604481019190915260640161082b565b60006137f96001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03891660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015613848573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061386c9190615003565b90506000886001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138d29190615003565b60405163242bdc1960e21b81526001600160601b03871660048201526001600160a01b0391909116906390af70649060240161014060405180830381865afa158015613922573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613946919061592d565b90506000816020015190508360400151816001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa158015613994573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b89190615003565b604051636eb1769f60e11b81526001600160a01b0386811660048301528481166024830152919091169063dd62ed3e90604401602060405180830381865afa158015613a08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a2c9190615638565b1015613a555782818560400151604051636d675c4360e01b815260040161082b939291906159d5565b60008460e001518560600151613a6b9190615342565b90506000856101c001518661014001518760c00151613a8a9190615342565b613a9491906156d9565b905060008661010001518760800151613aad9190615342565b905060008761012001518860a00151613ac69190615342565b9050600081838a60000151613adb9190615342565b613ae59190615342565b895160e08901516040516317d5759960e31b8152919e509192506001600160a01b0388169063beabacc890613b22908c9085908b906004016159d5565b600060405180830381600087803b158015613b3c57600080fd5b505af1158015613b50573d6000803e3d6000fd5b505050505060008f6001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bb99190615003565b6040808a01519051639ad69c6760e01b81526001600160601b0390911660048201526001600160a01b039190911690639ad69c679060240161010060405180830381865afa158015613c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c3391906159f9565b60808101516040516317d5759960e31b8152919250906001600160a01b0389169063beabacc890613c6c908d9085908b906004016159d5565b600060405180830381600087803b158015613c8657600080fd5b505af1158015613c9a573d6000803e3d6000fd5b50505050600560009054906101000a90046001600160a01b03166001600160a01b031663d25f50958a604001518e604001518e8a6040518563ffffffff1660e01b8152600401613ced9493929190615b15565b600060405180830381600087803b158015613d0757600080fd5b505af1158015613d1b573d6000803e3d6000fd5b50505050505060008f6001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d859190615003565b606089015160405163f0ea17c360e01b81526001600160601b0390911660048201526001600160a01b03919091169063f0ea17c390602401600060405180830381865afa158015613dda573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e029190810190615b53565b606001516040516317d5759960e31b81529091506001600160a01b0388169063beabacc890613e39908c90859087906004016159d5565b600060405180830381600087803b158015613e5357600080fd5b505af1158015613e67573d6000803e3d6000fd5b505060065460208e015160405163725d6e1160e01b81526001600160a01b03909216935063725d6e119250613ea2918e908790600401615c06565b600060405180830381600087803b158015613ebc57600080fd5b505af1158015613ed0573d6000803e3d6000fd5b50505050506000858286613ee49190615342565b613eee9190615342565b9050808a6040015114613f3a578e8a60400151826040516310c41a2960e31b815260040161082b939291906001600160601b039390931683526020830191909152604082015260600190565b5050505050505050505050505b9392505050565b600080516020615cb983398151915254600160401b900460ff16613f8557604051631afcd79f60e31b815260040160405180910390fd5b565b610227613f4e565b600080516020615cb98339815191528054600160401b810460ff1615906001600160401b0316600081158015613fc25750825b90506000826001600160401b03166001148015613fde5750303b155b905081158015613fec575080155b1561400a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561403457845460ff60401b1916600160401b1785555b6000808780602001905181019061404b9190615c33565b909250905061405c8260008b6129d0565b6000614066610b77565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af41580156140bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140df9190615258565b90506140f36001546001600160a01b031690565b6001600160a01b031663d39e6043608c6040516001600160e01b031960e084901b16815260ff91821660048201529084166024820152604401602060405180830381865afa158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d9190615003565b600680546001600160a01b0319166001600160a01b039283161790556001541663d39e604360dc6040516001600160e01b031960e084901b16815260ff91821660048201529084166024820152604401602060405180830381865afa1580156141da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141fe9190615003565b600380546001600160a01b0319166001600160a01b039283161790556001541663d39e604360d46040516001600160e01b031960e084901b16815260ff91821660048201529084166024820152604401602060405180830381865afa15801561426b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061428f9190615003565b600480546001600160a01b0319166001600160a01b039283161790556001541663d39e604360d26040516001600160e01b031960e084901b16815260ff91821660048201529084166024820152604401602060405180830381865afa1580156142fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143209190615003565b600280546001600160a01b0319166001600160a01b039283161790556001541663d39e604360786040516001600160e01b031960e084901b16815260ff91821660048201529084166024820152604401602060405180830381865afa15801561438d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143b19190615003565b600580546001600160a01b0319166001600160a01b03929092169190911790556143e1632642ed2b60e21b61135a565b5050508315611bb757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001611598565b6000613f478383670de0b6b3a764000061464f565b600080516020615c9983398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6144a4613f4e565b61038c81614739565b60006144c16001546001600160a01b031690565b6001600160a01b031663d39e6043836144d8610b77565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af415801561452d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145519190615258565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015614596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ec9190615003565b60006145ce6001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa15801561461d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261464591908101906156ec565b6080015192915050565b60008080600019858709858702925082811083820303915050806000036146895783828161467f5761467f615c62565b0492505050613f47565b8084116146d05760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b604482015260640161082b565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b614741613f4e565b61038c8161443b565b6001600160601b038116811461038c57600080fd5b61ffff8116811461038c57600080fd5b6000806040838503121561478257600080fd5b823561478d8161474a565b9150602083013561479d8161475f565b809150509250929050565b6000602082840312156147ba57600080fd5b81356001600160e01b031981168114613f4757600080fd5b6000602082840312156147e457600080fd5b8135613f478161474a565b60005b8381101561480a5781810151838201526020016147f2565b50506000910152565b6000815180845261482b8160208601602086016147ef565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a08301516148a860c08401826001600160a01b03169052565b5060c083015160e0808401526148c2610100840182614813565b949350505050565b801515811461038c57600080fd5b64ffffffffff8116811461038c57600080fd5b60008060006060848603121561490057600080fd5b833561490b8161474a565b9250602084013561491b816148ca565b9150604084013561492b816148d8565b809150509250925092565b6001600160a01b038116811461038c57600080fd5b60ff8116811461038c57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161020081016001600160401b03811182821017156149935761499361495a565b60405290565b60405160c081016001600160401b03811182821017156149935761499361495a565b60405160e081016001600160401b03811182821017156149935761499361495a565b6040516101e081016001600160401b03811182821017156149935761499361495a565b60405161010081016001600160401b03811182821017156149935761499361495a565b604051601f8201601f191681016001600160401b0381118282101715614a4b57614a4b61495a565b604052919050565b60006001600160401b03821115614a6c57614a6c61495a565b50601f01601f191660200190565b600082601f830112614a8b57600080fd5b8135614a9e614a9982614a53565b614a23565b818152846020838601011115614ab357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215614ae957600080fd5b8635614af481614936565b95506020870135614b048161474a565b94506040870135614b148161494b565b93506060870135614b24816148ca565b92506080870135614b3481614936565b915060a08701356001600160401b03811115614b4f57600080fd5b614b5b89828a01614a7a565b9150509295509295509295565b62ffffff8116811461038c57600080fd5b60008060408385031215614b8c57600080fd5b8235614b978161474a565b9150602083013561479d81614b68565b600060208284031215614bb957600080fd5b81356001600160401b03811115614bcf57600080fd5b6148c284828501614a7a565b60008060008060808587031215614bf157600080fd5b8435614bfc8161474a565b93506020850135614c0c8161475f565b92506040850135614c1c8161474a565b915060608501356001600160401b03811115614c3757600080fd5b614c4387828801614a7a565b91505092959194509250565b60008060408385031215614c6257600080fd5b8235614c6d81614936565b915060208301356001600160401b03811115614c8857600080fd5b614c9485828601614a7a565b9150509250929050565b600080600060608486031215614cb357600080fd5b8335614cbe8161474a565b92506020840135614cce8161474a565b915060408401356001600160401b03811115614ce957600080fd5b614cf586828701614a7a565b9150509250925092565b60008060408385031215614d1257600080fd5b8235614d1d8161474a565b9150602083013561479d816148d8565b60008060408385031215614d4057600080fd5b50508035926020909101359150565b600060208284031215614d6157600080fd5b8135613f4781614936565b600080600060608486031215614d8157600080fd5b8335614d8c81614936565b92506020840135614d9c81614936565b9150604084013561492b81614936565b600080600060608486031215614dc157600080fd5b8335614dcc8161474a565b92506020840135614ddc8161475f565b9150604084013561492b8161474a565b60008060408385031215614dff57600080fd5b8235614e0a81614936565b9150602083013561479d81614936565b6001600160a01b0394851681529290931660208301526001600160601b0316604082015261ffff909116606082015260800190565b634e487b7160e01b600052601160045260246000fd5b61ffff828116828216039080821115614e8057614e80614e4f565b5092915050565b80516001600160601b0316825260006102006020830151614eb360208601826001600160601b03169052565b506040830151614ecf60408601826001600160c01b0319169052565b506060830151614eeb60608601826001600160c01b0319169052565b506080830151608085015260a083015160a085015260c083015160c085015260e0830151614f2260e086018264ffffffffff169052565b50610100808401518282870152614f3b83870182614813565b925050506101208084015185830382870152614f578382614813565b9250505061014080840151614f718287018261ffff169052565b50506101608381015161ffff1690850152610180808401516001600160601b0316908501526101a08084015164ffffffffff908116918601919091526101c0808501518216908601526101e0938401511692909301919091525090565b6001600160601b0384168152606060208201526000614ff06060830185614e87565b905060ff83166040830152949350505050565b60006020828403121561501557600080fd5b8151613f4781614936565b805161502b8161474a565b919050565b80516001600160c01b03198116811461502b57600080fd5b805161502b816148d8565b600082601f83011261506457600080fd5b8151615072614a9982614a53565b81815284602083860101111561508757600080fd5b6148c28260208301602087016147ef565b805161502b8161475f565b6000602082840312156150b557600080fd5b81516001600160401b03808211156150cc57600080fd5b9083019061020082860312156150e157600080fd5b6150e9614970565b6150f283615020565b815261510060208401615020565b602082015261511160408401615030565b604082015261512260608401615030565b60608201526080830151608082015260a083015160a082015260c083015160c082015261515160e08401615048565b60e0820152610100808401518381111561516a57600080fd5b61517688828701615053565b828401525050610120808401518381111561519057600080fd5b61519c88828701615053565b82840152505061014091506151b2828401615098565b8282015261016091506151c6828401615098565b8282015261018091506151da828401615020565b828201526101a091506151ee828401615048565b828201526101c09150615202828401615048565b828201526101e09150615216828401615048565b91810191909152949350505050565b805161502b816148ca565b60006020828403121561524257600080fd5b8151613f47816148ca565b805161502b8161494b565b60006020828403121561526a57600080fd5b8151613f478161494b565b60006020828403121561528757600080fd5b8151613f47816148d8565b6001600160a01b03841681526001600160601b03831660208201526060604082018190526000906152c590830184614e87565b95945050505050565b6000602082840312156152e057600080fd5b8151613f4781614b68565b600181811c908216806152ff57607f821691505b60208210810361531f57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561533757600080fd5b8151613f478161474a565b808201808211156126ec576126ec614e4f565b6001600160a01b03861681526001600160601b0385811660208301528416604082015260a06060820181905260009061539090830185614e87565b90508260808301529695505050505050565b601f821115612c0457600081815260208120601f850160051c810160208610156153c95750805b601f850160051c820191505b818110156153e8578281556001016153d5565b505050505050565b81516001600160401b038111156154095761540961495a565b61541d8161541784546152eb565b846153a2565b602080601f831160018114615452576000841561543a5750858301515b600019600386901b1c1916600185901b1785556153e8565b600085815260208120601f198616915b8281101561548157888601518255948401946001909101908401615462565b508582101561549f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600080604083850312156154c257600080fd5b82516154cd8161474a565b602084015190925061479d816148ca565b6000602082840312156154f057600080fd5b81516001600160401b0381168114613f4757600080fd5b60006020828403121561551957600080fd5b81516001600160401b038082111561553057600080fd5b9083019060c0828603121561554457600080fd5b61554c614999565b82516155578161474a565b815260208301516155678161474a565b6020820152604083015161557a8161494b565b604082015261558b6060840161524d565b60608201526080830151828111156155a257600080fd5b6155ae87828601615053565b6080830152506155c060a08401615048565b60a082015295945050505050565b60ff81811683821601908111156126ec576126ec614e4f565b6001600160a01b03861681526001600160601b03858116602083015262ffffff851660408301528316606082015260a06080820181905260009061562d90830184614813565b979650505050505050565b60006020828403121561564a57600080fd5b5051919050565b61ffff818116838216019080821115614e8057614e80614e4f565b60006020828403121561567e57600080fd5b8151613f478161475f565b6001600160a01b03861681526001600160601b03858116602083015261ffff851660408301528316606082015260a06080820181905260009061562d90830184614813565b805161502b81614936565b818103818111156126ec576126ec614e4f565b6000602082840312156156fe57600080fd5b81516001600160401b038082111561571557600080fd5b9083019060e0828603121561572957600080fd5b6157316149bb565b61573a83615020565b815261574860208401615020565b60208201526157596040840161524d565b604082015261576a60608401615225565b606082015261577b608084016156ce565b608082015261578c60a084016156ce565b60a082015260c0830151828111156157a357600080fd5b6157af87828601615053565b60c08301525095945050505050565b60006001600160601b03808a1683526001600160401b0360c01b808a16602085015288604085015264ffffffffff8816606085015260e0608085015261580760e0850188614813565b9590911660a08401529290921660c0909101525095945050505050565b60006101e0828403121561583757600080fd5b61583f6149dd565b825181526020808401519082015260408084015190820152606080840151908201526080808401519082015260a0808401519082015260c0808401519082015260e08084015190820152610100808401519082015261012080840151908201526101408084015190820152610160808401519082015261018080840151908201526101a080840151908201526101c0928301519281019290925250919050565b6000604082840312156158f157600080fd5b604051604081018181106001600160401b03821117156159135761591361495a565b604052825181526020928301519281019290925250919050565b6000610140828403121561594057600080fd5b615948614a00565b615951836156ce565b815261595f602084016156ce565b602082015261597060408401615020565b604082015261598160608401615020565b606082015261599384608085016158df565b60808201526159a58460c085016158df565b60a08201526159b76101008401615225565b60c08201526159c961012084016156ce565b60e08201529392505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006101008284031215615a0c57600080fd5b615a14614999565b8251615a1f8161474a565b81526020830151615a2f81614936565b6020820152615a4184604085016158df565b6040820152615a5384608085016158df565b606082015260c0830151615a6681614936565b608082015260e0929092015160a083015250919050565b805182526020808201519083015260408082015190830152606080820151908301526080808201519083015260a0808201519083015260c0808201519083015260e08082015190830152610100808201519083015261012080820151908301526101408082015190830152610160808201519083015261018080820151908301526101a080820151908301526101c090810151910152565b6001600160601b03851681526001600160c01b0319841660208201526102408101615b436040830185615a7d565b8261022083015295945050505050565b600060208284031215615b6557600080fd5b81516001600160401b0380821115615b7c57600080fd5b9083019060e08286031215615b9057600080fd5b615b986149bb565b825182811115615ba757600080fd5b615bb387828601615053565b825250615bc2602084016156ce565b6020820152615bd3604084016156ce565b6040820152615be4606084016156ce565b6060820152615bf560808401615020565b608082015261578c60a08401615020565b6001600160601b03841681526102208101615c246020830185615a7d565b82610200830152949350505050565b60008060408385031215615c4657600080fd5b8251615c5181614936565b602084015190925061479d81614936565b634e487b7160e01b600052601260045260246000fdfe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122000b5fa6deeb10286e3d5c0e949222370b5c5ae46bb24352ca1410c67949d8dce64736f6c63430008140033",
1294
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102275760003560e01c80634d5e16a9116101305780639996c6b9116100b8578063bf7e214f1161007c578063bf7e214f14610508578063caf4e3d414610526578063cc9fc59a1461052e578063f21de1e8146103ee578063f7c34ee01461053657600080fd5b80639996c6b9146104b05780639ffcede9146104c3578063ada9652e146104d1578063b68d1809146104e6578063bbfbbfba146104f557600080fd5b8063675393bf116100ff578063675393bf1461044e5780637a9e5e4b14610461578063893d20e8146104745780638e32e9791461047c5780638fb360371461048f57600080fd5b80634d5e16a9146103db5780635ab1bd53146103ee5780635fd1a5f514610413578063644c45e01461042657600080fd5b806327bb7a33116101b35780633c53258e116101825780633c53258e1461036b5780633d3cf0231461037e57806349bb9e4b1461038f5780634a7d34cb146103a25780634d4889ad146103b557600080fd5b806327bb7a331461032a57806327c054b71461033d578063329d6e741461035057806336fc697e1461036357600080fd5b80630fec111c116101fa5780630fec111c146102b2578063138461e0146102c75780631c817972146102cf5780631eff4b22146102e2578063214cdb801461031757600080fd5b806301a57efc1461022c57806301ffc9a7146102415780630aaba8e8146102835780630d8e6e2c14610296575b600080fd5b61023f61023a36600461476f565b610549565b005b61026e61024f3660046147a8565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61023f6102913660046147d2565b610693565b61029e610b77565b60405162ffffff909116815260200161027a565b6102ba610c01565b60405161027a919061483f565b61023f610db5565b61023f6102dd3660046148eb565b610fb7565b6103097f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161027a565b61023f6103253660046147a8565b61135a565b61023f610338366004614ad0565b611387565b61023f61034b366004614b79565b611413565b61023f61035e366004614ba7565b6115a9565b61023f6116f6565b61029e610379366004614bdb565b61173c565b61023f61038c3660046147d2565b50565b61023f61039d366004614c4f565b611ac6565b61023f6103b036600461476f565b611bc0565b6103c86103c3366004614c9e565b611cff565b60405161ffff909116815260200161027a565b61023f6103e9366004614cff565b612372565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161027a565b610309610421366004614d2d565b6125e9565b600080516020615c79833981519152546040516001600160601b03909116815260200161027a565b61023f61045c366004614d4f565b6126f2565b61023f61046f366004614d4f565b6127ff565b6103fb612899565b61023f61048a366004614d6c565b6129d0565b610497612c09565b6040516001600160e01b0319909116815260200161027a565b61023f6104be366004614dac565b612c41565b61023f6102273660046147d2565b610309600080516020615c7983398151915281565b60405160d3815260200161027a565b61023f610503366004614cff565b612da0565b600080516020615c99833981519152546001600160a01b03166103fb565b6103fb613103565b6103fb61310f565b61023f610544366004614dec565b61311b565b600080600061055785613192565b6004805460405163a0e4494d60e01b81529497509295509093506001600160a01b039091169163a0e4494d9161059591879187918b918b9101614e1a565b600060405180830381600087803b1580156105af57600080fd5b505af11580156105c3573d6000803e3d6000fd5b50505050600181610160018181516105db9190614e65565b61ffff1690525060405163cbe8642560e01b81526001600160a01b0384169063cbe8642590610613908890859060ff90600401614fce565b600060405180830381600087803b15801561062d57600080fd5b505af1158015610641573d6000803e3d6000fd5b5050604080516001600160601b038916815261ffff881660208201527f77e6967c9588f9075fc07841c0d009a55111911ce2745eb58d0333272c9ca3ac93500190505b60405180910390a15050505050565b600061069f606e613358565b925050506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107079190615003565b60405163bd7d9d8560e01b81526001600160601b03851660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa15801561075a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261078291908101906150a3565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af41580156107e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108069190615230565b15610834576040516308cbe08b60e21b81526001600160601b03851660048201526024015b60405180910390fd5b604051639096a1f360e01b81526001600160601b03851660048201526000906001600160a01b03841690639096a1f390602401602060405180830381865afa158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190615258565b90506108bd8160645b60ff9081169116141590565b156108ef57604051634de91cf360e11b81526001600160601b038616600482015260ff8216602482015260440161082b565b6101e0820151604051638d38cd4b60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b90602401602060405180830381865af415801561094c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109709190615230565b1561099957604051634b80547760e11b81526001600160601b038616600482015260240161082b565b8160c001518260a00151146109e35760a082015160c0830151604051632b14368360e11b81526001600160601b03881660048201526024810192909252604482015260640161082b565b61016082015161ffff1615610a275761016082015160405163a5bb07ed60e01b81526001600160601b038716600482015261ffff909116602482015260440161082b565b73__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610a70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a949190615275565b64ffffffffff166101e0830152600654604051632f2e849d60e21b81526001600160a01b039091169063bcba127490610ad590879089908790600401615292565b600060405180830381600087803b158015610aef57600080fd5b505af1158015610b03573d6000803e3d6000fd5b50505050836001600160a01b031663cbe864258684610b2060c890565b6040518463ffffffff1660e01b8152600401610b3e93929190614fce565b600060405180830381600087803b158015610b5857600080fd5b505af1158015610b6c573d6000803e3d6000fd5b505050505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610bd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfc91906152ce565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3006040805160808101825282546001600160601b038116825260ff600160601b820481166020840152600160681b90910416151591810191909152600182018054919291606084019190610cb1906152eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610cdd906152eb565b8015610d2a5780601f10610cff57610100808354040283529160200191610d2a565b820191906000526020600020905b815481529060010190602001808311610d0d57829003601f168201915b50505050508152505090506040518060e00160405280610d48600090565b6001600160601b0316815260200182600001516001600160601b03168152602001826020015160ff168152602001826040015115158152602001306001600160a01b03168152602001610d99612899565b6001600160a01b03168152602001826060015181525091505090565b6000600080516020615c7983398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610e24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e489190615230565b15610e745780546040516301ab8b6760e21b81526001600160601b03909116600482015260240161082b565b30610e876001546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190615230565b610f1b5760405163b9304b0d60e01b81526001600160a01b038216600482015260240161082b565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f939190615325565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b600080610fc4606e613358565b92505091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102d9190615003565b60405163bd7d9d8560e01b81526001600160601b03881660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015611080573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110a891908101906150a3565b80519091506001600160601b038581169116146110f657805160405163605b071960e01b81526001600160601b03808a1660048301529182166024820152908516604482015260640161082b565b604051639096a1f360e01b81526001600160601b0388166004820152611172906001600160a01b03841690639096a1f390602401602060405180830381865afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190615258565b600a6108b1565b1561119b57604051631130ddad60e21b81526001600160601b038816600482015260240161082b565b602864ffffffffff86161561125057606464ffffffffff8781166101a0850181905260e08501516040516352bcc5a760e11b81526004810192909252909116602482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063a5798b4e90604401602060405180830381865af415801561121e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112429190615275565b64ffffffffff166101c08301525b6000871561128357611267858a8560a00151613583565b90508260a001518360c00181815161127f9190615342565b9052505b60405163cbe8642560e01b81526001600160a01b0386169063cbe86425906112b3908c9087908790600401614fce565b600060405180830381600087803b1580156112cd57600080fd5b505af11580156112e1573d6000803e3d6000fd5b505060065460405163363b3b3960e11b81526001600160a01b039091169250636c767672915061131d9088908a908e9089908890600401615355565b600060405180830381600087803b15801561133757600080fd5b505af115801561134b573d6000803e3d6000fd5b50505050505050505050505050565b611362613f4e565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b61138f613f4e565b611399828761311b565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b8615150217815590506001810161140983826153f0565b5050505050505050565b600080600061142185613192565b60048054604051630c02e8ad60e01b81526001600160a01b038087169382019390935282851660248201526001600160601b038b16604482015262ffffff8a16606482015294975092955090935060009283929190911690630c02e8ad9060840160408051808303816000875af11580156114a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c491906154af565b91509150801561154d57600183610160018181516114e29190614e65565b61ffff1690525060405163cbe8642560e01b81526001600160a01b0386169063cbe864259061151a908a90879060ff90600401614fce565b600060405180830381600087803b15801561153457600080fd5b505af1158015611548573d6000803e3d6000fd5b505050505b604080516001600160601b03808a16825262ffffff891660208301528416918101919091527f902f21240dd81ead776e9f49b4c2b8640514e4d1705c450f6e50bab12ec03543906060015b60405180910390a150505050505050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6115cb610b77565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801561160b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162f91906154de565b600080516020615cb98339815191528054600160401b900460ff1680611662575080546001600160401b03808416911610155b156116805760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556116aa83613f87565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b6116fe613f4e565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b60008060008061174b88613192565b60405163a7ef3d2160e01b81526001600160601b038c16600482015261ffff8b16602482015292955090935091506000906001600160a01b0384169063a7ef3d2190604401600060405180830381865afa1580156117ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117d59190810190615507565b60405163078ae93560e41b81526001600160601b038b16600482015261ffff8a1660248201529091506000906001600160a01b038516906378ae935090604401602060405180830381865afa158015611832573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118569190615258565b905060008260400151600161186b91906155ce565b60405163d5b5ee5d60e01b815261ffff8c16600482015260ff8216602482015290915073__$e1d43d4fb5c0494c5b7331f52c1ee41012$__9063d5b5ee5d90604401602060405180830381865af41580156118ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ee91906152ce565b9650600460009054906101000a90046001600160a01b03166001600160a01b031663fe7631d5878d8a8d8d6040518663ffffffff1660e01b81526004016119399594939291906155e7565b600060405180830381600087803b15801561195357600080fd5b505af1158015611967573d6000803e3d6000fd5b5050505061018084015160405163274acb3560e01b81526001600160601b039182166004820152908a16602482015273__$ea4dcf94bcd4a5d2e83a2341ef616bff8d$__9063274acb3590604401602060405180830381865af41580156119d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f69190615325565b5060405163cbe8642560e01b81526001600160a01b0387169063cbe8642590611a28908e90889060ff90600401614fce565b600060405180830381600087803b158015611a4257600080fd5b505af1158015611a56573d6000803e3d6000fd5b505050507f49582759c7297fe14c480e8acab67b42fd37c9f3004b859c9a0e7bdd97bfca728b888b604051611ab0939291906001600160601b03938416815262ffffff929092166020830152909116604082015260600190565b60405180910390a1505050505050949350505050565b600080516020615cb98339815191528054600160401b810460ff1615906001600160401b0316600081158015611af95750825b90506000826001600160401b03166001148015611b155750303b155b905081158015611b23575080155b15611b415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611b6b57845460ff60401b1916600160401b1785555b611b758787613f8f565b8315611bb757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001611598565b50505050505050565b6000806000611bce85613192565b60048054604051632ecc6ca560e21b81529497509295509093506001600160a01b039091169163bb31b29491611c0c91879187918b918b9101614e1a565b600060405180830381600087803b158015611c2657600080fd5b505af1158015611c3a573d6000803e3d6000fd5b5050505060018161016001818151611c529190614e65565b61ffff1690525060405163cbe8642560e01b81526001600160a01b0384169063cbe8642590611c8a908890859060ff90600401614fce565b600060405180830381600087803b158015611ca457600080fd5b505af1158015611cb8573d6000803e3d6000fd5b5050604080516001600160601b038916815261ffff881660208201527fe3ce18abb523f21452f7ac3d58c5f9377fd1d33be26b261de38c988bbb8880ea9350019050610684565b600080600080611d0e87613192565b6101a081015160405163790a38ad60e01b815264ffffffffff9091166004820152929550909350915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015611d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d979190615230565b80611e235750611e2373__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611de9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0d9190615275565b826101c0015164ffffffffff9081169116101590565b15611e4c57604051630479f37160e41b81526001600160601b038816600482015260240161082b565b608081015160405163046e44af60e11b81526001600160601b038816600482015273__$ea4dcf94bcd4a5d2e83a2341ef616bff8d$__906308dc895e90602401602060405180830381865af4158015611ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecd9190615638565b61018083015160405163046e44af60e11b81526001600160601b03909116600482015273__$ea4dcf94bcd4a5d2e83a2341ef616bff8d$__906308dc895e90602401602060405180830381865af4158015611f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f509190615638565b611f5a9190615342565b1115612186576080810151604051632620eecb60e11b8152889173__$ea4dcf94bcd4a5d2e83a2341ef616bff8d$__91634c41dd9691611fa09160040190815260200190565b602060405180830381865af4158015611fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe19190615325565b60405163046e44af60e11b81526001600160601b038916600482015273__$ea4dcf94bcd4a5d2e83a2341ef616bff8d$__90634c41dd969082906308dc895e90602401602060405180830381865af4158015612041573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120659190615638565b61018086015160405163046e44af60e11b81526001600160601b03909116600482015273__$ea4dcf94bcd4a5d2e83a2341ef616bff8d$__906308dc895e90602401602060405180830381865af41580156120c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e89190615638565b6120f29190615342565b6040518263ffffffff1660e01b815260040161211091815260200190565b602060405180830381865af415801561212d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121519190615325565b6040516350be842960e01b81526001600160601b0393841660048201529183166024830152909116604482015260640161082b565b73__$0e0c503522f35343ef1955427c5075b143$__639cc45a3682610140015160016121b29190615651565b6040516001600160e01b031960e084901b16815261ffff9091166004820152602401602060405180830381865af41580156121f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612215919061566c565b6004805460405163c898bbaf60e01b81529296506001600160a01b03169163c898bbaf9161224d9187918c918a918d918d9101615689565b600060405180830381600087803b15801561226757600080fd5b505af115801561227b573d6000803e3d6000fd5b50505050600181610140018181516122939190615651565b61ffff1690525061016081018051600191906122b0908390615651565b61ffff1690525060405163cbe8642560e01b81526001600160a01b0384169063cbe86425906122e8908a90859060ff90600401614fce565b600060405180830381600087803b15801561230257600080fd5b505af1158015612316573d6000803e3d6000fd5b5050604080516001600160601b038b8116825261ffff891660208301528a168183015290517f4b55d90307f307fd56cbb5e999a830a5db89f39b367ad6a6191172bc9700ef2e9350908190036060019150a15050509392505050565b600061237e606e613358565b925050506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e69190615003565b60405163bd7d9d8560e01b81526001600160601b03861660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015612439573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261246191908101906150a3565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af41580156124c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e59190615230565b6125315760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032303a414c52454144595f41435449564154454400604482015260640161082b565b64ffffffffff8481166101a0830181905260e08301516040516352bcc5a760e11b81526004810192909252909116602482015273__$d53880c81dc91c20799140d711e5ab8718$__9063a5798b4e90604401602060405180830381865af41580156125a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c49190615275565b64ffffffffff166101c08201526001600160a01b03831663cbe8642586836064610b20565b6040516322f5db0f60e11b815260048101829052600090819073__$5ac3274b8cf1e01ea223bf093142af05b0$__906345ebb61e90602401602060405180830381865af415801561263e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126629190615638565b905060006126708583614426565b604051632255341b60e11b81526004810182905290915073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa683690602401602060405180830381865af41580156126c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e79190615638565b925050505b92915050565b6126fa613f4e565b806001600160a01b03163b6000036127305760405163fdeac91f60e01b81526001600160a01b038216600482015260240161082b565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152630a3888e560e31b60048201526301ffc9a790602401602060405180830381865afa9250505080156127aa575060408051601f3d908101601f191682019092526127a791810190615230565b60015b6127d25760405163fdeac91f60e01b81526001600160a01b038216600482015260240161082b565b806127fb5760405163fdeac91f60e01b81526001600160a01b038316600482015260240161082b565b5050565b3361281f600080516020615c99833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b03161461285a5760405162d1953b60e31b81526001600160a01b038216600482015260240161082b565b816001600160a01b03163b600003612890576040516361798f2f60e11b81526001600160a01b038316600482015260240161082b565b6127fb8261443b565b600080600080516020615c7983398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015612909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292d9190615230565b156129ba576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129b49190615003565b91505090565b54600160601b90046001600160a01b0316919050565b6129d8613f4e565b612a5883846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a3e9190615325565b603c60008560405180602001604052806000815250611387565b6001600160a01b03821615612a7557612a708261449c565b612be4565b6000612a896001546001600160a01b031690565b6001600160a01b031663d39e60436028604051632392b61b60e21b81526003600482015273__$9dab98ad7ae1a426029e5739f922230a41$__90638e4ad86c90602401602060405180830381865af4158015612ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0d9190615258565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b769190615003565b9050612be2816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdd9190615003565b61449c565b505b612bf4634a531f3360e01b61135a565b612c0463b68d180960e01b61135a565b505050565b600080516020615c99833981519152805460009190600160a01b900460ff16612c335760006129b4565b638fb3603760e01b91505090565b6000806000612c4f86613192565b6004805460405163b962574f60e01b81526001600160a01b038087169382019390935282851660248201526001600160601b03808d16604483015261ffff8c1660648301528a166084820152949750929550909350169063b962574f9060a401600060405180830381600087803b158015612cc957600080fd5b505af1158015612cdd573d6000803e3d6000fd5b50505050826001600160a01b031663cbe864258783612cfa603390565b6040518463ffffffff1660e01b8152600401612d1893929190614fce565b600060405180830381600087803b158015612d3257600080fd5b505af1158015612d46573d6000803e3d6000fd5b5050604080516001600160601b038a8116825261ffff8a16602083015288168183015290517f717b1d3270371ccb32ccdefe73a57559ac67e1ea57b50cfff6f7c85be1267b089350908190036060019150a1505050505050565b600080612dad606e613358565b92505091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e169190615003565b60405163bd7d9d8560e01b81526001600160601b03871660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015612e69573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e9191908101906150a3565b90508060a001518160c0015103612ed35760c081015160405163038a855760e51b81526001600160601b0388166004820152602481019190915260440161082b565b60008160c001518260a00151612ee991906156d9565b90506000612ef8858984613583565b9050818360c001818151612f0c9190615342565b9052506003546020840151604051639babe3bf60e01b81526001600160a01b0388811660048301526001600160601b03909216602482015260448101849052911690639babe3bf90606401600060405180830381600087803b158015612f7157600080fd5b505af1158015612f85573d6000803e3d6000fd5b50505050846001600160a01b031663cbe864258985612fa260ff90565b6040518463ffffffff1660e01b8152600401612fc093929190614fce565b600060405180830381600087803b158015612fda57600080fd5b505af1158015612fee573d6000803e3d6000fd5b5050604051638d38cd4b60e01b815264ffffffffff8a16600482015273__$d53880c81dc91c20799140d711e5ab8718$__9250638d38cd4b9150602401602060405180830381865af4158015613048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061306c9190615230565b80156130f457506101a083015160405163790a38ad60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af41580156130d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f49190615230565b15611409576114098888612372565b6000610bfc60286144ad565b6000610bfc60466144ad565b613123613f4e565b61312c816126f2565b6131346116f6565b6001600160a01b03821661315b5760405163f17ef42d60e01b815260040160405180910390fd5b50600080516020615c7983398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b604080516102008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018190526101208201526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e0810182905281908161321e606e613358565b90508095508192505050836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328a9190615003565b60405163bd7d9d8560e01b81526001600160601b03871660048201529093506001600160a01b0384169063bd7d9d8590602401600060405180830381865afa1580156132da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261330291908101906150a3565b80519092506001600160601b0382811691161461335057815160405163605b071960e01b81526001600160601b0380881660048301529182166024820152908216604482015260640161082b565b509193909250565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c08201526000806133a46001546001600160a01b031690565b6040516308b09a5f60e41b81523360048201529091506001600160a01b03821690638b09a5f090602401600060405180830381865afa1580156133eb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261341391908101906156ec565b925061342a83604001518660ff9081169116141590565b1561346e57608083015160408085015190516304081d4960e41b81526001600160a01b03909216600483015260ff808816602484015216604482015260640161082b565b8260000151935061348283602001516145ba565b9150816001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134e69190615003565b6080840151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa158015613530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135549190615230565b1561335057608083015160405163d53987e560e01b81526001600160a01b03909116600482015260240161082b565b60008160000361359557506000613f47565b60006135a96001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03861660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa1580156135f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261362091908101906156ec565b6020015190506000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613666573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061368a9190615003565b60405163bd7d9d8560e01b81526001600160601b03871660048201526001600160a01b03919091169063bd7d9d8590602401600060405180830381865afa1580156136d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261370191908101906150a3565b6002546060820151608083015160e084015161010085015160208601516040808801519051630e1c629d60e31b81529798506000976001600160a01b03909716966370e314e89661375e968c9691959094919390926004016157be565b6101e060405180830381865afa15801561377c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a09190615824565b9050848160400151146137e55760408082015190516355e9883560e11b81526001600160601b038816600482015260248101879052604481019190915260640161082b565b60006137f96001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03891660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015613848573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061386c9190615003565b90506000886001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138d29190615003565b60405163242bdc1960e21b81526001600160601b03871660048201526001600160a01b0391909116906390af70649060240161014060405180830381865afa158015613922573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613946919061592d565b90506000816020015190508360400151816001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa158015613994573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b89190615003565b604051636eb1769f60e11b81526001600160a01b0386811660048301528481166024830152919091169063dd62ed3e90604401602060405180830381865afa158015613a08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a2c9190615638565b1015613a555782818560400151604051636d675c4360e01b815260040161082b939291906159d5565b60008460e001518560600151613a6b9190615342565b90506000856101c001518661014001518760c00151613a8a9190615342565b613a9491906156d9565b905060008661010001518760800151613aad9190615342565b905060008761012001518860a00151613ac69190615342565b9050600081838a60000151613adb9190615342565b613ae59190615342565b895160e08901516040516317d5759960e31b8152919e509192506001600160a01b0388169063beabacc890613b22908c9085908b906004016159d5565b600060405180830381600087803b158015613b3c57600080fd5b505af1158015613b50573d6000803e3d6000fd5b505050505060008f6001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bb99190615003565b6040808a01519051639ad69c6760e01b81526001600160601b0390911660048201526001600160a01b039190911690639ad69c679060240161010060405180830381865afa158015613c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c3391906159f9565b60808101516040516317d5759960e31b8152919250906001600160a01b0389169063beabacc890613c6c908d9085908b906004016159d5565b600060405180830381600087803b158015613c8657600080fd5b505af1158015613c9a573d6000803e3d6000fd5b50505050600560009054906101000a90046001600160a01b03166001600160a01b031663d25f50958a604001518e604001518e8a6040518563ffffffff1660e01b8152600401613ced9493929190615b15565b600060405180830381600087803b158015613d0757600080fd5b505af1158015613d1b573d6000803e3d6000fd5b50505050505060008f6001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d859190615003565b606089015160405163f0ea17c360e01b81526001600160601b0390911660048201526001600160a01b03919091169063f0ea17c390602401600060405180830381865afa158015613dda573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e029190810190615b53565b606001516040516317d5759960e31b81529091506001600160a01b0388169063beabacc890613e39908c90859087906004016159d5565b600060405180830381600087803b158015613e5357600080fd5b505af1158015613e67573d6000803e3d6000fd5b505060065460208e015160405163725d6e1160e01b81526001600160a01b03909216935063725d6e119250613ea2918e908790600401615c06565b600060405180830381600087803b158015613ebc57600080fd5b505af1158015613ed0573d6000803e3d6000fd5b50505050506000858286613ee49190615342565b613eee9190615342565b9050808a6040015114613f3a578e8a60400151826040516310c41a2960e31b815260040161082b939291906001600160601b039390931683526020830191909152604082015260600190565b5050505050505050505050505b9392505050565b600080516020615cb983398151915254600160401b900460ff16613f8557604051631afcd79f60e31b815260040160405180910390fd5b565b610227613f4e565b600080516020615cb98339815191528054600160401b810460ff1615906001600160401b0316600081158015613fc25750825b90506000826001600160401b03166001148015613fde5750303b155b905081158015613fec575080155b1561400a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561403457845460ff60401b1916600160401b1785555b6000808780602001905181019061404b9190615c33565b909250905061405c8260008b6129d0565b6000614066610b77565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af41580156140bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140df9190615258565b90506140f36001546001600160a01b031690565b6001600160a01b031663d39e6043608c6040516001600160e01b031960e084901b16815260ff91821660048201529084166024820152604401602060405180830381865afa158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d9190615003565b600680546001600160a01b0319166001600160a01b039283161790556001541663d39e604360dc6040516001600160e01b031960e084901b16815260ff91821660048201529084166024820152604401602060405180830381865afa1580156141da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141fe9190615003565b600380546001600160a01b0319166001600160a01b039283161790556001541663d39e604360d46040516001600160e01b031960e084901b16815260ff91821660048201529084166024820152604401602060405180830381865afa15801561426b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061428f9190615003565b600480546001600160a01b0319166001600160a01b039283161790556001541663d39e604360d26040516001600160e01b031960e084901b16815260ff91821660048201529084166024820152604401602060405180830381865afa1580156142fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143209190615003565b600280546001600160a01b0319166001600160a01b039283161790556001541663d39e604360786040516001600160e01b031960e084901b16815260ff91821660048201529084166024820152604401602060405180830381865afa15801561438d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143b19190615003565b600580546001600160a01b0319166001600160a01b03929092169190911790556143e1632642ed2b60e21b61135a565b5050508315611bb757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001611598565b6000613f478383670de0b6b3a764000061464f565b600080516020615c9983398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6144a4613f4e565b61038c81614739565b60006144c16001546001600160a01b031690565b6001600160a01b031663d39e6043836144d8610b77565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af415801561452d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145519190615258565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015614596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ec9190615003565b60006145ce6001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa15801561461d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261464591908101906156ec565b6080015192915050565b60008080600019858709858702925082811083820303915050806000036146895783828161467f5761467f615c62565b0492505050613f47565b8084116146d05760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b604482015260640161082b565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b614741613f4e565b61038c8161443b565b6001600160601b038116811461038c57600080fd5b61ffff8116811461038c57600080fd5b6000806040838503121561478257600080fd5b823561478d8161474a565b9150602083013561479d8161475f565b809150509250929050565b6000602082840312156147ba57600080fd5b81356001600160e01b031981168114613f4757600080fd5b6000602082840312156147e457600080fd5b8135613f478161474a565b60005b8381101561480a5781810151838201526020016147f2565b50506000910152565b6000815180845261482b8160208601602086016147ef565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a08301516148a860c08401826001600160a01b03169052565b5060c083015160e0808401526148c2610100840182614813565b949350505050565b801515811461038c57600080fd5b64ffffffffff8116811461038c57600080fd5b60008060006060848603121561490057600080fd5b833561490b8161474a565b9250602084013561491b816148ca565b9150604084013561492b816148d8565b809150509250925092565b6001600160a01b038116811461038c57600080fd5b60ff8116811461038c57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161020081016001600160401b03811182821017156149935761499361495a565b60405290565b60405160c081016001600160401b03811182821017156149935761499361495a565b60405160e081016001600160401b03811182821017156149935761499361495a565b6040516101e081016001600160401b03811182821017156149935761499361495a565b60405161010081016001600160401b03811182821017156149935761499361495a565b604051601f8201601f191681016001600160401b0381118282101715614a4b57614a4b61495a565b604052919050565b60006001600160401b03821115614a6c57614a6c61495a565b50601f01601f191660200190565b600082601f830112614a8b57600080fd5b8135614a9e614a9982614a53565b614a23565b818152846020838601011115614ab357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215614ae957600080fd5b8635614af481614936565b95506020870135614b048161474a565b94506040870135614b148161494b565b93506060870135614b24816148ca565b92506080870135614b3481614936565b915060a08701356001600160401b03811115614b4f57600080fd5b614b5b89828a01614a7a565b9150509295509295509295565b62ffffff8116811461038c57600080fd5b60008060408385031215614b8c57600080fd5b8235614b978161474a565b9150602083013561479d81614b68565b600060208284031215614bb957600080fd5b81356001600160401b03811115614bcf57600080fd5b6148c284828501614a7a565b60008060008060808587031215614bf157600080fd5b8435614bfc8161474a565b93506020850135614c0c8161475f565b92506040850135614c1c8161474a565b915060608501356001600160401b03811115614c3757600080fd5b614c4387828801614a7a565b91505092959194509250565b60008060408385031215614c6257600080fd5b8235614c6d81614936565b915060208301356001600160401b03811115614c8857600080fd5b614c9485828601614a7a565b9150509250929050565b600080600060608486031215614cb357600080fd5b8335614cbe8161474a565b92506020840135614cce8161474a565b915060408401356001600160401b03811115614ce957600080fd5b614cf586828701614a7a565b9150509250925092565b60008060408385031215614d1257600080fd5b8235614d1d8161474a565b9150602083013561479d816148d8565b60008060408385031215614d4057600080fd5b50508035926020909101359150565b600060208284031215614d6157600080fd5b8135613f4781614936565b600080600060608486031215614d8157600080fd5b8335614d8c81614936565b92506020840135614d9c81614936565b9150604084013561492b81614936565b600080600060608486031215614dc157600080fd5b8335614dcc8161474a565b92506020840135614ddc8161475f565b9150604084013561492b8161474a565b60008060408385031215614dff57600080fd5b8235614e0a81614936565b9150602083013561479d81614936565b6001600160a01b0394851681529290931660208301526001600160601b0316604082015261ffff909116606082015260800190565b634e487b7160e01b600052601160045260246000fd5b61ffff828116828216039080821115614e8057614e80614e4f565b5092915050565b80516001600160601b0316825260006102006020830151614eb360208601826001600160601b03169052565b506040830151614ecf60408601826001600160c01b0319169052565b506060830151614eeb60608601826001600160c01b0319169052565b506080830151608085015260a083015160a085015260c083015160c085015260e0830151614f2260e086018264ffffffffff169052565b50610100808401518282870152614f3b83870182614813565b925050506101208084015185830382870152614f578382614813565b9250505061014080840151614f718287018261ffff169052565b50506101608381015161ffff1690850152610180808401516001600160601b0316908501526101a08084015164ffffffffff908116918601919091526101c0808501518216908601526101e0938401511692909301919091525090565b6001600160601b0384168152606060208201526000614ff06060830185614e87565b905060ff83166040830152949350505050565b60006020828403121561501557600080fd5b8151613f4781614936565b805161502b8161474a565b919050565b80516001600160c01b03198116811461502b57600080fd5b805161502b816148d8565b600082601f83011261506457600080fd5b8151615072614a9982614a53565b81815284602083860101111561508757600080fd5b6148c28260208301602087016147ef565b805161502b8161475f565b6000602082840312156150b557600080fd5b81516001600160401b03808211156150cc57600080fd5b9083019061020082860312156150e157600080fd5b6150e9614970565b6150f283615020565b815261510060208401615020565b602082015261511160408401615030565b604082015261512260608401615030565b60608201526080830151608082015260a083015160a082015260c083015160c082015261515160e08401615048565b60e0820152610100808401518381111561516a57600080fd5b61517688828701615053565b828401525050610120808401518381111561519057600080fd5b61519c88828701615053565b82840152505061014091506151b2828401615098565b8282015261016091506151c6828401615098565b8282015261018091506151da828401615020565b828201526101a091506151ee828401615048565b828201526101c09150615202828401615048565b828201526101e09150615216828401615048565b91810191909152949350505050565b805161502b816148ca565b60006020828403121561524257600080fd5b8151613f47816148ca565b805161502b8161494b565b60006020828403121561526a57600080fd5b8151613f478161494b565b60006020828403121561528757600080fd5b8151613f47816148d8565b6001600160a01b03841681526001600160601b03831660208201526060604082018190526000906152c590830184614e87565b95945050505050565b6000602082840312156152e057600080fd5b8151613f4781614b68565b600181811c908216806152ff57607f821691505b60208210810361531f57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561533757600080fd5b8151613f478161474a565b808201808211156126ec576126ec614e4f565b6001600160a01b03861681526001600160601b0385811660208301528416604082015260a06060820181905260009061539090830185614e87565b90508260808301529695505050505050565b601f821115612c0457600081815260208120601f850160051c810160208610156153c95750805b601f850160051c820191505b818110156153e8578281556001016153d5565b505050505050565b81516001600160401b038111156154095761540961495a565b61541d8161541784546152eb565b846153a2565b602080601f831160018114615452576000841561543a5750858301515b600019600386901b1c1916600185901b1785556153e8565b600085815260208120601f198616915b8281101561548157888601518255948401946001909101908401615462565b508582101561549f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600080604083850312156154c257600080fd5b82516154cd8161474a565b602084015190925061479d816148ca565b6000602082840312156154f057600080fd5b81516001600160401b0381168114613f4757600080fd5b60006020828403121561551957600080fd5b81516001600160401b038082111561553057600080fd5b9083019060c0828603121561554457600080fd5b61554c614999565b82516155578161474a565b815260208301516155678161474a565b6020820152604083015161557a8161494b565b604082015261558b6060840161524d565b60608201526080830151828111156155a257600080fd5b6155ae87828601615053565b6080830152506155c060a08401615048565b60a082015295945050505050565b60ff81811683821601908111156126ec576126ec614e4f565b6001600160a01b03861681526001600160601b03858116602083015262ffffff851660408301528316606082015260a06080820181905260009061562d90830184614813565b979650505050505050565b60006020828403121561564a57600080fd5b5051919050565b61ffff818116838216019080821115614e8057614e80614e4f565b60006020828403121561567e57600080fd5b8151613f478161475f565b6001600160a01b03861681526001600160601b03858116602083015261ffff851660408301528316606082015260a06080820181905260009061562d90830184614813565b805161502b81614936565b818103818111156126ec576126ec614e4f565b6000602082840312156156fe57600080fd5b81516001600160401b038082111561571557600080fd5b9083019060e0828603121561572957600080fd5b6157316149bb565b61573a83615020565b815261574860208401615020565b60208201526157596040840161524d565b604082015261576a60608401615225565b606082015261577b608084016156ce565b608082015261578c60a084016156ce565b60a082015260c0830151828111156157a357600080fd5b6157af87828601615053565b60c08301525095945050505050565b60006001600160601b03808a1683526001600160401b0360c01b808a16602085015288604085015264ffffffffff8816606085015260e0608085015261580760e0850188614813565b9590911660a08401529290921660c0909101525095945050505050565b60006101e0828403121561583757600080fd5b61583f6149dd565b825181526020808401519082015260408084015190820152606080840151908201526080808401519082015260a0808401519082015260c0808401519082015260e08084015190820152610100808401519082015261012080840151908201526101408084015190820152610160808401519082015261018080840151908201526101a080840151908201526101c0928301519281019290925250919050565b6000604082840312156158f157600080fd5b604051604081018181106001600160401b03821117156159135761591361495a565b604052825181526020928301519281019290925250919050565b6000610140828403121561594057600080fd5b615948614a00565b615951836156ce565b815261595f602084016156ce565b602082015261597060408401615020565b604082015261598160608401615020565b606082015261599384608085016158df565b60808201526159a58460c085016158df565b60a08201526159b76101008401615225565b60c08201526159c961012084016156ce565b60e08201529392505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006101008284031215615a0c57600080fd5b615a14614999565b8251615a1f8161474a565b81526020830151615a2f81614936565b6020820152615a4184604085016158df565b6040820152615a5384608085016158df565b606082015260c0830151615a6681614936565b608082015260e0929092015160a083015250919050565b805182526020808201519083015260408082015190830152606080820151908301526080808201519083015260a0808201519083015260c0808201519083015260e08082015190830152610100808201519083015261012080820151908301526101408082015190830152610160808201519083015261018080820151908301526101a080820151908301526101c090810151910152565b6001600160601b03851681526001600160c01b0319841660208201526102408101615b436040830185615a7d565b8261022083015295945050505050565b600060208284031215615b6557600080fd5b81516001600160401b0380821115615b7c57600080fd5b9083019060e08286031215615b9057600080fd5b615b986149bb565b825182811115615ba757600080fd5b615bb387828601615053565b825250615bc2602084016156ce565b6020820152615bd3604084016156ce565b6040820152615be4606084016156ce565b6060820152615bf560808401615020565b608082015261578c60a08401615020565b6001600160601b03841681526102208101615c246020830185615a7d565b82610200830152949350505050565b60008060408385031215615c4657600080fd5b8251615c5181614936565b602084015190925061479d81614936565b634e487b7160e01b600052601260045260246000fdfe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122000b5fa6deeb10286e3d5c0e949222370b5c5ae46bb24352ca1410c67949d8dce64736f6c63430008140033",
1295
+ "linkReferences": {
1296
+ "contracts/types/Amount.sol": {
1297
+ "AmountLib": [
1298
+ {
1299
+ "length": 20,
1300
+ "start": 6782
1301
+ },
1302
+ {
1303
+ "length": 20,
1304
+ "start": 8021
1305
+ },
1306
+ {
1307
+ "length": 20,
1308
+ "start": 8152
1309
+ },
1310
+ {
1311
+ "length": 20,
1312
+ "start": 8284
1313
+ },
1314
+ {
1315
+ "length": 20,
1316
+ "start": 8421
1317
+ },
1318
+ {
1319
+ "length": 20,
1320
+ "start": 8560
1321
+ }
1322
+ ]
1323
+ },
1324
+ "contracts/types/ClaimId.sol": {
1325
+ "ClaimIdLib": [
1326
+ {
1327
+ "length": 20,
1328
+ "start": 8814
1329
+ }
1330
+ ]
1331
+ },
1332
+ "contracts/types/NftId.sol": {
1333
+ "NftIdLib": [
1334
+ {
1335
+ "length": 20,
1336
+ "start": 3792
1337
+ },
1338
+ {
1339
+ "length": 20,
1340
+ "start": 10677
1341
+ }
1342
+ ]
1343
+ },
1344
+ "contracts/types/PayoutId.sol": {
1345
+ "PayoutIdLib": [
1346
+ {
1347
+ "length": 20,
1348
+ "start": 6518
1349
+ }
1350
+ ]
1351
+ },
1352
+ "contracts/types/Timestamp.sol": {
1353
+ "TimestampLib": [
1354
+ {
1355
+ "length": 20,
1356
+ "start": 2190
1357
+ },
1358
+ {
1359
+ "length": 20,
1360
+ "start": 2552
1361
+ },
1362
+ {
1363
+ "length": 20,
1364
+ "start": 2831
1365
+ },
1366
+ {
1367
+ "length": 20,
1368
+ "start": 4810
1369
+ },
1370
+ {
1371
+ "length": 20,
1372
+ "start": 7711
1373
+ },
1374
+ {
1375
+ "length": 20,
1376
+ "start": 7816
1377
+ },
1378
+ {
1379
+ "length": 20,
1380
+ "start": 9581
1381
+ },
1382
+ {
1383
+ "length": 20,
1384
+ "start": 9804
1385
+ },
1386
+ {
1387
+ "length": 20,
1388
+ "start": 12530
1389
+ },
1390
+ {
1391
+ "length": 20,
1392
+ "start": 12668
1393
+ }
1394
+ ]
1395
+ },
1396
+ "contracts/types/UFixed.sol": {
1397
+ "UFixedLib": [
1398
+ {
1399
+ "length": 20,
1400
+ "start": 9962
1401
+ },
1402
+ {
1403
+ "length": 20,
1404
+ "start": 10095
1405
+ }
1406
+ ]
1407
+ },
1408
+ "contracts/types/Version.sol": {
1409
+ "VersionLib": [
1410
+ {
1411
+ "length": 20,
1412
+ "start": 3204
1413
+ },
1414
+ {
1415
+ "length": 20,
1416
+ "start": 5777
1417
+ },
1418
+ {
1419
+ "length": 20,
1420
+ "start": 16743
1421
+ },
1422
+ {
1423
+ "length": 20,
1424
+ "start": 17881
1425
+ }
1426
+ ],
1427
+ "VersionPartLib": [
1428
+ {
1429
+ "length": 20,
1430
+ "start": 11157
1431
+ }
1432
+ ]
1433
+ }
1434
+ },
1435
+ "deployedLinkReferences": {
1436
+ "contracts/types/Amount.sol": {
1437
+ "AmountLib": [
1438
+ {
1439
+ "length": 20,
1440
+ "start": 6552
1441
+ },
1442
+ {
1443
+ "length": 20,
1444
+ "start": 7791
1445
+ },
1446
+ {
1447
+ "length": 20,
1448
+ "start": 7922
1449
+ },
1450
+ {
1451
+ "length": 20,
1452
+ "start": 8054
1453
+ },
1454
+ {
1455
+ "length": 20,
1456
+ "start": 8191
1457
+ },
1458
+ {
1459
+ "length": 20,
1460
+ "start": 8330
1461
+ }
1462
+ ]
1463
+ },
1464
+ "contracts/types/ClaimId.sol": {
1465
+ "ClaimIdLib": [
1466
+ {
1467
+ "length": 20,
1468
+ "start": 8584
1469
+ }
1470
+ ]
1471
+ },
1472
+ "contracts/types/NftId.sol": {
1473
+ "NftIdLib": [
1474
+ {
1475
+ "length": 20,
1476
+ "start": 3562
1477
+ },
1478
+ {
1479
+ "length": 20,
1480
+ "start": 10447
1481
+ }
1482
+ ]
1483
+ },
1484
+ "contracts/types/PayoutId.sol": {
1485
+ "PayoutIdLib": [
1486
+ {
1487
+ "length": 20,
1488
+ "start": 6288
1489
+ }
1490
+ ]
1491
+ },
1492
+ "contracts/types/Timestamp.sol": {
1493
+ "TimestampLib": [
1494
+ {
1495
+ "length": 20,
1496
+ "start": 1960
1497
+ },
1498
+ {
1499
+ "length": 20,
1500
+ "start": 2322
1501
+ },
1502
+ {
1503
+ "length": 20,
1504
+ "start": 2601
1505
+ },
1506
+ {
1507
+ "length": 20,
1508
+ "start": 4580
1509
+ },
1510
+ {
1511
+ "length": 20,
1512
+ "start": 7481
1513
+ },
1514
+ {
1515
+ "length": 20,
1516
+ "start": 7586
1517
+ },
1518
+ {
1519
+ "length": 20,
1520
+ "start": 9351
1521
+ },
1522
+ {
1523
+ "length": 20,
1524
+ "start": 9574
1525
+ },
1526
+ {
1527
+ "length": 20,
1528
+ "start": 12300
1529
+ },
1530
+ {
1531
+ "length": 20,
1532
+ "start": 12438
1533
+ }
1534
+ ]
1535
+ },
1536
+ "contracts/types/UFixed.sol": {
1537
+ "UFixedLib": [
1538
+ {
1539
+ "length": 20,
1540
+ "start": 9732
1541
+ },
1542
+ {
1543
+ "length": 20,
1544
+ "start": 9865
1545
+ }
1546
+ ]
1547
+ },
1548
+ "contracts/types/Version.sol": {
1549
+ "VersionLib": [
1550
+ {
1551
+ "length": 20,
1552
+ "start": 2974
1553
+ },
1554
+ {
1555
+ "length": 20,
1556
+ "start": 5547
1557
+ },
1558
+ {
1559
+ "length": 20,
1560
+ "start": 16513
1561
+ },
1562
+ {
1563
+ "length": 20,
1564
+ "start": 17651
1565
+ }
1566
+ ],
1567
+ "VersionPartLib": [
1568
+ {
1569
+ "length": 20,
1570
+ "start": 10927
1571
+ }
1572
+ ]
1573
+ }
1574
+ }
1575
+ }