@etherisc/gif-next 0.0.2-ceb30b2-601 → 0.0.2-cf22d7b-845

Sign up to get free protection for your applications and to get access to all the features.
Files changed (514) hide show
  1. package/README.md +2 -1
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +239 -155
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +118 -99
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +39 -307
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +254 -2310
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +72 -22
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +397 -2818
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +204 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +507 -350
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +147 -193
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +113 -103
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -1
  36. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  42. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  45. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  46. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  47. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  48. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  49. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  50. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  51. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  52. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +45 -56
  53. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  54. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +200 -97
  55. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  56. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +144 -156
  57. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  58. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +305 -103
  59. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  60. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  61. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  62. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  63. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  64. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  65. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  66. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  67. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  68. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  69. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  70. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  71. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  72. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
  73. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  74. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +30 -2
  75. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  76. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +127 -71
  77. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  78. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +53 -136
  79. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  80. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +284 -106
  81. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  82. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +1 -56
  83. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  84. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  85. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  86. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  87. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  88. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  89. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  91. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  92. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  93. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  94. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  95. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  96. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  97. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  98. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  99. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  100. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
  101. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +304 -52
  103. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  104. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  105. package/artifacts/contracts/registry/Registry.sol/Registry.json +415 -43
  106. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  107. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  108. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  109. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +337 -72
  110. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +93 -41
  112. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +824 -91
  114. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  115. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  116. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  117. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
  118. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  119. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  120. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  121. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  122. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  123. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  124. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  126. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  128. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  129. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +143 -76
  130. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  131. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  132. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  134. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +17 -122
  136. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  137. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  138. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  139. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  140. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  142. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  143. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +114 -75
  144. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  146. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  148. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  149. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  150. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  152. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  153. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  154. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  155. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +45 -3
  156. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  157. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  158. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  159. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  160. package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
  161. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  162. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  163. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  164. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  165. package/artifacts/contracts/{components/Product.sol/Product.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +170 -288
  166. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  167. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  168. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  169. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  170. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  171. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  172. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
  174. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  175. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +56 -7
  176. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  177. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -22
  178. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
  180. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  181. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  182. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  183. package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
  184. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  185. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  186. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  187. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  188. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  189. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  190. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  191. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  192. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  193. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  194. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  195. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  196. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  197. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  198. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  199. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  200. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  201. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  202. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  203. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  204. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  205. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  206. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  207. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  208. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  209. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  210. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  211. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  212. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  213. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  214. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  215. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  216. package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
  217. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  218. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  219. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  220. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  221. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  222. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  223. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  224. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  225. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  226. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  227. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  228. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  229. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  230. package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
  231. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  232. package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
  233. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  234. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  235. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  236. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  237. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  238. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  239. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  240. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  241. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  242. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +5 -5
  243. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  244. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  245. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  246. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  247. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  248. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  249. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  250. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  251. package/contracts/{components → distribution}/Distribution.sol +41 -64
  252. package/contracts/distribution/DistributionService.sol +298 -0
  253. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  254. package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
  255. package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
  256. package/contracts/instance/BundleManager.sol +5 -5
  257. package/contracts/instance/IInstance.sol +45 -70
  258. package/contracts/instance/IInstanceService.sol +29 -11
  259. package/contracts/instance/Instance.sol +112 -195
  260. package/contracts/instance/InstanceAdmin.sol +331 -0
  261. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  262. package/contracts/instance/InstanceReader.sol +106 -58
  263. package/contracts/instance/InstanceService.sol +166 -288
  264. package/contracts/instance/InstanceServiceManager.sol +11 -21
  265. package/contracts/instance/InstanceStore.sol +260 -0
  266. package/contracts/instance/base/BalanceStore.sol +118 -0
  267. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
  268. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +6 -6
  269. package/contracts/instance/module/IAccess.sol +4 -12
  270. package/contracts/instance/module/IBundle.sol +6 -9
  271. package/contracts/instance/module/IComponents.sol +21 -10
  272. package/contracts/instance/module/IDistribution.sol +7 -6
  273. package/contracts/instance/module/IPolicy.sol +20 -14
  274. package/contracts/instance/module/IRisk.sol +1 -1
  275. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  276. package/contracts/pool/BundleService.sol +296 -0
  277. package/contracts/pool/BundleServiceManager.sol +42 -0
  278. package/contracts/{instance/service → pool}/IBundleService.sol +33 -29
  279. package/contracts/{components → pool}/IPoolComponent.sol +16 -17
  280. package/contracts/{instance/service → pool}/IPoolService.sol +57 -51
  281. package/contracts/{components → pool}/Pool.sol +52 -55
  282. package/contracts/pool/PoolService.sol +453 -0
  283. package/contracts/pool/PoolServiceManager.sol +42 -0
  284. package/contracts/product/ApplicationService.sol +254 -0
  285. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  286. package/contracts/{instance/service → product}/ClaimService.sol +167 -86
  287. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  288. package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
  289. package/contracts/{instance/service → product}/IClaimService.sol +18 -15
  290. package/contracts/{instance/service → product}/IPolicyService.sol +24 -26
  291. package/contracts/product/IPricingService.sol +39 -0
  292. package/contracts/product/IProductComponent.sol +42 -0
  293. package/contracts/product/IProductService.sol +33 -0
  294. package/contracts/product/PolicyService.sol +475 -0
  295. package/contracts/product/PolicyServiceManager.sol +42 -0
  296. package/contracts/product/PricingService.sol +301 -0
  297. package/contracts/product/PricingServiceManager.sol +42 -0
  298. package/contracts/{components → product}/Product.sol +83 -77
  299. package/contracts/product/ProductService.sol +124 -0
  300. package/contracts/product/ProductServiceManager.sol +42 -0
  301. package/contracts/registry/ChainNft.sol +8 -1
  302. package/contracts/registry/IRegistry.sol +44 -21
  303. package/contracts/registry/IRegistryService.sol +37 -34
  304. package/contracts/registry/Registry.sol +191 -82
  305. package/contracts/registry/RegistryAdmin.sol +237 -0
  306. package/contracts/registry/RegistryService.sol +66 -82
  307. package/contracts/registry/RegistryServiceManager.sol +21 -25
  308. package/contracts/registry/ReleaseManager.sol +458 -183
  309. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  310. package/contracts/registry/TokenRegistry.sol +261 -62
  311. package/contracts/shared/AccessManagerCustom.sol +736 -0
  312. package/contracts/shared/AccessManagerExtended.sol +470 -0
  313. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  314. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  315. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  316. package/contracts/shared/Component.sol +278 -0
  317. package/contracts/shared/ComponentService.sol +596 -0
  318. package/contracts/shared/ComponentServiceManager.sol +35 -0
  319. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  320. package/contracts/shared/ERC165.sol +1 -1
  321. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  322. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  323. package/contracts/{components → shared}/IComponent.sol +23 -29
  324. package/contracts/shared/IComponentService.sol +91 -0
  325. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  326. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  327. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  328. package/contracts/shared/INftOwnable.sol +2 -2
  329. package/contracts/shared/IPolicyHolder.sol +14 -7
  330. package/contracts/shared/IService.sol +2 -2
  331. package/contracts/shared/IVersionable.sol +1 -1
  332. package/contracts/shared/InitializableCustom.sol +177 -0
  333. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  334. package/contracts/shared/KeyValueStore.sol +127 -0
  335. package/contracts/{instance/base → shared}/Lifecycle.sol +9 -5
  336. package/contracts/shared/NftIdSetManager.sol +65 -0
  337. package/contracts/shared/NftOwnable.sol +3 -14
  338. package/contracts/shared/PolicyHolder.sol +32 -17
  339. package/contracts/shared/ProxyManager.sol +34 -4
  340. package/contracts/shared/Registerable.sol +3 -3
  341. package/contracts/shared/Service.sol +9 -4
  342. package/contracts/shared/TokenHandler.sol +27 -2
  343. package/contracts/shared/Versionable.sol +1 -1
  344. package/contracts/staking/IStaking.sol +168 -0
  345. package/contracts/staking/IStakingService.sol +149 -0
  346. package/contracts/staking/StakeManagerLib.sol +179 -0
  347. package/contracts/staking/Staking.sol +551 -0
  348. package/contracts/staking/StakingManager.sol +54 -0
  349. package/contracts/staking/StakingReader.sol +187 -0
  350. package/contracts/staking/StakingService.sol +406 -0
  351. package/contracts/staking/StakingServiceManager.sol +45 -0
  352. package/contracts/staking/StakingStore.sol +572 -0
  353. package/contracts/staking/TargetManagerLib.sol +207 -0
  354. package/contracts/{types → type}/AddressSet.sol +1 -1
  355. package/contracts/{types → type}/Amount.sol +59 -1
  356. package/contracts/{types → type}/Blocknumber.sol +20 -3
  357. package/contracts/{types → type}/Fee.sol +24 -22
  358. package/contracts/{types → type}/NftId.sol +14 -16
  359. package/contracts/{types → type}/NftIdSet.sol +2 -2
  360. package/contracts/{types → type}/ObjectType.sol +15 -3
  361. package/contracts/{types → type}/Referral.sol +1 -1
  362. package/contracts/{types → type}/RiskId.sol +1 -1
  363. package/contracts/{types → type}/RoleId.sol +55 -9
  364. package/contracts/{types → type}/Seconds.sol +27 -0
  365. package/contracts/{types → type}/StateId.sol +17 -4
  366. package/contracts/{types → type}/Version.sol +1 -1
  367. package/package.json +3 -3
  368. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  369. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  370. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  371. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  372. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  373. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  374. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  375. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  376. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  377. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  378. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  379. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  380. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  381. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  382. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  383. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  384. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  385. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  386. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  387. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  388. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  389. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  390. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +0 -10
  391. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  392. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  393. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  394. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1092
  395. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  396. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -672
  397. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  398. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1313
  399. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  400. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -712
  401. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  402. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1316
  403. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  404. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -724
  405. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  406. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  407. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  408. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  409. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  410. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  411. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  412. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  413. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  414. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  415. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  416. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  417. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1153
  418. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  419. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -676
  420. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  421. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1598
  422. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  423. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -696
  424. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  425. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  426. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  427. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  428. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  429. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  430. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  431. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  432. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  433. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  434. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  435. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  436. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  437. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  438. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  439. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  440. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  441. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  442. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  443. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  444. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  445. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  446. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  447. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  448. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  449. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  450. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  451. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  452. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  453. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  454. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  455. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  456. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  457. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  458. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  459. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  460. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  461. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  462. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  463. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  464. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  465. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  466. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  467. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  468. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  469. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  470. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  471. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  472. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  473. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  474. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  475. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  476. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  477. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  478. package/contracts/components/Component.sol +0 -253
  479. package/contracts/components/IProductComponent.sol +0 -40
  480. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  481. package/contracts/instance/InstanceAccessManager.sol +0 -527
  482. package/contracts/instance/base/ComponentService.sol +0 -130
  483. package/contracts/instance/base/KeyValueStore.sol +0 -149
  484. package/contracts/instance/module/ISetup.sol +0 -33
  485. package/contracts/instance/module/ITreasury.sol +0 -23
  486. package/contracts/instance/service/ApplicationService.sol +0 -356
  487. package/contracts/instance/service/BundleService.sol +0 -443
  488. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  489. package/contracts/instance/service/DistributionService.sol +0 -431
  490. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  491. package/contracts/instance/service/IProductService.sol +0 -40
  492. package/contracts/instance/service/PolicyService.sol +0 -358
  493. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  494. package/contracts/instance/service/PoolService.sol +0 -349
  495. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  496. package/contracts/instance/service/ProductService.sol +0 -210
  497. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  498. package/contracts/registry/RegistryAccessManager.sol +0 -216
  499. package/contracts/shared/ContractDeployerLib.sol +0 -72
  500. package/contracts/test/TestFee.sol +0 -25
  501. package/contracts/test/TestRegisterable.sol +0 -18
  502. package/contracts/test/TestRoleId.sol +0 -14
  503. package/contracts/test/TestService.sol +0 -25
  504. package/contracts/test/TestVersion.sol +0 -44
  505. package/contracts/test/TestVersionable.sol +0 -17
  506. package/contracts/test/Usdc.sol +0 -26
  507. package/contracts/types/ChainId.sol +0 -38
  508. package/contracts/types/NumberId.sol +0 -52
  509. /package/contracts/{types → type}/ClaimId.sol +0 -0
  510. /package/contracts/{types → type}/DistributorType.sol +0 -0
  511. /package/contracts/{types → type}/Key32.sol +0 -0
  512. /package/contracts/{types → type}/PayoutId.sol +0 -0
  513. /package/contracts/{types → type}/Timestamp.sol +0 -0
  514. /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -13,6 +13,25 @@
13
13
  "name": "ErrorInstanceReaderInstanceAddressZero",
14
14
  "type": "error"
15
15
  },
16
+ {
17
+ "inputs": [
18
+ {
19
+ "internalType": "NftId",
20
+ "name": "targetNftId",
21
+ "type": "uint96"
22
+ }
23
+ ],
24
+ "name": "getBalanceAmount",
25
+ "outputs": [
26
+ {
27
+ "internalType": "Amount",
28
+ "name": "",
29
+ "type": "uint96"
30
+ }
31
+ ],
32
+ "stateMutability": "view",
33
+ "type": "function"
34
+ },
16
35
  {
17
36
  "inputs": [
18
37
  {
@@ -52,21 +71,6 @@
52
71
  "name": "filter",
53
72
  "type": "bytes"
54
73
  },
55
- {
56
- "internalType": "Amount",
57
- "name": "capitalAmount",
58
- "type": "uint96"
59
- },
60
- {
61
- "internalType": "Amount",
62
- "name": "lockedAmount",
63
- "type": "uint96"
64
- },
65
- {
66
- "internalType": "Amount",
67
- "name": "feeAmount",
68
- "type": "uint96"
69
- },
70
74
  {
71
75
  "internalType": "Seconds",
72
76
  "name": "lifetime",
@@ -130,7 +134,12 @@
130
134
  },
131
135
  {
132
136
  "internalType": "bytes",
133
- "name": "data",
137
+ "name": "submissionData",
138
+ "type": "bytes"
139
+ },
140
+ {
141
+ "internalType": "bytes",
142
+ "name": "processData",
134
143
  "type": "bytes"
135
144
  },
136
145
  {
@@ -175,7 +184,7 @@
175
184
  "inputs": [
176
185
  {
177
186
  "internalType": "NftId",
178
- "name": "poolNftId",
187
+ "name": "componentNftId",
179
188
  "type": "uint96"
180
189
  }
181
190
  ],
@@ -188,6 +197,11 @@
188
197
  "name": "name",
189
198
  "type": "string"
190
199
  },
200
+ {
201
+ "internalType": "NftId",
202
+ "name": "productNftId",
203
+ "type": "uint96"
204
+ },
191
205
  {
192
206
  "internalType": "contract IERC20Metadata",
193
207
  "name": "token",
@@ -203,16 +217,6 @@
203
217
  "name": "wallet",
204
218
  "type": "address"
205
219
  },
206
- {
207
- "internalType": "Amount",
208
- "name": "balanceAmount",
209
- "type": "uint96"
210
- },
211
- {
212
- "internalType": "Amount",
213
- "name": "feeAmount",
214
- "type": "uint96"
215
- },
216
220
  {
217
221
  "internalType": "bytes",
218
222
  "name": "data",
@@ -251,81 +255,6 @@
251
255
  "stateMutability": "view",
252
256
  "type": "function"
253
257
  },
254
- {
255
- "inputs": [
256
- {
257
- "internalType": "NftId",
258
- "name": "distributionNftId",
259
- "type": "uint96"
260
- }
261
- ],
262
- "name": "getDistributionSetupInfo",
263
- "outputs": [
264
- {
265
- "components": [
266
- {
267
- "internalType": "NftId",
268
- "name": "productNftId",
269
- "type": "uint96"
270
- },
271
- {
272
- "internalType": "contract TokenHandler",
273
- "name": "tokenHandler",
274
- "type": "address"
275
- },
276
- {
277
- "components": [
278
- {
279
- "internalType": "UFixed",
280
- "name": "fractionalFee",
281
- "type": "uint256"
282
- },
283
- {
284
- "internalType": "uint256",
285
- "name": "fixedFee",
286
- "type": "uint256"
287
- }
288
- ],
289
- "internalType": "struct Fee",
290
- "name": "minDistributionOwnerFee",
291
- "type": "tuple"
292
- },
293
- {
294
- "components": [
295
- {
296
- "internalType": "UFixed",
297
- "name": "fractionalFee",
298
- "type": "uint256"
299
- },
300
- {
301
- "internalType": "uint256",
302
- "name": "fixedFee",
303
- "type": "uint256"
304
- }
305
- ],
306
- "internalType": "struct Fee",
307
- "name": "distributionFee",
308
- "type": "tuple"
309
- },
310
- {
311
- "internalType": "address",
312
- "name": "wallet",
313
- "type": "address"
314
- },
315
- {
316
- "internalType": "uint256",
317
- "name": "sumDistributionOwnerFees",
318
- "type": "uint256"
319
- }
320
- ],
321
- "internalType": "struct ISetup.DistributionSetupInfo",
322
- "name": "info",
323
- "type": "tuple"
324
- }
325
- ],
326
- "stateMutability": "view",
327
- "type": "function"
328
- },
329
258
  {
330
259
  "inputs": [
331
260
  {
@@ -354,14 +283,14 @@
354
283
  "type": "bytes"
355
284
  },
356
285
  {
357
- "internalType": "uint256",
358
- "name": "sumCommisions",
359
- "type": "uint256"
286
+ "internalType": "Amount",
287
+ "name": "commissionAmount",
288
+ "type": "uint96"
360
289
  },
361
290
  {
362
- "internalType": "uint256",
291
+ "internalType": "uint32",
363
292
  "name": "numPoliciesSold",
364
- "type": "uint256"
293
+ "type": "uint32"
365
294
  }
366
295
  ],
367
296
  "internalType": "struct IDistribution.DistributorInfo",
@@ -438,6 +367,25 @@
438
367
  "stateMutability": "view",
439
368
  "type": "function"
440
369
  },
370
+ {
371
+ "inputs": [
372
+ {
373
+ "internalType": "NftId",
374
+ "name": "targetNftId",
375
+ "type": "uint96"
376
+ }
377
+ ],
378
+ "name": "getFeeAmount",
379
+ "outputs": [
380
+ {
381
+ "internalType": "Amount",
382
+ "name": "",
383
+ "type": "uint96"
384
+ }
385
+ ],
386
+ "stateMutability": "view",
387
+ "type": "function"
388
+ },
441
389
  {
442
390
  "inputs": [],
443
391
  "name": "getInstance",
@@ -464,6 +412,25 @@
464
412
  "stateMutability": "view",
465
413
  "type": "function"
466
414
  },
415
+ {
416
+ "inputs": [
417
+ {
418
+ "internalType": "NftId",
419
+ "name": "targetNftId",
420
+ "type": "uint96"
421
+ }
422
+ ],
423
+ "name": "getLockedAmount",
424
+ "outputs": [
425
+ {
426
+ "internalType": "Amount",
427
+ "name": "",
428
+ "type": "uint96"
429
+ }
430
+ ],
431
+ "stateMutability": "view",
432
+ "type": "function"
433
+ },
467
434
  {
468
435
  "inputs": [
469
436
  {
@@ -486,11 +453,6 @@
486
453
  "name": "state",
487
454
  "type": "uint8"
488
455
  },
489
- {
490
- "internalType": "address",
491
- "name": "updatedBy",
492
- "type": "address"
493
- },
494
456
  {
495
457
  "internalType": "Blocknumber",
496
458
  "name": "updatedIn",
@@ -510,6 +472,76 @@
510
472
  "stateMutability": "view",
511
473
  "type": "function"
512
474
  },
475
+ {
476
+ "inputs": [
477
+ {
478
+ "internalType": "NftId",
479
+ "name": "policyNftId",
480
+ "type": "uint96"
481
+ },
482
+ {
483
+ "internalType": "PayoutId",
484
+ "name": "payoutId",
485
+ "type": "uint24"
486
+ }
487
+ ],
488
+ "name": "getPayoutInfo",
489
+ "outputs": [
490
+ {
491
+ "components": [
492
+ {
493
+ "internalType": "ClaimId",
494
+ "name": "claimId",
495
+ "type": "uint16"
496
+ },
497
+ {
498
+ "internalType": "Amount",
499
+ "name": "amount",
500
+ "type": "uint96"
501
+ },
502
+ {
503
+ "internalType": "bytes",
504
+ "name": "data",
505
+ "type": "bytes"
506
+ },
507
+ {
508
+ "internalType": "Timestamp",
509
+ "name": "paidAt",
510
+ "type": "uint40"
511
+ }
512
+ ],
513
+ "internalType": "struct IPolicy.PayoutInfo",
514
+ "name": "info",
515
+ "type": "tuple"
516
+ }
517
+ ],
518
+ "stateMutability": "view",
519
+ "type": "function"
520
+ },
521
+ {
522
+ "inputs": [
523
+ {
524
+ "internalType": "NftId",
525
+ "name": "policyNftId",
526
+ "type": "uint96"
527
+ },
528
+ {
529
+ "internalType": "PayoutId",
530
+ "name": "payoutId",
531
+ "type": "uint24"
532
+ }
533
+ ],
534
+ "name": "getPayoutState",
535
+ "outputs": [
536
+ {
537
+ "internalType": "StateId",
538
+ "name": "state",
539
+ "type": "uint8"
540
+ }
541
+ ],
542
+ "stateMutability": "view",
543
+ "type": "function"
544
+ },
513
545
  {
514
546
  "inputs": [
515
547
  {
@@ -543,19 +575,19 @@
543
575
  "type": "bytes8"
544
576
  },
545
577
  {
546
- "internalType": "uint256",
578
+ "internalType": "Amount",
547
579
  "name": "sumInsuredAmount",
548
- "type": "uint256"
580
+ "type": "uint96"
549
581
  },
550
582
  {
551
- "internalType": "uint256",
583
+ "internalType": "Amount",
552
584
  "name": "premiumAmount",
553
- "type": "uint256"
585
+ "type": "uint96"
554
586
  },
555
587
  {
556
- "internalType": "uint256",
588
+ "internalType": "Amount",
557
589
  "name": "premiumPaidAmount",
558
- "type": "uint256"
590
+ "type": "uint96"
559
591
  },
560
592
  {
561
593
  "internalType": "Seconds",
@@ -569,7 +601,7 @@
569
601
  },
570
602
  {
571
603
  "internalType": "bytes",
572
- "name": "policyData",
604
+ "name": "processData",
573
605
  "type": "bytes"
574
606
  },
575
607
  {
@@ -639,49 +671,69 @@
639
671
  "inputs": [
640
672
  {
641
673
  "internalType": "NftId",
642
- "name": "productNftId",
674
+ "name": "poolNftId",
643
675
  "type": "uint96"
644
676
  }
645
677
  ],
646
- "name": "getProductSetupInfo",
678
+ "name": "getPoolInfo",
647
679
  "outputs": [
648
680
  {
649
681
  "components": [
650
682
  {
651
- "internalType": "contract IERC20Metadata",
652
- "name": "token",
653
- "type": "address"
683
+ "internalType": "NftId",
684
+ "name": "productNftId",
685
+ "type": "uint96"
654
686
  },
655
687
  {
656
- "internalType": "contract TokenHandler",
657
- "name": "tokenHandler",
658
- "type": "address"
688
+ "internalType": "RoleId",
689
+ "name": "bundleOwnerRole",
690
+ "type": "uint64"
659
691
  },
660
692
  {
661
- "internalType": "NftId",
662
- "name": "distributionNftId",
693
+ "internalType": "Amount",
694
+ "name": "maxCapitalAmount",
663
695
  "type": "uint96"
664
696
  },
665
697
  {
666
- "internalType": "NftId",
667
- "name": "poolNftId",
668
- "type": "uint96"
698
+ "internalType": "bool",
699
+ "name": "isInterceptingBundleTransfers",
700
+ "type": "bool"
669
701
  },
670
702
  {
671
- "components": [
672
- {
673
- "internalType": "UFixed",
674
- "name": "fractionalFee",
675
- "type": "uint256"
676
- },
677
- {
678
- "internalType": "uint256",
679
- "name": "fixedFee",
680
- "type": "uint256"
681
- }
703
+ "internalType": "bool",
704
+ "name": "isExternallyManaged",
705
+ "type": "bool"
706
+ },
707
+ {
708
+ "internalType": "bool",
709
+ "name": "isVerifyingApplications",
710
+ "type": "bool"
711
+ },
712
+ {
713
+ "internalType": "UFixed",
714
+ "name": "collateralizationLevel",
715
+ "type": "uint256"
716
+ },
717
+ {
718
+ "internalType": "UFixed",
719
+ "name": "retentionLevel",
720
+ "type": "uint256"
721
+ },
722
+ {
723
+ "components": [
724
+ {
725
+ "internalType": "UFixed",
726
+ "name": "fractionalFee",
727
+ "type": "uint256"
728
+ },
729
+ {
730
+ "internalType": "uint256",
731
+ "name": "fixedFee",
732
+ "type": "uint256"
733
+ }
682
734
  ],
683
735
  "internalType": "struct Fee",
684
- "name": "productFee",
736
+ "name": "poolFee",
685
737
  "type": "tuple"
686
738
  },
687
739
  {
@@ -698,108 +750,28 @@
698
750
  }
699
751
  ],
700
752
  "internalType": "struct Fee",
701
- "name": "processingFee",
753
+ "name": "stakingFee",
702
754
  "type": "tuple"
703
755
  },
704
756
  {
705
- "internalType": "bool",
706
- "name": "isIntercepting",
707
- "type": "bool"
708
- },
709
- {
710
- "internalType": "address",
711
- "name": "wallet",
712
- "type": "address"
713
- }
714
- ],
715
- "internalType": "struct ISetup.ProductSetupInfo",
716
- "name": "info",
717
- "type": "tuple"
718
- }
719
- ],
720
- "stateMutability": "view",
721
- "type": "function"
722
- },
723
- {
724
- "inputs": [
725
- {
726
- "internalType": "ReferralId",
727
- "name": "referralId",
728
- "type": "bytes8"
729
- }
730
- ],
731
- "name": "getReferralInfo",
732
- "outputs": [
733
- {
734
- "components": [
735
- {
736
- "internalType": "NftId",
737
- "name": "distributorNftId",
738
- "type": "uint96"
739
- },
740
- {
741
- "internalType": "string",
742
- "name": "referralCode",
743
- "type": "string"
744
- },
745
- {
746
- "internalType": "UFixed",
747
- "name": "discountPercentage",
748
- "type": "uint256"
749
- },
750
- {
751
- "internalType": "uint32",
752
- "name": "maxReferrals",
753
- "type": "uint32"
754
- },
755
- {
756
- "internalType": "uint32",
757
- "name": "usedReferrals",
758
- "type": "uint32"
759
- },
760
- {
761
- "internalType": "Timestamp",
762
- "name": "expiryAt",
763
- "type": "uint40"
764
- },
765
- {
766
- "internalType": "bytes",
767
- "name": "data",
768
- "type": "bytes"
769
- }
770
- ],
771
- "internalType": "struct IDistribution.ReferralInfo",
772
- "name": "info",
773
- "type": "tuple"
774
- }
775
- ],
776
- "stateMutability": "view",
777
- "type": "function"
778
- },
779
- {
780
- "inputs": [
781
- {
782
- "internalType": "RiskId",
783
- "name": "riskId",
784
- "type": "bytes8"
785
- }
786
- ],
787
- "name": "getRiskInfo",
788
- "outputs": [
789
- {
790
- "components": [
791
- {
792
- "internalType": "NftId",
793
- "name": "productNftId",
794
- "type": "uint96"
795
- },
796
- {
797
- "internalType": "bytes",
798
- "name": "data",
799
- "type": "bytes"
757
+ "components": [
758
+ {
759
+ "internalType": "UFixed",
760
+ "name": "fractionalFee",
761
+ "type": "uint256"
762
+ },
763
+ {
764
+ "internalType": "uint256",
765
+ "name": "fixedFee",
766
+ "type": "uint256"
767
+ }
768
+ ],
769
+ "internalType": "struct Fee",
770
+ "name": "performanceFee",
771
+ "type": "tuple"
800
772
  }
801
773
  ],
802
- "internalType": "struct IRisk.RiskInfo",
774
+ "internalType": "struct IComponents.PoolInfo",
803
775
  "name": "info",
804
776
  "type": "tuple"
805
777
  }
@@ -815,39 +787,10 @@
815
787
  "type": "uint96"
816
788
  }
817
789
  ],
818
- "name": "getTokenHandler",
819
- "outputs": [
820
- {
821
- "internalType": "address",
822
- "name": "tokenHandler",
823
- "type": "address"
824
- }
825
- ],
826
- "stateMutability": "view",
827
- "type": "function"
828
- },
829
- {
830
- "inputs": [
831
- {
832
- "internalType": "NftId",
833
- "name": "productNftId",
834
- "type": "uint96"
835
- }
836
- ],
837
- "name": "getTreasuryInfo",
790
+ "name": "getProductInfo",
838
791
  "outputs": [
839
792
  {
840
793
  "components": [
841
- {
842
- "internalType": "contract IERC20Metadata",
843
- "name": "token",
844
- "type": "address"
845
- },
846
- {
847
- "internalType": "contract TokenHandler",
848
- "name": "tokenHandler",
849
- "type": "address"
850
- },
851
794
  {
852
795
  "internalType": "NftId",
853
796
  "name": "distributionNftId",
@@ -872,7 +815,7 @@
872
815
  }
873
816
  ],
874
817
  "internalType": "struct Fee",
875
- "name": "distributionFee",
818
+ "name": "productFee",
876
819
  "type": "tuple"
877
820
  },
878
821
  {
@@ -889,7 +832,7 @@
889
832
  }
890
833
  ],
891
834
  "internalType": "struct Fee",
892
- "name": "productFee",
835
+ "name": "processingFee",
893
836
  "type": "tuple"
894
837
  },
895
838
  {
@@ -906,7 +849,24 @@
906
849
  }
907
850
  ],
908
851
  "internalType": "struct Fee",
909
- "name": "processingFee",
852
+ "name": "distributionFee",
853
+ "type": "tuple"
854
+ },
855
+ {
856
+ "components": [
857
+ {
858
+ "internalType": "UFixed",
859
+ "name": "fractionalFee",
860
+ "type": "uint256"
861
+ },
862
+ {
863
+ "internalType": "uint256",
864
+ "name": "fixedFee",
865
+ "type": "uint256"
866
+ }
867
+ ],
868
+ "internalType": "struct Fee",
869
+ "name": "minDistributionOwnerFee",
910
870
  "type": "tuple"
911
871
  },
912
872
  {
@@ -961,7 +921,7 @@
961
921
  "type": "tuple"
962
922
  }
963
923
  ],
964
- "internalType": "struct ITreasury.TreasuryInfo",
924
+ "internalType": "struct IComponents.ProductInfo",
965
925
  "name": "info",
966
926
  "type": "tuple"
967
927
  }
@@ -969,6 +929,112 @@
969
929
  "stateMutability": "view",
970
930
  "type": "function"
971
931
  },
932
+ {
933
+ "inputs": [
934
+ {
935
+ "internalType": "ReferralId",
936
+ "name": "referralId",
937
+ "type": "bytes8"
938
+ }
939
+ ],
940
+ "name": "getReferralInfo",
941
+ "outputs": [
942
+ {
943
+ "components": [
944
+ {
945
+ "internalType": "NftId",
946
+ "name": "distributorNftId",
947
+ "type": "uint96"
948
+ },
949
+ {
950
+ "internalType": "string",
951
+ "name": "referralCode",
952
+ "type": "string"
953
+ },
954
+ {
955
+ "internalType": "UFixed",
956
+ "name": "discountPercentage",
957
+ "type": "uint256"
958
+ },
959
+ {
960
+ "internalType": "uint32",
961
+ "name": "maxReferrals",
962
+ "type": "uint32"
963
+ },
964
+ {
965
+ "internalType": "uint32",
966
+ "name": "usedReferrals",
967
+ "type": "uint32"
968
+ },
969
+ {
970
+ "internalType": "Timestamp",
971
+ "name": "expiryAt",
972
+ "type": "uint40"
973
+ },
974
+ {
975
+ "internalType": "bytes",
976
+ "name": "data",
977
+ "type": "bytes"
978
+ }
979
+ ],
980
+ "internalType": "struct IDistribution.ReferralInfo",
981
+ "name": "info",
982
+ "type": "tuple"
983
+ }
984
+ ],
985
+ "stateMutability": "view",
986
+ "type": "function"
987
+ },
988
+ {
989
+ "inputs": [
990
+ {
991
+ "internalType": "RiskId",
992
+ "name": "riskId",
993
+ "type": "bytes8"
994
+ }
995
+ ],
996
+ "name": "getRiskInfo",
997
+ "outputs": [
998
+ {
999
+ "components": [
1000
+ {
1001
+ "internalType": "NftId",
1002
+ "name": "productNftId",
1003
+ "type": "uint96"
1004
+ },
1005
+ {
1006
+ "internalType": "bytes",
1007
+ "name": "data",
1008
+ "type": "bytes"
1009
+ }
1010
+ ],
1011
+ "internalType": "struct IRisk.RiskInfo",
1012
+ "name": "info",
1013
+ "type": "tuple"
1014
+ }
1015
+ ],
1016
+ "stateMutability": "view",
1017
+ "type": "function"
1018
+ },
1019
+ {
1020
+ "inputs": [
1021
+ {
1022
+ "internalType": "NftId",
1023
+ "name": "componentNftId",
1024
+ "type": "uint96"
1025
+ }
1026
+ ],
1027
+ "name": "getTokenHandler",
1028
+ "outputs": [
1029
+ {
1030
+ "internalType": "address",
1031
+ "name": "tokenHandler",
1032
+ "type": "address"
1033
+ }
1034
+ ],
1035
+ "stateMutability": "view",
1036
+ "type": "function"
1037
+ },
972
1038
  {
973
1039
  "inputs": [
974
1040
  {
@@ -982,6 +1048,25 @@
982
1048
  "stateMutability": "nonpayable",
983
1049
  "type": "function"
984
1050
  },
1051
+ {
1052
+ "inputs": [
1053
+ {
1054
+ "internalType": "NftId",
1055
+ "name": "policyNftId",
1056
+ "type": "uint96"
1057
+ }
1058
+ ],
1059
+ "name": "policyIsCloseable",
1060
+ "outputs": [
1061
+ {
1062
+ "internalType": "bool",
1063
+ "name": "isCloseable",
1064
+ "type": "bool"
1065
+ }
1066
+ ],
1067
+ "stateMutability": "view",
1068
+ "type": "function"
1069
+ },
985
1070
  {
986
1071
  "inputs": [
987
1072
  {
@@ -1001,6 +1086,25 @@
1001
1086
  "stateMutability": "pure",
1002
1087
  "type": "function"
1003
1088
  },
1089
+ {
1090
+ "inputs": [
1091
+ {
1092
+ "internalType": "NftId",
1093
+ "name": "componentNftId",
1094
+ "type": "uint96"
1095
+ }
1096
+ ],
1097
+ "name": "toComponentKey",
1098
+ "outputs": [
1099
+ {
1100
+ "internalType": "Key32",
1101
+ "name": "",
1102
+ "type": "bytes32"
1103
+ }
1104
+ ],
1105
+ "stateMutability": "pure",
1106
+ "type": "function"
1107
+ },
1004
1108
  {
1005
1109
  "inputs": [
1006
1110
  {
@@ -1139,25 +1243,6 @@
1139
1243
  "stateMutability": "pure",
1140
1244
  "type": "function"
1141
1245
  },
1142
- {
1143
- "inputs": [
1144
- {
1145
- "internalType": "NftId",
1146
- "name": "productNftId",
1147
- "type": "uint96"
1148
- }
1149
- ],
1150
- "name": "toTreasuryKey",
1151
- "outputs": [
1152
- {
1153
- "internalType": "Key32",
1154
- "name": "",
1155
- "type": "bytes32"
1156
- }
1157
- ],
1158
- "stateMutability": "pure",
1159
- "type": "function"
1160
- },
1161
1246
  {
1162
1247
  "inputs": [
1163
1248
  {
@@ -1183,224 +1268,296 @@
1183
1268
  "type": "function"
1184
1269
  }
1185
1270
  ],
1186
- "bytecode": "0x608060405234801561001057600080fd5b5061312f806100206000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806390af706411610104578063c4d66de8116100a2578063de7b5d1411610071578063de7b5d141461055a578063f0ea17c314610570578063f2b246c314610590578063f7f318d3146105b057600080fd5b8063c4d66de814610501578063d06458c614610516578063d4cda0d814610536578063dd26287a1461054757600080fd5b8063a5961b4c116100de578063a5961b4c1461042a578063a7ef3d2114610497578063b82d7ef5146104b7578063bd7d9d85146104e157600080fd5b806390af7064146103505780639ad69c6714610370578063a310e2a3146103ff57600080fd5b80634793b4ab116101715780637bfd32171161014b5780637bfd3217146102f75780637e54602a1461030a578063887b1fa91461031d5780639096a1f31461033d57600080fd5b80634793b4ab1461029f57806364eb3a9b146102bf57806378ae9350146102d257600080fd5b806327b1d792116101ad57806327b1d7921461022d57806335898f5d1461024d5780633f093cd61461026057806344aa68361461028c57600080fd5b80631488c845146101d45780631d3be477146101fa57806325d037431461021a575b600080fd5b6101e76101e2366004611b2e565b6105c3565b6040519081526020015b60405180910390f35b61020d610208366004611b7d565b61064b565b6040516101f19190611bea565b6101e7610228366004611c9b565b6107a4565b61024061023b366004611c9b565b61083e565b6040516101f19190611cb8565b6101e761025b366004611c9b565b61091a565b61027361026e366004611e9d565b610947565b6040516001600160c01b031990911681526020016101f1565b6101e761029a366004611f2f565b6109c4565b6102b26102ad366004611c9b565b6109ff565b6040516101f19190611f48565b6101e76102cd366004611c9b565b610aa5565b6102e56102e036600461203b565b610ad2565b60405160ff90911681526020016101f1565b6101e7610305366004611c9b565b610bd1565b6101e7610318366004611c9b565b610bfe565b61033061032b366004611b7d565b610c2b565b6040516101f19190612069565b6102e561034b366004611c9b565b610d54565b61036361035e366004611c9b565b610dd3565b6040516101f1919061209f565b61038361037e366004611c9b565b610e79565b6040516101f1919081516001600160601b031681526020808301516001600160a01b039081168284015260408085015180519185019190915291820151606084015261010083019190606085015180516080860152602081015160a0860152915060808501511660c08401525060a09092015160e09091015290565b61041261040d366004611c9b565b610f1f565b6040516001600160a01b0390911681526020016101f1565b61043d610438366004611f2f565b610fcd565b6040516101f19190815160ff9081168252602080840151909116908201526040808301516001600160a01b03169082015260608083015163ffffffff90811691830191909152608092830151169181019190915260a00190565b6104aa6104a536600461203b565b611061565b6040516101f1919061214c565b6104ca6104c5366004611b7d565b6111be565b6040805192835260ff9091166020830152016101f1565b6104f46104ef366004611c9b565b611466565b6040516101f191906121c0565b61051461050f36600461234e565b61158c565b005b610529610524366004611b7d565b61161b565b6040516101f1919061236b565b6001546001600160a01b0316610412565b6101e7610555366004611c9b565b61178e565b60005461010090046001600160a01b0316610412565b61058361057e366004611c9b565b6117bb565b6040516101f1919061241b565b6105a361059e366004611c9b565b611890565b6040516101f1919061249c565b6101e76105be366004611c9b565b6119d8565b604051631488c84560e01b815260048101839052600082810b60248301529073__$5ac3274b8cf1e01ea223bf093142af05b0$__90631488c84590604401602060405180830381865af415801561061e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610642919061259e565b90505b92915050565b6040805160e08101825260008082526060602083018190529282018190528282018190526080820181905260a082015260c08101919091526001546040516355ee627560e01b81526001600160c01b0319841660048201526000916001600160a01b0316906354f6127f9073__$9f290d768183857d0249ab5bb54619c5ab$__906355ee627590602401602060405180830381865af41580156106f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610716919061259e565b6040518263ffffffff1660e01b815260040161073491815260200190565b600060405180830381865afa158015610751573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077991908101906125fc565b80519091501561079e5780806020019051810190610797919061267b565b9392505050565b50919050565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660655b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044015b602060405180830381865af415801561081a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610645919061259e565b61087c6040518060a0016040528060006001600160c01b03191681526020016000151581526020016060815260200160008152602001600081525090565b6001546000906001600160a01b03166354f6127f61089985610bfe565b6040518263ffffffff1660e01b81526004016108b791815260200190565b600060405180830381865afa1580156108d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108fc91908101906125fc565b80519091501561079e57808060200190518101906107979190612774565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660786107cd565b604051631f849e6b60e11b815260009073__$9f290d768183857d0249ab5bb54619c5ab$__90633f093cd690610983908690869060040161281b565b602060405180830381865af41580156109a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610642919061283d565b604051632255341b60e11b81526004810182905260009073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa6836906024016107fd565b610a07611a05565b6001546000906001600160a01b03166354f6127f610a24856119d8565b6040518263ffffffff1660e01b8152600401610a4291815260200190565b600060405180830381865afa158015610a5f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a8791908101906125fc565b80519091501561079e5780806020019051810190610797919061288a565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660d36107cd565b60008054604051637d56159160e11b815261ffff841660048201526001600160601b03851660248201526101009091046001600160a01b0316906309648a9d9073__$0e0c503522f35343ef1955427c5075b143$__9063faac2b2290604401602060405180830381865af4158015610b4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b72919061259e565b6040518263ffffffff1660e01b8152600401610b9091815260200190565b602060405180830381865afa158015610bad573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064291906129a0565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b038416606e6107cd565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b038416607a6107cd565b6040805180820190915260008152606060208201526001546040516355ee627560e01b81526001600160c01b0319841660048201526000916001600160a01b0316906354f6127f9073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af4158015610caf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd3919061259e565b6040518263ffffffff1660e01b8152600401610cf191815260200190565b600060405180830381865afa158015610d0e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d3691908101906125fc565b80519091501561079e578080602001905181019061079791906129bd565b6000805461010090046001600160a01b03166309648a9d610d7484610aa5565b6040518263ffffffff1660e01b8152600401610d9291815260200190565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064591906129a0565b610ddb611a76565b6001546000906001600160a01b03166354f6127f610df885610bd1565b6040518263ffffffff1660e01b8152600401610e1691815260200190565b600060405180830381865afa158015610e33573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e5b91908101906125fc565b80519091501561079e57808060200190518101906107979190612a47565b610e81611ae6565b6001546000906001600160a01b03166354f6127f610e9e8561091a565b6040518263ffffffff1660e01b8152600401610ebc91815260200190565b600060405180830381865afa158015610ed9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f0191908101906125fc565b80519091501561079e57808060200190518101906107979190612aef565b60015460009081906001600160a01b03166354f6127f610f3e856107a4565b6040518263ffffffff1660e01b8152600401610f5c91815260200190565b600060405180830381865afa158015610f79573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fa191908101906125fc565b80519091501561079e57600081806020019051810190610fc19190612b73565b60200151949350505050565b6040805160a081018252600080825260208201819052818301819052606082018190526080820152600154915163296586d360e21b81526004810184905290916001600160a01b03169063a5961b4c9060240160a060405180830381865afa15801561103d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106459190612c44565b6040805160c0810182526000808252602082018190529181018290526060808201839052608082015260a0810191909152600154604051637d56159160e11b815261ffff841660048201526001600160601b03851660248201526000916001600160a01b0316906354f6127f9073__$0e0c503522f35343ef1955427c5075b143$__9063faac2b2290604401602060405180830381865af415801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e919061259e565b6040518263ffffffff1660e01b815260040161114c91815260200190565b600060405180830381865afa158015611169573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261119191908101906125fc565b8051909150156111b757808060200190518101906111af9190612cbe565b915050610645565b5092915050565b60008060006111cc8461064b565b60a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af415801561122b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124f9190612d85565b156112ce5773__$5ac3274b8cf1e01ea223bf093142af05b0$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561129d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c1919061259e565b60645b9250925050915091565b6113528160a0015173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561131f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113439190612da0565b64ffffffffff90811691161090565b156113cb5773__$5ac3274b8cf1e01ea223bf093142af05b0$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156113a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c4919061259e565b606e6112c4565b806060015163ffffffff16816080015163ffffffff161061145a5773__$5ac3274b8cf1e01ea223bf093142af05b0$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561142f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611453919061259e565b60786112c4565b6040810151600a6112c4565b604080516102208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018190526101208201526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101919091526001546000906001600160a01b03166354f6127f61150b85610aa5565b6040518263ffffffff1660e01b815260040161152991815260200190565b600060405180830381865afa158015611546573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261156e91908101906125fc565b80519091501561079e57808060200190518101906107979190612dc8565b60005460ff16156115b05760405163ae9eff1b60e01b815260040160405180910390fd5b6001600160a01b0381166115d757604051630cc51a5560e21b815260040160405180910390fd5b60008054600180546001600160a01b0319166001600160a01b03909416938417815560ff1961010094909402939093166001600160a81b0319909116179091179055565b61167a60405180610120016040528060608152602001600081526020016000815260200160008152602001600063ffffffff168152602001600063ffffffff168152602001600015158152602001600015158152602001606081525090565b6001546040516355ee627560e01b81526001600160c01b0319841660048201526000916001600160a01b0316906354f6127f9073__$5906aa3f06c54ee09b434647963e1d1ed0$__906355ee627590602401602060405180830381865af41580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d919061259e565b6040518263ffffffff1660e01b815260040161172b91815260200190565b600060405180830381865afa158015611748573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261177091908101906125fc565b80519091501561079e57808060200190518101906107979190612f4f565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b038416608c6107cd565b6040805160e08101825260608082526000602083018190529282018390528082018390526080820183905260a0820183905260c08201526001549091906001600160a01b03166354f6127f61180f8561178e565b6040518263ffffffff1660e01b815260040161182d91815260200190565b600060405180830381865afa15801561184a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261187291908101906125fc565b80519091501561079e57808060200190518101906107979190613046565b61193a604080516101408101825260008082526020808301829052828401829052606083018290528351808501855282815280820183905260808401528351808501855282815280820183905260a08401528351808501855282815280820183905260c08401528351808501855282815280820183905260e08401528351808501855282815280820183905261010084015283518085019094528184528301529061012082015290565b6001546000906001600160a01b03166354f6127f611957856107a4565b6040518263ffffffff1660e01b815260040161197591815260200190565b600060405180830381865afa158015611992573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119ba91908101906125fc565b80519091501561079e57808060200190518101906107979190612b73565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660dc6107cd565b60405180610120016040528060006001600160601b03168152602001611a3e604051806040016040528060008152602001600081525090565b81526060602082018190526000604083018190529082018190526080820181905260a0820181905260c0820181905260e09091015290565b6040805161010081018252600080825260208083018290528284018290526060830182905283518085019094528184528301529060808201905b8152602001611ad2604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b6040518060c0016040528060006001600160601b0316815260200160006001600160a01b03168152602001611ab0604051806040016040528060008152602001600081525090565b60008060408385031215611b4157600080fd5b8235915060208301358060000b8114611b5957600080fd5b809150509250929050565b6001600160c01b031981168114611b7a57600080fd5b50565b600060208284031215611b8f57600080fd5b813561079781611b64565b60005b83811015611bb5578181015183820152602001611b9d565b50506000910152565b60008151808452611bd6816020860160208601611b9a565b601f01601f19169290920160200192915050565b602081526001600160601b0382511660208201526000602083015160e06040840152611c1a610100840182611bbe565b90506040840151606084015263ffffffff60608501511660808401526080840151611c4d60a085018263ffffffff169052565b5060a084015164ffffffffff811660c08501525b5060c0840151838203601f190160e0850152611c7d8282611bbe565b95945050505050565b6001600160601b0381168114611b7a57600080fd5b600060208284031215611cad57600080fd5b813561079781611c86565b602081526001600160401b0360c01b82511660208201526020820151151560408201526000604083015160a06060840152611cf660c0840182611bbe565b905060608401516080840152608084015160a08401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715611d4e57611d4e611d16565b60405290565b60405160a081016001600160401b0381118282101715611d4e57611d4e611d16565b604080519081016001600160401b0381118282101715611d4e57611d4e611d16565b60405161012081016001600160401b0381118282101715611d4e57611d4e611d16565b60405161010081016001600160401b0381118282101715611d4e57611d4e611d16565b60405160c081016001600160401b0381118282101715611d4e57611d4e611d16565b60405161014081016001600160401b0381118282101715611d4e57611d4e611d16565b60405161022081016001600160401b0381118282101715611d4e57611d4e611d16565b604051601f8201601f191681016001600160401b0381118282101715611e6e57611e6e611d16565b604052919050565b60006001600160401b03821115611e8f57611e8f611d16565b50601f01601f191660200190565b60008060408385031215611eb057600080fd5b8235611ebb81611c86565b915060208301356001600160401b03811115611ed657600080fd5b8301601f81018513611ee757600080fd5b8035611efa611ef582611e76565b611e46565b818152866020838501011115611f0f57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215611f4157600080fd5b5035919050565b60208152611f626020820183516001600160601b03169052565b60006020830151611f80604084018280518252602090810151910152565b506040830151610140806080850152611f9d610160850183611bbe565b91506060850151611fb960a08601826001600160601b03169052565b5060808501516001600160601b03811660c08601525060a08501516001600160601b03811660e08601525060c0850151610100611ffe8187018364ffffffffff169052565b60e087015164ffffffffff811661012088015291505b9095015164ffffffffff1693019290925250919050565b61ffff81168114611b7a57600080fd5b6000806040838503121561204e57600080fd5b823561205981611c86565b91506020830135611b598161202b565b602081526001600160601b038251166020820152600060208301516040808401526120976060840182611bbe565b949350505050565b81516001600160a01b039081168252602080840151909116908201526040808301516001600160601b0316908201526060808301516101408301916120ee908401826001600160601b03169052565b50608083015161210b608084018280518252602090810151910152565b5060a0830151805160c0840152602081015160e08401525060c08301518015156101008401525060e08301516001600160a01b0381166101208401526111b7565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260ff6060840151166080830152608083015160c060a08401526121a360e0840182611bbe565b905064ffffffffff60a08501511660c08401528091505092915050565b602081526121da6020820183516001600160601b03169052565b600060208301516121f660408401826001600160601b03169052565b5060408301516001600160c01b0319811660608401525060608301516001600160c01b03198116608084015250608083015160a083015260a083015160c083015260c083015160e083015260e083015161010061225b8185018364ffffffffff169052565b80850151915050610220610120818186015261227b610240860184611bbe565b9250808601519050610140601f19868503018187015261229b8483611bbe565b9350808701519150506101606122b68187018361ffff169052565b86015190506101806122cd8682018361ffff169052565b86015190506101a06122e9868201836001600160601b03169052565b86015190506101c0612305868201836001600160601b03169052565b86015190506101e061231f8682018364ffffffffff169052565b86015190506102006120148682018364ffffffffff169052565b6001600160a01b0381168114611b7a57600080fd5b60006020828403121561236057600080fd5b813561079781612339565b602081526000825161012080602085015261238a610140850183611bbe565b915060208501516040850152604085015160608501526060850151608085015260808501516123c160a086018263ffffffff169052565b5060a085015163ffffffff811660c08601525060c085015180151560e08601525060e08501516101006123f78187018315159052565b860151858403601f19018387015290506124118382611bbe565b9695505050505050565b602081526000825160e06020840152612438610100840182611bbe565b9050602084015160018060a01b0380821660408601528060408701511660608601528060608701511660808601525050608084015161248260a08501826001600160601b03169052565b5060a08401516001600160601b03811660c0850152611c61565b81516001600160a01b03168152610200810160208301516124c860208401826001600160a01b03169052565b5060408301516124e360408401826001600160601b03169052565b5060608301516124fe60608401826001600160601b03169052565b50608083015161251b608084018280518252602090810151910152565b5060a0830151805160c0840152602081015160e08401525060c08301516101006125518185018380518252602090810151910152565b60e085015180516101408601526020908101516101608601529085015180516101808601528101516101a085015261012085015180516101c0860152908101516101e085015290506111b7565b6000602082840312156125b057600080fd5b5051919050565b600082601f8301126125c857600080fd5b81516125d6611ef582611e76565b8181528460208386010111156125eb57600080fd5b612097826020830160208701611b9a565b60006020828403121561260e57600080fd5b81516001600160401b0381111561262457600080fd5b612097848285016125b7565b805161263b81611c86565b919050565b63ffffffff81168114611b7a57600080fd5b805161263b81612640565b64ffffffffff81168114611b7a57600080fd5b805161263b8161265d565b60006020828403121561268d57600080fd5b81516001600160401b03808211156126a457600080fd5b9083019060e082860312156126b857600080fd5b6126c0611d2c565b6126c983612630565b81526020830151828111156126dd57600080fd5b6126e9878286016125b7565b6020830152506040830151604082015261270560608401612652565b606082015261271660808401612652565b608082015261272760a08401612670565b60a082015260c08301518281111561273e57600080fd5b61274a878286016125b7565b60c08301525095945050505050565b805161263b81611b64565b8051801515811461263b57600080fd5b60006020828403121561278657600080fd5b81516001600160401b038082111561279d57600080fd5b9083019060a082860312156127b157600080fd5b6127b9611d54565b82516127c481611b64565b81526127d260208401612764565b60208201526040830151828111156127e957600080fd5b6127f5878286016125b7565b604083015250606083015160608201526080830151608082015280935050505092915050565b6001600160601b03831681526040602082015260006120976040830184611bbe565b60006020828403121561284f57600080fd5b815161079781611b64565b60006040828403121561286c57600080fd5b612874611d76565b9050815181526020820151602082015292915050565b60006020828403121561289c57600080fd5b81516001600160401b03808211156128b357600080fd5b9083019061014082860312156128c857600080fd5b6128d0611d98565b6128d983612630565b81526128e8866020850161285a565b60208201526060830151828111156128ff57600080fd5b61290b878286016125b7565b60408301525061291d60808401612630565b606082015261292e60a08401612630565b608082015261293f60c08401612630565b60a082015261295060e08401612670565b60c08201526101009150612965828401612670565b60e08201526129776101208401612670565b91810191909152949350505050565b60ff81168114611b7a57600080fd5b805161263b81612986565b6000602082840312156129b257600080fd5b815161079781612986565b6000602082840312156129cf57600080fd5b81516001600160401b03808211156129e657600080fd5b90830190604082860312156129fa57600080fd5b612a02611d76565b8251612a0d81611c86565b8152602083015182811115612a2157600080fd5b612a2d878286016125b7565b60208301525095945050505050565b805161263b81612339565b60006101408284031215612a5a57600080fd5b612a62611dbb565b612a6b83612a3c565b8152612a7960208401612a3c565b6020820152612a8a60408401612630565b6040820152612a9b60608401612630565b6060820152612aad846080850161285a565b6080820152612abf8460c0850161285a565b60a0820152612ad16101008401612764565b60c0820152612ae36101208401612a3c565b60e08201529392505050565b60006101008284031215612b0257600080fd5b612b0a611dde565b8251612b1581611c86565b81526020830151612b2581612339565b6020820152612b37846040850161285a565b6040820152612b49846080850161285a565b606082015260c0830151612b5c81612339565b608082015260e0929092015160a083015250919050565b60006102008284031215612b8657600080fd5b612b8e611e00565b612b9783612a3c565b8152612ba560208401612a3c565b6020820152612bb660408401612630565b6040820152612bc760608401612630565b6060820152612bd9846080850161285a565b6080820152612beb8460c0850161285a565b60a0820152610100612bff8582860161285a565b60c0830152612c1285610140860161285a565b60e0830152612c2585610180860161285a565b90820152612c37846101c0850161285a565b6101208201529392505050565b600060a08284031215612c5657600080fd5b612c5e611d54565b8251612c6981612986565b81526020830151612c7981612986565b60208201526040830151612c8c81612339565b60408201526060830151612c9f81612640565b60608201526080830151612cb281612640565b60808201529392505050565b600060208284031215612cd057600080fd5b81516001600160401b0380821115612ce757600080fd5b9083019060c08286031215612cfb57600080fd5b612d03611dde565b8251612d0e81611c86565b81526020830151612d1e81611c86565b60208201526040830151612d3181612986565b6040820152612d4260608401612995565b6060820152608083015182811115612d5957600080fd5b612d65878286016125b7565b608083015250612d7760a08401612670565b60a082015295945050505050565b600060208284031215612d9757600080fd5b61064282612764565b600060208284031215612db257600080fd5b81516107978161265d565b805161263b8161202b565b600060208284031215612dda57600080fd5b81516001600160401b0380821115612df157600080fd5b908301906102208286031215612e0657600080fd5b612e0e611e23565b612e1783612630565b8152612e2560208401612630565b6020820152612e3660408401612759565b6040820152612e4760608401612759565b60608201526080830151608082015260a083015160a082015260c083015160c0820152612e7660e08401612670565b60e08201526101008084015183811115612e8f57600080fd5b612e9b888287016125b7565b8284015250506101208084015183811115612eb557600080fd5b612ec1888287016125b7565b8284015250506101409150612ed7828401612dbd565b828201526101609150612eeb828401612dbd565b828201526101809150612eff828401612630565b828201526101a09150612f13828401612630565b828201526101c09150612f27828401612670565b828201526101e09150612f3b828401612670565b828201526102009150612977828401612670565b600060208284031215612f6157600080fd5b81516001600160401b0380821115612f7857600080fd5b908301906101208286031215612f8d57600080fd5b612f95611d98565b825182811115612fa457600080fd5b612fb0878286016125b7565b825250602083015160208201526040830151604082015260608301516060820152612fdd60808401612652565b6080820152612fee60a08401612652565b60a0820152612fff60c08401612764565b60c082015261301060e08401612764565b60e0820152610100808401518381111561302957600080fd5b613035888287016125b7565b918301919091525095945050505050565b60006020828403121561305857600080fd5b81516001600160401b038082111561306f57600080fd5b9083019060e0828603121561308357600080fd5b61308b611d2c565b82518281111561309a57600080fd5b6130a6878286016125b7565b8252506130b560208401612a3c565b60208201526130c660408401612a3c565b60408201526130d760608401612a3c565b60608201526130e860808401612630565b608082015261272760a0840161263056fea26469706673582212203049f1aa2c4650ee830c03d581866031e6e8073dcf8a79e7cb0696e7a1b3773164736f6c63430008140033",
1187
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c806390af706411610104578063c4d66de8116100a2578063de7b5d1411610071578063de7b5d141461055a578063f0ea17c314610570578063f2b246c314610590578063f7f318d3146105b057600080fd5b8063c4d66de814610501578063d06458c614610516578063d4cda0d814610536578063dd26287a1461054757600080fd5b8063a5961b4c116100de578063a5961b4c1461042a578063a7ef3d2114610497578063b82d7ef5146104b7578063bd7d9d85146104e157600080fd5b806390af7064146103505780639ad69c6714610370578063a310e2a3146103ff57600080fd5b80634793b4ab116101715780637bfd32171161014b5780637bfd3217146102f75780637e54602a1461030a578063887b1fa91461031d5780639096a1f31461033d57600080fd5b80634793b4ab1461029f57806364eb3a9b146102bf57806378ae9350146102d257600080fd5b806327b1d792116101ad57806327b1d7921461022d57806335898f5d1461024d5780633f093cd61461026057806344aa68361461028c57600080fd5b80631488c845146101d45780631d3be477146101fa57806325d037431461021a575b600080fd5b6101e76101e2366004611b2e565b6105c3565b6040519081526020015b60405180910390f35b61020d610208366004611b7d565b61064b565b6040516101f19190611bea565b6101e7610228366004611c9b565b6107a4565b61024061023b366004611c9b565b61083e565b6040516101f19190611cb8565b6101e761025b366004611c9b565b61091a565b61027361026e366004611e9d565b610947565b6040516001600160c01b031990911681526020016101f1565b6101e761029a366004611f2f565b6109c4565b6102b26102ad366004611c9b565b6109ff565b6040516101f19190611f48565b6101e76102cd366004611c9b565b610aa5565b6102e56102e036600461203b565b610ad2565b60405160ff90911681526020016101f1565b6101e7610305366004611c9b565b610bd1565b6101e7610318366004611c9b565b610bfe565b61033061032b366004611b7d565b610c2b565b6040516101f19190612069565b6102e561034b366004611c9b565b610d54565b61036361035e366004611c9b565b610dd3565b6040516101f1919061209f565b61038361037e366004611c9b565b610e79565b6040516101f1919081516001600160601b031681526020808301516001600160a01b039081168284015260408085015180519185019190915291820151606084015261010083019190606085015180516080860152602081015160a0860152915060808501511660c08401525060a09092015160e09091015290565b61041261040d366004611c9b565b610f1f565b6040516001600160a01b0390911681526020016101f1565b61043d610438366004611f2f565b610fcd565b6040516101f19190815160ff9081168252602080840151909116908201526040808301516001600160a01b03169082015260608083015163ffffffff90811691830191909152608092830151169181019190915260a00190565b6104aa6104a536600461203b565b611061565b6040516101f1919061214c565b6104ca6104c5366004611b7d565b6111be565b6040805192835260ff9091166020830152016101f1565b6104f46104ef366004611c9b565b611466565b6040516101f191906121c0565b61051461050f36600461234e565b61158c565b005b610529610524366004611b7d565b61161b565b6040516101f1919061236b565b6001546001600160a01b0316610412565b6101e7610555366004611c9b565b61178e565b60005461010090046001600160a01b0316610412565b61058361057e366004611c9b565b6117bb565b6040516101f1919061241b565b6105a361059e366004611c9b565b611890565b6040516101f1919061249c565b6101e76105be366004611c9b565b6119d8565b604051631488c84560e01b815260048101839052600082810b60248301529073__$5ac3274b8cf1e01ea223bf093142af05b0$__90631488c84590604401602060405180830381865af415801561061e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610642919061259e565b90505b92915050565b6040805160e08101825260008082526060602083018190529282018190528282018190526080820181905260a082015260c08101919091526001546040516355ee627560e01b81526001600160c01b0319841660048201526000916001600160a01b0316906354f6127f9073__$9f290d768183857d0249ab5bb54619c5ab$__906355ee627590602401602060405180830381865af41580156106f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610716919061259e565b6040518263ffffffff1660e01b815260040161073491815260200190565b600060405180830381865afa158015610751573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077991908101906125fc565b80519091501561079e5780806020019051810190610797919061267b565b9392505050565b50919050565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660655b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044015b602060405180830381865af415801561081a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610645919061259e565b61087c6040518060a0016040528060006001600160c01b03191681526020016000151581526020016060815260200160008152602001600081525090565b6001546000906001600160a01b03166354f6127f61089985610bfe565b6040518263ffffffff1660e01b81526004016108b791815260200190565b600060405180830381865afa1580156108d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108fc91908101906125fc565b80519091501561079e57808060200190518101906107979190612774565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660786107cd565b604051631f849e6b60e11b815260009073__$9f290d768183857d0249ab5bb54619c5ab$__90633f093cd690610983908690869060040161281b565b602060405180830381865af41580156109a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610642919061283d565b604051632255341b60e11b81526004810182905260009073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa6836906024016107fd565b610a07611a05565b6001546000906001600160a01b03166354f6127f610a24856119d8565b6040518263ffffffff1660e01b8152600401610a4291815260200190565b600060405180830381865afa158015610a5f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a8791908101906125fc565b80519091501561079e5780806020019051810190610797919061288a565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660d36107cd565b60008054604051637d56159160e11b815261ffff841660048201526001600160601b03851660248201526101009091046001600160a01b0316906309648a9d9073__$0e0c503522f35343ef1955427c5075b143$__9063faac2b2290604401602060405180830381865af4158015610b4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b72919061259e565b6040518263ffffffff1660e01b8152600401610b9091815260200190565b602060405180830381865afa158015610bad573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064291906129a0565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b038416606e6107cd565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b038416607a6107cd565b6040805180820190915260008152606060208201526001546040516355ee627560e01b81526001600160c01b0319841660048201526000916001600160a01b0316906354f6127f9073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af4158015610caf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd3919061259e565b6040518263ffffffff1660e01b8152600401610cf191815260200190565b600060405180830381865afa158015610d0e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d3691908101906125fc565b80519091501561079e578080602001905181019061079791906129bd565b6000805461010090046001600160a01b03166309648a9d610d7484610aa5565b6040518263ffffffff1660e01b8152600401610d9291815260200190565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064591906129a0565b610ddb611a76565b6001546000906001600160a01b03166354f6127f610df885610bd1565b6040518263ffffffff1660e01b8152600401610e1691815260200190565b600060405180830381865afa158015610e33573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e5b91908101906125fc565b80519091501561079e57808060200190518101906107979190612a47565b610e81611ae6565b6001546000906001600160a01b03166354f6127f610e9e8561091a565b6040518263ffffffff1660e01b8152600401610ebc91815260200190565b600060405180830381865afa158015610ed9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f0191908101906125fc565b80519091501561079e57808060200190518101906107979190612aef565b60015460009081906001600160a01b03166354f6127f610f3e856107a4565b6040518263ffffffff1660e01b8152600401610f5c91815260200190565b600060405180830381865afa158015610f79573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fa191908101906125fc565b80519091501561079e57600081806020019051810190610fc19190612b73565b60200151949350505050565b6040805160a081018252600080825260208201819052818301819052606082018190526080820152600154915163296586d360e21b81526004810184905290916001600160a01b03169063a5961b4c9060240160a060405180830381865afa15801561103d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106459190612c44565b6040805160c0810182526000808252602082018190529181018290526060808201839052608082015260a0810191909152600154604051637d56159160e11b815261ffff841660048201526001600160601b03851660248201526000916001600160a01b0316906354f6127f9073__$0e0c503522f35343ef1955427c5075b143$__9063faac2b2290604401602060405180830381865af415801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e919061259e565b6040518263ffffffff1660e01b815260040161114c91815260200190565b600060405180830381865afa158015611169573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261119191908101906125fc565b8051909150156111b757808060200190518101906111af9190612cbe565b915050610645565b5092915050565b60008060006111cc8461064b565b60a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af415801561122b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124f9190612d85565b156112ce5773__$5ac3274b8cf1e01ea223bf093142af05b0$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561129d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c1919061259e565b60645b9250925050915091565b6113528160a0015173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561131f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113439190612da0565b64ffffffffff90811691161090565b156113cb5773__$5ac3274b8cf1e01ea223bf093142af05b0$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156113a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c4919061259e565b606e6112c4565b806060015163ffffffff16816080015163ffffffff161061145a5773__$5ac3274b8cf1e01ea223bf093142af05b0$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561142f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611453919061259e565b60786112c4565b6040810151600a6112c4565b604080516102208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018190526101208201526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101919091526001546000906001600160a01b03166354f6127f61150b85610aa5565b6040518263ffffffff1660e01b815260040161152991815260200190565b600060405180830381865afa158015611546573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261156e91908101906125fc565b80519091501561079e57808060200190518101906107979190612dc8565b60005460ff16156115b05760405163ae9eff1b60e01b815260040160405180910390fd5b6001600160a01b0381166115d757604051630cc51a5560e21b815260040160405180910390fd5b60008054600180546001600160a01b0319166001600160a01b03909416938417815560ff1961010094909402939093166001600160a81b0319909116179091179055565b61167a60405180610120016040528060608152602001600081526020016000815260200160008152602001600063ffffffff168152602001600063ffffffff168152602001600015158152602001600015158152602001606081525090565b6001546040516355ee627560e01b81526001600160c01b0319841660048201526000916001600160a01b0316906354f6127f9073__$5906aa3f06c54ee09b434647963e1d1ed0$__906355ee627590602401602060405180830381865af41580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d919061259e565b6040518263ffffffff1660e01b815260040161172b91815260200190565b600060405180830381865afa158015611748573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261177091908101906125fc565b80519091501561079e57808060200190518101906107979190612f4f565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b038416608c6107cd565b6040805160e08101825260608082526000602083018190529282018390528082018390526080820183905260a0820183905260c08201526001549091906001600160a01b03166354f6127f61180f8561178e565b6040518263ffffffff1660e01b815260040161182d91815260200190565b600060405180830381865afa15801561184a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261187291908101906125fc565b80519091501561079e57808060200190518101906107979190613046565b61193a604080516101408101825260008082526020808301829052828401829052606083018290528351808501855282815280820183905260808401528351808501855282815280820183905260a08401528351808501855282815280820183905260c08401528351808501855282815280820183905260e08401528351808501855282815280820183905261010084015283518085019094528184528301529061012082015290565b6001546000906001600160a01b03166354f6127f611957856107a4565b6040518263ffffffff1660e01b815260040161197591815260200190565b600060405180830381865afa158015611992573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119ba91908101906125fc565b80519091501561079e57808060200190518101906107979190612b73565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660dc6107cd565b60405180610120016040528060006001600160601b03168152602001611a3e604051806040016040528060008152602001600081525090565b81526060602082018190526000604083018190529082018190526080820181905260a0820181905260c0820181905260e09091015290565b6040805161010081018252600080825260208083018290528284018290526060830182905283518085019094528184528301529060808201905b8152602001611ad2604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b6040518060c0016040528060006001600160601b0316815260200160006001600160a01b03168152602001611ab0604051806040016040528060008152602001600081525090565b60008060408385031215611b4157600080fd5b8235915060208301358060000b8114611b5957600080fd5b809150509250929050565b6001600160c01b031981168114611b7a57600080fd5b50565b600060208284031215611b8f57600080fd5b813561079781611b64565b60005b83811015611bb5578181015183820152602001611b9d565b50506000910152565b60008151808452611bd6816020860160208601611b9a565b601f01601f19169290920160200192915050565b602081526001600160601b0382511660208201526000602083015160e06040840152611c1a610100840182611bbe565b90506040840151606084015263ffffffff60608501511660808401526080840151611c4d60a085018263ffffffff169052565b5060a084015164ffffffffff811660c08501525b5060c0840151838203601f190160e0850152611c7d8282611bbe565b95945050505050565b6001600160601b0381168114611b7a57600080fd5b600060208284031215611cad57600080fd5b813561079781611c86565b602081526001600160401b0360c01b82511660208201526020820151151560408201526000604083015160a06060840152611cf660c0840182611bbe565b905060608401516080840152608084015160a08401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715611d4e57611d4e611d16565b60405290565b60405160a081016001600160401b0381118282101715611d4e57611d4e611d16565b604080519081016001600160401b0381118282101715611d4e57611d4e611d16565b60405161012081016001600160401b0381118282101715611d4e57611d4e611d16565b60405161010081016001600160401b0381118282101715611d4e57611d4e611d16565b60405160c081016001600160401b0381118282101715611d4e57611d4e611d16565b60405161014081016001600160401b0381118282101715611d4e57611d4e611d16565b60405161022081016001600160401b0381118282101715611d4e57611d4e611d16565b604051601f8201601f191681016001600160401b0381118282101715611e6e57611e6e611d16565b604052919050565b60006001600160401b03821115611e8f57611e8f611d16565b50601f01601f191660200190565b60008060408385031215611eb057600080fd5b8235611ebb81611c86565b915060208301356001600160401b03811115611ed657600080fd5b8301601f81018513611ee757600080fd5b8035611efa611ef582611e76565b611e46565b818152866020838501011115611f0f57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215611f4157600080fd5b5035919050565b60208152611f626020820183516001600160601b03169052565b60006020830151611f80604084018280518252602090810151910152565b506040830151610140806080850152611f9d610160850183611bbe565b91506060850151611fb960a08601826001600160601b03169052565b5060808501516001600160601b03811660c08601525060a08501516001600160601b03811660e08601525060c0850151610100611ffe8187018364ffffffffff169052565b60e087015164ffffffffff811661012088015291505b9095015164ffffffffff1693019290925250919050565b61ffff81168114611b7a57600080fd5b6000806040838503121561204e57600080fd5b823561205981611c86565b91506020830135611b598161202b565b602081526001600160601b038251166020820152600060208301516040808401526120976060840182611bbe565b949350505050565b81516001600160a01b039081168252602080840151909116908201526040808301516001600160601b0316908201526060808301516101408301916120ee908401826001600160601b03169052565b50608083015161210b608084018280518252602090810151910152565b5060a0830151805160c0840152602081015160e08401525060c08301518015156101008401525060e08301516001600160a01b0381166101208401526111b7565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260ff6060840151166080830152608083015160c060a08401526121a360e0840182611bbe565b905064ffffffffff60a08501511660c08401528091505092915050565b602081526121da6020820183516001600160601b03169052565b600060208301516121f660408401826001600160601b03169052565b5060408301516001600160c01b0319811660608401525060608301516001600160c01b03198116608084015250608083015160a083015260a083015160c083015260c083015160e083015260e083015161010061225b8185018364ffffffffff169052565b80850151915050610220610120818186015261227b610240860184611bbe565b9250808601519050610140601f19868503018187015261229b8483611bbe565b9350808701519150506101606122b68187018361ffff169052565b86015190506101806122cd8682018361ffff169052565b86015190506101a06122e9868201836001600160601b03169052565b86015190506101c0612305868201836001600160601b03169052565b86015190506101e061231f8682018364ffffffffff169052565b86015190506102006120148682018364ffffffffff169052565b6001600160a01b0381168114611b7a57600080fd5b60006020828403121561236057600080fd5b813561079781612339565b602081526000825161012080602085015261238a610140850183611bbe565b915060208501516040850152604085015160608501526060850151608085015260808501516123c160a086018263ffffffff169052565b5060a085015163ffffffff811660c08601525060c085015180151560e08601525060e08501516101006123f78187018315159052565b860151858403601f19018387015290506124118382611bbe565b9695505050505050565b602081526000825160e06020840152612438610100840182611bbe565b9050602084015160018060a01b0380821660408601528060408701511660608601528060608701511660808601525050608084015161248260a08501826001600160601b03169052565b5060a08401516001600160601b03811660c0850152611c61565b81516001600160a01b03168152610200810160208301516124c860208401826001600160a01b03169052565b5060408301516124e360408401826001600160601b03169052565b5060608301516124fe60608401826001600160601b03169052565b50608083015161251b608084018280518252602090810151910152565b5060a0830151805160c0840152602081015160e08401525060c08301516101006125518185018380518252602090810151910152565b60e085015180516101408601526020908101516101608601529085015180516101808601528101516101a085015261012085015180516101c0860152908101516101e085015290506111b7565b6000602082840312156125b057600080fd5b5051919050565b600082601f8301126125c857600080fd5b81516125d6611ef582611e76565b8181528460208386010111156125eb57600080fd5b612097826020830160208701611b9a565b60006020828403121561260e57600080fd5b81516001600160401b0381111561262457600080fd5b612097848285016125b7565b805161263b81611c86565b919050565b63ffffffff81168114611b7a57600080fd5b805161263b81612640565b64ffffffffff81168114611b7a57600080fd5b805161263b8161265d565b60006020828403121561268d57600080fd5b81516001600160401b03808211156126a457600080fd5b9083019060e082860312156126b857600080fd5b6126c0611d2c565b6126c983612630565b81526020830151828111156126dd57600080fd5b6126e9878286016125b7565b6020830152506040830151604082015261270560608401612652565b606082015261271660808401612652565b608082015261272760a08401612670565b60a082015260c08301518281111561273e57600080fd5b61274a878286016125b7565b60c08301525095945050505050565b805161263b81611b64565b8051801515811461263b57600080fd5b60006020828403121561278657600080fd5b81516001600160401b038082111561279d57600080fd5b9083019060a082860312156127b157600080fd5b6127b9611d54565b82516127c481611b64565b81526127d260208401612764565b60208201526040830151828111156127e957600080fd5b6127f5878286016125b7565b604083015250606083015160608201526080830151608082015280935050505092915050565b6001600160601b03831681526040602082015260006120976040830184611bbe565b60006020828403121561284f57600080fd5b815161079781611b64565b60006040828403121561286c57600080fd5b612874611d76565b9050815181526020820151602082015292915050565b60006020828403121561289c57600080fd5b81516001600160401b03808211156128b357600080fd5b9083019061014082860312156128c857600080fd5b6128d0611d98565b6128d983612630565b81526128e8866020850161285a565b60208201526060830151828111156128ff57600080fd5b61290b878286016125b7565b60408301525061291d60808401612630565b606082015261292e60a08401612630565b608082015261293f60c08401612630565b60a082015261295060e08401612670565b60c08201526101009150612965828401612670565b60e08201526129776101208401612670565b91810191909152949350505050565b60ff81168114611b7a57600080fd5b805161263b81612986565b6000602082840312156129b257600080fd5b815161079781612986565b6000602082840312156129cf57600080fd5b81516001600160401b03808211156129e657600080fd5b90830190604082860312156129fa57600080fd5b612a02611d76565b8251612a0d81611c86565b8152602083015182811115612a2157600080fd5b612a2d878286016125b7565b60208301525095945050505050565b805161263b81612339565b60006101408284031215612a5a57600080fd5b612a62611dbb565b612a6b83612a3c565b8152612a7960208401612a3c565b6020820152612a8a60408401612630565b6040820152612a9b60608401612630565b6060820152612aad846080850161285a565b6080820152612abf8460c0850161285a565b60a0820152612ad16101008401612764565b60c0820152612ae36101208401612a3c565b60e08201529392505050565b60006101008284031215612b0257600080fd5b612b0a611dde565b8251612b1581611c86565b81526020830151612b2581612339565b6020820152612b37846040850161285a565b6040820152612b49846080850161285a565b606082015260c0830151612b5c81612339565b608082015260e0929092015160a083015250919050565b60006102008284031215612b8657600080fd5b612b8e611e00565b612b9783612a3c565b8152612ba560208401612a3c565b6020820152612bb660408401612630565b6040820152612bc760608401612630565b6060820152612bd9846080850161285a565b6080820152612beb8460c0850161285a565b60a0820152610100612bff8582860161285a565b60c0830152612c1285610140860161285a565b60e0830152612c2585610180860161285a565b90820152612c37846101c0850161285a565b6101208201529392505050565b600060a08284031215612c5657600080fd5b612c5e611d54565b8251612c6981612986565b81526020830151612c7981612986565b60208201526040830151612c8c81612339565b60408201526060830151612c9f81612640565b60608201526080830151612cb281612640565b60808201529392505050565b600060208284031215612cd057600080fd5b81516001600160401b0380821115612ce757600080fd5b9083019060c08286031215612cfb57600080fd5b612d03611dde565b8251612d0e81611c86565b81526020830151612d1e81611c86565b60208201526040830151612d3181612986565b6040820152612d4260608401612995565b6060820152608083015182811115612d5957600080fd5b612d65878286016125b7565b608083015250612d7760a08401612670565b60a082015295945050505050565b600060208284031215612d9757600080fd5b61064282612764565b600060208284031215612db257600080fd5b81516107978161265d565b805161263b8161202b565b600060208284031215612dda57600080fd5b81516001600160401b0380821115612df157600080fd5b908301906102208286031215612e0657600080fd5b612e0e611e23565b612e1783612630565b8152612e2560208401612630565b6020820152612e3660408401612759565b6040820152612e4760608401612759565b60608201526080830151608082015260a083015160a082015260c083015160c0820152612e7660e08401612670565b60e08201526101008084015183811115612e8f57600080fd5b612e9b888287016125b7565b8284015250506101208084015183811115612eb557600080fd5b612ec1888287016125b7565b8284015250506101409150612ed7828401612dbd565b828201526101609150612eeb828401612dbd565b828201526101809150612eff828401612630565b828201526101a09150612f13828401612630565b828201526101c09150612f27828401612670565b828201526101e09150612f3b828401612670565b828201526102009150612977828401612670565b600060208284031215612f6157600080fd5b81516001600160401b0380821115612f7857600080fd5b908301906101208286031215612f8d57600080fd5b612f95611d98565b825182811115612fa457600080fd5b612fb0878286016125b7565b825250602083015160208201526040830151604082015260608301516060820152612fdd60808401612652565b6080820152612fee60a08401612652565b60a0820152612fff60c08401612764565b60c082015261301060e08401612764565b60e0820152610100808401518381111561302957600080fd5b613035888287016125b7565b918301919091525095945050505050565b60006020828403121561305857600080fd5b81516001600160401b038082111561306f57600080fd5b9083019060e0828603121561308357600080fd5b61308b611d2c565b82518281111561309a57600080fd5b6130a6878286016125b7565b8252506130b560208401612a3c565b60208201526130c660408401612a3c565b60408201526130d760608401612a3c565b60608201526130e860808401612630565b608082015261272760a0840161263056fea26469706673582212203049f1aa2c4650ee830c03d581866031e6e8073dcf8a79e7cb0696e7a1b3773164736f6c63430008140033",
1271
+ "bytecode": "0x608060405234801561001057600080fd5b50613853806100206000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80637bfd32171161011a578063b82d7ef5116100ad578063d4cda0d81161007c578063d4cda0d814610595578063dd26287a146105a6578063de7b5d14146105b9578063f0ea17c3146105cf578063f7f318d3146105ef57600080fd5b8063b82d7ef514610516578063bd7d9d8514610540578063c4d66de814610560578063d06458c61461057557600080fd5b80639096a1f3116100e95780639096a1f31461045b578063a310e2a31461046e578063a5961b4c14610499578063a7ef3d21146104f657600080fd5b80637bfd3217146104025780637e54602a14610415578063887b1fa9146104285780638eb9000d1461044857600080fd5b80633f093cd61161019d57806357f80bbf1161016c57806357f80bbf146103745780635da894021461039457806364eb3a9b146103b957806375d357df146103cc57806378ae9350146103ef57600080fd5b80633f093cd61461030257806344aa68361461032e5780634793b4ab146103415780634fb784f51461036157600080fd5b8063228e42ec116101d9578063228e42ec1461029c57806327b1d792146102af57806335898f5d146102cf57806339bb60cd146102e257600080fd5b80630232ca491461020b5780630b5d931c1461023b5780631488c8451461025b5780631d3be4771461027c575b600080fd5b61021e6102193660046120f1565b610602565b6040516001600160601b0390911681526020015b60405180910390f35b61024e6102493660046120f1565b61067f565b604051610232919061210e565b61026e6102693660046121f1565b610732565b604051908152602001610232565b61028f61028a36600461223d565b6107b1565b60405161023291906122aa565b61021e6102aa3660046120f1565b6108fd565b6102c26102bd3660046120f1565b610937565b6040516102329190612345565b61026e6102dd3660046120f1565b610a01565b6102f56102f03660046123b2565b610a9b565b60405161023291906123e8565b6103156103103660046125c8565b610bed565b6040516001600160c01b03199091168152602001610232565b61026e61033c36600461265a565b610c6a565b61035461034f3660046120f1565b610ca5565b6040516102329190612673565b61026e61036f3660046120f1565b610d4b565b6103876103823660046120f1565b610d78565b60405161023291906126f9565b6103a76103a23660046123b2565b610e1e565b60405160ff9091168152602001610232565b61026e6103c73660046120f1565b610f1b565b6103df6103da3660046120f1565b610f48565b6040519015158152602001610232565b6103a76103fd3660046127fc565b6111d7565b61026e6104103660046120f1565b611237565b61026e6104233660046120f1565b611264565b61043b61043636600461223d565b611291565b604051610232919061282a565b61021e6104563660046120f1565b6113ba565b6103a76104693660046120f1565b6113f4565b61048161047c3660046120f1565b611470565b6040516001600160a01b039091168152602001610232565b6104ac6104a736600461265a565b61151e565b6040516102329190600060808201905060ff835116825260ff6020840151166020830152604083015163ffffffff8082166040850152806060860151166060850152505092915050565b6105096105043660046127fc565b6115ab565b6040516102329190612860565b61052961052436600461223d565b611700565b6040805192835260ff909116602083015201610232565b61055361054e3660046120f1565b6119a8565b6040516102329190612900565b61057361056e366004612ac6565b611ace565b005b61058861058336600461223d565b611be7565b6040516102329190612ae3565b6001546001600160a01b0316610481565b61026e6105b43660046120f1565b611d5a565b60005461010090046001600160a01b0316610481565b6105e26105dd3660046120f1565b611d87565b6040516102329190612b93565b61026e6105fd3660046120f1565b611e55565b600154604051630232ca4960e01b81526001600160601b03831660048201526000916001600160a01b031690630232ca49906024015b602060405180830381865afa158015610655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106799190612c1d565b92915050565b610687611f09565b6001546000906001600160a01b03166354f6127f6106a485611237565b6040518263ffffffff1660e01b81526004016106c291815260200190565b600060405180830381865afa1580156106df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107079190810190612c7f565b80519091501561072c57808060200190518101906107259190612ce3565b9392505050565b50919050565b604051631488c84560e01b815260048101839052600082810b60248301529073__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c84590604401602060405180830381865af415801561078d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190612da3565b6040805160e08101825260008082526060602083018190529282018190528282018190526080820181905260a082015260c08101919091526001546040516355ee627560e01b81526001600160c01b0319841660048201526000916001600160a01b0316906354f6127f9073__$05887d5853069c88bcd4c0a2107db45f29$__906355ee627590602401602060405180830381865af4158015610858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087c9190612da3565b6040518263ffffffff1660e01b815260040161089a91815260200190565b600060405180830381865afa1580156108b7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108df9190810190612c7f565b80519091501561072c57808060200190518101906107259190612df7565b6001546040516308a390bb60e21b81526001600160601b03831660048201526000916001600160a01b03169063228e42ec90602401610638565b6040805160a081018252600080825260208201819052606092820183905291810182905260808101919091526001546000906001600160a01b03166354f6127f61098085611264565b6040518263ffffffff1660e01b815260040161099e91815260200190565b600060405180830381865afa1580156109bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109e39190810190612c7f565b80519091501561072c57808060200190518101906107259190612ef0565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03841660785b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044015b602060405180830381865af4158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106799190612da3565b60408051608081018252600080825260208201819052606092820183905291810191909152600154604051635927341160e01b815262ffffff841660048201526001600160601b03851660248201526000916001600160a01b0316906354f6127f9073__$0f9396e6447a4be57af83e53f51d234633$__90635927341190604401602060405180830381865af4158015610b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5d9190612da3565b6040518263ffffffff1660e01b8152600401610b7b91815260200190565b600060405180830381865afa158015610b98573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bc09190810190612c7f565b805190915015610be65780806020019051810190610bde9190612fb8565b915050610679565b5092915050565b604051631f849e6b60e11b815260009073__$05887d5853069c88bcd4c0a2107db45f29$__90633f093cd690610c299086908690600401613061565b602060405180830381865af4158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190613083565b604051632255341b60e11b81526004810182905260009073__$bf7bc340cbb9229ef1de2c568356e67902$__906344aa683690602401610a5a565b610cad612023565b6001546000906001600160a01b03166354f6127f610cca85611e55565b6040518263ffffffff1660e01b8152600401610ce891815260200190565b600060405180830381865afa158015610d05573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2d9190810190612c7f565b80519091501561072c578080602001905181019061072591906130a0565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b0384166064610a2a565b610d8061207e565b6001546000906001600160a01b03166354f6127f610d9d85611d5a565b6040518263ffffffff1660e01b8152600401610dbb91815260200190565b600060405180830381865afa158015610dd8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e009190810190612c7f565b80519091501561072c57808060200190518101906107259190613180565b600154604051635927341160e01b815262ffffff831660048201526001600160601b03841660248201526000916001600160a01b0316906309648a9d9073__$0f9396e6447a4be57af83e53f51d234633$__906359273411906044015b602060405180830381865af4158015610e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190612da3565b6040518263ffffffff1660e01b8152600401610eda91815260200190565b602060405180830381865afa158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610725919061325f565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03841660d3610a2a565b600080610f54836119a8565b8051604051630a4d29dd60e31b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af4158015610fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd6919061327c565b15610fe45750600092915050565b6101c081015160405163790a38ad60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063790a38ad90602401602060405180830381865af4158015611041573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611065919061327c565b156110735750600092915050565b610200810151604051638d38cd4b60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af41580156110d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f4919061327c565b156111025750600092915050565b61016081015161ffff161561111a5750600092915050565b61112d8161018001518260800151611e82565b1561113b5750600192915050565b6111c073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611187573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ab9190613297565b826101e0015164ffffffffff90811691161090565b156111ce5750600092915050565b50600192915050565b600154604051637d56159160e11b815261ffff831660048201526001600160601b03841660248201526000916001600160a01b0316906309648a9d9073__$9e81531fe4994e01e99541f86b55500b4b$__9063faac2b2290604401610e7b565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038416606e610a2a565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038416607a610a2a565b6040805180820190915260008152606060208201526001546040516355ee627560e01b81526001600160c01b0319841660048201526000916001600160a01b0316906354f6127f9073__$32e9ecefef68cb354d118e0496fdd3f4bc$__906355ee627590602401602060405180830381865af4158015611315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113399190612da3565b6040518263ffffffff1660e01b815260040161135791815260200190565b600060405180830381865afa158015611374573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261139c9190810190612c7f565b80519091501561072c578080602001905181019061072591906132b4565b600154604051638eb9000d60e01b81526001600160601b03831660048201526000916001600160a01b031690638eb9000d90602401610638565b6001546000906001600160a01b03166309648a9d61141184610f1b565b6040518263ffffffff1660e01b815260040161142f91815260200190565b602060405180830381865afa15801561144c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610679919061325f565b60015460009081906001600160a01b03166354f6127f61148f85610d4b565b6040518263ffffffff1660e01b81526004016114ad91815260200190565b600060405180830381865afa1580156114ca573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114f29190810190612c7f565b80519091501561072c57600081806020019051810190611512919061333e565b60600151949350505050565b604080516080810182526000808252602082018190528183018190526060820152600154915163296586d360e21b81526004810184905290916001600160a01b03169063a5961b4c90602401608060405180830381865afa158015611587573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106799190613412565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082015260c0810191909152600154604051637d56159160e11b815261ffff841660048201526001600160601b03851660248201526000916001600160a01b0316906354f6127f9073__$9e81531fe4994e01e99541f86b55500b4b$__9063faac2b2290604401602060405180830381865af415801561165b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167f9190612da3565b6040518263ffffffff1660e01b815260040161169d91815260200190565b600060405180830381865afa1580156116ba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116e29190810190612c7f565b805190915015610be65780806020019051810190610bde9190613479565b600080600061170e846107b1565b60a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063790a38ad90602401602060405180830381865af415801561176d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611791919061327c565b156118105773__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156117df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118039190612da3565b60645b9250925050915091565b6118948160a0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611861573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118859190613297565b64ffffffffff90811691161090565b1561190d5773__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156118e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119069190612da3565b606e611806565b806060015163ffffffff16816080015163ffffffff161061199c5773__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190612da3565b6078611806565b6040810151600a611806565b604080516102208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018190526101208201526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101919091526001546000906001600160a01b03166354f6127f611a4d85610f1b565b6040518263ffffffff1660e01b8152600401611a6b91815260200190565b600060405180830381865afa158015611a88573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ab09190810190612c7f565b80519091501561072c5780806020019051810190610725919061355e565b60005460ff1615611af25760405163ae9eff1b60e01b815260040160405180910390fd5b6001600160a01b038116611b1957604051630cc51a5560e21b815260040160405180910390fd5b80600060016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600060019054906101000a90046001600160a01b03166001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb79190613709565b600180546001600160a01b0319166001600160a01b03929092169190911781556000805460ff1916909117905550565b611c4660405180610120016040528060608152602001600081526020016000815260200160008152602001600063ffffffff168152602001600063ffffffff168152602001600015158152602001600015158152602001606081525090565b6001546040516355ee627560e01b81526001600160c01b0319841660048201526000916001600160a01b0316906354f6127f9073__$1919c6d2c69d787ccb2653a371d7e5737d$__906355ee627590602401602060405180830381865af4158015611cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd99190612da3565b6040518263ffffffff1660e01b8152600401611cf791815260200190565b600060405180830381865afa158015611d14573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d3c9190810190612c7f565b80519091501561072c57808060200190518101906107259190613726565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038416608c610a2a565b6040805160c08101825260608082526000602083018190529282018390528082018390526080820183905260a08201526001549091906001600160a01b03166354f6127f611dd485610d4b565b6040518263ffffffff1660e01b8152600401611df291815260200190565b600060405180830381865afa158015611e0f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e379190810190612c7f565b80519091501561072c5780806020019051810190610725919061333e565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03841660dc610a2a565b60405163c4cade9d60e01b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__9063c4cade9d90604401602060405180830381865af4158015611ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610725919061327c565b60405180610120016040528060006001600160601b0316815260200160006001600160601b03168152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b905290565b6040518060c0016040528060006001600160601b0316815260200161205b604051806040016040528060008152602001600081525090565b815260606020820181905260006040830181905290820181905260809091015290565b604080516101608101825260008082526020808301829052828401829052606083018290526080830182905260a0830182905260c0830182905260e08301829052835180850190945281845283015290610100820190611fda565b6001600160601b03811681146120ee57600080fd5b50565b60006020828403121561210357600080fd5b8135610725816120d9565b81516001600160601b0316815260208083015161020083019161213b908401826001600160601b03169052565b506040830151612158604084018280518252602090810151910152565b50606083015180516080840152602081015160a0840152506080830151805160c0840152602081015160e08401525060a08301516101006121a58185018380518252602090810151910152565b60c0850151805161014086015260209081015161016086015260e086015180516101808701528101516101a08601529085015180516101c0860152908101516101e08501529050610be6565b6000806040838503121561220457600080fd5b8235915060208301358060000b811461221c57600080fd5b809150509250929050565b6001600160c01b0319811681146120ee57600080fd5b60006020828403121561224f57600080fd5b813561072581612227565b60005b8381101561227557818101518382015260200161225d565b50506000910152565b6000815180845261229681602086016020860161225a565b601f01601f19169290920160200192915050565b602081526001600160601b0382511660208201526000602083015160e060408401526122da61010084018261227e565b90506040840151606084015263ffffffff6060850151166080840152608084015161230d60a085018263ffffffff169052565b5060a084015164ffffffffff811660c08501525060c0840151838203601f190160e085015261233c828261227e565b95945050505050565b602081526001600160401b0360c01b82511660208201526020820151151560408201526000604083015160a0606084015261238360c084018261227e565b90506001600160601b03606085015116608084015263ffffffff60808501511660a08401528091505092915050565b600080604083850312156123c557600080fd5b82356123d0816120d9565b9150602083013562ffffff8116811461221c57600080fd5b6020815261ffff82511660208201526001600160601b036020830151166040820152600060408301516080606084015261242560a084018261227e565b905064ffffffffff60608501511660808401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561247a5761247a612442565b60405290565b60405161012081016001600160401b038111828210171561247a5761247a612442565b60405160e081016001600160401b038111828210171561247a5761247a612442565b60405160a081016001600160401b038111828210171561247a5761247a612442565b604051608081016001600160401b038111828210171561247a5761247a612442565b60405160c081016001600160401b038111828210171561247a5761247a612442565b60405161016081016001600160401b038111828210171561247a5761247a612442565b60405161022081016001600160401b038111828210171561247a5761247a612442565b604051601f8201601f191681016001600160401b038111828210171561259957612599612442565b604052919050565b60006001600160401b038211156125ba576125ba612442565b50601f01601f191660200190565b600080604083850312156125db57600080fd5b82356125e6816120d9565b915060208301356001600160401b0381111561260157600080fd5b8301601f8101851361261257600080fd5b8035612625612620826125a1565b612571565b81815286602083850101111561263a57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60006020828403121561266c57600080fd5b5035919050565b602081526001600160601b038251166020820152600060208301516126a5604084018280518252602090810151910152565b50604083015160e060808401526126c061010084018261227e565b9050606084015164ffffffffff80821660a08601528060808701511660c08601528060a08701511660e086015250508091505092915050565b81516001600160601b031681526101c08101602083015161272560208401826001600160401b03169052565b50604083015161274060408401826001600160601b03169052565b506060830151612754606084018215159052565b506080830151612768608084018215159052565b5060a083015161277c60a084018215159052565b5060c083015160c083015260e083015160e0830152610100808401516127ae8285018280518252602090810151910152565b50506101208301516101406127cf8185018380518252602090810151910152565b840151805161018085015260208101516101a08501529050610be6565b61ffff811681146120ee57600080fd5b6000806040838503121561280f57600080fd5b823561281a816120d9565b9150602083013561221c816127ec565b602081526001600160601b03825116602082015260006020830151604080840152612858606084018261227e565b949350505050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301516128a5608084018260ff169052565b50608083015160e060a08401526128c061010084018261227e565b905060a0840151601f198483030160c08501526128dd828261227e565b91505060c08401516128f860e085018264ffffffffff169052565b509392505050565b6020815261291a6020820183516001600160601b03169052565b6000602083015161293660408401826001600160601b03169052565b5060408301516001600160c01b0319811660608401525060608301516001600160c01b0319811660808401525060808301516001600160601b03811660a08401525060a08301516001600160601b03811660c08401525060c08301516001600160601b03811660e08401525060e08301516101006129bc8185018364ffffffffff169052565b8085015191505061022061012081818601526129dc61024086018461227e565b9250808601519050610140601f1986850301818701526129fc848361227e565b935080870151915050610160612a178187018361ffff169052565b8601519050610180612a2e8682018361ffff169052565b86015190506101a0612a4a868201836001600160601b03169052565b86015190506101c0612a66868201836001600160601b03169052565b86015190506101e0612a808682018364ffffffffff169052565b8601519050610200612a9a8682018364ffffffffff169052565b9095015164ffffffffff1693019290925250919050565b6001600160a01b03811681146120ee57600080fd5b600060208284031215612ad857600080fd5b813561072581612ab1565b6020815260008251610120806020850152612b0261014085018361227e565b91506020850151604085015260408501516060850152606085015160808501526080850151612b3960a086018263ffffffff169052565b5060a085015163ffffffff811660c08601525060c085015180151560e08601525060e0850151610100612b6f8187018315159052565b860151858403601f1901838701529050612b89838261227e565b9695505050505050565b602081526000825160c06020840152612baf60e084018261227e565b90506001600160601b036020850151166040840152604084015160018060a01b0380821660608601528060608701511660808601528060808701511660a0860152505060a0840151601f198483030160c085015261233c828261227e565b8051612c18816120d9565b919050565b600060208284031215612c2f57600080fd5b8151610725816120d9565b600082601f830112612c4b57600080fd5b8151612c59612620826125a1565b818152846020838601011115612c6e57600080fd5b61285882602083016020870161225a565b600060208284031215612c9157600080fd5b81516001600160401b03811115612ca757600080fd5b61285884828501612c3a565b600060408284031215612cc557600080fd5b612ccd612458565b9050815181526020820151602082015292915050565b60006102008284031215612cf657600080fd5b612cfe612480565b612d0783612c0d565b8152612d1560208401612c0d565b6020820152612d278460408501612cb3565b6040820152612d398460808501612cb3565b6060820152612d4b8460c08501612cb3565b6080820152610100612d5f85828601612cb3565b60a0830152612d72856101408601612cb3565b60c0830152612d85856101808601612cb3565b60e0830152612d98856101c08601612cb3565b908201529392505050565b600060208284031215612db557600080fd5b5051919050565b63ffffffff811681146120ee57600080fd5b8051612c1881612dbc565b64ffffffffff811681146120ee57600080fd5b8051612c1881612dd9565b600060208284031215612e0957600080fd5b81516001600160401b0380821115612e2057600080fd5b9083019060e08286031215612e3457600080fd5b612e3c6124a3565b612e4583612c0d565b8152602083015182811115612e5957600080fd5b612e6587828601612c3a565b60208301525060408301516040820152612e8160608401612dce565b6060820152612e9260808401612dce565b6080820152612ea360a08401612dec565b60a082015260c083015182811115612eba57600080fd5b612ec687828601612c3a565b60c08301525095945050505050565b8051612c1881612227565b80518015158114612c1857600080fd5b600060208284031215612f0257600080fd5b81516001600160401b0380821115612f1957600080fd5b9083019060a08286031215612f2d57600080fd5b612f356124c5565b8251612f4081612227565b8152612f4e60208401612ee0565b6020820152604083015182811115612f6557600080fd5b612f7187828601612c3a565b60408301525060608301519150612f87826120d9565b81606082015260808301519250612f9d83612dbc565b6080810192909252509392505050565b8051612c18816127ec565b600060208284031215612fca57600080fd5b81516001600160401b0380821115612fe157600080fd5b9083019060808286031215612ff557600080fd5b612ffd6124e7565b8251613008816127ec565b81526020830151613018816120d9565b602082015260408301518281111561302f57600080fd5b61303b87828601612c3a565b6040830152506060830151925061305183612dd9565b6060810192909252509392505050565b6001600160601b0383168152604060208201526000612858604083018461227e565b60006020828403121561309557600080fd5b815161072581612227565b6000602082840312156130b257600080fd5b81516001600160401b03808211156130c957600080fd5b9083019060e082860312156130dd57600080fd5b6130e5612509565b82516130f0816120d9565b81526130ff8660208501612cb3565b602082015260608301518281111561311657600080fd5b61312287828601612c3a565b6040830152506080830151915061313882612dd9565b81606082015261314a60a08401612dec565b608082015261315b60c08401612dec565b60a082015295945050505050565b80516001600160401b0381168114612c1857600080fd5b60006101c0828403121561319357600080fd5b61319b61252b565b6131a483612c0d565b81526131b260208401613169565b60208201526131c360408401612c0d565b60408201526131d460608401612ee0565b60608201526131e560808401612ee0565b60808201526131f660a08401612ee0565b60a082015260c083015160c082015260e083015160e082015261010061321e85828601612cb3565b9082015261014061323185858301612cb3565b610120830152612d98856101808601612cb3565b60ff811681146120ee57600080fd5b8051612c1881613245565b60006020828403121561327157600080fd5b815161072581613245565b60006020828403121561328e57600080fd5b61072582612ee0565b6000602082840312156132a957600080fd5b815161072581612dd9565b6000602082840312156132c657600080fd5b81516001600160401b03808211156132dd57600080fd5b90830190604082860312156132f157600080fd5b6132f9612458565b8251613304816120d9565b815260208301518281111561331857600080fd5b61332487828601612c3a565b60208301525095945050505050565b8051612c1881612ab1565b60006020828403121561335057600080fd5b81516001600160401b038082111561336757600080fd5b9083019060c0828603121561337b57600080fd5b613383612509565b82518281111561339257600080fd5b61339e87828601612c3a565b8252506133ad60208401612c0d565b60208201526133be60408401613333565b60408201526133cf60608401613333565b60608201526133e060808401613333565b608082015260a0830151828111156133f757600080fd5b61340387828601612c3a565b60a08301525095945050505050565b60006080828403121561342457600080fd5b61342c6124e7565b825161343781613245565b8152602083015161344781613245565b6020820152604083015161345a81612dbc565b6040820152606083015161346d81612dbc565b60608201529392505050565b60006020828403121561348b57600080fd5b81516001600160401b03808211156134a257600080fd5b9083019060e082860312156134b657600080fd5b6134be6124a3565b6134c783612c0d565b81526134d560208401612c0d565b60208201526134e660408401613254565b60408201526134f760608401613254565b606082015260808301518281111561350e57600080fd5b61351a87828601612c3a565b60808301525060a08301518281111561353257600080fd5b61353e87828601612c3a565b60a08301525061355060c08401612dec565b60c082015295945050505050565b60006020828403121561357057600080fd5b81516001600160401b038082111561358757600080fd5b90830190610220828603121561359c57600080fd5b6135a461254e565b6135ad83612c0d565b81526135bb60208401612c0d565b60208201526135cc60408401612ed5565b60408201526135dd60608401612ed5565b60608201526135ee60808401612c0d565b60808201526135ff60a08401612c0d565b60a082015261361060c08401612c0d565b60c082015261362160e08401612dec565b60e0820152610100808401518381111561363a57600080fd5b61364688828701612c3a565b828401525050610120808401518381111561366057600080fd5b61366c88828701612c3a565b8284015250506101409150613682828401612fad565b828201526101609150613696828401612fad565b8282015261018091506136aa828401612c0d565b828201526101a091506136be828401612c0d565b828201526101c091506136d2828401612dec565b828201526101e091506136e6828401612dec565b8282015261020091506136fa828401612dec565b91810191909152949350505050565b60006020828403121561371b57600080fd5b815161072581612ab1565b60006020828403121561373857600080fd5b81516001600160401b038082111561374f57600080fd5b90830190610120828603121561376457600080fd5b61376c612480565b82518281111561377b57600080fd5b61378787828601612c3a565b8252506020830151602082015260408301516040820152606083015160608201526137b460808401612dce565b60808201526137c560a08401612dce565b60a08201526137d660c08401612ee0565b60c08201526137e760e08401612ee0565b60e0820152610100808401518381111561380057600080fd5b61380c88828701612c3a565b91830191909152509594505050505056fea26469706673582212207aa4193b549e3824d7b75ffbed8543066757962cb73192c11439d91168c3e5ed64736f6c63430008140033",
1272
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c80637bfd32171161011a578063b82d7ef5116100ad578063d4cda0d81161007c578063d4cda0d814610595578063dd26287a146105a6578063de7b5d14146105b9578063f0ea17c3146105cf578063f7f318d3146105ef57600080fd5b8063b82d7ef514610516578063bd7d9d8514610540578063c4d66de814610560578063d06458c61461057557600080fd5b80639096a1f3116100e95780639096a1f31461045b578063a310e2a31461046e578063a5961b4c14610499578063a7ef3d21146104f657600080fd5b80637bfd3217146104025780637e54602a14610415578063887b1fa9146104285780638eb9000d1461044857600080fd5b80633f093cd61161019d57806357f80bbf1161016c57806357f80bbf146103745780635da894021461039457806364eb3a9b146103b957806375d357df146103cc57806378ae9350146103ef57600080fd5b80633f093cd61461030257806344aa68361461032e5780634793b4ab146103415780634fb784f51461036157600080fd5b8063228e42ec116101d9578063228e42ec1461029c57806327b1d792146102af57806335898f5d146102cf57806339bb60cd146102e257600080fd5b80630232ca491461020b5780630b5d931c1461023b5780631488c8451461025b5780631d3be4771461027c575b600080fd5b61021e6102193660046120f1565b610602565b6040516001600160601b0390911681526020015b60405180910390f35b61024e6102493660046120f1565b61067f565b604051610232919061210e565b61026e6102693660046121f1565b610732565b604051908152602001610232565b61028f61028a36600461223d565b6107b1565b60405161023291906122aa565b61021e6102aa3660046120f1565b6108fd565b6102c26102bd3660046120f1565b610937565b6040516102329190612345565b61026e6102dd3660046120f1565b610a01565b6102f56102f03660046123b2565b610a9b565b60405161023291906123e8565b6103156103103660046125c8565b610bed565b6040516001600160c01b03199091168152602001610232565b61026e61033c36600461265a565b610c6a565b61035461034f3660046120f1565b610ca5565b6040516102329190612673565b61026e61036f3660046120f1565b610d4b565b6103876103823660046120f1565b610d78565b60405161023291906126f9565b6103a76103a23660046123b2565b610e1e565b60405160ff9091168152602001610232565b61026e6103c73660046120f1565b610f1b565b6103df6103da3660046120f1565b610f48565b6040519015158152602001610232565b6103a76103fd3660046127fc565b6111d7565b61026e6104103660046120f1565b611237565b61026e6104233660046120f1565b611264565b61043b61043636600461223d565b611291565b604051610232919061282a565b61021e6104563660046120f1565b6113ba565b6103a76104693660046120f1565b6113f4565b61048161047c3660046120f1565b611470565b6040516001600160a01b039091168152602001610232565b6104ac6104a736600461265a565b61151e565b6040516102329190600060808201905060ff835116825260ff6020840151166020830152604083015163ffffffff8082166040850152806060860151166060850152505092915050565b6105096105043660046127fc565b6115ab565b6040516102329190612860565b61052961052436600461223d565b611700565b6040805192835260ff909116602083015201610232565b61055361054e3660046120f1565b6119a8565b6040516102329190612900565b61057361056e366004612ac6565b611ace565b005b61058861058336600461223d565b611be7565b6040516102329190612ae3565b6001546001600160a01b0316610481565b61026e6105b43660046120f1565b611d5a565b60005461010090046001600160a01b0316610481565b6105e26105dd3660046120f1565b611d87565b6040516102329190612b93565b61026e6105fd3660046120f1565b611e55565b600154604051630232ca4960e01b81526001600160601b03831660048201526000916001600160a01b031690630232ca49906024015b602060405180830381865afa158015610655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106799190612c1d565b92915050565b610687611f09565b6001546000906001600160a01b03166354f6127f6106a485611237565b6040518263ffffffff1660e01b81526004016106c291815260200190565b600060405180830381865afa1580156106df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107079190810190612c7f565b80519091501561072c57808060200190518101906107259190612ce3565b9392505050565b50919050565b604051631488c84560e01b815260048101839052600082810b60248301529073__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c84590604401602060405180830381865af415801561078d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190612da3565b6040805160e08101825260008082526060602083018190529282018190528282018190526080820181905260a082015260c08101919091526001546040516355ee627560e01b81526001600160c01b0319841660048201526000916001600160a01b0316906354f6127f9073__$05887d5853069c88bcd4c0a2107db45f29$__906355ee627590602401602060405180830381865af4158015610858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087c9190612da3565b6040518263ffffffff1660e01b815260040161089a91815260200190565b600060405180830381865afa1580156108b7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108df9190810190612c7f565b80519091501561072c57808060200190518101906107259190612df7565b6001546040516308a390bb60e21b81526001600160601b03831660048201526000916001600160a01b03169063228e42ec90602401610638565b6040805160a081018252600080825260208201819052606092820183905291810182905260808101919091526001546000906001600160a01b03166354f6127f61098085611264565b6040518263ffffffff1660e01b815260040161099e91815260200190565b600060405180830381865afa1580156109bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109e39190810190612c7f565b80519091501561072c57808060200190518101906107259190612ef0565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03841660785b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044015b602060405180830381865af4158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106799190612da3565b60408051608081018252600080825260208201819052606092820183905291810191909152600154604051635927341160e01b815262ffffff841660048201526001600160601b03851660248201526000916001600160a01b0316906354f6127f9073__$0f9396e6447a4be57af83e53f51d234633$__90635927341190604401602060405180830381865af4158015610b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5d9190612da3565b6040518263ffffffff1660e01b8152600401610b7b91815260200190565b600060405180830381865afa158015610b98573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bc09190810190612c7f565b805190915015610be65780806020019051810190610bde9190612fb8565b915050610679565b5092915050565b604051631f849e6b60e11b815260009073__$05887d5853069c88bcd4c0a2107db45f29$__90633f093cd690610c299086908690600401613061565b602060405180830381865af4158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190613083565b604051632255341b60e11b81526004810182905260009073__$bf7bc340cbb9229ef1de2c568356e67902$__906344aa683690602401610a5a565b610cad612023565b6001546000906001600160a01b03166354f6127f610cca85611e55565b6040518263ffffffff1660e01b8152600401610ce891815260200190565b600060405180830381865afa158015610d05573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2d9190810190612c7f565b80519091501561072c578080602001905181019061072591906130a0565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b0384166064610a2a565b610d8061207e565b6001546000906001600160a01b03166354f6127f610d9d85611d5a565b6040518263ffffffff1660e01b8152600401610dbb91815260200190565b600060405180830381865afa158015610dd8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e009190810190612c7f565b80519091501561072c57808060200190518101906107259190613180565b600154604051635927341160e01b815262ffffff831660048201526001600160601b03841660248201526000916001600160a01b0316906309648a9d9073__$0f9396e6447a4be57af83e53f51d234633$__906359273411906044015b602060405180830381865af4158015610e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190612da3565b6040518263ffffffff1660e01b8152600401610eda91815260200190565b602060405180830381865afa158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610725919061325f565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03841660d3610a2a565b600080610f54836119a8565b8051604051630a4d29dd60e31b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af4158015610fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd6919061327c565b15610fe45750600092915050565b6101c081015160405163790a38ad60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063790a38ad90602401602060405180830381865af4158015611041573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611065919061327c565b156110735750600092915050565b610200810151604051638d38cd4b60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af41580156110d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f4919061327c565b156111025750600092915050565b61016081015161ffff161561111a5750600092915050565b61112d8161018001518260800151611e82565b1561113b5750600192915050565b6111c073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611187573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ab9190613297565b826101e0015164ffffffffff90811691161090565b156111ce5750600092915050565b50600192915050565b600154604051637d56159160e11b815261ffff831660048201526001600160601b03841660248201526000916001600160a01b0316906309648a9d9073__$9e81531fe4994e01e99541f86b55500b4b$__9063faac2b2290604401610e7b565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038416606e610a2a565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038416607a610a2a565b6040805180820190915260008152606060208201526001546040516355ee627560e01b81526001600160c01b0319841660048201526000916001600160a01b0316906354f6127f9073__$32e9ecefef68cb354d118e0496fdd3f4bc$__906355ee627590602401602060405180830381865af4158015611315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113399190612da3565b6040518263ffffffff1660e01b815260040161135791815260200190565b600060405180830381865afa158015611374573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261139c9190810190612c7f565b80519091501561072c578080602001905181019061072591906132b4565b600154604051638eb9000d60e01b81526001600160601b03831660048201526000916001600160a01b031690638eb9000d90602401610638565b6001546000906001600160a01b03166309648a9d61141184610f1b565b6040518263ffffffff1660e01b815260040161142f91815260200190565b602060405180830381865afa15801561144c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610679919061325f565b60015460009081906001600160a01b03166354f6127f61148f85610d4b565b6040518263ffffffff1660e01b81526004016114ad91815260200190565b600060405180830381865afa1580156114ca573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114f29190810190612c7f565b80519091501561072c57600081806020019051810190611512919061333e565b60600151949350505050565b604080516080810182526000808252602082018190528183018190526060820152600154915163296586d360e21b81526004810184905290916001600160a01b03169063a5961b4c90602401608060405180830381865afa158015611587573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106799190613412565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082015260c0810191909152600154604051637d56159160e11b815261ffff841660048201526001600160601b03851660248201526000916001600160a01b0316906354f6127f9073__$9e81531fe4994e01e99541f86b55500b4b$__9063faac2b2290604401602060405180830381865af415801561165b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167f9190612da3565b6040518263ffffffff1660e01b815260040161169d91815260200190565b600060405180830381865afa1580156116ba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116e29190810190612c7f565b805190915015610be65780806020019051810190610bde9190613479565b600080600061170e846107b1565b60a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063790a38ad90602401602060405180830381865af415801561176d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611791919061327c565b156118105773__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156117df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118039190612da3565b60645b9250925050915091565b6118948160a0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611861573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118859190613297565b64ffffffffff90811691161090565b1561190d5773__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156118e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119069190612da3565b606e611806565b806060015163ffffffff16816080015163ffffffff161061199c5773__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190612da3565b6078611806565b6040810151600a611806565b604080516102208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018190526101208201526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101919091526001546000906001600160a01b03166354f6127f611a4d85610f1b565b6040518263ffffffff1660e01b8152600401611a6b91815260200190565b600060405180830381865afa158015611a88573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ab09190810190612c7f565b80519091501561072c5780806020019051810190610725919061355e565b60005460ff1615611af25760405163ae9eff1b60e01b815260040160405180910390fd5b6001600160a01b038116611b1957604051630cc51a5560e21b815260040160405180910390fd5b80600060016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600060019054906101000a90046001600160a01b03166001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb79190613709565b600180546001600160a01b0319166001600160a01b03929092169190911781556000805460ff1916909117905550565b611c4660405180610120016040528060608152602001600081526020016000815260200160008152602001600063ffffffff168152602001600063ffffffff168152602001600015158152602001600015158152602001606081525090565b6001546040516355ee627560e01b81526001600160c01b0319841660048201526000916001600160a01b0316906354f6127f9073__$1919c6d2c69d787ccb2653a371d7e5737d$__906355ee627590602401602060405180830381865af4158015611cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd99190612da3565b6040518263ffffffff1660e01b8152600401611cf791815260200190565b600060405180830381865afa158015611d14573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d3c9190810190612c7f565b80519091501561072c57808060200190518101906107259190613726565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038416608c610a2a565b6040805160c08101825260608082526000602083018190529282018390528082018390526080820183905260a08201526001549091906001600160a01b03166354f6127f611dd485610d4b565b6040518263ffffffff1660e01b8152600401611df291815260200190565b600060405180830381865afa158015611e0f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e379190810190612c7f565b80519091501561072c5780806020019051810190610725919061333e565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03841660dc610a2a565b60405163c4cade9d60e01b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__9063c4cade9d90604401602060405180830381865af4158015611ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610725919061327c565b60405180610120016040528060006001600160601b0316815260200160006001600160601b03168152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b905290565b6040518060c0016040528060006001600160601b0316815260200161205b604051806040016040528060008152602001600081525090565b815260606020820181905260006040830181905290820181905260809091015290565b604080516101608101825260008082526020808301829052828401829052606083018290526080830182905260a0830182905260c0830182905260e08301829052835180850190945281845283015290610100820190611fda565b6001600160601b03811681146120ee57600080fd5b50565b60006020828403121561210357600080fd5b8135610725816120d9565b81516001600160601b0316815260208083015161020083019161213b908401826001600160601b03169052565b506040830151612158604084018280518252602090810151910152565b50606083015180516080840152602081015160a0840152506080830151805160c0840152602081015160e08401525060a08301516101006121a58185018380518252602090810151910152565b60c0850151805161014086015260209081015161016086015260e086015180516101808701528101516101a08601529085015180516101c0860152908101516101e08501529050610be6565b6000806040838503121561220457600080fd5b8235915060208301358060000b811461221c57600080fd5b809150509250929050565b6001600160c01b0319811681146120ee57600080fd5b60006020828403121561224f57600080fd5b813561072581612227565b60005b8381101561227557818101518382015260200161225d565b50506000910152565b6000815180845261229681602086016020860161225a565b601f01601f19169290920160200192915050565b602081526001600160601b0382511660208201526000602083015160e060408401526122da61010084018261227e565b90506040840151606084015263ffffffff6060850151166080840152608084015161230d60a085018263ffffffff169052565b5060a084015164ffffffffff811660c08501525060c0840151838203601f190160e085015261233c828261227e565b95945050505050565b602081526001600160401b0360c01b82511660208201526020820151151560408201526000604083015160a0606084015261238360c084018261227e565b90506001600160601b03606085015116608084015263ffffffff60808501511660a08401528091505092915050565b600080604083850312156123c557600080fd5b82356123d0816120d9565b9150602083013562ffffff8116811461221c57600080fd5b6020815261ffff82511660208201526001600160601b036020830151166040820152600060408301516080606084015261242560a084018261227e565b905064ffffffffff60608501511660808401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561247a5761247a612442565b60405290565b60405161012081016001600160401b038111828210171561247a5761247a612442565b60405160e081016001600160401b038111828210171561247a5761247a612442565b60405160a081016001600160401b038111828210171561247a5761247a612442565b604051608081016001600160401b038111828210171561247a5761247a612442565b60405160c081016001600160401b038111828210171561247a5761247a612442565b60405161016081016001600160401b038111828210171561247a5761247a612442565b60405161022081016001600160401b038111828210171561247a5761247a612442565b604051601f8201601f191681016001600160401b038111828210171561259957612599612442565b604052919050565b60006001600160401b038211156125ba576125ba612442565b50601f01601f191660200190565b600080604083850312156125db57600080fd5b82356125e6816120d9565b915060208301356001600160401b0381111561260157600080fd5b8301601f8101851361261257600080fd5b8035612625612620826125a1565b612571565b81815286602083850101111561263a57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60006020828403121561266c57600080fd5b5035919050565b602081526001600160601b038251166020820152600060208301516126a5604084018280518252602090810151910152565b50604083015160e060808401526126c061010084018261227e565b9050606084015164ffffffffff80821660a08601528060808701511660c08601528060a08701511660e086015250508091505092915050565b81516001600160601b031681526101c08101602083015161272560208401826001600160401b03169052565b50604083015161274060408401826001600160601b03169052565b506060830151612754606084018215159052565b506080830151612768608084018215159052565b5060a083015161277c60a084018215159052565b5060c083015160c083015260e083015160e0830152610100808401516127ae8285018280518252602090810151910152565b50506101208301516101406127cf8185018380518252602090810151910152565b840151805161018085015260208101516101a08501529050610be6565b61ffff811681146120ee57600080fd5b6000806040838503121561280f57600080fd5b823561281a816120d9565b9150602083013561221c816127ec565b602081526001600160601b03825116602082015260006020830151604080840152612858606084018261227e565b949350505050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301516128a5608084018260ff169052565b50608083015160e060a08401526128c061010084018261227e565b905060a0840151601f198483030160c08501526128dd828261227e565b91505060c08401516128f860e085018264ffffffffff169052565b509392505050565b6020815261291a6020820183516001600160601b03169052565b6000602083015161293660408401826001600160601b03169052565b5060408301516001600160c01b0319811660608401525060608301516001600160c01b0319811660808401525060808301516001600160601b03811660a08401525060a08301516001600160601b03811660c08401525060c08301516001600160601b03811660e08401525060e08301516101006129bc8185018364ffffffffff169052565b8085015191505061022061012081818601526129dc61024086018461227e565b9250808601519050610140601f1986850301818701526129fc848361227e565b935080870151915050610160612a178187018361ffff169052565b8601519050610180612a2e8682018361ffff169052565b86015190506101a0612a4a868201836001600160601b03169052565b86015190506101c0612a66868201836001600160601b03169052565b86015190506101e0612a808682018364ffffffffff169052565b8601519050610200612a9a8682018364ffffffffff169052565b9095015164ffffffffff1693019290925250919050565b6001600160a01b03811681146120ee57600080fd5b600060208284031215612ad857600080fd5b813561072581612ab1565b6020815260008251610120806020850152612b0261014085018361227e565b91506020850151604085015260408501516060850152606085015160808501526080850151612b3960a086018263ffffffff169052565b5060a085015163ffffffff811660c08601525060c085015180151560e08601525060e0850151610100612b6f8187018315159052565b860151858403601f1901838701529050612b89838261227e565b9695505050505050565b602081526000825160c06020840152612baf60e084018261227e565b90506001600160601b036020850151166040840152604084015160018060a01b0380821660608601528060608701511660808601528060808701511660a0860152505060a0840151601f198483030160c085015261233c828261227e565b8051612c18816120d9565b919050565b600060208284031215612c2f57600080fd5b8151610725816120d9565b600082601f830112612c4b57600080fd5b8151612c59612620826125a1565b818152846020838601011115612c6e57600080fd5b61285882602083016020870161225a565b600060208284031215612c9157600080fd5b81516001600160401b03811115612ca757600080fd5b61285884828501612c3a565b600060408284031215612cc557600080fd5b612ccd612458565b9050815181526020820151602082015292915050565b60006102008284031215612cf657600080fd5b612cfe612480565b612d0783612c0d565b8152612d1560208401612c0d565b6020820152612d278460408501612cb3565b6040820152612d398460808501612cb3565b6060820152612d4b8460c08501612cb3565b6080820152610100612d5f85828601612cb3565b60a0830152612d72856101408601612cb3565b60c0830152612d85856101808601612cb3565b60e0830152612d98856101c08601612cb3565b908201529392505050565b600060208284031215612db557600080fd5b5051919050565b63ffffffff811681146120ee57600080fd5b8051612c1881612dbc565b64ffffffffff811681146120ee57600080fd5b8051612c1881612dd9565b600060208284031215612e0957600080fd5b81516001600160401b0380821115612e2057600080fd5b9083019060e08286031215612e3457600080fd5b612e3c6124a3565b612e4583612c0d565b8152602083015182811115612e5957600080fd5b612e6587828601612c3a565b60208301525060408301516040820152612e8160608401612dce565b6060820152612e9260808401612dce565b6080820152612ea360a08401612dec565b60a082015260c083015182811115612eba57600080fd5b612ec687828601612c3a565b60c08301525095945050505050565b8051612c1881612227565b80518015158114612c1857600080fd5b600060208284031215612f0257600080fd5b81516001600160401b0380821115612f1957600080fd5b9083019060a08286031215612f2d57600080fd5b612f356124c5565b8251612f4081612227565b8152612f4e60208401612ee0565b6020820152604083015182811115612f6557600080fd5b612f7187828601612c3a565b60408301525060608301519150612f87826120d9565b81606082015260808301519250612f9d83612dbc565b6080810192909252509392505050565b8051612c18816127ec565b600060208284031215612fca57600080fd5b81516001600160401b0380821115612fe157600080fd5b9083019060808286031215612ff557600080fd5b612ffd6124e7565b8251613008816127ec565b81526020830151613018816120d9565b602082015260408301518281111561302f57600080fd5b61303b87828601612c3a565b6040830152506060830151925061305183612dd9565b6060810192909252509392505050565b6001600160601b0383168152604060208201526000612858604083018461227e565b60006020828403121561309557600080fd5b815161072581612227565b6000602082840312156130b257600080fd5b81516001600160401b03808211156130c957600080fd5b9083019060e082860312156130dd57600080fd5b6130e5612509565b82516130f0816120d9565b81526130ff8660208501612cb3565b602082015260608301518281111561311657600080fd5b61312287828601612c3a565b6040830152506080830151915061313882612dd9565b81606082015261314a60a08401612dec565b608082015261315b60c08401612dec565b60a082015295945050505050565b80516001600160401b0381168114612c1857600080fd5b60006101c0828403121561319357600080fd5b61319b61252b565b6131a483612c0d565b81526131b260208401613169565b60208201526131c360408401612c0d565b60408201526131d460608401612ee0565b60608201526131e560808401612ee0565b60808201526131f660a08401612ee0565b60a082015260c083015160c082015260e083015160e082015261010061321e85828601612cb3565b9082015261014061323185858301612cb3565b610120830152612d98856101808601612cb3565b60ff811681146120ee57600080fd5b8051612c1881613245565b60006020828403121561327157600080fd5b815161072581613245565b60006020828403121561328e57600080fd5b61072582612ee0565b6000602082840312156132a957600080fd5b815161072581612dd9565b6000602082840312156132c657600080fd5b81516001600160401b03808211156132dd57600080fd5b90830190604082860312156132f157600080fd5b6132f9612458565b8251613304816120d9565b815260208301518281111561331857600080fd5b61332487828601612c3a565b60208301525095945050505050565b8051612c1881612ab1565b60006020828403121561335057600080fd5b81516001600160401b038082111561336757600080fd5b9083019060c0828603121561337b57600080fd5b613383612509565b82518281111561339257600080fd5b61339e87828601612c3a565b8252506133ad60208401612c0d565b60208201526133be60408401613333565b60408201526133cf60608401613333565b60608201526133e060808401613333565b608082015260a0830151828111156133f757600080fd5b61340387828601612c3a565b60a08301525095945050505050565b60006080828403121561342457600080fd5b61342c6124e7565b825161343781613245565b8152602083015161344781613245565b6020820152604083015161345a81612dbc565b6040820152606083015161346d81612dbc565b60608201529392505050565b60006020828403121561348b57600080fd5b81516001600160401b03808211156134a257600080fd5b9083019060e082860312156134b657600080fd5b6134be6124a3565b6134c783612c0d565b81526134d560208401612c0d565b60208201526134e660408401613254565b60408201526134f760608401613254565b606082015260808301518281111561350e57600080fd5b61351a87828601612c3a565b60808301525060a08301518281111561353257600080fd5b61353e87828601612c3a565b60a08301525061355060c08401612dec565b60c082015295945050505050565b60006020828403121561357057600080fd5b81516001600160401b038082111561358757600080fd5b90830190610220828603121561359c57600080fd5b6135a461254e565b6135ad83612c0d565b81526135bb60208401612c0d565b60208201526135cc60408401612ed5565b60408201526135dd60608401612ed5565b60608201526135ee60808401612c0d565b60808201526135ff60a08401612c0d565b60a082015261361060c08401612c0d565b60c082015261362160e08401612dec565b60e0820152610100808401518381111561363a57600080fd5b61364688828701612c3a565b828401525050610120808401518381111561366057600080fd5b61366c88828701612c3a565b8284015250506101409150613682828401612fad565b828201526101609150613696828401612fad565b8282015261018091506136aa828401612c0d565b828201526101a091506136be828401612c0d565b828201526101c091506136d2828401612dec565b828201526101e091506136e6828401612dec565b8282015261020091506136fa828401612dec565b91810191909152949350505050565b60006020828403121561371b57600080fd5b815161072581612ab1565b60006020828403121561373857600080fd5b81516001600160401b038082111561374f57600080fd5b90830190610120828603121561376457600080fd5b61376c612480565b82518281111561377b57600080fd5b61378787828601612c3a565b8252506020830151602082015260408301516040820152606083015160608201526137b460808401612dce565b60808201526137c560a08401612dce565b60a08201526137d660c08401612ee0565b60c08201526137e760e08401612ee0565b60e0820152610100808401518381111561380057600080fd5b61380c88828701612c3a565b91830191909152509594505050505056fea26469706673582212207aa4193b549e3824d7b75ffbed8543066757962cb73192c11439d91168c3e5ed64736f6c63430008140033",
1188
1273
  "linkReferences": {
1189
- "contracts/types/ClaimId.sol": {
1274
+ "contracts/type/Amount.sol": {
1275
+ "AmountLib": [
1276
+ {
1277
+ "length": 20,
1278
+ "start": 7883
1279
+ }
1280
+ ]
1281
+ },
1282
+ "contracts/type/ClaimId.sol": {
1190
1283
  "ClaimIdLib": [
1191
1284
  {
1192
1285
  "length": 20,
1193
- "start": 2868
1286
+ "start": 4661
1194
1287
  },
1195
1288
  {
1196
1289
  "length": 20,
1197
- "start": 4336
1290
+ "start": 5697
1198
1291
  }
1199
1292
  ]
1200
1293
  },
1201
- "contracts/types/DistributorType.sol": {
1294
+ "contracts/type/DistributorType.sol": {
1202
1295
  "DistributorTypeLib": [
1203
1296
  {
1204
1297
  "length": 20,
1205
- "start": 5839
1298
+ "start": 7323
1206
1299
  }
1207
1300
  ]
1208
1301
  },
1209
- "contracts/types/NftId.sol": {
1302
+ "contracts/type/NftId.sol": {
1210
1303
  "NftIdLib": [
1211
1304
  {
1212
1305
  "length": 20,
1213
- "start": 1992
1306
+ "start": 2597
1307
+ },
1308
+ {
1309
+ "length": 20,
1310
+ "start": 3439
1214
1311
  },
1215
1312
  {
1216
1313
  "length": 20,
1217
- "start": 2366
1314
+ "start": 3903
1218
1315
  },
1219
1316
  {
1220
1317
  "length": 20,
1221
- "start": 2761
1318
+ "start": 3992
1222
1319
  },
1223
1320
  {
1224
1321
  "length": 20,
1225
- "start": 3061
1322
+ "start": 4699
1226
1323
  },
1227
1324
  {
1228
1325
  "length": 20,
1229
- "start": 3106
1326
+ "start": 4744
1230
1327
  },
1231
1328
  {
1232
1329
  "length": 20,
1233
- "start": 6066
1330
+ "start": 7550
1234
1331
  },
1235
1332
  {
1236
1333
  "length": 20,
1237
- "start": 6652
1334
+ "start": 7801
1238
1335
  }
1239
1336
  ]
1240
1337
  },
1241
- "contracts/types/Referral.sol": {
1338
+ "contracts/type/PayoutId.sol": {
1339
+ "PayoutIdLib": [
1340
+ {
1341
+ "length": 20,
1342
+ "start": 2847
1343
+ },
1344
+ {
1345
+ "length": 20,
1346
+ "start": 3709
1347
+ }
1348
+ ]
1349
+ },
1350
+ "contracts/type/Referral.sol": {
1242
1351
  "ReferralLib": [
1243
1352
  {
1244
1353
  "length": 20,
1245
- "start": 1752
1354
+ "start": 2110
1246
1355
  },
1247
1356
  {
1248
1357
  "length": 20,
1249
- "start": 2425
1358
+ "start": 3103
1250
1359
  }
1251
1360
  ]
1252
1361
  },
1253
- "contracts/types/RiskId.sol": {
1362
+ "contracts/type/RiskId.sol": {
1254
1363
  "RiskIdLib": [
1255
1364
  {
1256
1365
  "length": 20,
1257
- "start": 3221
1366
+ "start": 4859
1258
1367
  }
1259
1368
  ]
1260
1369
  },
1261
- "contracts/types/Timestamp.sol": {
1370
+ "contracts/type/Timestamp.sol": {
1262
1371
  "TimestampLib": [
1263
1372
  {
1264
1373
  "length": 20,
1265
- "start": 4625
1374
+ "start": 4135
1375
+ },
1376
+ {
1377
+ "length": 20,
1378
+ "start": 4278
1379
+ },
1380
+ {
1381
+ "length": 20,
1382
+ "start": 4448
1383
+ },
1384
+ {
1385
+ "length": 20,
1386
+ "start": 5971
1266
1387
  },
1267
1388
  {
1268
1389
  "length": 20,
1269
- "start": 4856
1390
+ "start": 6202
1270
1391
  }
1271
1392
  ]
1272
1393
  },
1273
- "contracts/types/UFixed.sol": {
1394
+ "contracts/type/UFixed.sol": {
1274
1395
  "UFixedLib": [
1275
1396
  {
1276
1397
  "length": 20,
1277
- "start": 1540
1398
+ "start": 1907
1278
1399
  },
1279
1400
  {
1280
1401
  "length": 20,
1281
- "start": 2557
1402
+ "start": 3235
1282
1403
  },
1283
1404
  {
1284
1405
  "length": 20,
1285
- "start": 4726
1406
+ "start": 6072
1286
1407
  },
1287
1408
  {
1288
1409
  "length": 20,
1289
- "start": 4985
1410
+ "start": 6331
1290
1411
  },
1291
1412
  {
1292
1413
  "length": 20,
1293
- "start": 5128
1414
+ "start": 6474
1294
1415
  }
1295
1416
  ]
1296
1417
  }
1297
1418
  },
1298
1419
  "deployedLinkReferences": {
1299
- "contracts/types/ClaimId.sol": {
1420
+ "contracts/type/Amount.sol": {
1421
+ "AmountLib": [
1422
+ {
1423
+ "length": 20,
1424
+ "start": 7851
1425
+ }
1426
+ ]
1427
+ },
1428
+ "contracts/type/ClaimId.sol": {
1300
1429
  "ClaimIdLib": [
1301
1430
  {
1302
1431
  "length": 20,
1303
- "start": 2836
1432
+ "start": 4629
1304
1433
  },
1305
1434
  {
1306
1435
  "length": 20,
1307
- "start": 4304
1436
+ "start": 5665
1308
1437
  }
1309
1438
  ]
1310
1439
  },
1311
- "contracts/types/DistributorType.sol": {
1440
+ "contracts/type/DistributorType.sol": {
1312
1441
  "DistributorTypeLib": [
1313
1442
  {
1314
1443
  "length": 20,
1315
- "start": 5807
1444
+ "start": 7291
1316
1445
  }
1317
1446
  ]
1318
1447
  },
1319
- "contracts/types/NftId.sol": {
1448
+ "contracts/type/NftId.sol": {
1320
1449
  "NftIdLib": [
1321
1450
  {
1322
1451
  "length": 20,
1323
- "start": 1960
1452
+ "start": 2565
1453
+ },
1454
+ {
1455
+ "length": 20,
1456
+ "start": 3407
1457
+ },
1458
+ {
1459
+ "length": 20,
1460
+ "start": 3871
1324
1461
  },
1325
1462
  {
1326
1463
  "length": 20,
1327
- "start": 2334
1464
+ "start": 3960
1328
1465
  },
1329
1466
  {
1330
1467
  "length": 20,
1331
- "start": 2729
1468
+ "start": 4667
1332
1469
  },
1333
1470
  {
1334
1471
  "length": 20,
1335
- "start": 3029
1472
+ "start": 4712
1336
1473
  },
1337
1474
  {
1338
1475
  "length": 20,
1339
- "start": 3074
1476
+ "start": 7518
1340
1477
  },
1341
1478
  {
1342
1479
  "length": 20,
1343
- "start": 6034
1480
+ "start": 7769
1481
+ }
1482
+ ]
1483
+ },
1484
+ "contracts/type/PayoutId.sol": {
1485
+ "PayoutIdLib": [
1486
+ {
1487
+ "length": 20,
1488
+ "start": 2815
1344
1489
  },
1345
1490
  {
1346
1491
  "length": 20,
1347
- "start": 6620
1492
+ "start": 3677
1348
1493
  }
1349
1494
  ]
1350
1495
  },
1351
- "contracts/types/Referral.sol": {
1496
+ "contracts/type/Referral.sol": {
1352
1497
  "ReferralLib": [
1353
1498
  {
1354
1499
  "length": 20,
1355
- "start": 1720
1500
+ "start": 2078
1356
1501
  },
1357
1502
  {
1358
1503
  "length": 20,
1359
- "start": 2393
1504
+ "start": 3071
1360
1505
  }
1361
1506
  ]
1362
1507
  },
1363
- "contracts/types/RiskId.sol": {
1508
+ "contracts/type/RiskId.sol": {
1364
1509
  "RiskIdLib": [
1365
1510
  {
1366
1511
  "length": 20,
1367
- "start": 3189
1512
+ "start": 4827
1368
1513
  }
1369
1514
  ]
1370
1515
  },
1371
- "contracts/types/Timestamp.sol": {
1516
+ "contracts/type/Timestamp.sol": {
1372
1517
  "TimestampLib": [
1373
1518
  {
1374
1519
  "length": 20,
1375
- "start": 4593
1520
+ "start": 4103
1521
+ },
1522
+ {
1523
+ "length": 20,
1524
+ "start": 4246
1525
+ },
1526
+ {
1527
+ "length": 20,
1528
+ "start": 4416
1529
+ },
1530
+ {
1531
+ "length": 20,
1532
+ "start": 5939
1376
1533
  },
1377
1534
  {
1378
1535
  "length": 20,
1379
- "start": 4824
1536
+ "start": 6170
1380
1537
  }
1381
1538
  ]
1382
1539
  },
1383
- "contracts/types/UFixed.sol": {
1540
+ "contracts/type/UFixed.sol": {
1384
1541
  "UFixedLib": [
1385
1542
  {
1386
1543
  "length": 20,
1387
- "start": 1508
1544
+ "start": 1875
1388
1545
  },
1389
1546
  {
1390
1547
  "length": 20,
1391
- "start": 2525
1548
+ "start": 3203
1392
1549
  },
1393
1550
  {
1394
1551
  "length": 20,
1395
- "start": 4694
1552
+ "start": 6040
1396
1553
  },
1397
1554
  {
1398
1555
  "length": 20,
1399
- "start": 4953
1556
+ "start": 6299
1400
1557
  },
1401
1558
  {
1402
1559
  "length": 20,
1403
- "start": 5096
1560
+ "start": 6442
1404
1561
  }
1405
1562
  ]
1406
1563
  }