@etherisc/gif-next 0.0.2-8b116c2-371 → 0.0.2-8bc5066-981

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (527) hide show
  1. package/README.md +49 -4
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1304 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1325 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1055 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  19. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +133 -501
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +335 -229
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +123 -103
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +164 -210
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +194 -47
  32. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  33. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  34. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  36. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  38. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
  40. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  42. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  44. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  45. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  52. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  53. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  54. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  55. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +105 -103
  56. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +163 -111
  58. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/Instance.sol/Instance.json +108 -243
  60. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1269 -267
  62. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  64. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  65. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +511 -154
  66. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +212 -262
  68. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +84 -92
  70. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +324 -288
  72. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  74. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  76. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  78. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  80. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  82. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  83. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  86. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  88. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  89. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  90. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1039 -0
  92. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  94. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  96. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +109 -80
  98. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -9
  100. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +119 -358
  102. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +110 -141
  104. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +82 -78
  106. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  107. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
  108. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  109. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
  110. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  111. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +517 -157
  112. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +176 -88
  114. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  115. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +271 -1
  116. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  117. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +125 -319
  118. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  119. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +410 -192
  120. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  121. package/artifacts/contracts/pool/Pool.sol/Pool.json +165 -632
  122. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  123. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +524 -331
  124. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +111 -83
  126. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  127. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +95 -158
  128. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +79 -91
  130. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  131. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
  132. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  134. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  135. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +322 -169
  136. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +126 -98
  138. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  139. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +47 -0
  140. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  141. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +189 -6
  142. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  143. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +336 -118
  144. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  145. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +127 -85
  146. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  147. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +154 -137
  148. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  149. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +44 -2
  150. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  151. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +451 -295
  152. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +123 -95
  154. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  155. package/artifacts/contracts/product/PricingService.sol/PricingService.json +207 -283
  156. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  157. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -112
  158. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  159. package/artifacts/contracts/product/Product.sol/Product.json +168 -434
  160. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  161. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  162. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  164. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  165. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  166. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  167. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +314 -53
  168. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  169. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +55 -146
  170. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  171. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  172. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/Registry.sol/Registry.json +536 -111
  174. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  175. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1550 -164
  176. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  177. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +96 -265
  178. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  179. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +74 -70
  180. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  181. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1696 -0
  182. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  183. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  184. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  185. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1295 -0
  186. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  188. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  190. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  191. package/artifacts/contracts/shared/Component.sol/Component.json +65 -236
  192. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  193. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +541 -263
  194. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -114
  196. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  197. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +51 -103
  198. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  200. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -54
  202. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +487 -19
  204. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +98 -80
  206. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  207. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
  208. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  210. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  212. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  213. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  214. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
  216. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IService.sol/IService.json +42 -0
  219. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  220. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  221. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +111 -318
  223. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  224. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
  225. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  226. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  227. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  228. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  229. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  231. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  232. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  233. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
  235. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  236. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  237. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  238. package/artifacts/contracts/shared/Service.sol/Service.json +51 -103
  239. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  240. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  241. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  242. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  243. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  244. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +82 -55
  245. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  246. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +78 -28
  247. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  248. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +97 -101
  249. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  250. package/artifacts/contracts/staking/Staking.sol/Staking.json +168 -325
  251. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  252. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  253. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  254. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +103 -104
  255. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  256. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -17
  257. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  258. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +123 -198
  259. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  260. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +76 -92
  261. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  262. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +241 -147
  263. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  264. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  265. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  266. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  267. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  269. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  271. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  273. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  275. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  277. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  279. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  281. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  282. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  283. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +136 -2
  285. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  287. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  289. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  291. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  293. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  295. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  297. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  299. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  301. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  303. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  305. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  307. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  309. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  311. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  313. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  315. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  316. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  317. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  318. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  319. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  320. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  321. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  322. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  323. package/contracts/authorization/AccessAdmin.sol +601 -0
  324. package/contracts/authorization/AccessManagerCloneable.sol +80 -0
  325. package/contracts/authorization/Authorization.sol +289 -0
  326. package/contracts/authorization/IAccess.sol +49 -0
  327. package/contracts/authorization/IAccessAdmin.sol +136 -0
  328. package/contracts/authorization/IAuthorization.sol +60 -0
  329. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  330. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  331. package/contracts/distribution/BasicDistribution.sol +139 -0
  332. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  333. package/contracts/distribution/Distribution.sol +140 -116
  334. package/contracts/distribution/DistributionService.sol +141 -84
  335. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  336. package/contracts/distribution/IDistributionComponent.sol +26 -40
  337. package/contracts/distribution/IDistributionService.sol +23 -3
  338. package/contracts/examples/fire/DamageLevel.sol +59 -0
  339. package/contracts/examples/fire/FirePool.sol +73 -0
  340. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  341. package/contracts/examples/fire/FireProduct.sol +415 -0
  342. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  343. package/contracts/examples/fire/FireUSD.sol +26 -0
  344. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  345. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  346. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  347. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  348. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  349. package/contracts/instance/IInstance.sol +24 -40
  350. package/contracts/instance/IInstanceService.sol +27 -36
  351. package/contracts/instance/Instance.sol +123 -127
  352. package/contracts/instance/InstanceAdmin.sol +227 -263
  353. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  354. package/contracts/instance/InstanceReader.sol +139 -34
  355. package/contracts/instance/InstanceService.sol +178 -128
  356. package/contracts/instance/InstanceServiceManager.sol +8 -13
  357. package/contracts/instance/InstanceStore.sol +26 -20
  358. package/contracts/instance/base/BalanceStore.sol +11 -6
  359. package/contracts/instance/base/Cloneable.sol +2 -25
  360. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  361. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  362. package/contracts/instance/module/IBundle.sol +1 -1
  363. package/contracts/instance/module/IComponents.sol +10 -11
  364. package/contracts/instance/module/IDistribution.sol +0 -1
  365. package/contracts/instance/module/IPolicy.sol +24 -24
  366. package/contracts/mock/Dip.sol +1 -1
  367. package/contracts/oracle/BasicOracle.sol +47 -0
  368. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  369. package/contracts/oracle/IOracle.sol +16 -0
  370. package/contracts/oracle/IOracleComponent.sol +2 -1
  371. package/contracts/oracle/IOracleService.sol +2 -1
  372. package/contracts/oracle/Oracle.sol +64 -53
  373. package/contracts/oracle/OracleService.sol +51 -37
  374. package/contracts/oracle/OracleServiceManager.sol +8 -11
  375. package/contracts/pool/BasicPool.sol +154 -0
  376. package/contracts/pool/BasicPoolAuthorization.sol +57 -0
  377. package/contracts/pool/BundleService.sol +284 -87
  378. package/contracts/pool/BundleServiceManager.sol +8 -11
  379. package/contracts/pool/IBundleService.sol +42 -5
  380. package/contracts/pool/IPoolComponent.sol +24 -68
  381. package/contracts/pool/IPoolService.sol +56 -39
  382. package/contracts/pool/Pool.sol +184 -148
  383. package/contracts/pool/PoolService.sol +262 -171
  384. package/contracts/pool/PoolServiceManager.sol +6 -9
  385. package/contracts/product/ApplicationService.sol +75 -70
  386. package/contracts/product/ApplicationServiceManager.sol +6 -6
  387. package/contracts/product/BasicProduct.sol +53 -0
  388. package/contracts/product/BasicProductAuthorization.sol +42 -0
  389. package/contracts/product/ClaimService.sol +321 -151
  390. package/contracts/product/ClaimServiceManager.sol +6 -6
  391. package/contracts/product/IApplicationService.sol +1 -0
  392. package/contracts/product/IClaimService.sol +31 -7
  393. package/contracts/product/IPolicyService.sol +34 -32
  394. package/contracts/product/IPricingService.sol +10 -10
  395. package/contracts/product/IProductComponent.sol +26 -9
  396. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  397. package/contracts/product/PolicyService.sol +424 -208
  398. package/contracts/product/PolicyServiceManager.sol +6 -9
  399. package/contracts/product/PricingService.sol +58 -59
  400. package/contracts/product/PricingServiceManager.sol +5 -8
  401. package/contracts/product/Product.sol +211 -133
  402. package/contracts/product/{ProductService.sol → RiskService.sol} +18 -46
  403. package/contracts/product/RiskServiceManager.sol +39 -0
  404. package/contracts/registry/ChainNft.sol +68 -38
  405. package/contracts/registry/IRegistry.sol +71 -22
  406. package/contracts/registry/IRegistryService.sol +3 -10
  407. package/contracts/registry/ITransferInterceptor.sol +1 -2
  408. package/contracts/registry/Registry.sol +354 -213
  409. package/contracts/registry/RegistryAdmin.sol +267 -171
  410. package/contracts/registry/RegistryService.sol +44 -69
  411. package/contracts/registry/RegistryServiceManager.sol +4 -9
  412. package/contracts/registry/ReleaseAdmin.sol +248 -0
  413. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  414. package/contracts/registry/ReleaseRegistry.sol +507 -0
  415. package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
  416. package/contracts/registry/TokenRegistry.sol +2 -2
  417. package/contracts/shared/Component.sol +47 -63
  418. package/contracts/shared/ComponentService.sol +316 -189
  419. package/contracts/shared/ComponentServiceManager.sol +10 -7
  420. package/contracts/shared/ComponentVerifyingService.sol +24 -15
  421. package/contracts/shared/ContractLib.sol +38 -0
  422. package/contracts/shared/IComponent.sol +10 -6
  423. package/contracts/shared/IComponentService.sol +38 -20
  424. package/contracts/shared/IInstanceLinkedComponent.sol +11 -16
  425. package/contracts/shared/IKeyValueStore.sol +1 -0
  426. package/contracts/shared/ILifecycle.sol +3 -2
  427. package/contracts/shared/INftOwnable.sol +2 -0
  428. package/contracts/shared/IPolicyHolder.sol +12 -22
  429. package/contracts/shared/IRegisterable.sol +11 -0
  430. package/contracts/shared/IService.sol +8 -1
  431. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  432. package/contracts/shared/InstanceLinkedComponent.sol +106 -37
  433. package/contracts/shared/KeyValueStore.sol +7 -3
  434. package/contracts/shared/Lifecycle.sol +30 -72
  435. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  436. package/contracts/shared/NftOwnable.sol +29 -9
  437. package/contracts/shared/PolicyHolder.sol +17 -57
  438. package/contracts/shared/Registerable.sol +19 -9
  439. package/contracts/shared/RegistryLinked.sol +3 -2
  440. package/contracts/shared/Service.sol +43 -36
  441. package/contracts/shared/TokenHandler.sol +100 -19
  442. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  443. package/contracts/staking/IStaking.sol +3 -3
  444. package/contracts/staking/IStakingService.sol +22 -14
  445. package/contracts/staking/StakeManagerLib.sol +70 -25
  446. package/contracts/staking/Staking.sol +86 -140
  447. package/contracts/staking/StakingLifecycle.sol +23 -0
  448. package/contracts/staking/StakingManager.sol +10 -12
  449. package/contracts/staking/StakingReader.sol +23 -20
  450. package/contracts/staking/StakingService.sol +83 -82
  451. package/contracts/staking/StakingServiceManager.sol +4 -5
  452. package/contracts/staking/StakingStore.sol +93 -60
  453. package/contracts/staking/TargetManagerLib.sol +7 -3
  454. package/contracts/type/Amount.sol +27 -5
  455. package/contracts/type/Blocknumber.sol +7 -1
  456. package/contracts/type/ClaimId.sol +6 -1
  457. package/contracts/type/NftId.sol +1 -0
  458. package/contracts/type/ObjectType.sol +172 -64
  459. package/contracts/type/PayoutId.sol +10 -10
  460. package/contracts/type/Referral.sol +1 -0
  461. package/contracts/type/RiskId.sol +15 -1
  462. package/contracts/type/RoleId.sol +100 -81
  463. package/contracts/type/Seconds.sol +21 -1
  464. package/contracts/type/Selector.sol +102 -0
  465. package/contracts/type/StateId.sol +15 -1
  466. package/contracts/type/String.sol +53 -0
  467. package/contracts/type/Timestamp.sol +11 -1
  468. package/contracts/type/UFixed.sol +38 -9
  469. package/contracts/type/Version.sol +3 -1
  470. package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
  471. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  472. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  473. package/package.json +7 -4
  474. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  475. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  476. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  477. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  478. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  479. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  480. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  481. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  482. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
  483. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  484. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
  485. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  486. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  487. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  488. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  489. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  490. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  491. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  492. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  493. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  494. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  495. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  496. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  497. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  498. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  499. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  500. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  501. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  502. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  503. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  504. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  505. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  506. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  507. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  508. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  509. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  510. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  511. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  512. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  513. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  514. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  515. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  516. package/contracts/product/ProductServiceManager.sol +0 -42
  517. package/contracts/registry/ReleaseManager.sol +0 -600
  518. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  519. package/contracts/shared/AccessManagerCustom.sol +0 -736
  520. package/contracts/shared/AccessManagerExtended.sol +0 -470
  521. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  522. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  523. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  524. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  525. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  526. package/contracts/shared/InitializableCustom.sol +0 -177
  527. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -0,0 +1,1696 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ReleaseAdmin",
4
+ "sourceName": "contracts/registry/ReleaseAdmin.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "address",
15
+ "name": "authority",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "name": "AccessManagedInvalidAuthority",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "address",
26
+ "name": "caller",
27
+ "type": "address"
28
+ },
29
+ {
30
+ "internalType": "uint32",
31
+ "name": "delay",
32
+ "type": "uint32"
33
+ }
34
+ ],
35
+ "name": "AccessManagedRequiredDelay",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [
40
+ {
41
+ "internalType": "address",
42
+ "name": "caller",
43
+ "type": "address"
44
+ }
45
+ ],
46
+ "name": "AccessManagedUnauthorized",
47
+ "type": "error"
48
+ },
49
+ {
50
+ "inputs": [],
51
+ "name": "ErrorAdminRoleMissing",
52
+ "type": "error"
53
+ },
54
+ {
55
+ "inputs": [
56
+ {
57
+ "internalType": "address",
58
+ "name": "target",
59
+ "type": "address"
60
+ }
61
+ ],
62
+ "name": "ErrorAuthorizeForAdminRoleInvalid",
63
+ "type": "error"
64
+ },
65
+ {
66
+ "inputs": [
67
+ {
68
+ "internalType": "RoleId",
69
+ "name": "adminRoleId",
70
+ "type": "uint64"
71
+ }
72
+ ],
73
+ "name": "ErrorNotAdminOfRole",
74
+ "type": "error"
75
+ },
76
+ {
77
+ "inputs": [],
78
+ "name": "ErrorNotDeployer",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [
83
+ {
84
+ "internalType": "RoleId",
85
+ "name": "roleId",
86
+ "type": "uint64"
87
+ }
88
+ ],
89
+ "name": "ErrorNotRoleOwner",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [
94
+ {
95
+ "internalType": "address",
96
+ "name": "caller",
97
+ "type": "address"
98
+ }
99
+ ],
100
+ "name": "ErrorReleaseAdminCallerNotReleaseRegistry",
101
+ "type": "error"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "internalType": "address",
107
+ "name": "notService",
108
+ "type": "address"
109
+ }
110
+ ],
111
+ "name": "ErrorReleaseAdminNotService",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "inputs": [],
116
+ "name": "ErrorReleaseAdminReleaseAlreadyLocked",
117
+ "type": "error"
118
+ },
119
+ {
120
+ "inputs": [
121
+ {
122
+ "internalType": "RoleId",
123
+ "name": "adminRoleId",
124
+ "type": "uint64"
125
+ }
126
+ ],
127
+ "name": "ErrorRoleAdminNotExisting",
128
+ "type": "error"
129
+ },
130
+ {
131
+ "inputs": [
132
+ {
133
+ "internalType": "RoleId",
134
+ "name": "roleId",
135
+ "type": "uint64"
136
+ },
137
+ {
138
+ "internalType": "string",
139
+ "name": "name",
140
+ "type": "string"
141
+ }
142
+ ],
143
+ "name": "ErrorRoleAlreadyCreated",
144
+ "type": "error"
145
+ },
146
+ {
147
+ "inputs": [
148
+ {
149
+ "internalType": "RoleId",
150
+ "name": "roleId",
151
+ "type": "uint64"
152
+ }
153
+ ],
154
+ "name": "ErrorRoleIsLocked",
155
+ "type": "error"
156
+ },
157
+ {
158
+ "inputs": [
159
+ {
160
+ "internalType": "RoleId",
161
+ "name": "roleId",
162
+ "type": "uint64"
163
+ }
164
+ ],
165
+ "name": "ErrorRoleIsPaused",
166
+ "type": "error"
167
+ },
168
+ {
169
+ "inputs": [
170
+ {
171
+ "internalType": "RoleId",
172
+ "name": "roleId",
173
+ "type": "uint64"
174
+ },
175
+ {
176
+ "internalType": "address",
177
+ "name": "notContract",
178
+ "type": "address"
179
+ }
180
+ ],
181
+ "name": "ErrorRoleMemberNotContract",
182
+ "type": "error"
183
+ },
184
+ {
185
+ "inputs": [
186
+ {
187
+ "internalType": "RoleId",
188
+ "name": "roleId",
189
+ "type": "uint64"
190
+ },
191
+ {
192
+ "internalType": "address",
193
+ "name": "expectedMember",
194
+ "type": "address"
195
+ }
196
+ ],
197
+ "name": "ErrorRoleMemberRemovalDisabled",
198
+ "type": "error"
199
+ },
200
+ {
201
+ "inputs": [
202
+ {
203
+ "internalType": "RoleId",
204
+ "name": "roleId",
205
+ "type": "uint64"
206
+ },
207
+ {
208
+ "internalType": "uint256",
209
+ "name": "memberCountLimit",
210
+ "type": "uint256"
211
+ }
212
+ ],
213
+ "name": "ErrorRoleMembersLimitReached",
214
+ "type": "error"
215
+ },
216
+ {
217
+ "inputs": [
218
+ {
219
+ "internalType": "RoleId",
220
+ "name": "roleId",
221
+ "type": "uint64"
222
+ },
223
+ {
224
+ "internalType": "string",
225
+ "name": "name",
226
+ "type": "string"
227
+ },
228
+ {
229
+ "internalType": "RoleId",
230
+ "name": "existingRoleId",
231
+ "type": "uint64"
232
+ }
233
+ ],
234
+ "name": "ErrorRoleNameAlreadyExists",
235
+ "type": "error"
236
+ },
237
+ {
238
+ "inputs": [
239
+ {
240
+ "internalType": "RoleId",
241
+ "name": "roleId",
242
+ "type": "uint64"
243
+ }
244
+ ],
245
+ "name": "ErrorRoleNameEmpty",
246
+ "type": "error"
247
+ },
248
+ {
249
+ "inputs": [
250
+ {
251
+ "internalType": "RoleId",
252
+ "name": "roleId",
253
+ "type": "uint64"
254
+ }
255
+ ],
256
+ "name": "ErrorRoleUnknown",
257
+ "type": "error"
258
+ },
259
+ {
260
+ "inputs": [],
261
+ "name": "ErrorTagetNotLockable",
262
+ "type": "error"
263
+ },
264
+ {
265
+ "inputs": [
266
+ {
267
+ "internalType": "address",
268
+ "name": "target",
269
+ "type": "address"
270
+ },
271
+ {
272
+ "internalType": "string",
273
+ "name": "name",
274
+ "type": "string"
275
+ }
276
+ ],
277
+ "name": "ErrorTargetAlreadyCreated",
278
+ "type": "error"
279
+ },
280
+ {
281
+ "inputs": [
282
+ {
283
+ "internalType": "address",
284
+ "name": "target",
285
+ "type": "address"
286
+ },
287
+ {
288
+ "internalType": "bool",
289
+ "name": "isLocked",
290
+ "type": "bool"
291
+ }
292
+ ],
293
+ "name": "ErrorTargetAlreadyLocked",
294
+ "type": "error"
295
+ },
296
+ {
297
+ "inputs": [
298
+ {
299
+ "internalType": "address",
300
+ "name": "expectedAuthority",
301
+ "type": "address"
302
+ },
303
+ {
304
+ "internalType": "address",
305
+ "name": "actualAuthority",
306
+ "type": "address"
307
+ }
308
+ ],
309
+ "name": "ErrorTargetAuthorityMismatch",
310
+ "type": "error"
311
+ },
312
+ {
313
+ "inputs": [
314
+ {
315
+ "internalType": "address",
316
+ "name": "target",
317
+ "type": "address"
318
+ },
319
+ {
320
+ "internalType": "string",
321
+ "name": "name",
322
+ "type": "string"
323
+ },
324
+ {
325
+ "internalType": "address",
326
+ "name": "existingTarget",
327
+ "type": "address"
328
+ }
329
+ ],
330
+ "name": "ErrorTargetNameAlreadyExists",
331
+ "type": "error"
332
+ },
333
+ {
334
+ "inputs": [
335
+ {
336
+ "internalType": "address",
337
+ "name": "target",
338
+ "type": "address"
339
+ }
340
+ ],
341
+ "name": "ErrorTargetNameEmpty",
342
+ "type": "error"
343
+ },
344
+ {
345
+ "inputs": [
346
+ {
347
+ "internalType": "address",
348
+ "name": "target",
349
+ "type": "address"
350
+ }
351
+ ],
352
+ "name": "ErrorTargetNotAccessManaged",
353
+ "type": "error"
354
+ },
355
+ {
356
+ "inputs": [
357
+ {
358
+ "internalType": "address",
359
+ "name": "target",
360
+ "type": "address"
361
+ }
362
+ ],
363
+ "name": "ErrorTargetUnknown",
364
+ "type": "error"
365
+ },
366
+ {
367
+ "inputs": [],
368
+ "name": "InvalidInitialization",
369
+ "type": "error"
370
+ },
371
+ {
372
+ "inputs": [],
373
+ "name": "NotInitializing",
374
+ "type": "error"
375
+ },
376
+ {
377
+ "inputs": [],
378
+ "name": "ReentrancyGuardReentrantCall",
379
+ "type": "error"
380
+ },
381
+ {
382
+ "anonymous": false,
383
+ "inputs": [
384
+ {
385
+ "indexed": false,
386
+ "internalType": "address",
387
+ "name": "authority",
388
+ "type": "address"
389
+ }
390
+ ],
391
+ "name": "AuthorityUpdated",
392
+ "type": "event"
393
+ },
394
+ {
395
+ "anonymous": false,
396
+ "inputs": [
397
+ {
398
+ "indexed": false,
399
+ "internalType": "uint64",
400
+ "name": "version",
401
+ "type": "uint64"
402
+ }
403
+ ],
404
+ "name": "Initialized",
405
+ "type": "event"
406
+ },
407
+ {
408
+ "anonymous": false,
409
+ "inputs": [
410
+ {
411
+ "indexed": false,
412
+ "internalType": "address",
413
+ "name": "target",
414
+ "type": "address"
415
+ },
416
+ {
417
+ "indexed": false,
418
+ "internalType": "Selector",
419
+ "name": "selector",
420
+ "type": "bytes4"
421
+ },
422
+ {
423
+ "indexed": false,
424
+ "internalType": "string",
425
+ "name": "name",
426
+ "type": "string"
427
+ }
428
+ ],
429
+ "name": "LogFunctionCreated",
430
+ "type": "event"
431
+ },
432
+ {
433
+ "anonymous": false,
434
+ "inputs": [
435
+ {
436
+ "indexed": false,
437
+ "internalType": "RoleId",
438
+ "name": "roleId",
439
+ "type": "uint64"
440
+ },
441
+ {
442
+ "indexed": false,
443
+ "internalType": "enum IAccess.RoleType",
444
+ "name": "roleType",
445
+ "type": "uint8"
446
+ },
447
+ {
448
+ "indexed": false,
449
+ "internalType": "RoleId",
450
+ "name": "roleAdminId",
451
+ "type": "uint64"
452
+ },
453
+ {
454
+ "indexed": false,
455
+ "internalType": "string",
456
+ "name": "name",
457
+ "type": "string"
458
+ }
459
+ ],
460
+ "name": "LogRoleCreated",
461
+ "type": "event"
462
+ },
463
+ {
464
+ "anonymous": false,
465
+ "inputs": [
466
+ {
467
+ "indexed": false,
468
+ "internalType": "address",
469
+ "name": "target",
470
+ "type": "address"
471
+ },
472
+ {
473
+ "indexed": false,
474
+ "internalType": "string",
475
+ "name": "name",
476
+ "type": "string"
477
+ }
478
+ ],
479
+ "name": "LogTargetCreated",
480
+ "type": "event"
481
+ },
482
+ {
483
+ "inputs": [],
484
+ "name": "ADMIN_ROLE_NAME",
485
+ "outputs": [
486
+ {
487
+ "internalType": "string",
488
+ "name": "",
489
+ "type": "string"
490
+ }
491
+ ],
492
+ "stateMutability": "view",
493
+ "type": "function"
494
+ },
495
+ {
496
+ "inputs": [],
497
+ "name": "PUBLIC_ROLE_NAME",
498
+ "outputs": [
499
+ {
500
+ "internalType": "string",
501
+ "name": "",
502
+ "type": "string"
503
+ }
504
+ ],
505
+ "stateMutability": "view",
506
+ "type": "function"
507
+ },
508
+ {
509
+ "inputs": [],
510
+ "name": "RELEASE_ADMIN_TARGET_NAME",
511
+ "outputs": [
512
+ {
513
+ "internalType": "string",
514
+ "name": "",
515
+ "type": "string"
516
+ }
517
+ ],
518
+ "stateMutability": "view",
519
+ "type": "function"
520
+ },
521
+ {
522
+ "inputs": [],
523
+ "name": "RELEASE_REGISTRY_ROLE_NAME",
524
+ "outputs": [
525
+ {
526
+ "internalType": "string",
527
+ "name": "",
528
+ "type": "string"
529
+ }
530
+ ],
531
+ "stateMutability": "view",
532
+ "type": "function"
533
+ },
534
+ {
535
+ "inputs": [],
536
+ "name": "authority",
537
+ "outputs": [
538
+ {
539
+ "internalType": "address",
540
+ "name": "",
541
+ "type": "address"
542
+ }
543
+ ],
544
+ "stateMutability": "view",
545
+ "type": "function"
546
+ },
547
+ {
548
+ "inputs": [
549
+ {
550
+ "internalType": "contract IServiceAuthorization",
551
+ "name": "serviceAuthorization",
552
+ "type": "address"
553
+ },
554
+ {
555
+ "internalType": "contract IService",
556
+ "name": "service",
557
+ "type": "address"
558
+ },
559
+ {
560
+ "internalType": "ObjectType",
561
+ "name": "serviceDomain",
562
+ "type": "uint8"
563
+ },
564
+ {
565
+ "internalType": "VersionPart",
566
+ "name": "releaseVersion",
567
+ "type": "uint8"
568
+ }
569
+ ],
570
+ "name": "authorizeService",
571
+ "outputs": [],
572
+ "stateMutability": "nonpayable",
573
+ "type": "function"
574
+ },
575
+ {
576
+ "inputs": [
577
+ {
578
+ "internalType": "address",
579
+ "name": "target",
580
+ "type": "address"
581
+ }
582
+ ],
583
+ "name": "authorizedFunctions",
584
+ "outputs": [
585
+ {
586
+ "internalType": "uint256",
587
+ "name": "numberOfFunctions",
588
+ "type": "uint256"
589
+ }
590
+ ],
591
+ "stateMutability": "view",
592
+ "type": "function"
593
+ },
594
+ {
595
+ "inputs": [
596
+ {
597
+ "internalType": "address",
598
+ "name": "caller",
599
+ "type": "address"
600
+ },
601
+ {
602
+ "internalType": "address",
603
+ "name": "target",
604
+ "type": "address"
605
+ },
606
+ {
607
+ "internalType": "Selector",
608
+ "name": "selector",
609
+ "type": "bytes4"
610
+ }
611
+ ],
612
+ "name": "canCall",
613
+ "outputs": [
614
+ {
615
+ "internalType": "bool",
616
+ "name": "can",
617
+ "type": "bool"
618
+ }
619
+ ],
620
+ "stateMutability": "view",
621
+ "type": "function"
622
+ },
623
+ {
624
+ "inputs": [
625
+ {
626
+ "internalType": "address",
627
+ "name": "registry",
628
+ "type": "address"
629
+ },
630
+ {
631
+ "internalType": "address",
632
+ "name": "releaseRegistry",
633
+ "type": "address"
634
+ },
635
+ {
636
+ "internalType": "VersionPart",
637
+ "name": "releaseVersion",
638
+ "type": "uint8"
639
+ }
640
+ ],
641
+ "name": "completeSetup",
642
+ "outputs": [],
643
+ "stateMutability": "nonpayable",
644
+ "type": "function"
645
+ },
646
+ {
647
+ "inputs": [],
648
+ "name": "deployer",
649
+ "outputs": [
650
+ {
651
+ "internalType": "address",
652
+ "name": "",
653
+ "type": "address"
654
+ }
655
+ ],
656
+ "stateMutability": "view",
657
+ "type": "function"
658
+ },
659
+ {
660
+ "inputs": [],
661
+ "name": "getAdminRole",
662
+ "outputs": [
663
+ {
664
+ "internalType": "RoleId",
665
+ "name": "roleId",
666
+ "type": "uint64"
667
+ }
668
+ ],
669
+ "stateMutability": "view",
670
+ "type": "function"
671
+ },
672
+ {
673
+ "inputs": [
674
+ {
675
+ "internalType": "address",
676
+ "name": "target",
677
+ "type": "address"
678
+ },
679
+ {
680
+ "internalType": "uint256",
681
+ "name": "idx",
682
+ "type": "uint256"
683
+ }
684
+ ],
685
+ "name": "getAuthorizedFunction",
686
+ "outputs": [
687
+ {
688
+ "components": [
689
+ {
690
+ "internalType": "Str",
691
+ "name": "name",
692
+ "type": "bytes32"
693
+ },
694
+ {
695
+ "internalType": "Selector",
696
+ "name": "selector",
697
+ "type": "bytes4"
698
+ },
699
+ {
700
+ "internalType": "Timestamp",
701
+ "name": "createdAt",
702
+ "type": "uint40"
703
+ }
704
+ ],
705
+ "internalType": "struct IAccess.FunctionInfo",
706
+ "name": "func",
707
+ "type": "tuple"
708
+ },
709
+ {
710
+ "internalType": "RoleId",
711
+ "name": "roleId",
712
+ "type": "uint64"
713
+ }
714
+ ],
715
+ "stateMutability": "view",
716
+ "type": "function"
717
+ },
718
+ {
719
+ "inputs": [],
720
+ "name": "getPublicRole",
721
+ "outputs": [
722
+ {
723
+ "internalType": "RoleId",
724
+ "name": "roleId",
725
+ "type": "uint64"
726
+ }
727
+ ],
728
+ "stateMutability": "view",
729
+ "type": "function"
730
+ },
731
+ {
732
+ "inputs": [
733
+ {
734
+ "internalType": "Str",
735
+ "name": "name",
736
+ "type": "bytes32"
737
+ }
738
+ ],
739
+ "name": "getRoleForName",
740
+ "outputs": [
741
+ {
742
+ "components": [
743
+ {
744
+ "internalType": "RoleId",
745
+ "name": "roleId",
746
+ "type": "uint64"
747
+ },
748
+ {
749
+ "internalType": "bool",
750
+ "name": "exists",
751
+ "type": "bool"
752
+ }
753
+ ],
754
+ "internalType": "struct IAccess.RoleNameInfo",
755
+ "name": "",
756
+ "type": "tuple"
757
+ }
758
+ ],
759
+ "stateMutability": "view",
760
+ "type": "function"
761
+ },
762
+ {
763
+ "inputs": [
764
+ {
765
+ "internalType": "uint256",
766
+ "name": "idx",
767
+ "type": "uint256"
768
+ }
769
+ ],
770
+ "name": "getRoleId",
771
+ "outputs": [
772
+ {
773
+ "internalType": "RoleId",
774
+ "name": "roleId",
775
+ "type": "uint64"
776
+ }
777
+ ],
778
+ "stateMutability": "view",
779
+ "type": "function"
780
+ },
781
+ {
782
+ "inputs": [
783
+ {
784
+ "internalType": "RoleId",
785
+ "name": "roleId",
786
+ "type": "uint64"
787
+ }
788
+ ],
789
+ "name": "getRoleInfo",
790
+ "outputs": [
791
+ {
792
+ "components": [
793
+ {
794
+ "internalType": "RoleId",
795
+ "name": "adminRoleId",
796
+ "type": "uint64"
797
+ },
798
+ {
799
+ "internalType": "enum IAccess.RoleType",
800
+ "name": "roleType",
801
+ "type": "uint8"
802
+ },
803
+ {
804
+ "internalType": "uint32",
805
+ "name": "maxMemberCount",
806
+ "type": "uint32"
807
+ },
808
+ {
809
+ "internalType": "Str",
810
+ "name": "name",
811
+ "type": "bytes32"
812
+ },
813
+ {
814
+ "internalType": "Timestamp",
815
+ "name": "createdAt",
816
+ "type": "uint40"
817
+ },
818
+ {
819
+ "internalType": "Timestamp",
820
+ "name": "pausedAt",
821
+ "type": "uint40"
822
+ }
823
+ ],
824
+ "internalType": "struct IAccess.RoleInfo",
825
+ "name": "",
826
+ "type": "tuple"
827
+ }
828
+ ],
829
+ "stateMutability": "view",
830
+ "type": "function"
831
+ },
832
+ {
833
+ "inputs": [
834
+ {
835
+ "internalType": "RoleId",
836
+ "name": "roleId",
837
+ "type": "uint64"
838
+ },
839
+ {
840
+ "internalType": "uint256",
841
+ "name": "idx",
842
+ "type": "uint256"
843
+ }
844
+ ],
845
+ "name": "getRoleMember",
846
+ "outputs": [
847
+ {
848
+ "internalType": "address",
849
+ "name": "account",
850
+ "type": "address"
851
+ }
852
+ ],
853
+ "stateMutability": "view",
854
+ "type": "function"
855
+ },
856
+ {
857
+ "inputs": [
858
+ {
859
+ "internalType": "uint256",
860
+ "name": "idx",
861
+ "type": "uint256"
862
+ }
863
+ ],
864
+ "name": "getTargetAddress",
865
+ "outputs": [
866
+ {
867
+ "internalType": "address",
868
+ "name": "target",
869
+ "type": "address"
870
+ }
871
+ ],
872
+ "stateMutability": "view",
873
+ "type": "function"
874
+ },
875
+ {
876
+ "inputs": [
877
+ {
878
+ "internalType": "Str",
879
+ "name": "name",
880
+ "type": "bytes32"
881
+ }
882
+ ],
883
+ "name": "getTargetForName",
884
+ "outputs": [
885
+ {
886
+ "internalType": "address",
887
+ "name": "target",
888
+ "type": "address"
889
+ }
890
+ ],
891
+ "stateMutability": "view",
892
+ "type": "function"
893
+ },
894
+ {
895
+ "inputs": [
896
+ {
897
+ "internalType": "address",
898
+ "name": "target",
899
+ "type": "address"
900
+ }
901
+ ],
902
+ "name": "getTargetInfo",
903
+ "outputs": [
904
+ {
905
+ "components": [
906
+ {
907
+ "internalType": "Str",
908
+ "name": "name",
909
+ "type": "bytes32"
910
+ },
911
+ {
912
+ "internalType": "bool",
913
+ "name": "isCustom",
914
+ "type": "bool"
915
+ },
916
+ {
917
+ "internalType": "Timestamp",
918
+ "name": "createdAt",
919
+ "type": "uint40"
920
+ }
921
+ ],
922
+ "internalType": "struct IAccess.TargetInfo",
923
+ "name": "targetInfo",
924
+ "type": "tuple"
925
+ }
926
+ ],
927
+ "stateMutability": "view",
928
+ "type": "function"
929
+ },
930
+ {
931
+ "inputs": [
932
+ {
933
+ "internalType": "address",
934
+ "name": "account",
935
+ "type": "address"
936
+ },
937
+ {
938
+ "internalType": "RoleId",
939
+ "name": "roleId",
940
+ "type": "uint64"
941
+ }
942
+ ],
943
+ "name": "hasAdminRole",
944
+ "outputs": [
945
+ {
946
+ "internalType": "bool",
947
+ "name": "",
948
+ "type": "bool"
949
+ }
950
+ ],
951
+ "stateMutability": "view",
952
+ "type": "function"
953
+ },
954
+ {
955
+ "inputs": [
956
+ {
957
+ "internalType": "address",
958
+ "name": "account",
959
+ "type": "address"
960
+ },
961
+ {
962
+ "internalType": "RoleId",
963
+ "name": "roleId",
964
+ "type": "uint64"
965
+ }
966
+ ],
967
+ "name": "hasRole",
968
+ "outputs": [
969
+ {
970
+ "internalType": "bool",
971
+ "name": "",
972
+ "type": "bool"
973
+ }
974
+ ],
975
+ "stateMutability": "view",
976
+ "type": "function"
977
+ },
978
+ {
979
+ "inputs": [
980
+ {
981
+ "internalType": "contract AccessManagerCloneable",
982
+ "name": "authority",
983
+ "type": "address"
984
+ }
985
+ ],
986
+ "name": "initialize",
987
+ "outputs": [],
988
+ "stateMutability": "nonpayable",
989
+ "type": "function"
990
+ },
991
+ {
992
+ "inputs": [],
993
+ "name": "isConsumingScheduledOp",
994
+ "outputs": [
995
+ {
996
+ "internalType": "bytes4",
997
+ "name": "",
998
+ "type": "bytes4"
999
+ }
1000
+ ],
1001
+ "stateMutability": "view",
1002
+ "type": "function"
1003
+ },
1004
+ {
1005
+ "inputs": [
1006
+ {
1007
+ "internalType": "address",
1008
+ "name": "target",
1009
+ "type": "address"
1010
+ }
1011
+ ],
1012
+ "name": "isTargetLocked",
1013
+ "outputs": [
1014
+ {
1015
+ "internalType": "bool",
1016
+ "name": "locked",
1017
+ "type": "bool"
1018
+ }
1019
+ ],
1020
+ "stateMutability": "view",
1021
+ "type": "function"
1022
+ },
1023
+ {
1024
+ "inputs": [
1025
+ {
1026
+ "internalType": "RoleId",
1027
+ "name": "roleId",
1028
+ "type": "uint64"
1029
+ }
1030
+ ],
1031
+ "name": "roleExists",
1032
+ "outputs": [
1033
+ {
1034
+ "internalType": "bool",
1035
+ "name": "exists",
1036
+ "type": "bool"
1037
+ }
1038
+ ],
1039
+ "stateMutability": "view",
1040
+ "type": "function"
1041
+ },
1042
+ {
1043
+ "inputs": [
1044
+ {
1045
+ "internalType": "RoleId",
1046
+ "name": "roleId",
1047
+ "type": "uint64"
1048
+ }
1049
+ ],
1050
+ "name": "roleMembers",
1051
+ "outputs": [
1052
+ {
1053
+ "internalType": "uint256",
1054
+ "name": "numberOfMembers",
1055
+ "type": "uint256"
1056
+ }
1057
+ ],
1058
+ "stateMutability": "view",
1059
+ "type": "function"
1060
+ },
1061
+ {
1062
+ "inputs": [],
1063
+ "name": "roles",
1064
+ "outputs": [
1065
+ {
1066
+ "internalType": "uint256",
1067
+ "name": "numberOfRoles",
1068
+ "type": "uint256"
1069
+ }
1070
+ ],
1071
+ "stateMutability": "view",
1072
+ "type": "function"
1073
+ },
1074
+ {
1075
+ "inputs": [
1076
+ {
1077
+ "internalType": "address",
1078
+ "name": "newAuthority",
1079
+ "type": "address"
1080
+ }
1081
+ ],
1082
+ "name": "setAuthority",
1083
+ "outputs": [],
1084
+ "stateMutability": "nonpayable",
1085
+ "type": "function"
1086
+ },
1087
+ {
1088
+ "inputs": [
1089
+ {
1090
+ "internalType": "bool",
1091
+ "name": "locked",
1092
+ "type": "bool"
1093
+ }
1094
+ ],
1095
+ "name": "setReleaseLocked",
1096
+ "outputs": [],
1097
+ "stateMutability": "nonpayable",
1098
+ "type": "function"
1099
+ },
1100
+ {
1101
+ "inputs": [
1102
+ {
1103
+ "internalType": "contract IService",
1104
+ "name": "service",
1105
+ "type": "address"
1106
+ },
1107
+ {
1108
+ "internalType": "bool",
1109
+ "name": "locked",
1110
+ "type": "bool"
1111
+ }
1112
+ ],
1113
+ "name": "setServiceLocked",
1114
+ "outputs": [],
1115
+ "stateMutability": "nonpayable",
1116
+ "type": "function"
1117
+ },
1118
+ {
1119
+ "inputs": [
1120
+ {
1121
+ "internalType": "address",
1122
+ "name": "target",
1123
+ "type": "address"
1124
+ }
1125
+ ],
1126
+ "name": "targetExists",
1127
+ "outputs": [
1128
+ {
1129
+ "internalType": "bool",
1130
+ "name": "exists",
1131
+ "type": "bool"
1132
+ }
1133
+ ],
1134
+ "stateMutability": "view",
1135
+ "type": "function"
1136
+ },
1137
+ {
1138
+ "inputs": [],
1139
+ "name": "targets",
1140
+ "outputs": [
1141
+ {
1142
+ "internalType": "uint256",
1143
+ "name": "numberOfTargets",
1144
+ "type": "uint256"
1145
+ }
1146
+ ],
1147
+ "stateMutability": "view",
1148
+ "type": "function"
1149
+ },
1150
+ {
1151
+ "inputs": [
1152
+ {
1153
+ "internalType": "bytes4",
1154
+ "name": "selector",
1155
+ "type": "bytes4"
1156
+ },
1157
+ {
1158
+ "internalType": "string",
1159
+ "name": "name",
1160
+ "type": "string"
1161
+ }
1162
+ ],
1163
+ "name": "toFunction",
1164
+ "outputs": [
1165
+ {
1166
+ "components": [
1167
+ {
1168
+ "internalType": "Str",
1169
+ "name": "name",
1170
+ "type": "bytes32"
1171
+ },
1172
+ {
1173
+ "internalType": "Selector",
1174
+ "name": "selector",
1175
+ "type": "bytes4"
1176
+ },
1177
+ {
1178
+ "internalType": "Timestamp",
1179
+ "name": "createdAt",
1180
+ "type": "uint40"
1181
+ }
1182
+ ],
1183
+ "internalType": "struct IAccess.FunctionInfo",
1184
+ "name": "",
1185
+ "type": "tuple"
1186
+ }
1187
+ ],
1188
+ "stateMutability": "view",
1189
+ "type": "function"
1190
+ },
1191
+ {
1192
+ "inputs": [
1193
+ {
1194
+ "internalType": "RoleId",
1195
+ "name": "adminRoleId",
1196
+ "type": "uint64"
1197
+ },
1198
+ {
1199
+ "internalType": "enum IAccess.RoleType",
1200
+ "name": "roleType",
1201
+ "type": "uint8"
1202
+ },
1203
+ {
1204
+ "internalType": "uint32",
1205
+ "name": "maxMemberCount",
1206
+ "type": "uint32"
1207
+ },
1208
+ {
1209
+ "internalType": "string",
1210
+ "name": "name",
1211
+ "type": "string"
1212
+ }
1213
+ ],
1214
+ "name": "toRole",
1215
+ "outputs": [
1216
+ {
1217
+ "components": [
1218
+ {
1219
+ "internalType": "RoleId",
1220
+ "name": "adminRoleId",
1221
+ "type": "uint64"
1222
+ },
1223
+ {
1224
+ "internalType": "enum IAccess.RoleType",
1225
+ "name": "roleType",
1226
+ "type": "uint8"
1227
+ },
1228
+ {
1229
+ "internalType": "uint32",
1230
+ "name": "maxMemberCount",
1231
+ "type": "uint32"
1232
+ },
1233
+ {
1234
+ "internalType": "Str",
1235
+ "name": "name",
1236
+ "type": "bytes32"
1237
+ },
1238
+ {
1239
+ "internalType": "Timestamp",
1240
+ "name": "createdAt",
1241
+ "type": "uint40"
1242
+ },
1243
+ {
1244
+ "internalType": "Timestamp",
1245
+ "name": "pausedAt",
1246
+ "type": "uint40"
1247
+ }
1248
+ ],
1249
+ "internalType": "struct IAccess.RoleInfo",
1250
+ "name": "",
1251
+ "type": "tuple"
1252
+ }
1253
+ ],
1254
+ "stateMutability": "view",
1255
+ "type": "function"
1256
+ }
1257
+ ],
1258
+ "bytecode": "0x608060405234801561000f575f80fd5b5061003e60405161001f90610ade565b604051809103905ff080158015610038573d5f803e3d5ffd5b5061004b565b610046610190565b610cd2565b5f8051602061823e833981519152805468010000000000000000810460ff1615906001600160401b03165f811580156100815750825b90505f826001600160401b0316600114801561009c5750303b155b9050811580156100aa575080155b156100c85760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156100f657845460ff60401b1916680100000000000000001785555b6001546001600160a01b031661011957600180546001600160a01b031916331790555b6001546001600160a01b0316331461014457604051635adaa55f60e11b815260040160405180910390fd5b61014d8661021c565b61015561029f565b831561018857845460ff60401b19168555604051600181525f8051602061821e8339815191529060200160405180910390a15b505050505050565b5f8051602061823e833981519152805468010000000000000000900460ff16156101cd5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146102195780546001600160401b0319166001600160401b0390811782556040519081525f8051602061821e8339815191529060200160405180910390a15b50565b610224610454565b5f80546001600160a01b0319166001600160a01b03831690811790915560405163189acdbd60e31b815230600482015263c4d66de8906024015f604051808303815f87803b158015610274575f80fd5b505af1158015610286573d5f803e3d5ffd5b50505f5461021992506001600160a01b03169050610491565b6102a7610454565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__637c3940bf5f8054906101000a90046001600160a01b03166001600160a01b03166375b238fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610310573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103349190610aff565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865af4158015610376573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061039a9190610aff565b90506103e76103a76104a2565b6103e26103b26104a2565b6001806040518060400160405280600981526020016841646d696e526f6c6560b81b81525061051c60201b60201c565b6106f9565b6001600160401b0381165f90815260056020526040902061040890306109b8565b506102196104146109d5565b6103e261041f6104a2565b600263ffffffff6040518060400160405280600a8152602001695075626c6963526f6c6560b01b81525061051c60201b60201c565b5f8051602061823e8339815191525468010000000000000000900460ff1661048f57604051631afcd79f60e31b815260040160405180910390fd5b565b610499610454565b61021981610a15565b604051637c3940bf60e01b81525f600482018190529073__$1d92393fa9ccd763988368ce8a1cb90d26$__90637c3940bf906024015b602060405180830381865af41580156104f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105179190610aff565b905090565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a08101919091526040518060c00160405280866001600160401b0316815260200185600381111561057957610579610b21565b81526020018463ffffffff16815260200173__$9a094f9b231ed0f5f85a69be8408d93180$__63cdc23e69856040518263ffffffff1660e01b81526004016105c19190610b63565b602060405180830381865af41580156105dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106009190610b75565b815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561064c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106709190610b8c565b64ffffffffff16815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156106c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106e79190610b8c565b64ffffffffff16905295945050505050565b73__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610740573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107649190610b8c565b64ffffffffff1660808201526001600160401b038083165f9081526002602090815260409091208351815493166001600160401b03198416811782559184015184939192909183916001600160481b031990911617680100000000000000008360038111156107d5576107d5610b21565b0217905550604082810151825463ffffffff90911669010000000000000000000263ffffffff60481b1990911617825560608084015160018085019190915560808501516002909401805460a09096015164ffffffffff90811665010000000000026001600160501b031990971695169490941794909417909255805180820182526001600160401b03808716808352602080840187815295880180515f9081526003808452878220965187549951151568010000000000000000026001600160481b0319909a169087161798909817909555600480549889018155948590528488047f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054989097166008026101000a92830292909302199096161790935592840151845192519151631623433d60e31b81527f450614a3feeef5c4e204a5b960f0b368083de37223fc452a8b3c2cb93d075a05948794929373__$9a094f9b231ed0f5f85a69be8408d93180$__9263b11a19e89261095b92910190815260200190565b5f60405180830381865af4158015610975573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261099c9190810190610bc4565b6040516109ac9493929190610c74565b60405180910390a15050565b5f6109cc836001600160a01b038416610a26565b90505b92915050565b604051637c3940bf60e01b81526001600160401b0360048201525f9073__$1d92393fa9ccd763988368ce8a1cb90d26$__90637c3940bf906024016104d8565b610a1d610454565b61021981610a72565b5f818152600183016020526040812054610a6b57508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556109cf565b505f6109cf565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0080546001600160a01b0319166001600160a01b03831690811782556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad906020016109ac565b613054806151ca83390190565b6001600160401b0381168114610219575f80fd5b5f60208284031215610b0f575f80fd5b8151610b1a81610aeb565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6109cc6020830184610b35565b5f60208284031215610b85575f80fd5b5051919050565b5f60208284031215610b9c575f80fd5b815164ffffffffff81168114610b1a575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610bd4575f80fd5b81516001600160401b03811115610be9575f80fd5b8201601f81018413610bf9575f80fd5b80516001600160401b03811115610c1257610c12610bb0565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610c4057610c40610bb0565b604052818152828201602001861015610c57575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b6001600160401b03851681525f60048510610c9d57634e487b7160e01b5f52602160045260245ffd5b602082018590526001600160401b0384166040830152608060608301819052610cc890830184610b35565b9695505050505050565b6144eb80610cdf5f395ff3fe608060405234801561000f575f80fd5b5060043610610208575f3560e01c80638308ceb11161011f578063c4d66de8116100a9578063d5f3948811610079578063d5f3948814610623578063d78a83b114610634578063e46dd59a14610647578063ea0a94b11461065a578063f09ae31b1461066d575f80fd5b8063c4d66de8146105d7578063c6a00179146105ea578063cd55e51b146105fd578063cf2f81dc14610610575f80fd5b8063b3ecf236116100ef578063b3ecf23614610563578063b70096131461056b578063bc62a0a51461057e578063bcfb11b0146105a6578063bf7e214f146105cf575f80fd5b80638308ceb1146104865780638fb360371461048e5780639279073b146104a357806392bdd9bd146104e2575f80fd5b8063392f5f64116101a0578063605aa10a11610170578063605aa10a1461042557806364fc314214610438578063728a61a81461044b578063748540711461045e5780637a9e5e4b14610473575f80fd5b8063392f5f64146103bf5780633fd85561146103c75780635bfa5027146103f25780635cb870b114610412575f80fd5b806326d60fb4116101db57806326d60fb41461034157806326decd40146103495780633406b1521461036c57806335471f80146103ac575f80fd5b8063030149741461020c57806312e1ebc51461023257806315fb0abb146102cd57806324913ce6146102ed575b5f80fd5b61021f61021a366004613994565b610698565b6040519081526020015b60405180910390f35b6102a26102403660046139c3565b60408051606080820183525f80835260208084018290529284018190526001600160a01b03949094168452600682529282902082519384018352805484526001015460ff8116151591840191909152610100900464ffffffffff169082015290565b60408051825181526020808401511515908201529181015164ffffffffff1690820152606001610229565b6102e06102db366004613ad7565b6106be565b6040516102299190613b19565b6103006102fb366004613b4b565b610859565b60408051835181526020808501516001600160e01b031916908201529281015164ffffffffff16908301526001600160401b03166060820152608001610229565b60085461021f565b61035c6103573660046139c3565b610ae8565b6040519015158152602001610229565b61039461037a366004613b75565b5f908152600760205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610229565b61021f6103ba3660046139c3565b610b54565b60045461021f565b6103da6103d5366004613b75565b610bde565b6040516001600160401b039091168152602001610229565b610405610400366004613994565b610c20565b6040516102299190613bc0565b610405610420366004613c38565b610cf4565b61035c6104333660046139c3565b610ed1565b61035c610446366004613cab565b610f46565b610394610459366004613b75565b610fca565b61047161046c366004613cf0565b610ff8565b005b6104716104813660046139c3565b611021565b6103da6110ac565b610496611125565b6040516102299190613d49565b6104d56040518060400160405280601381526020017252656c656173655265676973747279526f6c6560681b81525081565b6040516102299190613d8c565b61053d6104f0366004613b75565b604080518082019091525f8082526020820152505f908152600360209081526040918290208251808401909352546001600160401b0381168352600160401b900460ff1615159082015290565b6040805182516001600160401b0316815260209283015115159281019290925201610229565b6103da61115b565b61035c610579366004613d9e565b6111ab565b6104d56040518060400160405280600981526020016841646d696e526f6c6560b81b81525081565b6104d56040518060400160405280600a8152602001695075626c6963526f6c6560b01b81525081565b610394611262565b6104716105e53660046139c3565b61127d565b61035c6105f8366004613994565b6113df565b61035c61060b366004613cab565b61143b565b61047161061e366004613df3565b611469565b6001546001600160a01b0316610394565b610394610642366004613e1f565b6114b0565b610471610655366004613e3b565b6114d1565b610471610668366004613e56565b6115fc565b6104d56040518060400160405280600c81526020016b2932b632b0b9b2a0b236b4b760a11b81525081565b6001600160401b0381165f9081526005602052604081206106b8906117b8565b92915050565b60408051606080820183525f808352602083018190528284015282519081019283905263cdc23e6960e01b909252908073__$9a094f9b231ed0f5f85a69be8408d93180$__63cdc23e696107158660648501613d8c565b602060405180830381865af4158015610730573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107549190613e93565b815260200173__$0904195350e4c23ecb1d51df0a32586dcd$__636b15ee8b866040518263ffffffff1660e01b81526004016107909190613d49565b602060405180830381865af41580156107ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107cf9190613eaa565b6001600160e01b031916815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610825573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108499190613ede565b64ffffffffff1690529392505050565b604080516060810182525f80825260208083018290528284018290526001600160a01b038616825260099052828120925163dfe63db960e01b81526004810193909352602483018490529091819073__$8df0087758613aef8a614b5774fdb3323b$__9063dfe63db990604401602060405180830381865af41580156108e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109059190613eaa565b6001600160a01b038681165f908152600a602090815260408083206001600160e01b031986811680865291845282852083516060810185528154815260019091015460e081901b90921694810194909452640100000000900464ffffffffff168383015292549051636ea1af2560e11b815291975093945073__$1d92393fa9ccd763988368ce8a1cb90d26$__93637c3940bf931691636d5115bd918a9173__$0904195350e4c23ecb1d51df0a32586dcd$__9163dd435e4a916109cb91600401613d49565b602060405180830381865af41580156109e6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0a9190613eaa565b6040516001600160e01b031960e085901b811682526001600160a01b03909316600482015291166024820152604401602060405180830381865afa158015610a54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a789190613ef7565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865af4158015610aba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ade9190613ef7565b9150509250929050565b5f805460405163a166aa8960e01b81526001600160a01b0384811660048301529091169063a166aa8990602401602060405180830381865afa158015610b30573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b89190613f12565b6001600160a01b0381165f90815260096020526040808220905163868b3e0760e01b8152600481019190915273__$8df0087758613aef8a614b5774fdb3323b$__9063868b3e0790602401602060405180830381865af4158015610bba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b89190613e93565b5f60048281548110610bf257610bf2613f2d565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b03169050919050565b6040805160c080820183525f8083526020808401829052838501829052606084018290526080840182905260a084018290526001600160401b038681168352600282529185902085519384019095528454918216835292939192830190600160401b900460ff166003811115610c9857610c98613b8c565b6003811115610ca957610ca9613b8c565b81528154600160481b900463ffffffff1660208201526001820154604082015260029091015464ffffffffff8082166060840152650100000000009091041660809091015292915050565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a08101919091526040518060c00160405280866001600160401b03168152602001856003811115610d5157610d51613b8c565b81526020018463ffffffff16815260200173__$9a094f9b231ed0f5f85a69be8408d93180$__63cdc23e69856040518263ffffffff1660e01b8152600401610d999190613d8c565b602060405180830381865af4158015610db4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd89190613e93565b815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610e24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e489190613ede565b64ffffffffff16815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015610e9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebf9190613ede565b64ffffffffff16905295945050505050565b6001600160a01b0381165f90815260066020526040808220600101549051638d38cd4b60e01b815261010090910464ffffffffff16600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b906024015b602060405180830381865af4158015610b30573d5f803e3d5ffd5b5f80546040516368fc2b7760e11b81526001600160401b03841660048201526001600160a01b0385811660248301528392169063d1f856ee906044015b6040805180830381865afa158015610f9d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc19190613f41565b50949350505050565b5f60088281548110610fde57610fde613f2d565b5f918252602090912001546001600160a01b031692915050565b611004335b5f366117c1565b61100f8383836118b7565b61101b84848484611b65565b50505050565b3361102a611262565b6001600160a01b0316816001600160a01b03161461106a5760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f0361109f576040516361798f2f60e11b81526001600160a01b0383166004820152602401611061565b6110a882611e6e565b5050565b5f805f9054906101000a90046001600160a01b03166001600160a01b0316633ca7c02a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111209190613ef7565b905090565b5f8051602061449683398151915280545f9190600160a01b900460ff1661114c575f611155565b638fb3603760e01b5b91505090565b5f805f9054906101000a90046001600160a01b03166001600160a01b03166375b238fc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fc573d5f803e3d5ffd5b5f8054604051636ea1af2560e11b81526001600160a01b039091169063b7009613908690869073__$0904195350e4c23ecb1d51df0a32586dcd$__9063dd435e4a90611205906001600160e01b03198a1690600401613d49565b602060405180830381865af4158015611220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112449190613eaa565b6040518463ffffffff1660e01b8152600401610f8393929190613f6e565b5f80516020614496833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f811580156112c15750825b90505f826001600160401b031660011480156112dc5750303b155b9050811580156112ea575080155b156113085760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561133257845460ff60401b1916600160401b1785555b6001546001600160a01b031661135557600180546001600160a01b031916331790555b6001546001600160a01b0316331461138057604051635adaa55f60e11b815260040160405180910390fd5b61138986611ecf565b611391611f55565b83156113d757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b6001600160401b0381165f908152600260208190526040808320909101549051638d38cd4b60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401610f2b565b6001600160401b038082165f90815260026020526040812054909161146291859116610f46565b9392505050565b61147233610ffd565b306001600160a01b038316036114a65760405163f1e7fc1f60e01b81526001600160a01b0383166004820152602401611061565b6110a882826120fe565b6001600160401b0382165f9081526005602052604081206114629083612205565b5f80546001600160a01b031663d1f856ee6114ea612210565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611541573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115659190613ef7565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201523360248201526044016040805180830381865afa1580156115ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d09190613f41565b509050806115f35760405163de0edf8360e01b8152336004820152602401611061565b6110a882612260565b604051632b10f60d60e21b815260ff8216600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af415801561164c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116709190613e93565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b900460ff16806116b5575080546001600160401b03808416911610155b156116d35760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781555f6116fd611262565b604051630f6c67a360e11b81526001600160a01b03888116600483015260ff8716602483015291925090821690631ed8cf46906044015f604051808303815f87803b15801561174a575f80fd5b505af115801561175c573d5f803e3d5ffd5b505050506117698561231c565b50805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050565b5f6106b8825490565b5f805160206144968339815191525f806117f96117dc611262565b87306117eb60045f8a8c613f9b565b6117f491613fc2565b6124ac565b91509150816113d75763ffffffff81161561189457825460ff60a01b1916600160a01b178355611827611262565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161185693929190613ffa565b5f604051808303815f87803b15801561186d575f80fd5b505af115801561187f573d5f803e3d5ffd5b5050845460ff60a01b19168555506113d79050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401611061565b604051632b95d28f60e21b815260ff831660048201525f9073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__9063ae574a3c906024015f60405180830381865af4158015611908573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261192f9190810190614039565b604051632b10f60d60e21b815260ff841660048201529091505f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015611984573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a89190613e93565b90505f73__$0d958e68cba84670b8f4a3f2f2686b1c6b$__63f7fa7a7c84846040518363ffffffff1660e01b81526004016119e49291906140ad565b5f60405180830381865af41580156119fe573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611a259190810190614039565b9050611a34868260015f61259e565b60405163dda777d360e01b815260ff8087166004830152851660248201525f9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063dda777d390604401602060405180830381865af4158015611a8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ab29190613ef7565b9050611abd816113df565b611b5257611b5281611b4d611ad0612ad0565b60018073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__63f7fa7a7c8b8b6040518363ffffffff1660e01b8152600401611b0c9291906140ef565b5f60405180830381865af4158015611b26573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104209190810190614039565b612b0a565b611b5c8188612d89565b50505050505050565b604051630e949b3560e21b815260ff831660048201525f90819081906001600160a01b03881690633a526cd4906024015f60405180830381865afa158015611baf573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611bd69190810190614157565b90505f5b8151811015611e6457818181518110611bf557611bf5613f2d565b60200260200101519350611c1684611c0b606390565b60ff90811691161490565b15611c2a57611c23612f9d565b9250611ca9565b60405163dda777d360e01b815260ff80861660048301528616602482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063dda777d390604401602060405180830381865af4158015611c82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ca69190613ef7565b92505b611cb2836113df565b611dd957611dd983611b4d611cc5612ad0565b604051632b95d28f60e21b815260ff89166004820152600190819073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__9063f7fa7a7c90829063ae574a3c906024015f60405180830381865af4158015611d21573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d489190810190614039565b604051632b10f60d60e21b815260ff8f16600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015611d98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dbc9190613e93565b6040518363ffffffff1660e01b8152600401611b0c9291906141f0565b6040516374766d9b60e11b815260ff8088166004830152851660248201525f906001600160a01b038a169063e8ecdb36906044015f60405180830381865afa158015611e27573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611e4e919081019061422f565b9050611e5b888583612fdd565b50600101611bda565b5050505050505050565b5f8051602061449683398151915280546001600160a01b0319166001600160a01b03831690811782556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad906020015b60405180910390a15050565b611ed7613045565b5f80546001600160a01b0319166001600160a01b03831690811790915560405163189acdbd60e31b815230600482015263c4d66de8906024015f604051808303815f87803b158015611f27575f80fd5b505af1158015611f39573d5f803e3d5ffd5b50505f54611f5292506001600160a01b03169050613090565b50565b611f5d613045565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__637c3940bf5f8054906101000a90046001600160a01b03166001600160a01b03166375b238fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fea9190613ef7565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865af415801561202c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120509190613ef7565b905061209761205d612ad0565b612092612068612ad0565b6001806040518060400160405280600981526020016841646d696e526f6c6560b81b815250610cf4565b6130a1565b6001600160401b0381165f9081526005602052604090206120b89030613352565b50611f526120c4612f9d565b6120926120cf612ad0565b600263ffffffff6040518060400160405280600a8152602001695075626c6963526f6c6560b01b815250610cf4565b61210782613366565b5f5460405163a166aa8960e01b81526001600160a01b03848116600483015283151592169063a166aa8990602401602060405180830381865afa158015612150573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121749190613f12565b1515036121a75760405163caa9be8360e01b81526001600160a01b03831660048201528115156024820152604401611061565b5f5460405163167bd39560e01b81526001600160a01b03848116600483015283151560248301529091169063167bd395906044015b5f604051808303815f87803b1580156121f3575f80fd5b505af11580156113d7573d5f803e3d5ffd5b5f6114628383613397565b604051637c3940bf60e01b81526004808201525f9073__$1d92393fa9ccd763988368ce8a1cb90d26$__90637c3940bf906024015b602060405180830381865af41580156110fc573d5f803e3d5ffd5b5f612269611262565b9050811515816001600160a01b031663a4e2d6346040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ce9190613f12565b1515036122ee576040516363aa653560e01b815260040160405180910390fd5b60405163108f145b60e11b815282151560048201526001600160a01b0382169063211e28b6906024016121dc565b612324613045565b612354306040518060400160405280600c81526020016b2932b632b0b9b2a0b236b4b760a11b8152505f8061259e565b5f61235d612210565b90506123a281611b4d61236e612ad0565b6001806040518060400160405280601381526020017252656c656173655265676973747279526f6c6560681b815250610cf4565b6040805160028082526060828101909352816020015b604080516060810182525f80825260208083018290529282015282525f199092019101816123b857905050905061241e637485407160e01b6040518060400160405280601081526020016f617574686f72697a655365727669636560801b8152506106be565b815f8151811061243057612430613f2d565b602002602001018190525061247463cf2f81dc60e01b6040518060400160405280601081526020016f1cd95d14d95c9d9a58d9531bd8dad95960821b8152506106be565b8160018151811061248757612487613f2d565b602002602001018190525061249d308383612fdd565b6124a78284612d89565b505050565b5f805f80876001600160a01b03168787876040516024016124cf93929190613f6e565b60408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b1790525161250491906142f5565b5f60405180830381855afa9150503d805f811461253c576040519150601f19603f3d011682016040523d82523d5f602084013e612541565b606091505b5091509150811561259357604081511061257357808060200190518101906125699190613f41565b9094509250612593565b602081511061259357808060200190518101906125909190613f12565b93505b505094509492505050565b6125a66133bd565b6125af84610ed1565b15612664576001600160a01b0384165f9081526006602052604090819020549051631623433d60e31b8152859173__$9a094f9b231ed0f5f85a69be8408d93180$__9163b11a19e8916126089160040190815260200190565b5f60405180830381865af4158015612622573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526126499190810190614039565b60405163455f894360e01b815260040161106192919061430b565b60405163cdc23e6960e01b81525f9073__$9a094f9b231ed0f5f85a69be8408d93180$__9063cdc23e699061269d908790600401613d8c565b602060405180830381865af41580156126b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126dc9190613e93565b60405163a9dbaf2560e01b81526004810182905290915073__$9a094f9b231ed0f5f85a69be8408d93180$__9063a9dbaf2590602401602060405180830381865af415801561272d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127519190613e93565b5f0361277b576040516389100c0960e01b81526001600160a01b0386166004820152602401611061565b5f818152600760205260409020546001600160a01b0316156127cd575f8181526007602052604090819020549051638beac5bb60e01b815261106191879187916001600160a01b031690600401614336565b6040516303d2026b60e21b81526001600160a01b038616600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90630f4809ac90602401602060405180830381865af4158015612823573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128479190613f12565b61286f5760405163680f41eb60e01b81526001600160a01b0386166004820152602401611061565b821561292f575f856001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128d69190614371565b90506128e0611262565b6001600160a01b0316816001600160a01b03161461292d57612900611262565b6040516358dffd0760e01b81526001600160a01b0391821660048201529082166024820152604401611061565b505b6040518060600160405280828152602001831515815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561298f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129b39190613ede565b64ffffffffff9081169091526001600160a01b0387165f818152600660209081526040808320865181558683015160019182018054988401519097166101000265ffffffffff00199115159190911665ffffffffffff1990981697909717969096179094558582526007905282812080546001600160a01b031990811684179091556008805495860181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3909301805490931617909155517f41a3bdd8567a380ee8bf6660dae135d2ee59322968c5c8cc1884a4b1be5050b190612a9e908790879061430b565b60405180910390a15061101b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b604051637c3940bf60e01b81525f600482018190529073__$1d92393fa9ccd763988368ce8a1cb90d26$__90637c3940bf90602401612245565b612b13826113df565b15612bcb576001600160401b0382165f9081526002602052604090819020600101549051631623433d60e31b8152839173__$9a094f9b231ed0f5f85a69be8408d93180$__9163b11a19e891612b6f9160040190815260200190565b5f60405180830381865af4158015612b89573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612bb09190810190614039565b60405163212f3d9960e01b815260040161106192919061438c565b8051612bd6906113df565b612c0157805160405163ea5c764960e01b81526001600160401b039091166004820152602401611061565b606081015160405163a9dbaf2560e01b8152600481019190915273__$9a094f9b231ed0f5f85a69be8408d93180$__9063a9dbaf2590602401602060405180830381865af4158015612c55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c799190613e93565b5f03612ca3576040516321ab17ab60e01b81526001600160401b0383166004820152602401611061565b60608101515f90815260036020526040902054600160401b900460ff1615612d7f576060810151604051631623433d60e31b8152839173__$9a094f9b231ed0f5f85a69be8408d93180$__9163b11a19e891612d059160040190815260200190565b5f60405180830381865af4158015612d1f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612d469190810190614039565b60608301515f90815260036020526040908190205490516345e6904160e01b81526110619392916001600160401b0316906004016143ad565b6110a882826130a1565b816001612d968282613407565b6001600160401b0384165f908152600260209081526040808320546005909252909120600160481b90910463ffffffff1690612dd1906117b8565b10612e1e576001600160401b0384165f8181526002602052604090819020549051630a50b69f60e01b81526004810192909252600160481b900463ffffffff166024820152604401611061565b60016001600160401b0385165f90815260026020526040902054600160401b900460ff166003811115612e5357612e53613b8c565b148015612ed75750604051631627905560e01b81526001600160a01b038416600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90631627905590602401602060405180830381865af4158015612eb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed59190613f12565b155b15612f0f5760405163e65b1b3960e01b81526001600160401b03851660048201526001600160a01b0384166024820152604401611061565b6001600160401b0384165f908152600560205260409020612f309084613352565b505f805460405163012e238d60e51b81526001600160401b03871660048201526001600160a01b03868116602483015260448201939093529116906325c471a0906064015f604051808303815f87803b158015612f8b575f80fd5b505af1158015611e64573d5f803e3d5ffd5b604051637c3940bf60e01b81526001600160401b0360048201525f9073__$1d92393fa9ccd763988368ce8a1cb90d26$__90637c3940bf90602401612245565b612ffa82612fe961115b565b6001600160401b0390811691161490565b15613023576040516323d0464560e21b81526001600160a01b0384166004820152602401611061565b60015f6130318584846135c5565b905061303e8585836138a4565b5050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661308e57604051631afcd79f60e31b815260040160405180910390fd5b565b613098613045565b611f5281613923565b73__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156130e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061310c9190613ede565b64ffffffffff1660808201526001600160401b038083165f90815260026020908152604090912083518154931667ffffffffffffffff1984168117825591840151849391929091839168ffffffffffffffffff1990911617600160401b83600381111561317b5761317b613b8c565b0217905550604082810151825463ffffffff909116600160481b026cffffffff0000000000000000001990911617825560608084015160018085019190915560808501516002909401805460a09096015164ffffffffff908116650100000000000269ffffffffffffffffffff1990971695169490941794909417909255805180820182526001600160401b03808716808352602080840187815295880180515f90815260038084528782209651875499511515600160401b0268ffffffffffffffffff19909a169087161798909817909555600480549889018155948590528488047f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054989097166008026101000a92830292909302199096161790935592840151845192519151631623433d60e31b81527f450614a3feeef5c4e204a5b960f0b368083de37223fc452a8b3c2cb93d075a05948794929373__$9a094f9b231ed0f5f85a69be8408d93180$__9263b11a19e89261330192910190815260200190565b5f60405180830381865af415801561331b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526133429190810190614039565b604051611ec394939291906143e7565b5f611462836001600160a01b038416613934565b61336f81610ed1565b611f52576040516366fba5db60e01b81526001600160a01b0382166004820152602401611061565b5f825f0182815481106133ac576133ac613f2d565b905f5260205f200154905092915050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080546001190161340157604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b613410826113df565b613438576040516309c7013760e21b81526001600160401b0383166004820152602401611061565b5f5460408051631d6c8e3f60e21b8152905184926001600160a01b0316916375b238fc9160048083019260209291908290030181865afa15801561347e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134a29190613ef7565b6001600160401b0316816001600160401b0316036134de5760405163a72de1fb60e01b81526001600160401b0384166004820152602401611061565b81801561359c575061359c60025f856001600160401b03166001600160401b031681526020019081526020015f2060020160059054906101000a900464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015613568573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061358c9190613ede565b64ffffffffff9081169116111590565b156124a75760405163aa20675760e01b81526001600160401b0384166004820152602401611061565b6060836135d181613366565b8351806001600160401b038111156135eb576135eb6139f3565b604051908082528060200260200182016040528015613614578160200160208202803683370190505b509250613639604080516060810182525f808252602082018190529181019190915290565b5f805b838110156138985787818151811061365657613656613f2d565b602002602001015192508260200151915086156136fa576001600160a01b0389165f90815260096020526040908190209051631b76c9b760e31b815260048101919091526001600160e01b03198316602482015273__$8df0087758613aef8a614b5774fdb3323b$__9063dbb64db8906044015f6040518083038186803b1580156136df575f80fd5b505af41580156136f1573d5f803e3d5ffd5b50505050613783565b6001600160a01b0389165f908152600960205260409081902090516313edd33560e31b815260048101919091526001600160e01b03198316602482015273__$8df0087758613aef8a614b5774fdb3323b$__90639f6e99a8906044015f6040518083038186803b15801561376c575f80fd5b505af415801561377e573d5f803e3d5ffd5b505050505b6001600160a01b0389165f908152600a602090815260408083206001600160e01b03198616808552908352928190208651815591860151600190920180548288015164ffffffffff166401000000000268ffffffffffffffffff1990911660e09490941c939093179290921790915551636ea1af2560e11b815273__$0904195350e4c23ecb1d51df0a32586dcd$__9163dd435e4a916138269190600401613d49565b602060405180830381865af4158015613841573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138659190613eaa565b86828151811061387757613877613f2d565b6001600160e01b03199092166020928302919091019091015260010161363c565b50505050509392505050565b826138ae81613366565b8260016138bb8282613407565b5f546040516308d6122d60e01b81526001600160a01b03909116906308d6122d906138ee90899088908a90600401614424565b5f604051808303815f87803b158015613905575f80fd5b505af1158015613917573d5f803e3d5ffd5b50505050505050505050565b61392b613045565b611f5281611e6e565b5f81815260018301602052604081205461397957508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556106b8565b505f6106b8565b6001600160401b0381168114611f52575f80fd5b5f602082840312156139a4575f80fd5b813561146281613980565b6001600160a01b0381168114611f52575f80fd5b5f602082840312156139d3575f80fd5b8135611462816139af565b6001600160e01b031981168114611f52575f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715613a2957613a296139f3565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613a5757613a576139f3565b604052919050565b5f6001600160401b03821115613a7757613a776139f3565b50601f01601f191660200190565b5f82601f830112613a94575f80fd5b8135613aa7613aa282613a5f565b613a2f565b818152846020838601011115613abb575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613ae8575f80fd5b8235613af3816139de565b915060208301356001600160401b03811115613b0d575f80fd5b610ade85828601613a85565b815181526020808301516001600160e01b0319169082015260408083015164ffffffffff1690820152606081016106b8565b5f8060408385031215613b5c575f80fd5b8235613b67816139af565b946020939093013593505050565b5f60208284031215613b85575f80fd5b5035919050565b634e487b7160e01b5f52602160045260245ffd5b60048110613bbc57634e487b7160e01b5f52602160045260245ffd5b9052565b81516001600160401b0316815260208083015160c0830191613be490840182613ba0565b5063ffffffff60408401511660408301526060830151606083015264ffffffffff608084015116608083015264ffffffffff60a08401511660a083015292915050565b63ffffffff81168114611f52575f80fd5b5f805f8060808587031215613c4b575f80fd5b8435613c5681613980565b9350602085013560048110613c69575f80fd5b92506040850135613c7981613c27565b915060608501356001600160401b03811115613c93575f80fd5b613c9f87828801613a85565b91505092959194509250565b5f8060408385031215613cbc575f80fd5b8235613cc7816139af565b91506020830135613cd781613980565b809150509250929050565b60ff81168114611f52575f80fd5b5f805f8060808587031215613d03575f80fd5b8435613d0e816139af565b93506020850135613d1e816139af565b92506040850135613d2e81613ce2565b91506060850135613d3e81613ce2565b939692955090935050565b6001600160e01b031991909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6114626020830184613d5e565b5f805f60608486031215613db0575f80fd5b8335613dbb816139af565b92506020840135613dcb816139af565b91506040840135613ddb816139de565b809150509250925092565b8015158114611f52575f80fd5b5f8060408385031215613e04575f80fd5b8235613e0f816139af565b91506020830135613cd781613de6565b5f8060408385031215613e30575f80fd5b8235613b6781613980565b5f60208284031215613e4b575f80fd5b813561146281613de6565b5f805f60608486031215613e68575f80fd5b8335613e73816139af565b92506020840135613e83816139af565b91506040840135613ddb81613ce2565b5f60208284031215613ea3575f80fd5b5051919050565b5f60208284031215613eba575f80fd5b8151611462816139de565b805164ffffffffff81168114613ed9575f80fd5b919050565b5f60208284031215613eee575f80fd5b61146282613ec5565b5f60208284031215613f07575f80fd5b815161146281613980565b5f60208284031215613f22575f80fd5b815161146281613de6565b634e487b7160e01b5f52603260045260245ffd5b5f8060408385031215613f52575f80fd5b8251613f5d81613de6565b6020840151909250613cd781613c27565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f8085851115613fa9575f80fd5b83861115613fb5575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015613ff3576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60208284031215614049575f80fd5b81516001600160401b0381111561405e575f80fd5b8201601f8101841361406e575f80fd5b805161407c613aa282613a5f565b818152856020838501011115614090575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b606081525f6140bf6060830185613d5e565b828103602084015260078152665365727669636560c81b6020820152604081019150508260408301529392505050565b606081525f6141016060830185613d5e565b8281036020840152600b81526a53657276696365526f6c6560a81b6020820152604081019150508260408301529392505050565b5f6001600160401b0382111561414d5761414d6139f3565b5060051b60200190565b5f60208284031215614167575f80fd5b81516001600160401b0381111561417c575f80fd5b8201601f8101841361418c575f80fd5b805161419a613aa282614135565b8082825260208201915060208360051b8501019250868311156141bb575f80fd5b6020840193505b828410156141e65783516141d581613ce2565b8252602093840193909101906141c2565b9695505050505050565b606081525f6142026060830185613d5e565b82810360208401526004815263526f6c6560e01b6020820152604081019150508260408301529392505050565b5f6020828403121561423f575f80fd5b81516001600160401b03811115614254575f80fd5b8201601f81018413614264575f80fd5b8051614272613aa282614135565b80828252602082019150602060608402850101925086831115614293575f80fd5b6020840193505b828410156141e657606084880312156142b1575f80fd5b6142b9613a07565b8451815260208501516142cb816139de565b60208201526142dc60408601613ec5565b604082015282526060939093019260209091019061429a565b5f82518060208501845e5f920191825250919050565b6001600160a01b03831681526040602082018190525f9061432e90830184613d5e565b949350505050565b6001600160a01b03841681526060602082018190525f9061435990830185613d5e565b905060018060a01b0383166040830152949350505050565b5f60208284031215614381575f80fd5b8151611462816139af565b6001600160401b0383168152604060208201525f61432e6040830184613d5e565b6001600160401b0384168152606060208201525f6143ce6060830185613d5e565b90506001600160401b0383166040830152949350505050565b6001600160401b03851681526144006020820185613ba0565b6001600160401b0383166040820152608060608201525f6141e66080830184613d5e565b6001600160a01b03841681526060602080830182905284519183018290525f91908501906080840190835b818110156144775783516001600160e01b03191683526020938401939092019160010161444f565b505080925050506001600160401b038316604083015294935050505056fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a2646970667358221220d43b5687161b0eea5537998ee66659f9499d560b7cde43108c84af19a8d07eaa64736f6c634300081a00336080604052348015600e575f80fd5b506130388061001c5f395ff3fe608060405260043610610212575f3560e01c80635ab1bd531161011e578063ac9650d8116100a8578063d1f856ee1161006d578063d1f856ee14610696578063d22b5989146106b5578063d6bb62c6146106d4578063f801a698146106f3578063fe0776f51461072c575f80fd5b8063ac9650d8146105dc578063b700961314610608578063b7d2b16214610643578063c4d66de814610662578063cc1b6c8114610681575f80fd5b806394c7d7ee116100ee57806394c7d7ee14610525578063a166aa8914610544578063a4e2d63414610573578063a64d95ce14610590578063abd9bd2a146105af575f80fd5b80635ab1bd53146104ae5780636d5115bd146104d457806375b238fc146104f3578063853551b814610506575f80fd5b80633078f1141161019f5780634136a33c1161016f5780634136a33c1461041d5780634665096d1461043c5780634c1da1e2146104515780635296295214610470578063530dd4561461048f575f80fd5b80633078f1141461035557806330cae187146103ae5780633adc277a146103cd5780633ca7c02a14610403575f80fd5b806318ff183c116101e557806318ff183c146102c65780631cff79cd146102e55780631ed8cf46146102f8578063211e28b61461031757806325c471a014610336575f80fd5b806308d6122d146102165780630b0a93ba1461023757806312be872714610273578063167bd395146102a7575b5f80fd5b348015610221575f80fd5b50610235610230366004612893565b61074b565b005b348015610242575f80fd5b506102566102513660046128f5565b61079d565b6040516001600160401b0390911681526020015b60405180910390f35b34801561027e575f80fd5b5061029261028d3660046128f5565b6107d4565b60405163ffffffff909116815260200161026a565b3480156102b2575f80fd5b506102356102c136600461291b565b61081e565b3480156102d1575f80fd5b506102356102e0366004612952565b610834565b6102926102f33660046129bb565b610896565b348015610303575f80fd5b50610235610312366004612a0b565b6109d7565b348015610322575f80fd5b50610235610331366004612a3c565b610b9c565b348015610341575f80fd5b50610235610350366004612a6a565b610be8565b348015610360575f80fd5b5061037461036f366004612aac565b610c0a565b60405161026a949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b3480156103b9575f80fd5b506102356103c8366004612ac6565b610c7d565b3480156103d8575f80fd5b506103ec6103e7366004612af7565b610c8f565b60405165ffffffffffff909116815260200161026a565b34801561040e575f80fd5b506102566001600160401b0381565b348015610428575f80fd5b50610292610437366004612af7565b610cd1565b348015610447575f80fd5b5062093a80610292565b34801561045c575f80fd5b5061029261046b366004612b0e565b610cfc565b34801561047b575f80fd5b5061023561048a366004612ac6565b610d36565b34801561049a575f80fd5b506102566104a93660046128f5565b610d48565b3480156104b9575f80fd5b505f546040516001600160a01b03909116815260200161026a565b3480156104df575f80fd5b506102566104ee366004612b3e565b610d78565b3480156104fe575f80fd5b506102565f81565b348015610511575f80fd5b50610235610520366004612b6a565b610dbf565b348015610530575f80fd5b5061023561053f3660046129bb565b610e56565b34801561054f575f80fd5b5061056361055e366004612b0e565b610f00565b604051901515815260200161026a565b34801561057e575f80fd5b505f54600160a01b900460ff16610563565b34801561059b575f80fd5b506102356105aa366004612b85565b610f37565b3480156105ba575f80fd5b506105ce6105c9366004612bad565b610f49565b60405190815260200161026a565b3480156105e7575f80fd5b506105fb6105f6366004612c0d565b610f81565b60405161026a9190612c4b565b348015610613575f80fd5b50610627610622366004612ccf565b611066565b60408051921515835263ffffffff90911660208301520161026a565b34801561064e575f80fd5b5061023561065d366004612aac565b6110b5565b34801561066d575f80fd5b5061023561067c366004612b0e565b6110cc565b34801561068c575f80fd5b5062069780610292565b3480156106a1575f80fd5b506106276106b0366004612aac565b6111d7565b3480156106c0575f80fd5b506102356106cf366004612d17565b611250565b3480156106df575f80fd5b506102926106ee366004612bad565b611262565b3480156106fe575f80fd5b5061071261070d366004612d33565b6113c5565b6040805192835263ffffffff90911660208301520161026a565b348015610737575f80fd5b50610235610746366004612aac565b611561565b61075361158a565b5f5b828110156107965761078e8585858481811061077357610773612da0565b90506020020160208101906107889190612db4565b84611601565b600101610755565b5050505050565b5f806107a761168d565b6001600160401b039384165f9081526001918201602052604090200154600160401b900490921692915050565b5f806107de61168d565b6001600160401b0384165f90815260018281016020526040909120015490915061081790600160801b90046001600160701b03166116b1565b9392505050565b61082661158a565b61083082826116cf565b5050565b61083c61158a565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b906024015f604051808303815f87803b15801561087c575f80fd5b505af115801561088e573d5f803e3d5ffd5b505050505050565b5f806108a061168d565b9050335f806108b183898989611773565b91509150811580156108c7575063ffffffff8116155b1561091a5782886108d889896117c4565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b03191660448201526064015b60405180910390fd5b5f610927848a8a8a610f49565b90505f63ffffffff831615158061094d575061094282610c8f565b65ffffffffffff1615155b1561095e5761095b826117db565b90505b60038601546109768b6109718c8c6117c4565b6118ec565b87600301819055506109bf8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525034925061192e915050565b50600390960195909555509293505050509392505050565b5f6109e25f336111d7565b50905080610a055760405163f30cccb960e01b8152336004820152602401610911565b604051632b10f60d60e21b815260ff8316600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015610a55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a799190612dcf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b900460ff1680610abe575080546001600160401b03808416911610155b15610adc5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781555f610b0f5f546001600160a01b031690565b90506001600160a01b03811615610b445760405163e869a54d60e01b81526001600160a01b0382166004820152602401610911565b610b4d866119c7565b50805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050565b5f610ba75f336111d7565b50905080610bca5760405163f30cccb960e01b8152336004820152602401610911565b505f8054911515600160a01b0260ff60a01b19909216919091179055565b610bf061158a565b610c048383610bfe866107d4565b84611ad1565b50505050565b5f805f805f610c1761168d565b6001600160401b0388165f90815260018201602090815260408083206001600160a01b038b1684529091529020805465ffffffffffff8116975091925090610c6e90600160301b90046001600160701b0316611d2b565b979a9199509750945050505050565b610c8561158a565b6108308282611d4c565b5f80610c9961168d565b5f84815260028201602052604090205490915065ffffffffffff16610cbd81611dfc565b610cc75780610cc9565b5f5b949350505050565b5f80610cdb61168d565b5f93845260020160205250506040902054600160301b900463ffffffff1690565b5f80610d0661168d565b6001600160a01b0384165f90815260208290526040902060010154909150610817906001600160701b03166116b1565b610d3e61158a565b6108308282611e2a565b5f80610d5261168d565b6001600160401b039384165f908152600191820160205260409020015490921692915050565b5f80610d8261168d565b6001600160a01b0385165f908152602091825260408082206001600160e01b03198716835290925220546001600160401b03169150505b92915050565b610dc761158a565b6001600160401b0383161580610de557506001600160401b03838116145b15610e0e5760405163061c6a4360e21b81526001600160401b0384166004820152602401610911565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a4508383604051610e49929190612e0e565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa158015610e95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb99190612e21565b6001600160e01b03191614610eec57604051630641fee960e31b81526001600160a01b0382166004820152602401610911565b610796610efb85838686610f49565b6117db565b5f80610f0a61168d565b6001600160a01b039093165f9081526020939093525050604090206001015460ff600160701b9091041690565b610f3f61158a565b6108308282611ee8565b5f84848484604051602001610f619493929190612e3c565b604051602081830303815290604052805190602001209050949350505050565b604080515f815260208101909152606090826001600160401b03811115610faa57610faa612ea3565b604051908082528060200260200182016040528015610fdd57816020015b6060815260200190600190039081610fc85790505b5091505f5b8381101561105e576110393086868481811061100057611000612da0565b90506020028101906110129190612eb7565b8560405160200161102593929190612f10565b604051602081830303815290604052612012565b83828151811061104b5761104b612da0565b6020908102919091010152600101610fe2565b505092915050565b5f80611073858585612084565b5f549193509150600160a01b900460ff16156110ad5760405163738ba2f760e01b81526001600160a01b0385166004820152602401610911565b935093915050565b6110bd61158a565b6110c78282612101565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f811580156111105750825b90505f826001600160401b0316600114801561112b5750303b155b905081158015611139575080155b156111575760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561118157845460ff60401b1916600160401b1785555b61118a866121fc565b831561088e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050505050565b5f8067fffffffffffffffe196001600160401b038516016111fd5750600190505f611249565b5f806112098686610c0a565b5050915091508165ffffffffffff165f1415801561123e575061122a61220d565b65ffffffffffff168265ffffffffffff1611155b935091506112499050565b9250929050565b61125861158a565b610830828261221c565b5f8061126c61168d565b9050335f61127a86866117c4565b90505f61128989898989610f49565b5f81815260028601602052604081205491925065ffffffffffff90911690036112c85760405163060a299b60e41b815260048101829052602401610911565b826001600160a01b0316896001600160a01b031614611361575f6112ec5f856111d7565b5090505f6113066113006102518c87610d78565b866111d7565b50905081158015611315575080155b1561135e57604051630ff89d4760e21b81526001600160a01b038087166004830152808d1660248301528b1660448201526001600160e01b031985166064820152608401610911565b50505b5f818152600285016020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a39998505050505050505050565b5f805f6113d061168d565b9050335f6113e0828a8a8a611773565b9150505f8163ffffffff166113f361220d565b6113fd9190612f25565b905063ffffffff8216158061143357505f8765ffffffffffff1611801561143357508065ffffffffffff168765ffffffffffff16105b1561144457828a6108d88b8b6117c4565b61145e8765ffffffffffff168265ffffffffffff166122e4565b965061146c838b8b8b610f49565b9550611477866122f9565b836002015f8781526020019081526020015f205f0160069054906101000a900463ffffffff16600101945086846002015f8881526020019081526020015f205f015f6101000a81548165ffffffffffff021916908365ffffffffffff16021790555084846002015f8881526020019081526020015f205f0160066101000a81548163ffffffff021916908363ffffffff1602179055508463ffffffff16867f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b489868e8e8e60405161154c959493929190612f43565b60405180910390a35050505094509492505050565b6001600160a01b03811633146110bd57604051635f159e6360e01b815260040160405180910390fd5b335f80611598838236612353565b91509150816110c7578063ffffffff165f036115f2575f6115b98136612404565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b03821660248201529092506044019050610911565b610c04610efb84305f36610f49565b5f61160a61168d565b6001600160a01b0385165f818152602083815260408083206001600160e01b0319891680855290835292819020805467ffffffffffffffff19166001600160401b03891690811790915590519283529394507f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a350505050565b7f40c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad0090565b5f806116c5836001600160701b0316611d2b565b5090949350505050565b5f6116d861168d565b9050306001600160a01b0384160361170e57604051630b40d17960e31b81526001600160a01b0384166004820152602401610911565b6001600160a01b0383165f81815260208390526040908190206001018054851515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb13890610e4990851515815260200190565b5f80306001600160a01b0386160361179957611790868585612353565b915091506117bb565b600483106117b5576117b0868661062287876117c4565b611790565b505f9050805b94509492505050565b5f6117d26004828486612e7c565b61081791612f88565b5f806117e561168d565b5f84815260028201602052604081205491925065ffffffffffff821691600160301b900463ffffffff16908290036118335760405163060a299b60e41b815260048101869052602401610911565b61183b61220d565b65ffffffffffff168265ffffffffffff16111561186e57604051630c65b5bd60e11b815260048101869052602401610911565b61187782611dfc565b1561189857604051631e2975b960e21b815260048101869052602401610911565b5f858152600284016020526040808220805465ffffffffffff191690555163ffffffff83169187917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a3949350505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b6060814710156119535760405163cd78605960e01b8152306004820152602401610911565b5f80856001600160a01b0316848660405161196e9190612fc0565b5f6040518083038185875af1925050503d805f81146119a8576040519150601f19603f3d011682016040523d82523d5f602084013e6119ad565b606091505b50915091506119bd8683836125c5565b9695505050505050565b6119cf612621565b806001600160a01b03163b5f03611a045760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610911565b5f80546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526325713e4b60e21b60048201526301ffc9a790602401602060405180830381865afa925050508015611a7d575060408051601f3d908101601f19168201909252611a7a91810190612fcb565b60015b611aa55760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610911565b806108305760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610911565b50565b5f80611adb61168d565b905067fffffffffffffffe196001600160401b03871601611b1a5760405163061c6a4360e21b81526001600160401b0387166004820152602401610911565b6001600160401b0386165f90815260018201602090815260408083206001600160a01b038916845290915281205465ffffffffffff1615908115611c0e578563ffffffff16611b6761220d565b611b719190612f25565b905060405180604001604052808265ffffffffffff168152602001611b9f8763ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b038a165f90815260018601602090815260408083206001600160a01b038d1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff90911617919091179055611cbc565b6001600160401b0388165f90815260018401602090815260408083206001600160a01b038b168452909152812054611c5991600160301b9091046001600160701b031690879061266c565b6001600160401b038a165f90815260018601602090815260408083206001600160a01b038d168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8716815265ffffffffffff831660208201528315158183015290516001600160a01b038916916001600160401b038b16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a3509695505050505050565b5f805f611d3f84611d3a61220d565b612712565b9250925092509193909250565b5f611d5561168d565b90506001600160401b0383161580611d7557506001600160401b03838116145b15611d9e5760405163061c6a4360e21b81526001600160401b0384166004820152602401610911565b6001600160401b038381165f81815260018481016020526040808320909101805467ffffffffffffffff19169487169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a3505050565b5f611e0561220d565b65ffffffffffff16611e1a62093a8084612f25565b65ffffffffffff16111592915050565b5f611e3361168d565b90506001600160401b0383161580611e5357506001600160401b03838116145b15611e7c5760405163061c6a4360e21b81526001600160401b0384166004820152602401610911565b6001600160401b038381165f8181526001848101602052604080832090910180546fffffffffffffffff00000000000000001916600160401b958816958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a3505050565b5f611ef161168d565b905067fffffffffffffffe196001600160401b03841601611f305760405163061c6a4360e21b81526001600160401b0384166004820152602401610911565b6001600160401b0383165f9081526001828101602052604082200154611f6a90600160801b90046001600160701b0316846206978061266c565b6001600160401b0386165f81815260018087016020526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b4890612004908690859063ffffffff92909216825265ffffffffffff16602082015260400190565b60405180910390a250505050565b60605f80846001600160a01b03168460405161202e9190612fc0565b5f60405180830381855af49150503d805f8114612066576040519150601f19603f3d011682016040523d82523d5f602084013e61206b565b606091505b509150915061207b8583836125c5565b95945050505050565b5f8061208f84610f00565b1561209e57505f9050806110ad565b306001600160a01b038616036120c2576120b88484612764565b5f915091506110ad565b5f6120cd8585610d78565b90505f806120db83896111d7565b91509150816120eb575f806120f5565b63ffffffff811615815b945094505050506110ad565b5f8061210b61168d565b905067fffffffffffffffe196001600160401b0385160161214a5760405163061c6a4360e21b81526001600160401b0385166004820152602401610911565b6001600160401b0384165f90815260018201602090815260408083206001600160a01b038716845290915281205465ffffffffffff16900361218f575f915050610db9565b6001600160401b0384165f81815260018301602090815260408083206001600160a01b038816808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a35060019392505050565b612204612621565b611ace81612788565b5f612217426127c5565b905090565b5f61222561168d565b90505f61225b83620697806001600160a01b0387165f908152602086905260409020600101546001600160701b0316919061266c565b6001600160a01b0386165f818152602086815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8816815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c9101612004565b5f8183116122f25781610817565b5090919050565b5f61230261168d565b5f83815260028201602052604090205490915065ffffffffffff168015801590612332575061233081611dfc565b155b156110c75760405163813e945960e01b815260048101849052602401610911565b5f80600483101561236857505f9050806110ad565b306001600160a01b0386160361238b576120b83061238686866117c4565b612764565b5f805f6123988787612404565b925092509250826123b1575f80945094505050506110ad565b5f806123bd848b6111d7565b91509150816123d6575f809650965050505050506110ad565b6123ec8363ffffffff168263ffffffff166122e4565b63ffffffff8116159b909a5098505050505050505050565b5f8080600484101561241d57505f9150819050806125be565b5f61242886866117c4565b90506001600160e01b031981166310a6aa3760e31b148061245957506001600160e01b031981166330cae18760e01b145b8061247457506001600160e01b0319811663294b14a960e11b145b8061248f57506001600160e01b03198116635326cae760e11b145b806124aa57506001600160e01b0319811663d22b598960e01b145b156124bf5760015f80935093509350506125be565b6001600160e01b0319811663063fc60f60e21b14806124ee57506001600160e01b0319811663167bd39560e01b145b8061250957506001600160e01b031981166308d6122d60e01b145b15612548575f61251d60246004888a612e7c565b81019061252a9190612b0e565b90505f61253682610cfc565b600196505f955093506125be92505050565b6001600160e01b0319811663012e238d60e51b148061257757506001600160e01b03198116635be958b160e11b145b156125b3575f61258b60246004888a612e7c565b81019061259891906128f5565b905060016125a582610d48565b5f94509450945050506125be565b5f805f935093509350505b9250925092565b6060826125da576125d5826127fb565b610817565b81511580156125f157506001600160a01b0384163b155b1561261a57604051639996b31560e01b81526001600160a01b0385166004820152602401610911565b5080610817565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661266a57604051631afcd79f60e31b815260040160405180910390fd5b565b5f805f612681866001600160701b03166116b1565b90505f6126bc8563ffffffff168763ffffffff168463ffffffff16116126a7575f6126b1565b6126b18885612fe6565b63ffffffff166122e4565b90508063ffffffff166126cd61220d565b6126d79190612f25565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b5f808069ffffffffffffffffffff602086901c166001600160701b03861665ffffffffffff604088901c811690871681111561275057828282612754565b815f805b9550955095505050509250925092565b5f8061276e61168d565b905061277a84846118ec565b600390910154149392505050565b612790612621565b6001600160a01b0381166127b957604051630409d6d160e11b81525f6004820152602401610911565b6108305f825f80611ad1565b5f65ffffffffffff8211156127f7576040516306dfcc6560e41b81526030600482015260248101839052604401610911565b5090565b80511561280b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6001600160a01b0381168114611ace575f80fd5b5f8083601f840112612848575f80fd5b5081356001600160401b0381111561285e575f80fd5b6020830191508360208260051b8501011115611249575f80fd5b80356001600160401b038116811461288e575f80fd5b919050565b5f805f80606085870312156128a6575f80fd5b84356128b181612824565b935060208501356001600160401b038111156128cb575f80fd5b6128d787828801612838565b90945092506128ea905060408601612878565b905092959194509250565b5f60208284031215612905575f80fd5b61081782612878565b8015158114611ace575f80fd5b5f806040838503121561292c575f80fd5b823561293781612824565b915060208301356129478161290e565b809150509250929050565b5f8060408385031215612963575f80fd5b823561296e81612824565b9150602083013561294781612824565b5f8083601f84011261298e575f80fd5b5081356001600160401b038111156129a4575f80fd5b602083019150836020828501011115611249575f80fd5b5f805f604084860312156129cd575f80fd5b83356129d881612824565b925060208401356001600160401b038111156129f2575f80fd5b6129fe8682870161297e565b9497909650939450505050565b5f8060408385031215612a1c575f80fd5b8235612a2781612824565b9150602083013560ff81168114612947575f80fd5b5f60208284031215612a4c575f80fd5b81356108178161290e565b803563ffffffff8116811461288e575f80fd5b5f805f60608486031215612a7c575f80fd5b612a8584612878565b92506020840135612a9581612824565b9150612aa360408501612a57565b90509250925092565b5f8060408385031215612abd575f80fd5b61296e83612878565b5f8060408385031215612ad7575f80fd5b612ae083612878565b9150612aee60208401612878565b90509250929050565b5f60208284031215612b07575f80fd5b5035919050565b5f60208284031215612b1e575f80fd5b813561081781612824565b6001600160e01b031981168114611ace575f80fd5b5f8060408385031215612b4f575f80fd5b8235612b5a81612824565b9150602083013561294781612b29565b5f805f60408486031215612b7c575f80fd5b6129d884612878565b5f8060408385031215612b96575f80fd5b612b9f83612878565b9150612aee60208401612a57565b5f805f8060608587031215612bc0575f80fd5b8435612bcb81612824565b93506020850135612bdb81612824565b925060408501356001600160401b03811115612bf5575f80fd5b612c018782880161297e565b95989497509550505050565b5f8060208385031215612c1e575f80fd5b82356001600160401b03811115612c33575f80fd5b612c3f85828601612838565b90969095509350505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612cc357603f19878603018452815180518087528060208301602089015e5f602082890101526020601f19601f83011688010196505050602082019150602084019350600181019050612c71565b50929695505050505050565b5f805f60608486031215612ce1575f80fd5b8335612cec81612824565b92506020840135612cfc81612824565b91506040840135612d0c81612b29565b809150509250925092565b5f8060408385031215612d28575f80fd5b8235612b9f81612824565b5f805f8060608587031215612d46575f80fd5b8435612d5181612824565b935060208501356001600160401b03811115612d6b575f80fd5b612d778782880161297e565b909450925050604085013565ffffffffffff81168114612d95575f80fd5b939692955090935050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612dc4575f80fd5b813561081781612b29565b5f60208284031215612ddf575f80fd5b5051919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f610cc9602083018486612de6565b5f60208284031215612e31575f80fd5b815161081781612b29565b6001600160a01b038581168252841660208201526060604082018190525f906119bd9083018486612de6565b634e487b7160e01b5f52601160045260245ffd5b5f8085851115612e8a575f80fd5b83861115612e96575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f808335601e19843603018112612ecc575f80fd5b8301803591506001600160401b03821115612ee5575f80fd5b602001915036819003821315611249575f80fd5b5f81518060208401855e5f93019283525090919050565b828482375f8382015f81526119bd8185612ef9565b65ffffffffffff8181168382160190811115610db957610db9612e68565b65ffffffffffff861681526001600160a01b038581166020830152841660408201526080606082018190525f90612f7d9083018486612de6565b979650505050505050565b80356001600160e01b03198116906004841015612fb9576001600160e01b0319600485900360031b81901b82161691505b5092915050565b5f6108178284612ef9565b5f60208284031215612fdb575f80fd5b81516108178161290e565b63ffffffff8281168282160390811115610db957610db9612e6856fea26469706673582212207bdf49e6228b13ecc3556bf89f8bdef607aaf7ff2d1d27c4cb1f595a717ad29164736f6c634300081a0033c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00",
1259
+ "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610208575f3560e01c80638308ceb11161011f578063c4d66de8116100a9578063d5f3948811610079578063d5f3948814610623578063d78a83b114610634578063e46dd59a14610647578063ea0a94b11461065a578063f09ae31b1461066d575f80fd5b8063c4d66de8146105d7578063c6a00179146105ea578063cd55e51b146105fd578063cf2f81dc14610610575f80fd5b8063b3ecf236116100ef578063b3ecf23614610563578063b70096131461056b578063bc62a0a51461057e578063bcfb11b0146105a6578063bf7e214f146105cf575f80fd5b80638308ceb1146104865780638fb360371461048e5780639279073b146104a357806392bdd9bd146104e2575f80fd5b8063392f5f64116101a0578063605aa10a11610170578063605aa10a1461042557806364fc314214610438578063728a61a81461044b578063748540711461045e5780637a9e5e4b14610473575f80fd5b8063392f5f64146103bf5780633fd85561146103c75780635bfa5027146103f25780635cb870b114610412575f80fd5b806326d60fb4116101db57806326d60fb41461034157806326decd40146103495780633406b1521461036c57806335471f80146103ac575f80fd5b8063030149741461020c57806312e1ebc51461023257806315fb0abb146102cd57806324913ce6146102ed575b5f80fd5b61021f61021a366004613994565b610698565b6040519081526020015b60405180910390f35b6102a26102403660046139c3565b60408051606080820183525f80835260208084018290529284018190526001600160a01b03949094168452600682529282902082519384018352805484526001015460ff8116151591840191909152610100900464ffffffffff169082015290565b60408051825181526020808401511515908201529181015164ffffffffff1690820152606001610229565b6102e06102db366004613ad7565b6106be565b6040516102299190613b19565b6103006102fb366004613b4b565b610859565b60408051835181526020808501516001600160e01b031916908201529281015164ffffffffff16908301526001600160401b03166060820152608001610229565b60085461021f565b61035c6103573660046139c3565b610ae8565b6040519015158152602001610229565b61039461037a366004613b75565b5f908152600760205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610229565b61021f6103ba3660046139c3565b610b54565b60045461021f565b6103da6103d5366004613b75565b610bde565b6040516001600160401b039091168152602001610229565b610405610400366004613994565b610c20565b6040516102299190613bc0565b610405610420366004613c38565b610cf4565b61035c6104333660046139c3565b610ed1565b61035c610446366004613cab565b610f46565b610394610459366004613b75565b610fca565b61047161046c366004613cf0565b610ff8565b005b6104716104813660046139c3565b611021565b6103da6110ac565b610496611125565b6040516102299190613d49565b6104d56040518060400160405280601381526020017252656c656173655265676973747279526f6c6560681b81525081565b6040516102299190613d8c565b61053d6104f0366004613b75565b604080518082019091525f8082526020820152505f908152600360209081526040918290208251808401909352546001600160401b0381168352600160401b900460ff1615159082015290565b6040805182516001600160401b0316815260209283015115159281019290925201610229565b6103da61115b565b61035c610579366004613d9e565b6111ab565b6104d56040518060400160405280600981526020016841646d696e526f6c6560b81b81525081565b6104d56040518060400160405280600a8152602001695075626c6963526f6c6560b01b81525081565b610394611262565b6104716105e53660046139c3565b61127d565b61035c6105f8366004613994565b6113df565b61035c61060b366004613cab565b61143b565b61047161061e366004613df3565b611469565b6001546001600160a01b0316610394565b610394610642366004613e1f565b6114b0565b610471610655366004613e3b565b6114d1565b610471610668366004613e56565b6115fc565b6104d56040518060400160405280600c81526020016b2932b632b0b9b2a0b236b4b760a11b81525081565b6001600160401b0381165f9081526005602052604081206106b8906117b8565b92915050565b60408051606080820183525f808352602083018190528284015282519081019283905263cdc23e6960e01b909252908073__$9a094f9b231ed0f5f85a69be8408d93180$__63cdc23e696107158660648501613d8c565b602060405180830381865af4158015610730573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107549190613e93565b815260200173__$0904195350e4c23ecb1d51df0a32586dcd$__636b15ee8b866040518263ffffffff1660e01b81526004016107909190613d49565b602060405180830381865af41580156107ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107cf9190613eaa565b6001600160e01b031916815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610825573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108499190613ede565b64ffffffffff1690529392505050565b604080516060810182525f80825260208083018290528284018290526001600160a01b038616825260099052828120925163dfe63db960e01b81526004810193909352602483018490529091819073__$8df0087758613aef8a614b5774fdb3323b$__9063dfe63db990604401602060405180830381865af41580156108e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109059190613eaa565b6001600160a01b038681165f908152600a602090815260408083206001600160e01b031986811680865291845282852083516060810185528154815260019091015460e081901b90921694810194909452640100000000900464ffffffffff168383015292549051636ea1af2560e11b815291975093945073__$1d92393fa9ccd763988368ce8a1cb90d26$__93637c3940bf931691636d5115bd918a9173__$0904195350e4c23ecb1d51df0a32586dcd$__9163dd435e4a916109cb91600401613d49565b602060405180830381865af41580156109e6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0a9190613eaa565b6040516001600160e01b031960e085901b811682526001600160a01b03909316600482015291166024820152604401602060405180830381865afa158015610a54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a789190613ef7565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865af4158015610aba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ade9190613ef7565b9150509250929050565b5f805460405163a166aa8960e01b81526001600160a01b0384811660048301529091169063a166aa8990602401602060405180830381865afa158015610b30573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b89190613f12565b6001600160a01b0381165f90815260096020526040808220905163868b3e0760e01b8152600481019190915273__$8df0087758613aef8a614b5774fdb3323b$__9063868b3e0790602401602060405180830381865af4158015610bba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b89190613e93565b5f60048281548110610bf257610bf2613f2d565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b03169050919050565b6040805160c080820183525f8083526020808401829052838501829052606084018290526080840182905260a084018290526001600160401b038681168352600282529185902085519384019095528454918216835292939192830190600160401b900460ff166003811115610c9857610c98613b8c565b6003811115610ca957610ca9613b8c565b81528154600160481b900463ffffffff1660208201526001820154604082015260029091015464ffffffffff8082166060840152650100000000009091041660809091015292915050565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a08101919091526040518060c00160405280866001600160401b03168152602001856003811115610d5157610d51613b8c565b81526020018463ffffffff16815260200173__$9a094f9b231ed0f5f85a69be8408d93180$__63cdc23e69856040518263ffffffff1660e01b8152600401610d999190613d8c565b602060405180830381865af4158015610db4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd89190613e93565b815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610e24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e489190613ede565b64ffffffffff16815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015610e9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebf9190613ede565b64ffffffffff16905295945050505050565b6001600160a01b0381165f90815260066020526040808220600101549051638d38cd4b60e01b815261010090910464ffffffffff16600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b906024015b602060405180830381865af4158015610b30573d5f803e3d5ffd5b5f80546040516368fc2b7760e11b81526001600160401b03841660048201526001600160a01b0385811660248301528392169063d1f856ee906044015b6040805180830381865afa158015610f9d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc19190613f41565b50949350505050565b5f60088281548110610fde57610fde613f2d565b5f918252602090912001546001600160a01b031692915050565b611004335b5f366117c1565b61100f8383836118b7565b61101b84848484611b65565b50505050565b3361102a611262565b6001600160a01b0316816001600160a01b03161461106a5760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f0361109f576040516361798f2f60e11b81526001600160a01b0383166004820152602401611061565b6110a882611e6e565b5050565b5f805f9054906101000a90046001600160a01b03166001600160a01b0316633ca7c02a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111209190613ef7565b905090565b5f8051602061449683398151915280545f9190600160a01b900460ff1661114c575f611155565b638fb3603760e01b5b91505090565b5f805f9054906101000a90046001600160a01b03166001600160a01b03166375b238fc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fc573d5f803e3d5ffd5b5f8054604051636ea1af2560e11b81526001600160a01b039091169063b7009613908690869073__$0904195350e4c23ecb1d51df0a32586dcd$__9063dd435e4a90611205906001600160e01b03198a1690600401613d49565b602060405180830381865af4158015611220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112449190613eaa565b6040518463ffffffff1660e01b8152600401610f8393929190613f6e565b5f80516020614496833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f811580156112c15750825b90505f826001600160401b031660011480156112dc5750303b155b9050811580156112ea575080155b156113085760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561133257845460ff60401b1916600160401b1785555b6001546001600160a01b031661135557600180546001600160a01b031916331790555b6001546001600160a01b0316331461138057604051635adaa55f60e11b815260040160405180910390fd5b61138986611ecf565b611391611f55565b83156113d757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b6001600160401b0381165f908152600260208190526040808320909101549051638d38cd4b60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401610f2b565b6001600160401b038082165f90815260026020526040812054909161146291859116610f46565b9392505050565b61147233610ffd565b306001600160a01b038316036114a65760405163f1e7fc1f60e01b81526001600160a01b0383166004820152602401611061565b6110a882826120fe565b6001600160401b0382165f9081526005602052604081206114629083612205565b5f80546001600160a01b031663d1f856ee6114ea612210565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611541573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115659190613ef7565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201523360248201526044016040805180830381865afa1580156115ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d09190613f41565b509050806115f35760405163de0edf8360e01b8152336004820152602401611061565b6110a882612260565b604051632b10f60d60e21b815260ff8216600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af415801561164c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116709190613e93565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b900460ff16806116b5575080546001600160401b03808416911610155b156116d35760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781555f6116fd611262565b604051630f6c67a360e11b81526001600160a01b03888116600483015260ff8716602483015291925090821690631ed8cf46906044015f604051808303815f87803b15801561174a575f80fd5b505af115801561175c573d5f803e3d5ffd5b505050506117698561231c565b50805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050565b5f6106b8825490565b5f805160206144968339815191525f806117f96117dc611262565b87306117eb60045f8a8c613f9b565b6117f491613fc2565b6124ac565b91509150816113d75763ffffffff81161561189457825460ff60a01b1916600160a01b178355611827611262565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161185693929190613ffa565b5f604051808303815f87803b15801561186d575f80fd5b505af115801561187f573d5f803e3d5ffd5b5050845460ff60a01b19168555506113d79050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401611061565b604051632b95d28f60e21b815260ff831660048201525f9073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__9063ae574a3c906024015f60405180830381865af4158015611908573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261192f9190810190614039565b604051632b10f60d60e21b815260ff841660048201529091505f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015611984573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a89190613e93565b90505f73__$0d958e68cba84670b8f4a3f2f2686b1c6b$__63f7fa7a7c84846040518363ffffffff1660e01b81526004016119e49291906140ad565b5f60405180830381865af41580156119fe573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611a259190810190614039565b9050611a34868260015f61259e565b60405163dda777d360e01b815260ff8087166004830152851660248201525f9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063dda777d390604401602060405180830381865af4158015611a8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ab29190613ef7565b9050611abd816113df565b611b5257611b5281611b4d611ad0612ad0565b60018073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__63f7fa7a7c8b8b6040518363ffffffff1660e01b8152600401611b0c9291906140ef565b5f60405180830381865af4158015611b26573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104209190810190614039565b612b0a565b611b5c8188612d89565b50505050505050565b604051630e949b3560e21b815260ff831660048201525f90819081906001600160a01b03881690633a526cd4906024015f60405180830381865afa158015611baf573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611bd69190810190614157565b90505f5b8151811015611e6457818181518110611bf557611bf5613f2d565b60200260200101519350611c1684611c0b606390565b60ff90811691161490565b15611c2a57611c23612f9d565b9250611ca9565b60405163dda777d360e01b815260ff80861660048301528616602482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063dda777d390604401602060405180830381865af4158015611c82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ca69190613ef7565b92505b611cb2836113df565b611dd957611dd983611b4d611cc5612ad0565b604051632b95d28f60e21b815260ff89166004820152600190819073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__9063f7fa7a7c90829063ae574a3c906024015f60405180830381865af4158015611d21573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d489190810190614039565b604051632b10f60d60e21b815260ff8f16600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015611d98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dbc9190613e93565b6040518363ffffffff1660e01b8152600401611b0c9291906141f0565b6040516374766d9b60e11b815260ff8088166004830152851660248201525f906001600160a01b038a169063e8ecdb36906044015f60405180830381865afa158015611e27573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611e4e919081019061422f565b9050611e5b888583612fdd565b50600101611bda565b5050505050505050565b5f8051602061449683398151915280546001600160a01b0319166001600160a01b03831690811782556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad906020015b60405180910390a15050565b611ed7613045565b5f80546001600160a01b0319166001600160a01b03831690811790915560405163189acdbd60e31b815230600482015263c4d66de8906024015f604051808303815f87803b158015611f27575f80fd5b505af1158015611f39573d5f803e3d5ffd5b50505f54611f5292506001600160a01b03169050613090565b50565b611f5d613045565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__637c3940bf5f8054906101000a90046001600160a01b03166001600160a01b03166375b238fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fea9190613ef7565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865af415801561202c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120509190613ef7565b905061209761205d612ad0565b612092612068612ad0565b6001806040518060400160405280600981526020016841646d696e526f6c6560b81b815250610cf4565b6130a1565b6001600160401b0381165f9081526005602052604090206120b89030613352565b50611f526120c4612f9d565b6120926120cf612ad0565b600263ffffffff6040518060400160405280600a8152602001695075626c6963526f6c6560b01b815250610cf4565b61210782613366565b5f5460405163a166aa8960e01b81526001600160a01b03848116600483015283151592169063a166aa8990602401602060405180830381865afa158015612150573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121749190613f12565b1515036121a75760405163caa9be8360e01b81526001600160a01b03831660048201528115156024820152604401611061565b5f5460405163167bd39560e01b81526001600160a01b03848116600483015283151560248301529091169063167bd395906044015b5f604051808303815f87803b1580156121f3575f80fd5b505af11580156113d7573d5f803e3d5ffd5b5f6114628383613397565b604051637c3940bf60e01b81526004808201525f9073__$1d92393fa9ccd763988368ce8a1cb90d26$__90637c3940bf906024015b602060405180830381865af41580156110fc573d5f803e3d5ffd5b5f612269611262565b9050811515816001600160a01b031663a4e2d6346040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ce9190613f12565b1515036122ee576040516363aa653560e01b815260040160405180910390fd5b60405163108f145b60e11b815282151560048201526001600160a01b0382169063211e28b6906024016121dc565b612324613045565b612354306040518060400160405280600c81526020016b2932b632b0b9b2a0b236b4b760a11b8152505f8061259e565b5f61235d612210565b90506123a281611b4d61236e612ad0565b6001806040518060400160405280601381526020017252656c656173655265676973747279526f6c6560681b815250610cf4565b6040805160028082526060828101909352816020015b604080516060810182525f80825260208083018290529282015282525f199092019101816123b857905050905061241e637485407160e01b6040518060400160405280601081526020016f617574686f72697a655365727669636560801b8152506106be565b815f8151811061243057612430613f2d565b602002602001018190525061247463cf2f81dc60e01b6040518060400160405280601081526020016f1cd95d14d95c9d9a58d9531bd8dad95960821b8152506106be565b8160018151811061248757612487613f2d565b602002602001018190525061249d308383612fdd565b6124a78284612d89565b505050565b5f805f80876001600160a01b03168787876040516024016124cf93929190613f6e565b60408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b1790525161250491906142f5565b5f60405180830381855afa9150503d805f811461253c576040519150601f19603f3d011682016040523d82523d5f602084013e612541565b606091505b5091509150811561259357604081511061257357808060200190518101906125699190613f41565b9094509250612593565b602081511061259357808060200190518101906125909190613f12565b93505b505094509492505050565b6125a66133bd565b6125af84610ed1565b15612664576001600160a01b0384165f9081526006602052604090819020549051631623433d60e31b8152859173__$9a094f9b231ed0f5f85a69be8408d93180$__9163b11a19e8916126089160040190815260200190565b5f60405180830381865af4158015612622573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526126499190810190614039565b60405163455f894360e01b815260040161106192919061430b565b60405163cdc23e6960e01b81525f9073__$9a094f9b231ed0f5f85a69be8408d93180$__9063cdc23e699061269d908790600401613d8c565b602060405180830381865af41580156126b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126dc9190613e93565b60405163a9dbaf2560e01b81526004810182905290915073__$9a094f9b231ed0f5f85a69be8408d93180$__9063a9dbaf2590602401602060405180830381865af415801561272d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127519190613e93565b5f0361277b576040516389100c0960e01b81526001600160a01b0386166004820152602401611061565b5f818152600760205260409020546001600160a01b0316156127cd575f8181526007602052604090819020549051638beac5bb60e01b815261106191879187916001600160a01b031690600401614336565b6040516303d2026b60e21b81526001600160a01b038616600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90630f4809ac90602401602060405180830381865af4158015612823573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128479190613f12565b61286f5760405163680f41eb60e01b81526001600160a01b0386166004820152602401611061565b821561292f575f856001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128d69190614371565b90506128e0611262565b6001600160a01b0316816001600160a01b03161461292d57612900611262565b6040516358dffd0760e01b81526001600160a01b0391821660048201529082166024820152604401611061565b505b6040518060600160405280828152602001831515815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561298f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129b39190613ede565b64ffffffffff9081169091526001600160a01b0387165f818152600660209081526040808320865181558683015160019182018054988401519097166101000265ffffffffff00199115159190911665ffffffffffff1990981697909717969096179094558582526007905282812080546001600160a01b031990811684179091556008805495860181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3909301805490931617909155517f41a3bdd8567a380ee8bf6660dae135d2ee59322968c5c8cc1884a4b1be5050b190612a9e908790879061430b565b60405180910390a15061101b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b604051637c3940bf60e01b81525f600482018190529073__$1d92393fa9ccd763988368ce8a1cb90d26$__90637c3940bf90602401612245565b612b13826113df565b15612bcb576001600160401b0382165f9081526002602052604090819020600101549051631623433d60e31b8152839173__$9a094f9b231ed0f5f85a69be8408d93180$__9163b11a19e891612b6f9160040190815260200190565b5f60405180830381865af4158015612b89573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612bb09190810190614039565b60405163212f3d9960e01b815260040161106192919061438c565b8051612bd6906113df565b612c0157805160405163ea5c764960e01b81526001600160401b039091166004820152602401611061565b606081015160405163a9dbaf2560e01b8152600481019190915273__$9a094f9b231ed0f5f85a69be8408d93180$__9063a9dbaf2590602401602060405180830381865af4158015612c55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c799190613e93565b5f03612ca3576040516321ab17ab60e01b81526001600160401b0383166004820152602401611061565b60608101515f90815260036020526040902054600160401b900460ff1615612d7f576060810151604051631623433d60e31b8152839173__$9a094f9b231ed0f5f85a69be8408d93180$__9163b11a19e891612d059160040190815260200190565b5f60405180830381865af4158015612d1f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612d469190810190614039565b60608301515f90815260036020526040908190205490516345e6904160e01b81526110619392916001600160401b0316906004016143ad565b6110a882826130a1565b816001612d968282613407565b6001600160401b0384165f908152600260209081526040808320546005909252909120600160481b90910463ffffffff1690612dd1906117b8565b10612e1e576001600160401b0384165f8181526002602052604090819020549051630a50b69f60e01b81526004810192909252600160481b900463ffffffff166024820152604401611061565b60016001600160401b0385165f90815260026020526040902054600160401b900460ff166003811115612e5357612e53613b8c565b148015612ed75750604051631627905560e01b81526001600160a01b038416600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90631627905590602401602060405180830381865af4158015612eb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed59190613f12565b155b15612f0f5760405163e65b1b3960e01b81526001600160401b03851660048201526001600160a01b0384166024820152604401611061565b6001600160401b0384165f908152600560205260409020612f309084613352565b505f805460405163012e238d60e51b81526001600160401b03871660048201526001600160a01b03868116602483015260448201939093529116906325c471a0906064015f604051808303815f87803b158015612f8b575f80fd5b505af1158015611e64573d5f803e3d5ffd5b604051637c3940bf60e01b81526001600160401b0360048201525f9073__$1d92393fa9ccd763988368ce8a1cb90d26$__90637c3940bf90602401612245565b612ffa82612fe961115b565b6001600160401b0390811691161490565b15613023576040516323d0464560e21b81526001600160a01b0384166004820152602401611061565b60015f6130318584846135c5565b905061303e8585836138a4565b5050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661308e57604051631afcd79f60e31b815260040160405180910390fd5b565b613098613045565b611f5281613923565b73__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156130e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061310c9190613ede565b64ffffffffff1660808201526001600160401b038083165f90815260026020908152604090912083518154931667ffffffffffffffff1984168117825591840151849391929091839168ffffffffffffffffff1990911617600160401b83600381111561317b5761317b613b8c565b0217905550604082810151825463ffffffff909116600160481b026cffffffff0000000000000000001990911617825560608084015160018085019190915560808501516002909401805460a09096015164ffffffffff908116650100000000000269ffffffffffffffffffff1990971695169490941794909417909255805180820182526001600160401b03808716808352602080840187815295880180515f90815260038084528782209651875499511515600160401b0268ffffffffffffffffff19909a169087161798909817909555600480549889018155948590528488047f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054989097166008026101000a92830292909302199096161790935592840151845192519151631623433d60e31b81527f450614a3feeef5c4e204a5b960f0b368083de37223fc452a8b3c2cb93d075a05948794929373__$9a094f9b231ed0f5f85a69be8408d93180$__9263b11a19e89261330192910190815260200190565b5f60405180830381865af415801561331b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526133429190810190614039565b604051611ec394939291906143e7565b5f611462836001600160a01b038416613934565b61336f81610ed1565b611f52576040516366fba5db60e01b81526001600160a01b0382166004820152602401611061565b5f825f0182815481106133ac576133ac613f2d565b905f5260205f200154905092915050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080546001190161340157604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b613410826113df565b613438576040516309c7013760e21b81526001600160401b0383166004820152602401611061565b5f5460408051631d6c8e3f60e21b8152905184926001600160a01b0316916375b238fc9160048083019260209291908290030181865afa15801561347e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134a29190613ef7565b6001600160401b0316816001600160401b0316036134de5760405163a72de1fb60e01b81526001600160401b0384166004820152602401611061565b81801561359c575061359c60025f856001600160401b03166001600160401b031681526020019081526020015f2060020160059054906101000a900464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015613568573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061358c9190613ede565b64ffffffffff9081169116111590565b156124a75760405163aa20675760e01b81526001600160401b0384166004820152602401611061565b6060836135d181613366565b8351806001600160401b038111156135eb576135eb6139f3565b604051908082528060200260200182016040528015613614578160200160208202803683370190505b509250613639604080516060810182525f808252602082018190529181019190915290565b5f805b838110156138985787818151811061365657613656613f2d565b602002602001015192508260200151915086156136fa576001600160a01b0389165f90815260096020526040908190209051631b76c9b760e31b815260048101919091526001600160e01b03198316602482015273__$8df0087758613aef8a614b5774fdb3323b$__9063dbb64db8906044015f6040518083038186803b1580156136df575f80fd5b505af41580156136f1573d5f803e3d5ffd5b50505050613783565b6001600160a01b0389165f908152600960205260409081902090516313edd33560e31b815260048101919091526001600160e01b03198316602482015273__$8df0087758613aef8a614b5774fdb3323b$__90639f6e99a8906044015f6040518083038186803b15801561376c575f80fd5b505af415801561377e573d5f803e3d5ffd5b505050505b6001600160a01b0389165f908152600a602090815260408083206001600160e01b03198616808552908352928190208651815591860151600190920180548288015164ffffffffff166401000000000268ffffffffffffffffff1990911660e09490941c939093179290921790915551636ea1af2560e11b815273__$0904195350e4c23ecb1d51df0a32586dcd$__9163dd435e4a916138269190600401613d49565b602060405180830381865af4158015613841573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138659190613eaa565b86828151811061387757613877613f2d565b6001600160e01b03199092166020928302919091019091015260010161363c565b50505050509392505050565b826138ae81613366565b8260016138bb8282613407565b5f546040516308d6122d60e01b81526001600160a01b03909116906308d6122d906138ee90899088908a90600401614424565b5f604051808303815f87803b158015613905575f80fd5b505af1158015613917573d5f803e3d5ffd5b50505050505050505050565b61392b613045565b611f5281611e6e565b5f81815260018301602052604081205461397957508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556106b8565b505f6106b8565b6001600160401b0381168114611f52575f80fd5b5f602082840312156139a4575f80fd5b813561146281613980565b6001600160a01b0381168114611f52575f80fd5b5f602082840312156139d3575f80fd5b8135611462816139af565b6001600160e01b031981168114611f52575f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715613a2957613a296139f3565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613a5757613a576139f3565b604052919050565b5f6001600160401b03821115613a7757613a776139f3565b50601f01601f191660200190565b5f82601f830112613a94575f80fd5b8135613aa7613aa282613a5f565b613a2f565b818152846020838601011115613abb575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613ae8575f80fd5b8235613af3816139de565b915060208301356001600160401b03811115613b0d575f80fd5b610ade85828601613a85565b815181526020808301516001600160e01b0319169082015260408083015164ffffffffff1690820152606081016106b8565b5f8060408385031215613b5c575f80fd5b8235613b67816139af565b946020939093013593505050565b5f60208284031215613b85575f80fd5b5035919050565b634e487b7160e01b5f52602160045260245ffd5b60048110613bbc57634e487b7160e01b5f52602160045260245ffd5b9052565b81516001600160401b0316815260208083015160c0830191613be490840182613ba0565b5063ffffffff60408401511660408301526060830151606083015264ffffffffff608084015116608083015264ffffffffff60a08401511660a083015292915050565b63ffffffff81168114611f52575f80fd5b5f805f8060808587031215613c4b575f80fd5b8435613c5681613980565b9350602085013560048110613c69575f80fd5b92506040850135613c7981613c27565b915060608501356001600160401b03811115613c93575f80fd5b613c9f87828801613a85565b91505092959194509250565b5f8060408385031215613cbc575f80fd5b8235613cc7816139af565b91506020830135613cd781613980565b809150509250929050565b60ff81168114611f52575f80fd5b5f805f8060808587031215613d03575f80fd5b8435613d0e816139af565b93506020850135613d1e816139af565b92506040850135613d2e81613ce2565b91506060850135613d3e81613ce2565b939692955090935050565b6001600160e01b031991909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6114626020830184613d5e565b5f805f60608486031215613db0575f80fd5b8335613dbb816139af565b92506020840135613dcb816139af565b91506040840135613ddb816139de565b809150509250925092565b8015158114611f52575f80fd5b5f8060408385031215613e04575f80fd5b8235613e0f816139af565b91506020830135613cd781613de6565b5f8060408385031215613e30575f80fd5b8235613b6781613980565b5f60208284031215613e4b575f80fd5b813561146281613de6565b5f805f60608486031215613e68575f80fd5b8335613e73816139af565b92506020840135613e83816139af565b91506040840135613ddb81613ce2565b5f60208284031215613ea3575f80fd5b5051919050565b5f60208284031215613eba575f80fd5b8151611462816139de565b805164ffffffffff81168114613ed9575f80fd5b919050565b5f60208284031215613eee575f80fd5b61146282613ec5565b5f60208284031215613f07575f80fd5b815161146281613980565b5f60208284031215613f22575f80fd5b815161146281613de6565b634e487b7160e01b5f52603260045260245ffd5b5f8060408385031215613f52575f80fd5b8251613f5d81613de6565b6020840151909250613cd781613c27565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f8085851115613fa9575f80fd5b83861115613fb5575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015613ff3576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60208284031215614049575f80fd5b81516001600160401b0381111561405e575f80fd5b8201601f8101841361406e575f80fd5b805161407c613aa282613a5f565b818152856020838501011115614090575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b606081525f6140bf6060830185613d5e565b828103602084015260078152665365727669636560c81b6020820152604081019150508260408301529392505050565b606081525f6141016060830185613d5e565b8281036020840152600b81526a53657276696365526f6c6560a81b6020820152604081019150508260408301529392505050565b5f6001600160401b0382111561414d5761414d6139f3565b5060051b60200190565b5f60208284031215614167575f80fd5b81516001600160401b0381111561417c575f80fd5b8201601f8101841361418c575f80fd5b805161419a613aa282614135565b8082825260208201915060208360051b8501019250868311156141bb575f80fd5b6020840193505b828410156141e65783516141d581613ce2565b8252602093840193909101906141c2565b9695505050505050565b606081525f6142026060830185613d5e565b82810360208401526004815263526f6c6560e01b6020820152604081019150508260408301529392505050565b5f6020828403121561423f575f80fd5b81516001600160401b03811115614254575f80fd5b8201601f81018413614264575f80fd5b8051614272613aa282614135565b80828252602082019150602060608402850101925086831115614293575f80fd5b6020840193505b828410156141e657606084880312156142b1575f80fd5b6142b9613a07565b8451815260208501516142cb816139de565b60208201526142dc60408601613ec5565b604082015282526060939093019260209091019061429a565b5f82518060208501845e5f920191825250919050565b6001600160a01b03831681526040602082018190525f9061432e90830184613d5e565b949350505050565b6001600160a01b03841681526060602082018190525f9061435990830185613d5e565b905060018060a01b0383166040830152949350505050565b5f60208284031215614381575f80fd5b8151611462816139af565b6001600160401b0383168152604060208201525f61432e6040830184613d5e565b6001600160401b0384168152606060208201525f6143ce6060830185613d5e565b90506001600160401b0383166040830152949350505050565b6001600160401b03851681526144006020820185613ba0565b6001600160401b0383166040820152608060608201525f6141e66080830184613d5e565b6001600160a01b03841681526060602080830182905284519183018290525f91908501906080840190835b818110156144775783516001600160e01b03191683526020938401939092019160010161444f565b505080925050506001600160401b038316604083015294935050505056fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a2646970667358221220d43b5687161b0eea5537998ee66659f9499d560b7cde43108c84af19a8d07eaa64736f6c634300081a0033",
1260
+ "linkReferences": {
1261
+ "contracts/shared/ContractLib.sol": {
1262
+ "ContractLib": [
1263
+ {
1264
+ "length": 20,
1265
+ "start": 13514
1266
+ },
1267
+ {
1268
+ "length": 20,
1269
+ "start": 15192
1270
+ }
1271
+ ]
1272
+ },
1273
+ "contracts/type/ObjectType.sol": {
1274
+ "ObjectTypeLib": [
1275
+ {
1276
+ "length": 20,
1277
+ "start": 9648
1278
+ },
1279
+ {
1280
+ "length": 20,
1281
+ "start": 9868
1282
+ },
1283
+ {
1284
+ "length": 20,
1285
+ "start": 10164
1286
+ },
1287
+ {
1288
+ "length": 20,
1289
+ "start": 10689
1290
+ }
1291
+ ]
1292
+ },
1293
+ "contracts/type/RoleId.sol": {
1294
+ "RoleIdLib": [
1295
+ {
1296
+ "length": 20,
1297
+ "start": 682
1298
+ },
1299
+ {
1300
+ "length": 20,
1301
+ "start": 1210
1302
+ },
1303
+ {
1304
+ "length": 20,
1305
+ "start": 2547
1306
+ },
1307
+ {
1308
+ "length": 20,
1309
+ "start": 5726
1310
+ },
1311
+ {
1312
+ "length": 20,
1313
+ "start": 8680
1314
+ },
1315
+ {
1316
+ "length": 20,
1317
+ "start": 10037
1318
+ },
1319
+ {
1320
+ "length": 20,
1321
+ "start": 10537
1322
+ },
1323
+ {
1324
+ "length": 20,
1325
+ "start": 11327
1326
+ },
1327
+ {
1328
+ "length": 20,
1329
+ "start": 12038
1330
+ },
1331
+ {
1332
+ "length": 20,
1333
+ "start": 14279
1334
+ },
1335
+ {
1336
+ "length": 20,
1337
+ "start": 15514
1338
+ }
1339
+ ]
1340
+ },
1341
+ "contracts/type/Selector.sol": {
1342
+ "SelectorLib": [
1343
+ {
1344
+ "length": 20,
1345
+ "start": 5178
1346
+ },
1347
+ {
1348
+ "length": 20,
1349
+ "start": 5764
1350
+ },
1351
+ {
1352
+ "length": 20,
1353
+ "start": 7858
1354
+ },
1355
+ {
1356
+ "length": 20,
1357
+ "start": 17630
1358
+ }
1359
+ ],
1360
+ "SelectorSetLib": [
1361
+ {
1362
+ "length": 20,
1363
+ "start": 5512
1364
+ },
1365
+ {
1366
+ "length": 20,
1367
+ "start": 6241
1368
+ },
1369
+ {
1370
+ "length": 20,
1371
+ "start": 17291
1372
+ },
1373
+ {
1374
+ "length": 20,
1375
+ "start": 17432
1376
+ }
1377
+ ]
1378
+ },
1379
+ "contracts/type/String.sol": {
1380
+ "StrLib": [
1381
+ {
1382
+ "length": 20,
1383
+ "start": 1420
1384
+ },
1385
+ {
1386
+ "length": 20,
1387
+ "start": 2354
1388
+ },
1389
+ {
1390
+ "length": 20,
1391
+ "start": 5071
1392
+ },
1393
+ {
1394
+ "length": 20,
1395
+ "start": 6723
1396
+ },
1397
+ {
1398
+ "length": 20,
1399
+ "start": 12989
1400
+ },
1401
+ {
1402
+ "length": 20,
1403
+ "start": 13140
1404
+ },
1405
+ {
1406
+ "length": 20,
1407
+ "start": 13268
1408
+ },
1409
+ {
1410
+ "length": 20,
1411
+ "start": 14372
1412
+ },
1413
+ {
1414
+ "length": 20,
1415
+ "start": 14588
1416
+ },
1417
+ {
1418
+ "length": 20,
1419
+ "start": 14778
1420
+ },
1421
+ {
1422
+ "length": 20,
1423
+ "start": 16311
1424
+ }
1425
+ ]
1426
+ },
1427
+ "contracts/type/Timestamp.sol": {
1428
+ "TimestampLib": [
1429
+ {
1430
+ "length": 20,
1431
+ "start": 1543
1432
+ },
1433
+ {
1434
+ "length": 20,
1435
+ "start": 1662
1436
+ },
1437
+ {
1438
+ "length": 20,
1439
+ "start": 1787
1440
+ },
1441
+ {
1442
+ "length": 20,
1443
+ "start": 5311
1444
+ },
1445
+ {
1446
+ "length": 20,
1447
+ "start": 6846
1448
+ },
1449
+ {
1450
+ "length": 20,
1451
+ "start": 6965
1452
+ },
1453
+ {
1454
+ "length": 20,
1455
+ "start": 7148
1456
+ },
1457
+ {
1458
+ "length": 20,
1459
+ "start": 8440
1460
+ },
1461
+ {
1462
+ "length": 20,
1463
+ "start": 13865
1464
+ },
1465
+ {
1466
+ "length": 20,
1467
+ "start": 15746
1468
+ },
1469
+ {
1470
+ "length": 20,
1471
+ "start": 16898
1472
+ }
1473
+ ]
1474
+ },
1475
+ "contracts/type/Version.sol": {
1476
+ "VersionPartLib": [
1477
+ {
1478
+ "length": 20,
1479
+ "start": 8947
1480
+ },
1481
+ {
1482
+ "length": 20,
1483
+ "start": 9771
1484
+ },
1485
+ {
1486
+ "length": 20,
1487
+ "start": 10815
1488
+ },
1489
+ {
1490
+ "length": 20,
1491
+ "start": 23555
1492
+ }
1493
+ ]
1494
+ }
1495
+ },
1496
+ "deployedLinkReferences": {
1497
+ "contracts/shared/ContractLib.sol": {
1498
+ "ContractLib": [
1499
+ {
1500
+ "length": 20,
1501
+ "start": 10219
1502
+ },
1503
+ {
1504
+ "length": 20,
1505
+ "start": 11897
1506
+ }
1507
+ ]
1508
+ },
1509
+ "contracts/type/ObjectType.sol": {
1510
+ "ObjectTypeLib": [
1511
+ {
1512
+ "length": 20,
1513
+ "start": 6353
1514
+ },
1515
+ {
1516
+ "length": 20,
1517
+ "start": 6573
1518
+ },
1519
+ {
1520
+ "length": 20,
1521
+ "start": 6869
1522
+ },
1523
+ {
1524
+ "length": 20,
1525
+ "start": 7394
1526
+ }
1527
+ ]
1528
+ },
1529
+ "contracts/type/RoleId.sol": {
1530
+ "RoleIdLib": [
1531
+ {
1532
+ "length": 20,
1533
+ "start": 2431
1534
+ },
1535
+ {
1536
+ "length": 20,
1537
+ "start": 5385
1538
+ },
1539
+ {
1540
+ "length": 20,
1541
+ "start": 6742
1542
+ },
1543
+ {
1544
+ "length": 20,
1545
+ "start": 7242
1546
+ },
1547
+ {
1548
+ "length": 20,
1549
+ "start": 8032
1550
+ },
1551
+ {
1552
+ "length": 20,
1553
+ "start": 8743
1554
+ },
1555
+ {
1556
+ "length": 20,
1557
+ "start": 10984
1558
+ },
1559
+ {
1560
+ "length": 20,
1561
+ "start": 12219
1562
+ }
1563
+ ]
1564
+ },
1565
+ "contracts/type/Selector.sol": {
1566
+ "SelectorLib": [
1567
+ {
1568
+ "length": 20,
1569
+ "start": 1883
1570
+ },
1571
+ {
1572
+ "length": 20,
1573
+ "start": 2469
1574
+ },
1575
+ {
1576
+ "length": 20,
1577
+ "start": 4563
1578
+ },
1579
+ {
1580
+ "length": 20,
1581
+ "start": 14335
1582
+ }
1583
+ ],
1584
+ "SelectorSetLib": [
1585
+ {
1586
+ "length": 20,
1587
+ "start": 2217
1588
+ },
1589
+ {
1590
+ "length": 20,
1591
+ "start": 2946
1592
+ },
1593
+ {
1594
+ "length": 20,
1595
+ "start": 13996
1596
+ },
1597
+ {
1598
+ "length": 20,
1599
+ "start": 14137
1600
+ }
1601
+ ]
1602
+ },
1603
+ "contracts/type/String.sol": {
1604
+ "StrLib": [
1605
+ {
1606
+ "length": 20,
1607
+ "start": 1776
1608
+ },
1609
+ {
1610
+ "length": 20,
1611
+ "start": 3428
1612
+ },
1613
+ {
1614
+ "length": 20,
1615
+ "start": 9694
1616
+ },
1617
+ {
1618
+ "length": 20,
1619
+ "start": 9845
1620
+ },
1621
+ {
1622
+ "length": 20,
1623
+ "start": 9973
1624
+ },
1625
+ {
1626
+ "length": 20,
1627
+ "start": 11077
1628
+ },
1629
+ {
1630
+ "length": 20,
1631
+ "start": 11293
1632
+ },
1633
+ {
1634
+ "length": 20,
1635
+ "start": 11483
1636
+ },
1637
+ {
1638
+ "length": 20,
1639
+ "start": 13016
1640
+ }
1641
+ ]
1642
+ },
1643
+ "contracts/type/Timestamp.sol": {
1644
+ "TimestampLib": [
1645
+ {
1646
+ "length": 20,
1647
+ "start": 2016
1648
+ },
1649
+ {
1650
+ "length": 20,
1651
+ "start": 3551
1652
+ },
1653
+ {
1654
+ "length": 20,
1655
+ "start": 3670
1656
+ },
1657
+ {
1658
+ "length": 20,
1659
+ "start": 3853
1660
+ },
1661
+ {
1662
+ "length": 20,
1663
+ "start": 5145
1664
+ },
1665
+ {
1666
+ "length": 20,
1667
+ "start": 10570
1668
+ },
1669
+ {
1670
+ "length": 20,
1671
+ "start": 12451
1672
+ },
1673
+ {
1674
+ "length": 20,
1675
+ "start": 13603
1676
+ }
1677
+ ]
1678
+ },
1679
+ "contracts/type/Version.sol": {
1680
+ "VersionPartLib": [
1681
+ {
1682
+ "length": 20,
1683
+ "start": 5652
1684
+ },
1685
+ {
1686
+ "length": 20,
1687
+ "start": 6476
1688
+ },
1689
+ {
1690
+ "length": 20,
1691
+ "start": 7520
1692
+ }
1693
+ ]
1694
+ }
1695
+ }
1696
+ }