@decaf-ts/integrations 0.4.0 → 0.4.1-0

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 (1068) hide show
  1. package/README.md +11 -3
  2. package/dist/integrations.cjs +2087 -2
  3. package/dist/integrations.js +2356 -2
  4. package/jest.config.cjs +1 -1
  5. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
  6. package/lib/cjs/blob/azure/index.cjs +2 -2
  7. package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
  8. package/lib/cjs/blob/core/BlobKey.cjs +2 -2
  9. package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
  10. package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
  11. package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
  12. package/lib/cjs/blob/core/BlobValue.cjs +2 -2
  13. package/lib/cjs/blob/core/index.cjs +2 -2
  14. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
  15. package/lib/cjs/blob/gcp/index.cjs +2 -2
  16. package/lib/cjs/blob/index.cjs +2 -2
  17. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
  18. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
  19. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
  20. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
  21. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
  22. package/lib/cjs/blob/ipfs/index.cjs +2 -2
  23. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
  24. package/lib/cjs/blob/local/index.cjs +2 -2
  25. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
  26. package/lib/cjs/blob/memory/index.cjs +2 -2
  27. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
  28. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
  29. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
  30. package/lib/cjs/blob/s3/index.cjs +2 -2
  31. package/lib/cjs/docker/DockerComposeService.cjs +2 -2
  32. package/lib/cjs/docker/index.cjs +2 -2
  33. package/lib/cjs/feature-flags/constants.cjs +16 -0
  34. package/lib/cjs/feature-flags/decorators.cjs +65 -0
  35. package/lib/cjs/feature-flags/environment.cjs +26 -0
  36. package/lib/cjs/feature-flags/index.cjs +31 -0
  37. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +81 -0
  38. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +78 -0
  39. package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +25 -0
  40. package/lib/cjs/feature-flags/readers/index.cjs +19 -0
  41. package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +259 -0
  42. package/lib/cjs/feature-flags/types.cjs +4 -0
  43. package/lib/cjs/feature-flags/utils.cjs +141 -0
  44. package/lib/cjs/graph/engine/constants.cjs +2 -2
  45. package/lib/cjs/graph/engine/decorators.cjs +2 -2
  46. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +2 -2
  47. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +2 -2
  48. package/lib/cjs/graph/engine/errors/GraphInputError.cjs +2 -2
  49. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +2 -2
  50. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +2 -2
  51. package/lib/cjs/graph/engine/errors/GraphPortError.cjs +2 -2
  52. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +2 -2
  53. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +2 -2
  54. package/lib/cjs/graph/engine/errors/index.cjs +2 -2
  55. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +2 -2
  56. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +2 -2
  57. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +2 -2
  58. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +2 -2
  59. package/lib/cjs/graph/engine/events/index.cjs +2 -2
  60. package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +2 -2
  61. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +2 -2
  62. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +2 -2
  63. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +2 -2
  64. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +2 -2
  65. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +2 -2
  66. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +2 -2
  67. package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs +2 -2
  68. package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +2 -2
  69. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +2 -2
  70. package/lib/cjs/graph/engine/execution/index.cjs +2 -2
  71. package/lib/cjs/graph/engine/index.cjs +2 -2
  72. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +2 -2
  73. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +2 -2
  74. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +2 -2
  75. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +2 -2
  76. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +2 -2
  77. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +2 -2
  78. package/lib/cjs/graph/engine/loops/index.cjs +2 -2
  79. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +2 -2
  80. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +2 -2
  81. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +2 -2
  82. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +2 -2
  83. package/lib/cjs/graph/engine/pinning/index.cjs +2 -2
  84. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +2 -2
  85. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +2 -2
  86. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +2 -2
  87. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +2 -2
  88. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +2 -2
  89. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +2 -2
  90. package/lib/cjs/graph/engine/planning/GraphTopology.cjs +2 -2
  91. package/lib/cjs/graph/engine/planning/index.cjs +2 -2
  92. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +2 -2
  93. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +2 -2
  94. package/lib/cjs/graph/engine/registry/index.cjs +2 -2
  95. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
  96. package/lib/cjs/graph/engine/snapshots/index.cjs +2 -2
  97. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +2 -2
  98. package/lib/cjs/graph/engine/store/GraphValueKey.cjs +2 -2
  99. package/lib/cjs/graph/engine/store/GraphValueStore.cjs +2 -2
  100. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +2 -2
  101. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
  102. package/lib/cjs/graph/engine/store/index.cjs +2 -2
  103. package/lib/cjs/graph/engine/types.cjs +2 -2
  104. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +2 -2
  105. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +2 -2
  106. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +2 -2
  107. package/lib/cjs/graph/engine/validation/index.cjs +2 -2
  108. package/lib/cjs/graph/index.cjs +2 -2
  109. package/lib/cjs/graph/shared/constants.cjs +2 -2
  110. package/lib/cjs/graph/shared/index.cjs +2 -2
  111. package/lib/cjs/graph/shared/nodes/agent.cjs +2 -2
  112. package/lib/cjs/graph/shared/nodes/base.cjs +2 -2
  113. package/lib/cjs/graph/shared/nodes/category-styles.cjs +2 -2
  114. package/lib/cjs/graph/shared/nodes/flow-control.cjs +2 -2
  115. package/lib/cjs/graph/shared/nodes/index.cjs +2 -2
  116. package/lib/cjs/graph/shared/nodes/triggers.cjs +2 -2
  117. package/lib/cjs/graph/shared/types.cjs +2 -2
  118. package/lib/cjs/index.cjs +6 -5
  119. package/lib/cjs/keycloak/index.cjs +2 -2
  120. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
  121. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
  122. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
  123. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
  124. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
  125. package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
  126. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
  127. package/lib/cjs/keycloak/services/index.cjs +2 -2
  128. package/lib/cjs/keycloak/services/runtime.cjs +2 -2
  129. package/lib/cjs/keycloak/types.cjs +2 -2
  130. package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +329 -0
  131. package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +37 -0
  132. package/lib/cjs/kibana/builders/index.cjs +20 -0
  133. package/lib/cjs/kibana/helpers.cjs +20 -16
  134. package/lib/cjs/kibana/index.cjs +3 -2
  135. package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
  136. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
  137. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
  138. package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
  139. package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
  140. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
  141. package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
  142. package/lib/cjs/kibana/services/index.cjs +2 -2
  143. package/lib/cjs/kibana/services/runtime.cjs +2 -2
  144. package/lib/cjs/kibana/types.cjs +11 -2
  145. package/lib/cjs/loader/ObjectLoader.cjs +154 -0
  146. package/lib/cjs/loader/families.cjs +78 -0
  147. package/lib/cjs/loader/index.cjs +28 -0
  148. package/lib/cjs/loader/types.cjs +4 -0
  149. package/lib/cjs/namespaces/index.cjs +2 -2
  150. package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
  151. package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
  152. package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
  153. package/lib/cjs/namespaces/models/group.model.cjs +2 -2
  154. package/lib/cjs/namespaces/models/index.cjs +2 -2
  155. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
  156. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
  157. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
  158. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
  159. package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
  160. package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
  161. package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
  162. package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
  163. package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
  164. package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
  165. package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
  166. package/lib/cjs/namespaces/models/role.model.cjs +2 -2
  167. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
  168. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
  169. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
  170. package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
  171. package/lib/cjs/namespaces/models/user.model.cjs +2 -2
  172. package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
  173. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
  174. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
  175. package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
  176. package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
  177. package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
  178. package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
  179. package/lib/cjs/namespaces/services/group.service.cjs +2 -2
  180. package/lib/cjs/namespaces/services/index.cjs +2 -2
  181. package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
  182. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
  183. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
  184. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
  185. package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
  186. package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
  187. package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
  188. package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
  189. package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
  190. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
  191. package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
  192. package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
  193. package/lib/cjs/namespaces/services/role.service.cjs +2 -2
  194. package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
  195. package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
  196. package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
  197. package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
  198. package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
  199. package/lib/cjs/namespaces/services/user.service.cjs +2 -2
  200. package/lib/cjs/namespaces/types.cjs +2 -2
  201. package/lib/cjs/namespaces/utils.cjs +2 -2
  202. package/lib/cjs/nest/decorators.cjs +17 -0
  203. package/lib/cjs/nest/graph/GraphExecutionController.cjs +2 -2
  204. package/lib/cjs/nest/graph/GraphExecutionModule.cjs +2 -2
  205. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -2
  206. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +2 -2
  207. package/lib/cjs/nest/graph/GraphResultService.cjs +2 -2
  208. package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +2 -2
  209. package/lib/cjs/nest/graph/GraphWorkflowService.cjs +2 -2
  210. package/lib/cjs/nest/graph/index.cjs +2 -2
  211. package/lib/cjs/nest/graph/main.cjs +2 -2
  212. package/lib/cjs/nest/index.cjs +3 -3
  213. package/lib/cjs/nest/keycloakAuthHandler.cjs +74 -35
  214. package/lib/cjs/nest/keycloakModule.cjs +7 -10
  215. package/lib/cjs/nest/logging.cjs +2 -2
  216. package/lib/cjs/nest/types.cjs +2 -2
  217. package/lib/cjs/nest/utils.cjs +58 -50
  218. package/lib/cjs/plugins/contract.cjs +76 -0
  219. package/lib/cjs/plugins/index.cjs +35 -0
  220. package/lib/cjs/plugins/kibana/host.cjs +24 -0
  221. package/lib/cjs/plugins/kibana/index.cjs +38 -0
  222. package/lib/cjs/plugins/kibana/installer.cjs +180 -0
  223. package/lib/cjs/plugins/kibana/manifest.cjs +33 -0
  224. package/lib/cjs/plugins/kibana/templates.cjs +503 -0
  225. package/lib/cjs/plugins/kibana/types.cjs +33 -0
  226. package/lib/cjs/plugins/superset/host.cjs +26 -0
  227. package/lib/cjs/plugins/superset/index.cjs +40 -0
  228. package/lib/cjs/plugins/superset/installer.cjs +232 -0
  229. package/lib/cjs/plugins/superset/manifest.cjs +35 -0
  230. package/lib/cjs/plugins/superset/templates.cjs +844 -0
  231. package/lib/cjs/plugins/superset/types.cjs +39 -0
  232. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
  233. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
  234. package/lib/cjs/secrets/aws/index.cjs +2 -2
  235. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
  236. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
  237. package/lib/cjs/secrets/azure/index.cjs +2 -2
  238. package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
  239. package/lib/cjs/secrets/core/SecretName.cjs +2 -2
  240. package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
  241. package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
  242. package/lib/cjs/secrets/core/SecretService.cjs +2 -2
  243. package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
  244. package/lib/cjs/secrets/core/index.cjs +2 -2
  245. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
  246. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
  247. package/lib/cjs/secrets/gcp/index.cjs +2 -2
  248. package/lib/cjs/secrets/index.cjs +2 -2
  249. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
  250. package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
  251. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
  252. package/lib/cjs/secrets/model/Secret.cjs +2 -2
  253. package/lib/cjs/secrets/model/index.cjs +2 -2
  254. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
  255. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
  256. package/lib/cjs/secrets/onepassword/index.cjs +2 -2
  257. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
  258. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
  259. package/lib/cjs/secrets/vault/index.cjs +2 -2
  260. package/lib/cjs/shared/runtime.cjs +2 -2
  261. package/lib/cjs/utils.cjs +2 -2
  262. package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
  263. package/lib/esm/blob/azure/index.js +1 -1
  264. package/lib/esm/blob/core/BlobErrors.js +1 -1
  265. package/lib/esm/blob/core/BlobKey.js +1 -1
  266. package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
  267. package/lib/esm/blob/core/BlobStoreService.js +1 -1
  268. package/lib/esm/blob/core/BlobTypes.js +1 -1
  269. package/lib/esm/blob/core/BlobValue.js +1 -1
  270. package/lib/esm/blob/core/index.js +1 -1
  271. package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
  272. package/lib/esm/blob/gcp/index.js +1 -1
  273. package/lib/esm/blob/index.js +1 -1
  274. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
  275. package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
  276. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
  277. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
  278. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
  279. package/lib/esm/blob/ipfs/index.js +1 -1
  280. package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
  281. package/lib/esm/blob/local/index.js +1 -1
  282. package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
  283. package/lib/esm/blob/memory/index.js +1 -1
  284. package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
  285. package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
  286. package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
  287. package/lib/esm/blob/s3/index.js +1 -1
  288. package/lib/esm/docker/DockerComposeService.js +1 -1
  289. package/lib/esm/docker/index.js +1 -1
  290. package/lib/esm/feature-flags/constants.js +12 -0
  291. package/lib/esm/feature-flags/decorators.js +49 -0
  292. package/lib/esm/feature-flags/environment.js +18 -0
  293. package/lib/esm/feature-flags/index.js +14 -0
  294. package/lib/esm/feature-flags/models/FeatureFlag.model.js +72 -0
  295. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +69 -0
  296. package/lib/esm/feature-flags/readers/FeatureFlagReader.js +19 -0
  297. package/lib/esm/feature-flags/readers/index.js +2 -0
  298. package/lib/esm/feature-flags/services/FeatureFlag.service.js +250 -0
  299. package/lib/esm/feature-flags/types.js +2 -0
  300. package/lib/esm/feature-flags/utils.js +126 -0
  301. package/lib/esm/graph/engine/constants.js +1 -1
  302. package/lib/esm/graph/engine/decorators.js +1 -1
  303. package/lib/esm/graph/engine/errors/GraphCycleError.js +1 -1
  304. package/lib/esm/graph/engine/errors/GraphExecutionError.js +1 -1
  305. package/lib/esm/graph/engine/errors/GraphInputError.js +1 -1
  306. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +1 -1
  307. package/lib/esm/graph/engine/errors/GraphPinningError.js +1 -1
  308. package/lib/esm/graph/engine/errors/GraphPortError.js +1 -1
  309. package/lib/esm/graph/engine/errors/GraphStoreError.js +1 -1
  310. package/lib/esm/graph/engine/errors/GraphTopologyError.js +1 -1
  311. package/lib/esm/graph/engine/errors/index.js +1 -1
  312. package/lib/esm/graph/engine/events/GraphExecutionEvent.js +1 -1
  313. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +1 -1
  314. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +1 -1
  315. package/lib/esm/graph/engine/events/GraphExecutionObserver.js +1 -1
  316. package/lib/esm/graph/engine/events/index.js +1 -1
  317. package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +1 -1
  318. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +1 -1
  319. package/lib/esm/graph/engine/execution/GraphExecutionContext.js +1 -1
  320. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +1 -1
  321. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +1 -1
  322. package/lib/esm/graph/engine/execution/GraphExecutionResult.js +1 -1
  323. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +1 -1
  324. package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js +1 -1
  325. package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +1 -1
  326. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +1 -1
  327. package/lib/esm/graph/engine/execution/index.js +1 -1
  328. package/lib/esm/graph/engine/index.js +1 -1
  329. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +1 -1
  330. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +1 -1
  331. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +1 -1
  332. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +1 -1
  333. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +1 -1
  334. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +1 -1
  335. package/lib/esm/graph/engine/loops/index.js +1 -1
  336. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +1 -1
  337. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +1 -1
  338. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +1 -1
  339. package/lib/esm/graph/engine/pinning/GraphPinningService.js +1 -1
  340. package/lib/esm/graph/engine/pinning/index.js +1 -1
  341. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +1 -1
  342. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +1 -1
  343. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +1 -1
  344. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +1 -1
  345. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +1 -1
  346. package/lib/esm/graph/engine/planning/GraphRelationResolver.js +1 -1
  347. package/lib/esm/graph/engine/planning/GraphTopology.js +1 -1
  348. package/lib/esm/graph/engine/planning/index.js +1 -1
  349. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +1 -1
  350. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +1 -1
  351. package/lib/esm/graph/engine/registry/index.js +1 -1
  352. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +1 -1
  353. package/lib/esm/graph/engine/snapshots/index.js +1 -1
  354. package/lib/esm/graph/engine/store/GraphCachedValue.js +1 -1
  355. package/lib/esm/graph/engine/store/GraphValueKey.js +1 -1
  356. package/lib/esm/graph/engine/store/GraphValueStore.js +1 -1
  357. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +1 -1
  358. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +1 -1
  359. package/lib/esm/graph/engine/store/index.js +1 -1
  360. package/lib/esm/graph/engine/types.js +1 -1
  361. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +1 -1
  362. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +1 -1
  363. package/lib/esm/graph/engine/validation/GraphValueValidator.js +1 -1
  364. package/lib/esm/graph/engine/validation/index.js +1 -1
  365. package/lib/esm/graph/index.js +1 -1
  366. package/lib/esm/graph/shared/constants.js +1 -1
  367. package/lib/esm/graph/shared/index.js +1 -1
  368. package/lib/esm/graph/shared/nodes/agent.js +1 -1
  369. package/lib/esm/graph/shared/nodes/base.js +1 -1
  370. package/lib/esm/graph/shared/nodes/category-styles.js +1 -1
  371. package/lib/esm/graph/shared/nodes/flow-control.js +1 -1
  372. package/lib/esm/graph/shared/nodes/index.js +1 -1
  373. package/lib/esm/graph/shared/nodes/triggers.js +1 -1
  374. package/lib/esm/graph/shared/types.js +1 -1
  375. package/lib/esm/index.js +5 -4
  376. package/lib/esm/keycloak/index.js +1 -1
  377. package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
  378. package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
  379. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
  380. package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
  381. package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
  382. package/lib/esm/keycloak/services/KeycloakService.js +1 -1
  383. package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
  384. package/lib/esm/keycloak/services/index.js +1 -1
  385. package/lib/esm/keycloak/services/runtime.js +1 -1
  386. package/lib/esm/keycloak/types.js +1 -1
  387. package/lib/esm/kibana/builders/KibanaIndexBuilder.js +319 -0
  388. package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +32 -0
  389. package/lib/esm/kibana/builders/index.js +3 -0
  390. package/lib/esm/kibana/helpers.js +19 -15
  391. package/lib/esm/kibana/index.js +2 -1
  392. package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
  393. package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
  394. package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
  395. package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
  396. package/lib/esm/kibana/services/KibanaService.js +1 -1
  397. package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
  398. package/lib/esm/kibana/services/KibanaUserService.js +1 -1
  399. package/lib/esm/kibana/services/index.js +1 -1
  400. package/lib/esm/kibana/services/runtime.js +1 -1
  401. package/lib/esm/kibana/types.js +13 -2
  402. package/lib/esm/loader/ObjectLoader.js +115 -0
  403. package/lib/esm/loader/families.js +66 -0
  404. package/lib/esm/loader/index.js +11 -0
  405. package/lib/esm/loader/types.js +2 -0
  406. package/lib/esm/namespaces/index.js +1 -1
  407. package/lib/esm/namespaces/models/authorization-model.js +1 -1
  408. package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
  409. package/lib/esm/namespaces/models/group-membership.model.js +1 -1
  410. package/lib/esm/namespaces/models/group.model.js +1 -1
  411. package/lib/esm/namespaces/models/index.js +1 -1
  412. package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
  413. package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
  414. package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
  415. package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
  416. package/lib/esm/namespaces/models/org-unit.model.js +1 -1
  417. package/lib/esm/namespaces/models/permission.model.js +1 -1
  418. package/lib/esm/namespaces/models/principal.model.js +1 -1
  419. package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
  420. package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
  421. package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
  422. package/lib/esm/namespaces/models/role-permission.model.js +1 -1
  423. package/lib/esm/namespaces/models/role.model.js +1 -1
  424. package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
  425. package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
  426. package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
  427. package/lib/esm/namespaces/models/tenant.model.js +1 -1
  428. package/lib/esm/namespaces/models/user.model.js +1 -1
  429. package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
  430. package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
  431. package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
  432. package/lib/esm/namespaces/services/authz.service.js +1 -1
  433. package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
  434. package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
  435. package/lib/esm/namespaces/services/group-membership.service.js +1 -1
  436. package/lib/esm/namespaces/services/group.service.js +1 -1
  437. package/lib/esm/namespaces/services/index.js +1 -1
  438. package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
  439. package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
  440. package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
  441. package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
  442. package/lib/esm/namespaces/services/org-unit.service.js +1 -1
  443. package/lib/esm/namespaces/services/permission.service.js +1 -1
  444. package/lib/esm/namespaces/services/principal.service.js +1 -1
  445. package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
  446. package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
  447. package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
  448. package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
  449. package/lib/esm/namespaces/services/role-permission.service.js +1 -1
  450. package/lib/esm/namespaces/services/role.service.js +1 -1
  451. package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
  452. package/lib/esm/namespaces/services/system-management.service.js +1 -1
  453. package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
  454. package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
  455. package/lib/esm/namespaces/services/tenant.service.js +1 -1
  456. package/lib/esm/namespaces/services/user.service.js +1 -1
  457. package/lib/esm/namespaces/types.js +1 -1
  458. package/lib/esm/namespaces/utils.js +1 -1
  459. package/lib/esm/nest/decorators.js +12 -0
  460. package/lib/esm/nest/graph/GraphExecutionController.js +1 -1
  461. package/lib/esm/nest/graph/GraphExecutionModule.js +1 -1
  462. package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -1
  463. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +1 -1
  464. package/lib/esm/nest/graph/GraphResultService.js +1 -1
  465. package/lib/esm/nest/graph/GraphWorkflowModel.js +1 -1
  466. package/lib/esm/nest/graph/GraphWorkflowService.js +1 -1
  467. package/lib/esm/nest/graph/index.js +1 -1
  468. package/lib/esm/nest/graph/main.js +1 -1
  469. package/lib/esm/nest/index.js +2 -2
  470. package/lib/esm/nest/keycloakAuthHandler.js +67 -35
  471. package/lib/esm/nest/keycloakModule.js +7 -10
  472. package/lib/esm/nest/logging.js +1 -1
  473. package/lib/esm/nest/types.js +1 -1
  474. package/lib/esm/nest/utils.js +55 -46
  475. package/lib/esm/plugins/contract.js +68 -0
  476. package/lib/esm/plugins/index.js +18 -0
  477. package/lib/esm/plugins/kibana/host.js +19 -0
  478. package/lib/esm/plugins/kibana/index.js +14 -0
  479. package/lib/esm/plugins/kibana/installer.js +140 -0
  480. package/lib/esm/plugins/kibana/manifest.js +32 -0
  481. package/lib/esm/plugins/kibana/templates.js +499 -0
  482. package/lib/esm/plugins/kibana/types.js +10 -0
  483. package/lib/esm/plugins/superset/host.js +21 -0
  484. package/lib/esm/plugins/superset/index.js +16 -0
  485. package/lib/esm/plugins/superset/installer.js +192 -0
  486. package/lib/esm/plugins/superset/manifest.js +30 -0
  487. package/lib/esm/plugins/superset/templates.js +840 -0
  488. package/lib/esm/plugins/superset/types.js +11 -0
  489. package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
  490. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
  491. package/lib/esm/secrets/aws/index.js +1 -1
  492. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
  493. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
  494. package/lib/esm/secrets/azure/index.js +1 -1
  495. package/lib/esm/secrets/core/SecretErrors.js +1 -1
  496. package/lib/esm/secrets/core/SecretName.js +1 -1
  497. package/lib/esm/secrets/core/SecretReference.js +1 -1
  498. package/lib/esm/secrets/core/SecretSerialization.js +1 -1
  499. package/lib/esm/secrets/core/SecretService.js +1 -1
  500. package/lib/esm/secrets/core/SecretTypes.js +1 -1
  501. package/lib/esm/secrets/core/index.js +1 -1
  502. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
  503. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
  504. package/lib/esm/secrets/gcp/index.js +1 -1
  505. package/lib/esm/secrets/index.js +1 -1
  506. package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
  507. package/lib/esm/secrets/model/ModelSecretService.js +1 -1
  508. package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
  509. package/lib/esm/secrets/model/Secret.js +1 -1
  510. package/lib/esm/secrets/model/index.js +1 -1
  511. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
  512. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
  513. package/lib/esm/secrets/onepassword/index.js +1 -1
  514. package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
  515. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
  516. package/lib/esm/secrets/vault/index.js +1 -1
  517. package/lib/esm/shared/runtime.js +1 -1
  518. package/lib/esm/utils.js +1 -1
  519. package/lib/types/feature-flags/constants.d.cts +11 -0
  520. package/lib/types/feature-flags/constants.d.mts +11 -0
  521. package/lib/types/feature-flags/decorators.d.cts +11 -0
  522. package/lib/types/feature-flags/decorators.d.mts +11 -0
  523. package/lib/types/feature-flags/environment.d.cts +11 -0
  524. package/lib/types/feature-flags/environment.d.mts +11 -0
  525. package/lib/types/feature-flags/index.d.cts +13 -0
  526. package/lib/types/feature-flags/index.d.mts +13 -0
  527. package/lib/types/feature-flags/models/FeatureFlag.model.d.cts +16 -0
  528. package/lib/types/feature-flags/models/FeatureFlag.model.d.mts +16 -0
  529. package/lib/types/feature-flags/models/FeatureFlagAccess.model.d.cts +15 -0
  530. package/lib/types/feature-flags/models/FeatureFlagAccess.model.d.mts +15 -0
  531. package/lib/types/feature-flags/readers/FeatureFlagReader.d.cts +10 -0
  532. package/lib/types/feature-flags/readers/FeatureFlagReader.d.mts +10 -0
  533. package/lib/types/feature-flags/readers/index.d.cts +1 -0
  534. package/lib/types/feature-flags/readers/index.d.mts +1 -0
  535. package/lib/types/feature-flags/services/FeatureFlag.service.d.cts +43 -0
  536. package/lib/types/feature-flags/services/FeatureFlag.service.d.mts +43 -0
  537. package/lib/types/feature-flags/types.d.cts +39 -0
  538. package/lib/types/feature-flags/types.d.mts +39 -0
  539. package/lib/types/feature-flags/utils.d.cts +13 -0
  540. package/lib/types/feature-flags/utils.d.mts +13 -0
  541. package/lib/types/index.d.cts +3 -2
  542. package/lib/types/index.d.mts +3 -2
  543. package/lib/types/kibana/builders/KibanaIndexBuilder.d.cts +67 -0
  544. package/lib/types/kibana/builders/KibanaIndexBuilder.d.mts +67 -0
  545. package/lib/types/kibana/builders/KibanaIndexBuilderCollection.d.cts +17 -0
  546. package/lib/types/kibana/builders/KibanaIndexBuilderCollection.d.mts +17 -0
  547. package/lib/types/kibana/builders/index.d.cts +2 -0
  548. package/lib/types/kibana/builders/index.d.mts +2 -0
  549. package/lib/types/kibana/index.d.cts +1 -0
  550. package/lib/types/kibana/index.d.mts +1 -0
  551. package/lib/types/kibana/types.d.cts +11 -0
  552. package/lib/types/kibana/types.d.mts +11 -0
  553. package/lib/types/loader/ObjectLoader.d.cts +27 -0
  554. package/lib/types/loader/ObjectLoader.d.mts +27 -0
  555. package/lib/types/loader/families.d.cts +34 -0
  556. package/lib/types/loader/families.d.mts +34 -0
  557. package/lib/types/loader/index.d.cts +10 -0
  558. package/lib/types/loader/index.d.mts +10 -0
  559. package/lib/types/loader/types.d.cts +24 -0
  560. package/lib/types/loader/types.d.mts +24 -0
  561. package/lib/types/nest/decorators.d.cts +8 -0
  562. package/lib/types/nest/decorators.d.mts +8 -0
  563. package/lib/types/nest/index.d.cts +1 -1
  564. package/lib/types/nest/index.d.mts +1 -1
  565. package/lib/types/nest/keycloakAuthHandler.d.cts +19 -42
  566. package/lib/types/nest/keycloakAuthHandler.d.mts +19 -42
  567. package/lib/types/nest/keycloakModule.d.cts +3 -5
  568. package/lib/types/nest/keycloakModule.d.mts +3 -5
  569. package/lib/types/nest/types.d.cts +2 -0
  570. package/lib/types/nest/types.d.mts +2 -0
  571. package/lib/types/nest/utils.d.cts +3 -4
  572. package/lib/types/nest/utils.d.mts +3 -4
  573. package/lib/types/plugins/contract.d.cts +180 -0
  574. package/lib/types/plugins/contract.d.mts +180 -0
  575. package/lib/types/plugins/index.d.cts +17 -0
  576. package/lib/types/plugins/index.d.mts +17 -0
  577. package/lib/types/plugins/kibana/host.d.cts +18 -0
  578. package/lib/types/plugins/kibana/host.d.mts +18 -0
  579. package/lib/types/plugins/kibana/index.d.cts +13 -0
  580. package/lib/types/plugins/kibana/index.d.mts +13 -0
  581. package/lib/types/plugins/kibana/installer.d.cts +45 -0
  582. package/lib/types/plugins/kibana/installer.d.mts +45 -0
  583. package/lib/types/plugins/kibana/manifest.d.cts +31 -0
  584. package/lib/types/plugins/kibana/manifest.d.mts +31 -0
  585. package/lib/types/plugins/kibana/templates.d.cts +12 -0
  586. package/lib/types/plugins/kibana/templates.d.mts +12 -0
  587. package/lib/types/plugins/kibana/types.d.cts +9 -0
  588. package/lib/types/plugins/kibana/types.d.mts +9 -0
  589. package/lib/types/plugins/superset/host.d.cts +20 -0
  590. package/lib/types/plugins/superset/host.d.mts +20 -0
  591. package/lib/types/plugins/superset/index.d.cts +15 -0
  592. package/lib/types/plugins/superset/index.d.mts +15 -0
  593. package/lib/types/plugins/superset/installer.d.cts +70 -0
  594. package/lib/types/plugins/superset/installer.d.mts +70 -0
  595. package/lib/types/plugins/superset/manifest.d.cts +28 -0
  596. package/lib/types/plugins/superset/manifest.d.mts +28 -0
  597. package/lib/types/plugins/superset/templates.d.cts +12 -0
  598. package/lib/types/plugins/superset/templates.d.mts +12 -0
  599. package/lib/types/plugins/superset/types.d.cts +10 -0
  600. package/lib/types/plugins/superset/types.d.mts +10 -0
  601. package/package.json +62 -3
  602. package/plugins/kibana/.gitignore +16 -0
  603. package/plugins/kibana/Dockerfile +19 -0
  604. package/plugins/kibana/docker-compose.yml +50 -0
  605. package/plugins/kibana/host/index.html +101 -0
  606. package/plugins/kibana/setup-dashboards.sh +84 -0
  607. package/plugins/superset/.gitignore +17 -0
  608. package/plugins/superset/Dockerfile +79 -0
  609. package/plugins/superset/docker-compose.yml +62 -0
  610. package/plugins/superset/host/index.html +168 -0
  611. package/plugins/superset/setup-dashboards.sh +106 -0
  612. package/plugins/superset/superset_config.py +49 -0
  613. package/dist/integrations.cjs.map +0 -1
  614. package/dist/integrations.js.map +0 -1
  615. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
  616. package/lib/cjs/blob/azure/index.cjs.map +0 -1
  617. package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
  618. package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
  619. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
  620. package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
  621. package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
  622. package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
  623. package/lib/cjs/blob/core/index.cjs.map +0 -1
  624. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
  625. package/lib/cjs/blob/gcp/index.cjs.map +0 -1
  626. package/lib/cjs/blob/index.cjs.map +0 -1
  627. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +0 -1
  628. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +0 -1
  629. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +0 -1
  630. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +0 -1
  631. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +0 -1
  632. package/lib/cjs/blob/ipfs/index.cjs.map +0 -1
  633. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
  634. package/lib/cjs/blob/local/index.cjs.map +0 -1
  635. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
  636. package/lib/cjs/blob/memory/index.cjs.map +0 -1
  637. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
  638. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
  639. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
  640. package/lib/cjs/blob/s3/index.cjs.map +0 -1
  641. package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
  642. package/lib/cjs/docker/index.cjs.map +0 -1
  643. package/lib/cjs/graph/engine/constants.cjs.map +0 -1
  644. package/lib/cjs/graph/engine/decorators.cjs.map +0 -1
  645. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +0 -1
  646. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +0 -1
  647. package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +0 -1
  648. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +0 -1
  649. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +0 -1
  650. package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +0 -1
  651. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +0 -1
  652. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +0 -1
  653. package/lib/cjs/graph/engine/errors/index.cjs.map +0 -1
  654. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +0 -1
  655. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +0 -1
  656. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +0 -1
  657. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +0 -1
  658. package/lib/cjs/graph/engine/events/index.cjs.map +0 -1
  659. package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs.map +0 -1
  660. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +0 -1
  661. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +0 -1
  662. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +0 -1
  663. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +0 -1
  664. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +0 -1
  665. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +0 -1
  666. package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs.map +0 -1
  667. package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs.map +0 -1
  668. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +0 -1
  669. package/lib/cjs/graph/engine/execution/index.cjs.map +0 -1
  670. package/lib/cjs/graph/engine/index.cjs.map +0 -1
  671. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +0 -1
  672. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +0 -1
  673. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +0 -1
  674. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +0 -1
  675. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +0 -1
  676. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +0 -1
  677. package/lib/cjs/graph/engine/loops/index.cjs.map +0 -1
  678. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +0 -1
  679. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +0 -1
  680. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +0 -1
  681. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +0 -1
  682. package/lib/cjs/graph/engine/pinning/index.cjs.map +0 -1
  683. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +0 -1
  684. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +0 -1
  685. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +0 -1
  686. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +0 -1
  687. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +0 -1
  688. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +0 -1
  689. package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +0 -1
  690. package/lib/cjs/graph/engine/planning/index.cjs.map +0 -1
  691. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +0 -1
  692. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +0 -1
  693. package/lib/cjs/graph/engine/registry/index.cjs.map +0 -1
  694. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +0 -1
  695. package/lib/cjs/graph/engine/snapshots/index.cjs.map +0 -1
  696. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +0 -1
  697. package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +0 -1
  698. package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +0 -1
  699. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +0 -1
  700. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +0 -1
  701. package/lib/cjs/graph/engine/store/index.cjs.map +0 -1
  702. package/lib/cjs/graph/engine/types.cjs.map +0 -1
  703. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +0 -1
  704. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +0 -1
  705. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +0 -1
  706. package/lib/cjs/graph/engine/validation/index.cjs.map +0 -1
  707. package/lib/cjs/graph/index.cjs.map +0 -1
  708. package/lib/cjs/graph/shared/constants.cjs.map +0 -1
  709. package/lib/cjs/graph/shared/index.cjs.map +0 -1
  710. package/lib/cjs/graph/shared/nodes/agent.cjs.map +0 -1
  711. package/lib/cjs/graph/shared/nodes/base.cjs.map +0 -1
  712. package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +0 -1
  713. package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +0 -1
  714. package/lib/cjs/graph/shared/nodes/index.cjs.map +0 -1
  715. package/lib/cjs/graph/shared/nodes/triggers.cjs.map +0 -1
  716. package/lib/cjs/graph/shared/types.cjs.map +0 -1
  717. package/lib/cjs/index.cjs.map +0 -1
  718. package/lib/cjs/keycloak/index.cjs.map +0 -1
  719. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
  720. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
  721. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
  722. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
  723. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
  724. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
  725. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
  726. package/lib/cjs/keycloak/services/index.cjs.map +0 -1
  727. package/lib/cjs/keycloak/services/runtime.cjs.map +0 -1
  728. package/lib/cjs/keycloak/types.cjs.map +0 -1
  729. package/lib/cjs/kibana/helpers.cjs.map +0 -1
  730. package/lib/cjs/kibana/index.cjs.map +0 -1
  731. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
  732. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
  733. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
  734. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
  735. package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
  736. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
  737. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
  738. package/lib/cjs/kibana/services/index.cjs.map +0 -1
  739. package/lib/cjs/kibana/services/runtime.cjs.map +0 -1
  740. package/lib/cjs/kibana/types.cjs.map +0 -1
  741. package/lib/cjs/namespaces/index.cjs.map +0 -1
  742. package/lib/cjs/namespaces/models/authorization-model.cjs.map +0 -1
  743. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +0 -1
  744. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +0 -1
  745. package/lib/cjs/namespaces/models/group.model.cjs.map +0 -1
  746. package/lib/cjs/namespaces/models/index.cjs.map +0 -1
  747. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +0 -1
  748. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +0 -1
  749. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +0 -1
  750. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +0 -1
  751. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +0 -1
  752. package/lib/cjs/namespaces/models/permission.model.cjs.map +0 -1
  753. package/lib/cjs/namespaces/models/principal.model.cjs.map +0 -1
  754. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +0 -1
  755. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +0 -1
  756. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +0 -1
  757. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +0 -1
  758. package/lib/cjs/namespaces/models/role.model.cjs.map +0 -1
  759. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +0 -1
  760. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +0 -1
  761. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +0 -1
  762. package/lib/cjs/namespaces/models/tenant.model.cjs.map +0 -1
  763. package/lib/cjs/namespaces/models/user.model.cjs.map +0 -1
  764. package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +0 -1
  765. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +0 -1
  766. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +0 -1
  767. package/lib/cjs/namespaces/services/authz.service.cjs.map +0 -1
  768. package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +0 -1
  769. package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +0 -1
  770. package/lib/cjs/namespaces/services/group-membership.service.cjs.map +0 -1
  771. package/lib/cjs/namespaces/services/group.service.cjs.map +0 -1
  772. package/lib/cjs/namespaces/services/index.cjs.map +0 -1
  773. package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +0 -1
  774. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +0 -1
  775. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +0 -1
  776. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +0 -1
  777. package/lib/cjs/namespaces/services/org-unit.service.cjs.map +0 -1
  778. package/lib/cjs/namespaces/services/permission.service.cjs.map +0 -1
  779. package/lib/cjs/namespaces/services/principal.service.cjs.map +0 -1
  780. package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +0 -1
  781. package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +0 -1
  782. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +0 -1
  783. package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +0 -1
  784. package/lib/cjs/namespaces/services/role-permission.service.cjs.map +0 -1
  785. package/lib/cjs/namespaces/services/role.service.cjs.map +0 -1
  786. package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +0 -1
  787. package/lib/cjs/namespaces/services/system-management.service.cjs.map +0 -1
  788. package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +0 -1
  789. package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +0 -1
  790. package/lib/cjs/namespaces/services/tenant.service.cjs.map +0 -1
  791. package/lib/cjs/namespaces/services/user.service.cjs.map +0 -1
  792. package/lib/cjs/namespaces/types.cjs.map +0 -1
  793. package/lib/cjs/namespaces/utils.cjs.map +0 -1
  794. package/lib/cjs/nest/authService.cjs +0 -91
  795. package/lib/cjs/nest/authService.cjs.map +0 -1
  796. package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +0 -1
  797. package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +0 -1
  798. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +0 -1
  799. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +0 -1
  800. package/lib/cjs/nest/graph/GraphResultService.cjs.map +0 -1
  801. package/lib/cjs/nest/graph/GraphWorkflowModel.cjs.map +0 -1
  802. package/lib/cjs/nest/graph/GraphWorkflowService.cjs.map +0 -1
  803. package/lib/cjs/nest/graph/index.cjs.map +0 -1
  804. package/lib/cjs/nest/graph/main.cjs.map +0 -1
  805. package/lib/cjs/nest/index.cjs.map +0 -1
  806. package/lib/cjs/nest/keycloakAuthHandler.cjs.map +0 -1
  807. package/lib/cjs/nest/keycloakModule.cjs.map +0 -1
  808. package/lib/cjs/nest/logging.cjs.map +0 -1
  809. package/lib/cjs/nest/types.cjs.map +0 -1
  810. package/lib/cjs/nest/utils.cjs.map +0 -1
  811. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +0 -1
  812. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +0 -1
  813. package/lib/cjs/secrets/aws/index.cjs.map +0 -1
  814. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +0 -1
  815. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +0 -1
  816. package/lib/cjs/secrets/azure/index.cjs.map +0 -1
  817. package/lib/cjs/secrets/core/SecretErrors.cjs.map +0 -1
  818. package/lib/cjs/secrets/core/SecretName.cjs.map +0 -1
  819. package/lib/cjs/secrets/core/SecretReference.cjs.map +0 -1
  820. package/lib/cjs/secrets/core/SecretSerialization.cjs.map +0 -1
  821. package/lib/cjs/secrets/core/SecretService.cjs.map +0 -1
  822. package/lib/cjs/secrets/core/SecretTypes.cjs.map +0 -1
  823. package/lib/cjs/secrets/core/index.cjs.map +0 -1
  824. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +0 -1
  825. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +0 -1
  826. package/lib/cjs/secrets/gcp/index.cjs.map +0 -1
  827. package/lib/cjs/secrets/index.cjs.map +0 -1
  828. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +0 -1
  829. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +0 -1
  830. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +0 -1
  831. package/lib/cjs/secrets/model/Secret.cjs.map +0 -1
  832. package/lib/cjs/secrets/model/index.cjs.map +0 -1
  833. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +0 -1
  834. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +0 -1
  835. package/lib/cjs/secrets/onepassword/index.cjs.map +0 -1
  836. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +0 -1
  837. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +0 -1
  838. package/lib/cjs/secrets/vault/index.cjs.map +0 -1
  839. package/lib/cjs/shared/runtime.cjs.map +0 -1
  840. package/lib/cjs/utils.cjs.map +0 -1
  841. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +0 -1
  842. package/lib/esm/blob/azure/index.js.map +0 -1
  843. package/lib/esm/blob/core/BlobErrors.js.map +0 -1
  844. package/lib/esm/blob/core/BlobKey.js.map +0 -1
  845. package/lib/esm/blob/core/BlobStoreFactory.js.map +0 -1
  846. package/lib/esm/blob/core/BlobStoreService.js.map +0 -1
  847. package/lib/esm/blob/core/BlobTypes.js.map +0 -1
  848. package/lib/esm/blob/core/BlobValue.js.map +0 -1
  849. package/lib/esm/blob/core/index.js.map +0 -1
  850. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +0 -1
  851. package/lib/esm/blob/gcp/index.js.map +0 -1
  852. package/lib/esm/blob/index.js.map +0 -1
  853. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +0 -1
  854. package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +0 -1
  855. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +0 -1
  856. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +0 -1
  857. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +0 -1
  858. package/lib/esm/blob/ipfs/index.js.map +0 -1
  859. package/lib/esm/blob/local/LocalBlobStoreService.js.map +0 -1
  860. package/lib/esm/blob/local/index.js.map +0 -1
  861. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +0 -1
  862. package/lib/esm/blob/memory/index.js.map +0 -1
  863. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
  864. package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
  865. package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
  866. package/lib/esm/blob/s3/index.js.map +0 -1
  867. package/lib/esm/docker/DockerComposeService.js.map +0 -1
  868. package/lib/esm/docker/index.js.map +0 -1
  869. package/lib/esm/graph/engine/constants.js.map +0 -1
  870. package/lib/esm/graph/engine/decorators.js.map +0 -1
  871. package/lib/esm/graph/engine/errors/GraphCycleError.js.map +0 -1
  872. package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +0 -1
  873. package/lib/esm/graph/engine/errors/GraphInputError.js.map +0 -1
  874. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +0 -1
  875. package/lib/esm/graph/engine/errors/GraphPinningError.js.map +0 -1
  876. package/lib/esm/graph/engine/errors/GraphPortError.js.map +0 -1
  877. package/lib/esm/graph/engine/errors/GraphStoreError.js.map +0 -1
  878. package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +0 -1
  879. package/lib/esm/graph/engine/errors/index.js.map +0 -1
  880. package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +0 -1
  881. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +0 -1
  882. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +0 -1
  883. package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +0 -1
  884. package/lib/esm/graph/engine/events/index.js.map +0 -1
  885. package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js.map +0 -1
  886. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +0 -1
  887. package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +0 -1
  888. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +0 -1
  889. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +0 -1
  890. package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +0 -1
  891. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +0 -1
  892. package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js.map +0 -1
  893. package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js.map +0 -1
  894. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +0 -1
  895. package/lib/esm/graph/engine/execution/index.js.map +0 -1
  896. package/lib/esm/graph/engine/index.js.map +0 -1
  897. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +0 -1
  898. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +0 -1
  899. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +0 -1
  900. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +0 -1
  901. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +0 -1
  902. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +0 -1
  903. package/lib/esm/graph/engine/loops/index.js.map +0 -1
  904. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +0 -1
  905. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +0 -1
  906. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +0 -1
  907. package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +0 -1
  908. package/lib/esm/graph/engine/pinning/index.js.map +0 -1
  909. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +0 -1
  910. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +0 -1
  911. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +0 -1
  912. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +0 -1
  913. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +0 -1
  914. package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +0 -1
  915. package/lib/esm/graph/engine/planning/GraphTopology.js.map +0 -1
  916. package/lib/esm/graph/engine/planning/index.js.map +0 -1
  917. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +0 -1
  918. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +0 -1
  919. package/lib/esm/graph/engine/registry/index.js.map +0 -1
  920. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +0 -1
  921. package/lib/esm/graph/engine/snapshots/index.js.map +0 -1
  922. package/lib/esm/graph/engine/store/GraphCachedValue.js.map +0 -1
  923. package/lib/esm/graph/engine/store/GraphValueKey.js.map +0 -1
  924. package/lib/esm/graph/engine/store/GraphValueStore.js.map +0 -1
  925. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +0 -1
  926. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +0 -1
  927. package/lib/esm/graph/engine/store/index.js.map +0 -1
  928. package/lib/esm/graph/engine/types.js.map +0 -1
  929. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +0 -1
  930. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +0 -1
  931. package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +0 -1
  932. package/lib/esm/graph/engine/validation/index.js.map +0 -1
  933. package/lib/esm/graph/index.js.map +0 -1
  934. package/lib/esm/graph/shared/constants.js.map +0 -1
  935. package/lib/esm/graph/shared/index.js.map +0 -1
  936. package/lib/esm/graph/shared/nodes/agent.js.map +0 -1
  937. package/lib/esm/graph/shared/nodes/base.js.map +0 -1
  938. package/lib/esm/graph/shared/nodes/category-styles.js.map +0 -1
  939. package/lib/esm/graph/shared/nodes/flow-control.js.map +0 -1
  940. package/lib/esm/graph/shared/nodes/index.js.map +0 -1
  941. package/lib/esm/graph/shared/nodes/triggers.js.map +0 -1
  942. package/lib/esm/graph/shared/types.js.map +0 -1
  943. package/lib/esm/index.js.map +0 -1
  944. package/lib/esm/keycloak/index.js.map +0 -1
  945. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
  946. package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
  947. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
  948. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
  949. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
  950. package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
  951. package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
  952. package/lib/esm/keycloak/services/index.js.map +0 -1
  953. package/lib/esm/keycloak/services/runtime.js.map +0 -1
  954. package/lib/esm/keycloak/types.js.map +0 -1
  955. package/lib/esm/kibana/helpers.js.map +0 -1
  956. package/lib/esm/kibana/index.js.map +0 -1
  957. package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
  958. package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
  959. package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
  960. package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
  961. package/lib/esm/kibana/services/KibanaService.js.map +0 -1
  962. package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
  963. package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
  964. package/lib/esm/kibana/services/index.js.map +0 -1
  965. package/lib/esm/kibana/services/runtime.js.map +0 -1
  966. package/lib/esm/kibana/types.js.map +0 -1
  967. package/lib/esm/namespaces/index.js.map +0 -1
  968. package/lib/esm/namespaces/models/authorization-model.js.map +0 -1
  969. package/lib/esm/namespaces/models/effective-permission.model.js.map +0 -1
  970. package/lib/esm/namespaces/models/group-membership.model.js.map +0 -1
  971. package/lib/esm/namespaces/models/group.model.js.map +0 -1
  972. package/lib/esm/namespaces/models/index.js.map +0 -1
  973. package/lib/esm/namespaces/models/inheritance-block.model.js.map +0 -1
  974. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +0 -1
  975. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +0 -1
  976. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +0 -1
  977. package/lib/esm/namespaces/models/org-unit.model.js.map +0 -1
  978. package/lib/esm/namespaces/models/permission.model.js.map +0 -1
  979. package/lib/esm/namespaces/models/principal.model.js.map +0 -1
  980. package/lib/esm/namespaces/models/protected-resource.model.js.map +0 -1
  981. package/lib/esm/namespaces/models/resource-grant.model.js.map +0 -1
  982. package/lib/esm/namespaces/models/role-assignment.model.js.map +0 -1
  983. package/lib/esm/namespaces/models/role-permission.model.js.map +0 -1
  984. package/lib/esm/namespaces/models/role.model.js.map +0 -1
  985. package/lib/esm/namespaces/models/storage-binding.model.js.map +0 -1
  986. package/lib/esm/namespaces/models/tenant-membership.model.js.map +0 -1
  987. package/lib/esm/namespaces/models/tenant-profile.model.js.map +0 -1
  988. package/lib/esm/namespaces/models/tenant.model.js.map +0 -1
  989. package/lib/esm/namespaces/models/user.model.js.map +0 -1
  990. package/lib/esm/namespaces/org-based-authorization-system.js.map +0 -1
  991. package/lib/esm/namespaces/org-based-authorization-system.models.js.map +0 -1
  992. package/lib/esm/namespaces/org-based-authorization-system.services.js.map +0 -1
  993. package/lib/esm/namespaces/services/authz.service.js.map +0 -1
  994. package/lib/esm/namespaces/services/bootstrap.service.js.map +0 -1
  995. package/lib/esm/namespaces/services/effective-permission.service.js.map +0 -1
  996. package/lib/esm/namespaces/services/group-membership.service.js.map +0 -1
  997. package/lib/esm/namespaces/services/group.service.js.map +0 -1
  998. package/lib/esm/namespaces/services/index.js.map +0 -1
  999. package/lib/esm/namespaces/services/inheritance-block.service.js.map +0 -1
  1000. package/lib/esm/namespaces/services/org-unit-closure.service.js.map +0 -1
  1001. package/lib/esm/namespaces/services/org-unit-membership.service.js.map +0 -1
  1002. package/lib/esm/namespaces/services/org-unit-profile.service.js.map +0 -1
  1003. package/lib/esm/namespaces/services/org-unit.service.js.map +0 -1
  1004. package/lib/esm/namespaces/services/permission.service.js.map +0 -1
  1005. package/lib/esm/namespaces/services/principal.service.js.map +0 -1
  1006. package/lib/esm/namespaces/services/protected-resource.service.js.map +0 -1
  1007. package/lib/esm/namespaces/services/resource-grant.service.js.map +0 -1
  1008. package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +0 -1
  1009. package/lib/esm/namespaces/services/role-assignment.service.js.map +0 -1
  1010. package/lib/esm/namespaces/services/role-permission.service.js.map +0 -1
  1011. package/lib/esm/namespaces/services/role.service.js.map +0 -1
  1012. package/lib/esm/namespaces/services/storage-binding.service.js.map +0 -1
  1013. package/lib/esm/namespaces/services/system-management.service.js.map +0 -1
  1014. package/lib/esm/namespaces/services/tenant-membership.service.js.map +0 -1
  1015. package/lib/esm/namespaces/services/tenant-profile.service.js.map +0 -1
  1016. package/lib/esm/namespaces/services/tenant.service.js.map +0 -1
  1017. package/lib/esm/namespaces/services/user.service.js.map +0 -1
  1018. package/lib/esm/namespaces/types.js.map +0 -1
  1019. package/lib/esm/namespaces/utils.js.map +0 -1
  1020. package/lib/esm/nest/authService.js +0 -86
  1021. package/lib/esm/nest/authService.js.map +0 -1
  1022. package/lib/esm/nest/graph/GraphExecutionController.js.map +0 -1
  1023. package/lib/esm/nest/graph/GraphExecutionModule.js.map +0 -1
  1024. package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +0 -1
  1025. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +0 -1
  1026. package/lib/esm/nest/graph/GraphResultService.js.map +0 -1
  1027. package/lib/esm/nest/graph/GraphWorkflowModel.js.map +0 -1
  1028. package/lib/esm/nest/graph/GraphWorkflowService.js.map +0 -1
  1029. package/lib/esm/nest/graph/index.js.map +0 -1
  1030. package/lib/esm/nest/graph/main.js.map +0 -1
  1031. package/lib/esm/nest/index.js.map +0 -1
  1032. package/lib/esm/nest/keycloakAuthHandler.js.map +0 -1
  1033. package/lib/esm/nest/keycloakModule.js.map +0 -1
  1034. package/lib/esm/nest/logging.js.map +0 -1
  1035. package/lib/esm/nest/types.js.map +0 -1
  1036. package/lib/esm/nest/utils.js.map +0 -1
  1037. package/lib/esm/secrets/aws/AwsSecretService.js.map +0 -1
  1038. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +0 -1
  1039. package/lib/esm/secrets/aws/index.js.map +0 -1
  1040. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +0 -1
  1041. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +0 -1
  1042. package/lib/esm/secrets/azure/index.js.map +0 -1
  1043. package/lib/esm/secrets/core/SecretErrors.js.map +0 -1
  1044. package/lib/esm/secrets/core/SecretName.js.map +0 -1
  1045. package/lib/esm/secrets/core/SecretReference.js.map +0 -1
  1046. package/lib/esm/secrets/core/SecretSerialization.js.map +0 -1
  1047. package/lib/esm/secrets/core/SecretService.js.map +0 -1
  1048. package/lib/esm/secrets/core/SecretTypes.js.map +0 -1
  1049. package/lib/esm/secrets/core/index.js.map +0 -1
  1050. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +0 -1
  1051. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +0 -1
  1052. package/lib/esm/secrets/gcp/index.js.map +0 -1
  1053. package/lib/esm/secrets/index.js.map +0 -1
  1054. package/lib/esm/secrets/model/ModelSecretCrypto.js.map +0 -1
  1055. package/lib/esm/secrets/model/ModelSecretService.js.map +0 -1
  1056. package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +0 -1
  1057. package/lib/esm/secrets/model/Secret.js.map +0 -1
  1058. package/lib/esm/secrets/model/index.js.map +0 -1
  1059. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +0 -1
  1060. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +0 -1
  1061. package/lib/esm/secrets/onepassword/index.js.map +0 -1
  1062. package/lib/esm/secrets/vault/VaultSecretService.js.map +0 -1
  1063. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +0 -1
  1064. package/lib/esm/secrets/vault/index.js.map +0 -1
  1065. package/lib/esm/shared/runtime.js.map +0 -1
  1066. package/lib/esm/utils.js.map +0 -1
  1067. package/lib/types/nest/authService.d.cts +0 -63
  1068. package/lib/types/nest/authService.d.mts +0 -63
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.kibanaDashboardEmbedPlugin = exports.KibanaDashboardEmbedPlugin = exports.KIBANA_DEFAULT_BASE_PATH = void 0;
37
+ exports.buildKibanaEmbedUrl = buildKibanaEmbedUrl;
38
+ exports.createKibanaDashboardEmbedPlugin = createKibanaDashboardEmbedPlugin;
39
+ /**
40
+ * @module integrations/plugins/kibana/installer
41
+ * @summary Kibana dashboard embed plugin installer.
42
+ * @description Implements `DashboardEmbedPlugin` for Kibana: builds the stable
43
+ * iframe embed URL, creates/sends switch-dashboard messages, and materializes
44
+ * the generated plugin source into a target directory (optionally building it).
45
+ *
46
+ * The plugin is org-agnostic: there is never space switching. The current
47
+ * Kibana space comes from the request/session/proxy context, not from the
48
+ * plugin, so the same plugin serves every org.
49
+ */
50
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
51
+ const core_1 = require("@decaf-ts/core");
52
+ const fs = __importStar(require("node:fs"));
53
+ const path = __importStar(require("node:path"));
54
+ const node_child_process_1 = require("node:child_process");
55
+ const contract_js_1 = require("./../contract.cjs");
56
+ const manifest_js_1 = require("./manifest.cjs");
57
+ const templates_js_1 = require("./templates.cjs");
58
+ /** Default Kibana base path when none is provided. */
59
+ exports.KIBANA_DEFAULT_BASE_PATH = "kibana";
60
+ /**
61
+ * Build the stable Kibana embed iframe URL.
62
+ *
63
+ * @example
64
+ * buildKibanaEmbedUrl({ host: "ptp.host", dashboardId: "abc", parentOrigin: "https://app.example.com" })
65
+ * // => "//ptp.host/kibana/app/org_dashboard_embed?dashboardId=abc&parentOrigin=https%3A%2F%2Fapp.example.com"
66
+ */
67
+ function buildKibanaEmbedUrl(options) {
68
+ const basePath = options.basePath ?? exports.KIBANA_DEFAULT_BASE_PATH;
69
+ const params = new URLSearchParams();
70
+ params.set("dashboardId", options.dashboardId);
71
+ params.set("parentOrigin", options.parentOrigin);
72
+ if (options.view?.timeRange) {
73
+ params.set("timeRange", JSON.stringify(options.view.timeRange));
74
+ }
75
+ return `//${options.host}/${basePath}/app/${manifest_js_1.KIBANA_APP_ID}?${params.toString()}`;
76
+ }
77
+ /**
78
+ * @class KibanaDashboardEmbedPlugin
79
+ * @summary Kibana implementation of the `DashboardEmbedPlugin` contract.
80
+ * @description Org-agnostic multi-tenant dashboard embed plugin for Kibana.
81
+ */
82
+ class KibanaDashboardEmbedPlugin {
83
+ constructor(targetVersion = "kibana") {
84
+ this.descriptor = {
85
+ id: manifest_js_1.KIBANA_PLUGIN_ID,
86
+ appId: manifest_js_1.KIBANA_APP_ID,
87
+ version: manifest_js_1.KIBANA_PLUGIN_VERSION,
88
+ targetVersion,
89
+ tool: "kibana",
90
+ };
91
+ }
92
+ manifest(targetVersion = this.descriptor.targetVersion) {
93
+ return (0, manifest_js_1.buildKibanaManifest)(targetVersion);
94
+ }
95
+ buildEmbedUrl(options) {
96
+ return buildKibanaEmbedUrl(options);
97
+ }
98
+ createSwitchDashboardMessage(payload) {
99
+ return (0, contract_js_1.createSwitchDashboardMessage)(payload);
100
+ }
101
+ sendSwitchDashboardMessage(target, payload, targetOrigin) {
102
+ (0, contract_js_1.sendSwitchDashboardMessage)(target, payload, targetOrigin);
103
+ }
104
+ /**
105
+ * Materialize the generated Kibana plugin into `targetPath/org_dashboard_embed/`.
106
+ *
107
+ * Kibana plugins must be built within the Kibana repo against the exact
108
+ * Kibana version. When `build` is true, this attempts `yarn build` in the
109
+ * plugin directory (best-effort); real builds require the Kibana plugin
110
+ * helpers environment.
111
+ */
112
+ async install(options) {
113
+ const ctx = options.context;
114
+ if (ctx) {
115
+ // Context is accepted for traceability; no logging side-effect required here.
116
+ void ctx;
117
+ }
118
+ if (!options.targetPath || options.targetPath.trim().length === 0) {
119
+ throw new core_1.UnsupportedError("install targetPath is required");
120
+ }
121
+ const targetVersion = options.targetVersion ?? this.descriptor.targetVersion;
122
+ const pluginDir = path.resolve(options.targetPath, manifest_js_1.KIBANA_APP_ID);
123
+ if (fs.existsSync(pluginDir)) {
124
+ if (!options.overwrite) {
125
+ throw new db_decorators_1.InternalError(`Plugin directory already exists: ${pluginDir} (use overwrite: true)`);
126
+ }
127
+ fs.rmSync(pluginDir, { recursive: true, force: true });
128
+ }
129
+ const files = (0, templates_js_1.kibanaPluginFiles)(targetVersion);
130
+ const written = [];
131
+ for (const file of files) {
132
+ const fullPath = path.join(pluginDir, file.path);
133
+ fs.mkdirSync(path.dirname(fullPath), { recursive: true });
134
+ fs.writeFileSync(fullPath, file.content, "utf8");
135
+ written.push(file.path);
136
+ }
137
+ let built = false;
138
+ let buildOutput;
139
+ if (options.build) {
140
+ const result = await this.runBuild(pluginDir).catch((err) => ({
141
+ ok: false,
142
+ output: err.message,
143
+ }));
144
+ built = result.ok;
145
+ buildOutput = result.output;
146
+ }
147
+ return {
148
+ pluginPath: pluginDir,
149
+ descriptor: { ...this.descriptor, targetVersion },
150
+ files: written,
151
+ built,
152
+ buildOutput,
153
+ };
154
+ }
155
+ /**
156
+ * Best-effort `yarn build` in the plugin directory. Real builds require the
157
+ * Kibana plugin helpers environment; failures are captured, not thrown.
158
+ */
159
+ runBuild(pluginDir) {
160
+ return new Promise((resolve) => {
161
+ (0, node_child_process_1.execFile)("yarn", ["build"], { cwd: pluginDir, timeout: 120000 }, (error, stdout, stderr) => {
162
+ const output = `${stdout ?? ""}${stderr ?? ""}`.trim();
163
+ if (error) {
164
+ resolve({ ok: false, output: output || error.message });
165
+ return;
166
+ }
167
+ resolve({ ok: true, output });
168
+ });
169
+ });
170
+ }
171
+ }
172
+ exports.KibanaDashboardEmbedPlugin = KibanaDashboardEmbedPlugin;
173
+ /** Default singleton instance. */
174
+ exports.kibanaDashboardEmbedPlugin = new KibanaDashboardEmbedPlugin();
175
+ /** Factory accepting a target Kibana version. */
176
+ function createKibanaDashboardEmbedPlugin(targetVersion) {
177
+ return new KibanaDashboardEmbedPlugin(targetVersion);
178
+ }
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMva2liYW5hL2luc3RhbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBQ0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUNMLDRCQUE0QixFQUM1QiwwQkFBMEIsR0FTM0IseUJBQW9CO0FBQ3JCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixtQkFBbUIsR0FDcEIsc0JBQW1CO0FBQ3BCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBb0I7QUFFaEQsc0RBQXNEO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLFFBQVEsQ0FBQztBQUVqRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsT0FBd0I7SUFDMUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSx3QkFBd0IsQ0FBQztJQUM5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzVCLE1BQU0sQ0FBQyxHQUFHLENB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O29CQUNWLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztvQkFDeEQsT0FBTztnQkFDVCxDQUFDO2dCQUNELE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksMEJBQTBCLEVBQUUsQ0FBQztBQUUzRSxpREFBaUQ7QUFDakQsTUFBTSxVQUFVLGdDQUFnQyxDQUM5QyxhQUFxQjtJQUVyQixPQUFPLElBQUksMEJBQTBCLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvcGx1Z2lucy9raWJhbmEvaW5zdGFsbGVyXG4gKiBAc3VtbWFyeSBLaWJhbmEgZGFzaGJvYXJkIGVtYmVkIHBsdWdpbiBpbnN0YWxsZXIuXG4gKiBAZGVzY3JpcHRpb24gSW1wbGVtZW50cyBgRGFzaGJvYXJkRW1iZWRQbHVnaW5gIGZvciBLaWJhbmE6IGJ1aWxkcyB0aGUgc3RhYmxlXG4gKiBpZnJhbWUgZW1iZWQgVVJMLCBjcmVhdGVzL3NlbmRzIHN3aXRjaC1kYXNoYm9hcmQgbWVzc2FnZXMsIGFuZCBtYXRlcmlhbGl6ZXNcbiAqIHRoZSBnZW5lcmF0ZWQgcGx1Z2luIHNvdXJjZSBpbnRvIGEgdGFyZ2V0IGRpcmVjdG9yeSAob3B0aW9uYWxseSBidWlsZGluZyBpdCkuXG4gKlxuICogVGhlIHBsdWdpbiBpcyBvcmctYWdub3N0aWM6IHRoZXJlIGlzIG5ldmVyIHNwYWNlIHN3aXRjaGluZy4gVGhlIGN1cnJlbnRcbiAqIEtpYmFuYSBzcGFjZSBjb21lcyBmcm9tIHRoZSByZXF1ZXN0L3Nlc3Npb24vcHJveHkgY29udGV4dCwgbm90IGZyb20gdGhlXG4gKiBwbHVnaW4sIHNvIHRoZSBzYW1lIHBsdWdpbiBzZXJ2ZXMgZXZlcnkgb3JnLlxuICovXG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZEVycm9yLCBNYXliZUNvbnRleHR1YWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGV4ZWNGaWxlIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuXG5pbXBvcnQge1xuICBjcmVhdGVTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlLFxuICBzZW5kU3dpdGNoRGFzaGJvYXJkTWVzc2FnZSxcbiAgdHlwZSBEYXNoYm9hcmRFbWJlZFBsdWdpbixcbiAgdHlwZSBEYXNoYm9hcmRFbWJlZFBsdWdpbkRlc2NyaXB0b3IsXG4gIHR5cGUgRW1iZWRVcmxPcHRpb25zLFxuICB0eXBlIFBsdWdpbkluc3RhbGxPcHRpb25zLFxuICB0eXBlIFBsdWdpbkluc3RhbGxSZXN1bHQsXG4gIHR5cGUgU3dpdGNoRGFzaGJvYXJkUGF5bG9hZCxcbiAgdHlwZSBTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlLFxuICB0eXBlIEVtYmVkTWVzc2FnZVRhcmdldCxcbn0gZnJvbSBcIi4uL2NvbnRyYWN0XCI7XG5pbXBvcnQge1xuICBLSUJBTkFfQVBQX0lELFxuICBLSUJBTkFfUExVR0lOX0lELFxuICBLSUJBTkFfUExVR0lOX1ZFUlNJT04sXG4gIGJ1aWxkS2liYW5hTWFuaWZlc3QsXG59IGZyb20gXCIuL21hbmlmZXN0XCI7XG5pbXBvcnQgeyBraWJhbmFQbHVnaW5GaWxlcyB9IGZyb20gXCIuL3RlbXBsYXRlc1wiO1xuXG4vKiogRGVmYXVsdCBLaWJhbmEgYmFzZSBwYXRoIHdoZW4gbm9uZSBpcyBwcm92aWRlZC4gKi9cbmV4cG9ydCBjb25zdCBLSUJBTkFfREVGQVVMVF9CQVNFX1BBVEggPSBcImtpYmFuYVwiO1xuXG4vKipcbiAqIEJ1aWxkIHRoZSBzdGFibGUgS2liYW5hIGVtYmVkIGlmcmFtZSBVUkwuXG4gKlxuICogQGV4YW1wbGVcbiAqICAgYnVpbGRLaWJhbmFFbWJlZFVybCh7IGhvc3Q6IFwicHRwLmhvc3RcIiwgZGFzaGJvYXJkSWQ6IFwiYWJjXCIsIHBhcmVudE9yaWdpbjogXCJodHRwczovL2FwcC5leGFtcGxlLmNvbVwiIH0pXG4gKiAgIC8vID0+IFwiLy9wdHAuaG9zdC9raWJhbmEvYXBwL29yZ19kYXNoYm9hcmRfZW1iZWQ/ZGFzaGJvYXJkSWQ9YWJjJnBhcmVudE9yaWdpbj1odHRwcyUzQSUyRiUyRmFwcC5leGFtcGxlLmNvbVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEtpYmFuYUVtYmVkVXJsKG9wdGlvbnM6IEVtYmVkVXJsT3B0aW9ucyk6IHN0cmluZyB7XG4gIGNvbnN0IGJhc2VQYXRoID0gb3B0aW9ucy5iYXNlUGF0aCA/PyBLSUJBTkFfREVGQVVMVF9CQVNFX1BBVEg7XG4gIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgcGFyYW1zLnNldChcImRhc2hib2FyZElkXCIsIG9wdGlvbnMuZGFzaGJvYXJkSWQpO1xuICBwYXJhbXMuc2V0KFwicGFyZW50T3JpZ2luXCIsIG9wdGlvbnMucGFyZW50T3JpZ2luKTtcbiAgaWYgKG9wdGlvbnMudmlldz8udGltZVJhbmdlKSB7XG4gICAgcGFyYW1zLnNldChcbiAgICAgIFwidGltZVJhbmdlXCIsXG4gICAgICBKU09OLnN0cmluZ2lmeShvcHRpb25zLnZpZXcudGltZVJhbmdlKVxuICAgICk7XG4gIH1cbiAgcmV0dXJuIGAvLyR7b3B0aW9ucy5ob3N0fS8ke2Jhc2VQYXRofS9hcHAvJHtLSUJBTkFfQVBQX0lEfT8ke3BhcmFtcy50b1N0cmluZygpfWA7XG59XG5cbi8qKlxuICogQGNsYXNzIEtpYmFuYURhc2hib2FyZEVtYmVkUGx1Z2luXG4gKiBAc3VtbWFyeSBLaWJhbmEgaW1wbGVtZW50YXRpb24gb2YgdGhlIGBEYXNoYm9hcmRFbWJlZFBsdWdpbmAgY29udHJhY3QuXG4gKiBAZGVzY3JpcHRpb24gT3JnLWFnbm9zdGljIG11bHRpLXRlbmFudCBkYXNoYm9hcmQgZW1iZWQgcGx1Z2luIGZvciBLaWJhbmEuXG4gKi9cbmV4cG9ydCBjbGFzcyBLaWJhbmFEYXNoYm9hcmRFbWJlZFBsdWdpbiBpbXBsZW1lbnRzIERhc2hib2FyZEVtYmVkUGx1Z2luIHtcbiAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0b3I6IERhc2hib2FyZEVtYmVkUGx1Z2luRGVzY3JpcHRvcjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IodGFyZ2V0VmVyc2lvbjogc3RyaW5nID0gXCJraWJhbmFcIikge1xuICAgIHRoaXMuZGVzY3JpcHRvciA9IHtcbiAgICAgIGlkOiBLSUJBTkFfUExVR0lOX0lELFxuICAgICAgYXBwSWQ6IEtJQkFOQV9BUFBfSUQsXG4gICAgICB2ZXJzaW9uOiBLSUJBTkFfUExVR0lOX1ZFUlNJT04sXG4gICAgICB0YXJnZXRWZXJzaW9uLFxuICAgICAgdG9vbDogXCJraWJhbmFcIixcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIG1hbmlmZXN0KHRhcmdldFZlcnNpb246IHN0cmluZyA9IHRoaXMuZGVzY3JpcHRvci50YXJnZXRWZXJzaW9uKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiBidWlsZEtpYmFuYU1hbmlmZXN0KHRhcmdldFZlcnNpb24pIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIH1cblxuICBwdWJsaWMgYnVpbGRFbWJlZFVybChvcHRpb25zOiBFbWJlZFVybE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIHJldHVybiBidWlsZEtpYmFuYUVtYmVkVXJsKG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZVN3aXRjaERhc2hib2FyZE1lc3NhZ2UoXG4gICAgcGF5bG9hZDogU3dpdGNoRGFzaGJvYXJkUGF5bG9hZFxuICApOiBTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlIHtcbiAgICByZXR1cm4gY3JlYXRlU3dpdGNoRGFzaGJvYXJkTWVzc2FnZShwYXlsb2FkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZW5kU3dpdGNoRGFzaGJvYXJkTWVzc2FnZShcbiAgICB0YXJnZXQ6IEVtYmVkTWVzc2FnZVRhcmdldCxcbiAgICBwYXlsb2FkOiBTd2l0Y2hEYXNoYm9hcmRQYXlsb2FkLFxuICAgIHRhcmdldE9yaWdpbjogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIHNlbmRTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlKHRhcmdldCwgcGF5bG9hZCwgdGFyZ2V0T3JpZ2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRlcmlhbGl6ZSB0aGUgZ2VuZXJhdGVkIEtpYmFuYSBwbHVnaW4gaW50byBgdGFyZ2V0UGF0aC9vcmdfZGFzaGJvYXJkX2VtYmVkL2AuXG4gICAqXG4gICAqIEtpYmFuYSBwbHVnaW5zIG11c3QgYmUgYnVpbHQgd2l0aGluIHRoZSBLaWJhbmEgcmVwbyBhZ2FpbnN0IHRoZSBleGFjdFxuICAgKiBLaWJhbmEgdmVyc2lvbi4gV2hlbiBgYnVpbGRgIGlzIHRydWUsIHRoaXMgYXR0ZW1wdHMgYHlhcm4gYnVpbGRgIGluIHRoZVxuICAgKiBwbHVnaW4gZGlyZWN0b3J5IChiZXN0LWVmZm9ydCk7IHJlYWwgYnVpbGRzIHJlcXVpcmUgdGhlIEtpYmFuYSBwbHVnaW5cbiAgICogaGVscGVycyBlbnZpcm9ubWVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpbnN0YWxsKFxuICAgIG9wdGlvbnM6IFBsdWdpbkluc3RhbGxPcHRpb25zXG4gICk6IFByb21pc2U8UGx1Z2luSW5zdGFsbFJlc3VsdD4ge1xuICAgIGNvbnN0IGN0eCA9IG9wdGlvbnMuY29udGV4dCBhcyBNYXliZUNvbnRleHR1YWxBcmc8YW55PiB8IHVuZGVmaW5lZDtcbiAgICBpZiAoY3R4KSB7XG4gICAgICAvLyBDb250ZXh0IGlzIGFjY2VwdGVkIGZvciB0cmFjZWFiaWxpdHk7IG5vIGxvZ2dpbmcgc2lkZS1lZmZlY3QgcmVxdWlyZWQgaGVyZS5cbiAgICAgIHZvaWQgY3R4O1xuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMudGFyZ2V0UGF0aCB8fCBvcHRpb25zLnRhcmdldFBhdGgudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXCJpbnN0YWxsIHRhcmdldFBhdGggaXMgcmVxdWlyZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0VmVyc2lvbiA9IG9wdGlvbnMudGFyZ2V0VmVyc2lvbiA/PyB0aGlzLmRlc2NyaXB0b3IudGFyZ2V0VmVyc2lvbjtcbiAgICBjb25zdCBwbHVnaW5EaXIgPSBwYXRoLnJlc29sdmUoXG4gICAgICBvcHRpb25zLnRhcmdldFBhdGgsXG4gICAgICBLSUJBTkFfQVBQX0lEXG4gICAgKTtcblxuICAgIGlmIChmcy5leGlzdHNTeW5jKHBsdWdpbkRpcikpIHtcbiAgICAgIGlmICghb3B0aW9ucy5vdmVyd3JpdGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgYFBsdWdpbiBkaXJlY3RvcnkgYWxyZWFkeSBleGlzdHM6ICR7cGx1Z2luRGlyfSAodXNlIG92ZXJ3cml0ZTogdHJ1ZSlgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBmcy5ybVN5bmMocGx1Z2luRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZXMgPSBraWJhbmFQbHVnaW5GaWxlcyh0YXJnZXRWZXJzaW9uKTtcbiAgICBjb25zdCB3cml0dGVuOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLmpvaW4ocGx1Z2luRGlyLCBmaWxlLnBhdGgpO1xuICAgICAgZnMubWtkaXJTeW5jKHBhdGguZGlybmFtZShmdWxsUGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhmdWxsUGF0aCwgZmlsZS5jb250ZW50LCBcInV0ZjhcIik7XG4gICAgICB3cml0dGVuLnB1c2goZmlsZS5wYXRoKTtcbiAgICB9XG5cbiAgICBsZXQgYnVpbHQgPSBmYWxzZTtcbiAgICBsZXQgYnVpbGRPdXRwdXQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBpZiAob3B0aW9ucy5idWlsZCkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ydW5CdWlsZChwbHVnaW5EaXIpLmNhdGNoKChlcnI6IEVycm9yKSA9PiAoe1xuICAgICAgICBvazogZmFsc2UgYXMgY29uc3QsXG4gICAgICAgIG91dHB1dDogZXJyLm1lc3NhZ2UsXG4gICAgICB9KSk7XG4gICAgICBidWlsdCA9IHJlc3VsdC5vaztcbiAgICAgIGJ1aWxkT3V0cHV0ID0gcmVzdWx0Lm91dHB1dDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGx1Z2luUGF0aDogcGx1Z2luRGlyLFxuICAgICAgZGVzY3JpcHRvcjogeyAuLi50aGlzLmRlc2NyaXB0b3IsIHRhcmdldFZlcnNpb24gfSxcbiAgICAgIGZpbGVzOiB3cml0dGVuLFxuICAgICAgYnVpbHQsXG4gICAgICBidWlsZE91dHB1dCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJlc3QtZWZmb3J0IGB5YXJuIGJ1aWxkYCBpbiB0aGUgcGx1Z2luIGRpcmVjdG9yeS4gUmVhbCBidWlsZHMgcmVxdWlyZSB0aGVcbiAgICogS2liYW5hIHBsdWdpbiBoZWxwZXJzIGVudmlyb25tZW50OyBmYWlsdXJlcyBhcmUgY2FwdHVyZWQsIG5vdCB0aHJvd24uXG4gICAqL1xuICBwcm90ZWN0ZWQgcnVuQnVpbGQoXG4gICAgcGx1Z2luRGlyOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx7IG9rOiBib29sZWFuOyBvdXRwdXQ6IHN0cmluZyB9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBleGVjRmlsZShcbiAgICAgICAgXCJ5YXJuXCIsXG4gICAgICAgIFtcImJ1aWxkXCJdLFxuICAgICAgICB7IGN3ZDogcGx1Z2luRGlyLCB0aW1lb3V0OiAxMjAwMDAgfSxcbiAgICAgICAgKGVycm9yLCBzdGRvdXQsIHN0ZGVycikgPT4ge1xuICAgICAgICAgIGNvbnN0IG91dHB1dCA9IGAke3N0ZG91dCA/PyBcIlwifSR7c3RkZXJyID8/IFwiXCJ9YC50cmltKCk7XG4gICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICByZXNvbHZlKHsgb2s6IGZhbHNlLCBvdXRwdXQ6IG91dHB1dCB8fCBlcnJvci5tZXNzYWdlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKHsgb2s6IHRydWUsIG91dHB1dCB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxufVxuXG4vKiogRGVmYXVsdCBzaW5nbGV0b24gaW5zdGFuY2UuICovXG5leHBvcnQgY29uc3Qga2liYW5hRGFzaGJvYXJkRW1iZWRQbHVnaW4gPSBuZXcgS2liYW5hRGFzaGJvYXJkRW1iZWRQbHVnaW4oKTtcblxuLyoqIEZhY3RvcnkgYWNjZXB0aW5nIGEgdGFyZ2V0IEtpYmFuYSB2ZXJzaW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUtpYmFuYURhc2hib2FyZEVtYmVkUGx1Z2luKFxuICB0YXJnZXRWZXJzaW9uOiBzdHJpbmdcbik6IEtpYmFuYURhc2hib2FyZEVtYmVkUGx1Z2luIHtcbiAgcmV0dXJuIG5ldyBLaWJhbmFEYXNoYm9hcmRFbWJlZFBsdWdpbih0YXJnZXRWZXJzaW9uKTtcbn1cbiJdfQ==
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW5zdGFsbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTRCQSxrREFTQztBQW1HRCw0RUFFQztBQTFJRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsMkRBQXdEO0FBQ3hELHlDQUFrRDtBQUNsRCw0Q0FBOEI7QUFDOUIsZ0RBQWtDO0FBQ2xDLDJEQUE4QztBQUM5QyxrREFBNkY7QUFDN0YsK0NBQTZHO0FBQzdHLGlEQUFtRDtBQUNuRCxzREFBc0Q7QUFDekMsUUFBQSx3QkFBd0IsR0FBRyxRQUFRLENBQUM7QUFDakQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsT0FBTztJQUN2QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLGdDQUF3QixDQUFDO0lBQzlELE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7SUFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDMUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELE9BQU8sS0FBSyxPQUFPLENBQUMsSUFBSSxJQUFJLFFBQVEsUUFBUSwyQkFBYSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO0FBQ3JGLENBQUM7QUFDRDs7OztHQUlHO0FBQ0gsTUFBYSwwQkFBMEI7SUFDbkMsWUFBWSxhQUFhLEdBQUcsUUFBUTtRQUNo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QUF6RkQsZ0VBeUZDO0FBQ0Qsa0NBQWtDO0FBQ3JCLFFBQUEsMEJBQTBCLEdBQUcsSUFBSSwwQkFBMEIsRUFBRSxDQUFDO0FBQzNFLGlEQUFpRDtBQUNqRCxTQUFnQixnQ0FBZ0MsQ0FBQyxhQUFhO0lBQzFELE9BQU8sSUFBSSwwQkFBMEIsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBQ0Qsa2hjQUFraGMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3BsdWdpbnMva2liYW5hL2luc3RhbGxlclxuICogQHN1bW1hcnkgS2liYW5hIGRhc2hib2FyZCBlbWJlZCBwbHVnaW4gaW5zdGFsbGVyLlxuICogQGRlc2NyaXB0aW9uIEltcGxlbWVudHMgYERhc2hib2FyZEVtYmVkUGx1Z2luYCBmb3IgS2liYW5hOiBidWlsZHMgdGhlIHN0YWJsZVxuICogaWZyYW1lIGVtYmVkIFVSTCwgY3JlYXRlcy9zZW5kcyBzd2l0Y2gtZGFzaGJvYXJkIG1lc3NhZ2VzLCBhbmQgbWF0ZXJpYWxpemVzXG4gKiB0aGUgZ2VuZXJhdGVkIHBsdWdpbiBzb3VyY2UgaW50byBhIHRhcmdldCBkaXJlY3RvcnkgKG9wdGlvbmFsbHkgYnVpbGRpbmcgaXQpLlxuICpcbiAqIFRoZSBwbHVnaW4gaXMgb3JnLWFnbm9zdGljOiB0aGVyZSBpcyBuZXZlciBzcGFjZSBzd2l0Y2hpbmcuIFRoZSBjdXJyZW50XG4gKiBLaWJhbmEgc3BhY2UgY29tZXMgZnJvbSB0aGUgcmVxdWVzdC9zZXNzaW9uL3Byb3h5IGNvbnRleHQsIG5vdCBmcm9tIHRoZVxuICogcGx1Z2luLCBzbyB0aGUgc2FtZSBwbHVnaW4gc2VydmVzIGV2ZXJ5IG9yZy5cbiAqL1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZXhlY0ZpbGUgfSBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgeyBjcmVhdGVTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlLCBzZW5kU3dpdGNoRGFzaGJvYXJkTWVzc2FnZSwgfSBmcm9tIFwiLi8uLi9jb250cmFjdC5qc1wiO1xuaW1wb3J0IHsgS0lCQU5BX0FQUF9JRCwgS0lCQU5BX1BMVUdJTl9JRCwgS0lCQU5BX1BMVUdJTl9WRVJTSU9OLCBidWlsZEtpYmFuYU1hbmlmZXN0LCB9IGZyb20gXCIuL21hbmlmZXN0LmpzXCI7XG5pbXBvcnQgeyBraWJhbmFQbHVnaW5GaWxlcyB9IGZyb20gXCIuL3RlbXBsYXRlcy5qc1wiO1xuLyoqIERlZmF1bHQgS2liYW5hIGJhc2UgcGF0aCB3aGVuIG5vbmUgaXMgcHJvdmlkZWQuICovXG5leHBvcnQgY29uc3QgS0lCQU5BX0RFRkFVTFRfQkFTRV9QQVRIID0gXCJraWJhbmFcIjtcbi8qKlxuICogQnVpbGQgdGhlIHN0YWJsZSBLaWJhbmEgZW1iZWQgaWZyYW1lIFVSTC5cbiAqXG4gKiBAZXhhbXBsZVxuICogICBidWlsZEtpYmFuYUVtYmVkVXJsKHsgaG9zdDogXCJwdHAuaG9zdFwiLCBkYXNoYm9hcmRJZDogXCJhYmNcIiwgcGFyZW50T3JpZ2luOiBcImh0dHBzOi8vYXBwLmV4YW1wbGUuY29tXCIgfSlcbiAqICAgLy8gPT4gXCIvL3B0cC5ob3N0L2tpYmFuYS9hcHAvb3JnX2Rhc2hib2FyZF9lbWJlZD9kYXNoYm9hcmRJZD1hYmMmcGFyZW50T3JpZ2luPWh0dHBzJTNBJTJGJTJGYXBwLmV4YW1wbGUuY29tXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkS2liYW5hRW1iZWRVcmwob3B0aW9ucykge1xuICAgIGNvbnN0IGJhc2VQYXRoID0gb3B0aW9ucy5iYXNlUGF0aCA/PyBLSUJBTkFfREVGQVVMVF9CQVNFX1BBVEg7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIHBhcmFtcy5zZXQoXCJkYXNoYm9hcmRJZFwiLCBvcHRpb25zLmRhc2hib2FyZElkKTtcbiAgICBwYXJhbXMuc2V0KFwicGFyZW50T3JpZ2luXCIsIG9wdGlvbnMucGFyZW50T3JpZ2luKTtcbiAgICBpZiAob3B0aW9ucy52aWV3Py50aW1lUmFuZ2UpIHtcbiAgICAgICAgcGFyYW1zLnNldChcInRpbWVSYW5nZVwiLCBKU09OLnN0cmluZ2lmeShvcHRpb25zLnZpZXcudGltZVJhbmdlKSk7XG4gICAgfVxuICAgIHJldHVybiBgLy8ke29wdGlvbnMuaG9zdH0vJHtiYXNlUGF0aH0vYXBwLyR7S0lCQU5BX0FQUF9JRH0/JHtwYXJhbXMudG9TdHJpbmcoKX1gO1xufVxuLyoqXG4gKiBAY2xhc3MgS2liYW5hRGFzaGJvYXJkRW1iZWRQbHVnaW5cbiAqIEBzdW1tYXJ5IEtpYmFuYSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYERhc2hib2FyZEVtYmVkUGx1Z2luYCBjb250cmFjdC5cbiAqIEBkZXNjcmlwdGlvbiBPcmctYWdub3N0aWMgbXVsdGktdGVuYW50IGRhc2hib2FyZCBlbWJlZCBwbHVnaW4gZm9yIEtpYmFuYS5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpYmFuYURhc2hib2FyZEVtYmVkUGx1Z2luIHtcbiAgICBjb25zdHJ1Y3Rvcih0YXJnZXRWZXJzaW9uID0gXCJraWJhbmFcIikge1xuICAgICAgICB0aGlzLmRlc2NyaXB0b3IgPSB7XG4gICAgICAgICAgICBpZDogS0lCQU5BX1BMVUdJTl9JRCxcbiAgICAgICAgICAgIGFwcElkOiBLSUJBTkFfQVBQX0lELFxuICAgICAgICAgICAgdmVyc2lvbjogS0lCQU5BX1BMVUdJTl9WRVJTSU9OLFxuICAgICAgICAgICAgdGFyZ2V0VmVyc2lvbixcbiAgICAgICAgICAgIHRvb2w6IFwia2liYW5hXCIsXG4gICAgICAgIH07XG4gICAgfVxuICAgIG1hbmlmZXN0KHRhcmdldFZlcnNpb24gPSB0aGlzLmRlc2NyaXB0b3IudGFyZ2V0VmVyc2lvbikge1xuICAgICAgICByZXR1cm4gYnVpbGRLaWJhbmFNYW5pZmVzdCh0YXJnZXRWZXJzaW9uKTtcbiAgICB9XG4gICAgYnVpbGRFbWJlZFVybChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBidWlsZEtpYmFuYUVtYmVkVXJsKG9wdGlvbnMpO1xuICAgIH1cbiAgICBjcmVhdGVTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlKHBheWxvYWQpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVN3aXRjaERhc2hib2FyZE1lc3NhZ2UocGF5bG9hZCk7XG4gICAgfVxuICAgIHNlbmRTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlKHRhcmdldCwgcGF5bG9hZCwgdGFyZ2V0T3JpZ2luKSB7XG4gICAgICAgIHNlbmRTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlKHRhcmdldCwgcGF5bG9hZCwgdGFyZ2V0T3JpZ2luKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWF0ZXJpYWxpemUgdGhlIGdlbmVyYXRlZCBLaWJhbmEgcGx1Z2luIGludG8gYHRhcmdldFBhdGgvb3JnX2Rhc2hib2FyZF9lbWJlZC9gLlxuICAgICAqXG4gICAgICogS2liYW5hIHBsdWdpbnMgbXVzdCBiZSBidWlsdCB3aXRoaW4gdGhlIEtpYmFuYSByZXBvIGFnYWluc3QgdGhlIGV4YWN0XG4gICAgICogS2liYW5hIHZlcnNpb24uIFdoZW4gYGJ1aWxkYCBpcyB0cnVlLCB0aGlzIGF0dGVtcHRzIGB5YXJuIGJ1aWxkYCBpbiB0aGVcbiAgICAgKiBwbHVnaW4gZGlyZWN0b3J5IChiZXN0LWVmZm9ydCk7IHJlYWwgYnVpbGRzIHJlcXVpcmUgdGhlIEtpYmFuYSBwbHVnaW5cbiAgICAgKiBoZWxwZXJzIGVudmlyb25tZW50LlxuICAgICAqL1xuICAgIGFzeW5jIGluc3RhbGwob3B0aW9ucykge1xuICAgICAgICBjb25zdCBjdHggPSBvcHRpb25zLmNvbnRleHQ7XG4gICAgICAgIGlmIChjdHgpIHtcbiAgICAgICAgICAgIC8vIENvbnRleHQgaXMgYWNjZXB0ZWQgZm9yIHRyYWNlYWJpbGl0eTsgbm8gbG9nZ2luZyBzaWRlLWVmZmVjdCByZXF1aXJlZCBoZXJlLlxuICAgICAgICAgICAgdm9pZCBjdHg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRpb25zLnRhcmdldFBhdGggfHwgb3B0aW9ucy50YXJnZXRQYXRoLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFwiaW5zdGFsbCB0YXJnZXRQYXRoIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhcmdldFZlcnNpb24gPSBvcHRpb25zLnRhcmdldFZlcnNpb24gPz8gdGhpcy5kZXNjcmlwdG9yLnRhcmdldFZlcnNpb247XG4gICAgICAgIGNvbnN0IHBsdWdpbkRpciA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnRhcmdldFBhdGgsIEtJQkFOQV9BUFBfSUQpO1xuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhwbHVnaW5EaXIpKSB7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMub3ZlcndyaXRlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYFBsdWdpbiBkaXJlY3RvcnkgYWxyZWFkeSBleGlzdHM6ICR7cGx1Z2luRGlyfSAodXNlIG92ZXJ3cml0ZTogdHJ1ZSlgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZzLnJtU3luYyhwbHVnaW5EaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWxlcyA9IGtpYmFuYVBsdWdpbkZpbGVzKHRhcmdldFZlcnNpb24pO1xuICAgICAgICBjb25zdCB3cml0dGVuID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLmpvaW4ocGx1Z2luRGlyLCBmaWxlLnBhdGgpO1xuICAgICAgICAgICAgZnMubWtkaXJTeW5jKHBhdGguZGlybmFtZShmdWxsUGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhmdWxsUGF0aCwgZmlsZS5jb250ZW50LCBcInV0ZjhcIik7XG4gICAgICAgICAgICB3cml0dGVuLnB1c2goZmlsZS5wYXRoKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYnVpbHQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGJ1aWxkT3V0cHV0O1xuICAgICAgICBpZiAob3B0aW9ucy5idWlsZCkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ydW5CdWlsZChwbHVnaW5EaXIpLmNhdGNoKChlcnIpID0+ICh7XG4gICAgICAgICAgICAgICAgb2s6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG91dHB1dDogZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBidWlsdCA9IHJlc3VsdC5vaztcbiAgICAgICAgICAgIGJ1aWxkT3V0cHV0ID0gcmVzdWx0Lm91dHB1dDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGx1Z2luUGF0aDogcGx1Z2luRGlyLFxuICAgICAgICAgICAgZGVzY3JpcHRvcjogeyAuLi50aGlzLmRlc2NyaXB0b3IsIHRhcmdldFZlcnNpb24gfSxcbiAgICAgICAgICAgIGZpbGVzOiB3cml0dGVuLFxuICAgICAgICAgICAgYnVpbHQsXG4gICAgICAgICAgICBidWlsZE91dHB1dCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQmVzdC1lZmZvcnQgYHlhcm4gYnVpbGRgIGluIHRoZSBwbHVnaW4gZGlyZWN0b3J5LiBSZWFsIGJ1aWxkcyByZXF1aXJlIHRoZVxuICAgICAqIEtpYmFuYSBwbHVnaW4gaGVscGVycyBlbnZpcm9ubWVudDsgZmFpbHVyZXMgYXJlIGNhcHR1cmVkLCBub3QgdGhyb3duLlxuICAgICAqL1xuICAgIHJ1bkJ1aWxkKHBsdWdpbkRpcikge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIGV4ZWNGaWxlKFwieWFyblwiLCBbXCJidWlsZFwiXSwgeyBjd2Q6IHBsdWdpbkRpciwgdGltZW91dDogMTIwMDAwIH0sIChlcnJvciwgc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXRwdXQgPSBgJHtzdGRvdXQgPz8gXCJcIn0ke3N0ZGVyciA/PyBcIlwifWAudHJpbSgpO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHsgb2s6IGZhbHNlLCBvdXRwdXQ6IG91dHB1dCB8fCBlcnJvci5tZXNzYWdlIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlc29sdmUoeyBvazogdHJ1ZSwgb3V0cHV0IH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8qKiBEZWZhdWx0IHNpbmdsZXRvbiBpbnN0YW5jZS4gKi9cbmV4cG9ydCBjb25zdCBraWJhbmFEYXNoYm9hcmRFbWJlZFBsdWdpbiA9IG5ldyBLaWJhbmFEYXNoYm9hcmRFbWJlZFBsdWdpbigpO1xuLyoqIEZhY3RvcnkgYWNjZXB0aW5nIGEgdGFyZ2V0IEtpYmFuYSB2ZXJzaW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUtpYmFuYURhc2hib2FyZEVtYmVkUGx1Z2luKHRhcmdldFZlcnNpb24pIHtcbiAgICByZXR1cm4gbmV3IEtpYmFuYURhc2hib2FyZEVtYmVkUGx1Z2luKHRhcmdldFZlcnNpb24pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1emRHRnNiR1Z5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwzQnNkV2RwYm5NdmEybGlZVzVoTDJsdWMzUmhiR3hsY2k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRVHM3T3pzN096czdPenRIUVZWSE8wRkJRMGdzVDBGQlR5eEZRVUZGTEdGQlFXRXNSVUZCUlN4TlFVRk5MSGxDUVVGNVFpeERRVUZETzBGQlEzaEVMRTlCUVU4c1JVRkJSU3huUWtGQlowSXNSVUZCYzBJc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVTjBSU3hQUVVGUExFdEJRVXNzUlVGQlJTeE5RVUZOTEZOQlFWTXNRMEZCUXp0QlFVTTVRaXhQUVVGUExFdEJRVXNzU1VGQlNTeE5RVUZOTEZkQlFWY3NRMEZCUXp0QlFVTnNReXhQUVVGUExFVkJRVVVzVVVGQlVTeEZRVUZGTEUxQlFVMHNiMEpCUVc5Q0xFTkJRVU03UVVGRk9VTXNUMEZCVHl4RlFVTk1MRFJDUVVFMFFpeEZRVU0xUWl3d1FrRkJNRUlzUjBGVE0wSXNlVUpCUVc5Q08wRkJRM0pDTEU5QlFVOHNSVUZEVEN4aFFVRmhMRVZCUTJJc1owSkJRV2RDTEVWQlEyaENMSEZDUVVGeFFpeEZRVU55UWl4dFFrRkJiVUlzUjBGRGNFSXNjMEpCUVcxQ08wRkJRM0JDTEU5QlFVOHNSVUZCUlN4cFFrRkJhVUlzUlVGQlJTeDFRa0ZCYjBJN1FVRkZhRVFzYzBSQlFYTkVPMEZCUTNSRUxFMUJRVTBzUTBGQlF5eE5RVUZOTEhkQ1FVRjNRaXhIUVVGSExGRkJRVkVzUTBGQlF6dEJRVVZxUkRzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzYlVKQlFXMUNMRU5CUVVNc1QwRkJkMEk3U1VGRE1VUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1QwRkJUeXhEUVVGRExGRkJRVkVzU1VGQlNTeDNRa0ZCZDBJc1EwRkJRenRKUVVNNVJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMR1ZCUVdVc1JVRkJSU3hEUVVGRE8wbEJRM0pETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1lVRkJZU3hGUVVGRkxFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0SlFVTXZReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEdOQlFXTXNSVUZCUlN4UFFVRlBMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03U1VGRGFrUXNTVUZCU1N4UFFVRlBMRU5CUVVNc1NVRkJTU3hGUVVGRkxGTkJRVk1zUlVGQlJTeERRVUZETzFGQlF6VkNMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRMUlzVjBGQlZ5eEZRVU5ZTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZEZGtNc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRFJDeFBRVUZQTEV0QlFVc3NUMEZCVHl4RFFVRkRMRWxCUVVrc1NVRkJTU3hSUVVGUkxGRkJRVkVzWVVGQllTeEpRVUZKTEUxQlFVMHNRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkJSU3hEUVVGRE8wRkJRMjVHTEVOQlFVTTdRVUZGUkRzN096dEhRVWxITzBGQlEwZ3NUVUZCVFN4UFFVRlBMREJDUVVFd1FqdEpRVWR5UXl4WlFVRnRRaXhuUWtGQmQwSXNVVUZCVVR0UlFVTnFSQ3hKUVVGSkxFTkJRVU1zVlVGQlZTeEhRVUZITzFsQlEyaENMRVZCUVVVc1JVRkJSU3huUWtGQlowSTdXVUZEY0VJc1MwRkJTeXhGUVVGRkxHRkJRV0U3V1VGRGNFSXNUMEZCVHl4RlFVRkZMSEZDUVVGeFFqdFpRVU01UWl4aFFVRmhPMWxCUTJJc1NVRkJTU3hGUVVGRkxGRkJRVkU3VTBGRFppeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVk5MRkZCUVZFc1EwRkJReXhuUWtGQmQwSXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhoUVVGaE8xRkJRMjVGTEU5QlFVOHNiVUpCUVcxQ0xFTkJRVU1zWVVGQllTeERRVUYxUXl4RFFVRkRPMGxCUTJ4R0xFTkJRVU03U1VGRlRTeGhRVUZoTEVOQlFVTXNUMEZCZDBJN1VVRkRNME1zVDBGQlR5eHRRa0ZCYlVJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU4wUXl4RFFVRkRPMGxCUlUwc05FSkJRVFJDTEVOQlEycERMRTlCUVN0Q08xRkJSUzlDTEU5QlFVOHNORUpCUVRSQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZETDBNc1EwRkJRenRKUVVWTkxEQkNRVUV3UWl4RFFVTXZRaXhOUVVFd1FpeEZRVU14UWl4UFFVRXJRaXhGUVVNdlFpeFpRVUZ2UWp0UlFVVndRaXd3UWtGQk1FSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxGbEJRVmtzUTBGQlF5eERRVUZETzBsQlF6VkVMRU5CUVVNN1NVRkZSRHM3T3pzN096dFBRVTlITzBsQlEwa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkRiRUlzVDBGQk5rSTdVVUZGTjBJc1RVRkJUU3hIUVVGSExFZEJRVWNzVDBGQlR5eERRVUZETEU5QlFUaERMRU5CUVVNN1VVRkRia1VzU1VGQlNTeEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTlNMRGhGUVVFNFJUdFpRVU01UlN4TFFVRkxMRWRCUVVjc1EwRkJRenRSUVVOWUxFTkJRVU03VVVGRFJDeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hQUVVGUExFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU5zUlN4TlFVRk5MRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNaME5CUVdkRExFTkJRVU1zUTBGQlF6dFJRVU12UkN4RFFVRkRPMUZCUlVRc1RVRkJUU3hoUVVGaExFZEJRVWNzVDBGQlR5eERRVUZETEdGQlFXRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0VzUTBGQlF6dFJRVU0zUlN4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVU0xUWl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hGUVVOc1FpeGhRVUZoTEVOQlEyUXNRMEZCUXp0UlFVVkdMRWxCUVVrc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eFRRVUZUTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUXpkQ0xFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1owSkJRM1pDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUTNKQ0xHOURRVUZ2UXl4VFFVRlRMSGRDUVVGM1FpeERRVU4wUlN4RFFVRkRPMWxCUTBvc1EwRkJRenRaUVVORUxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RlFVRkZMRVZCUVVVc1UwRkJVeXhGUVVGRkxFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVONlJDeERRVUZETzFGQlJVUXNUVUZCVFN4TFFVRkxMRWRCUVVjc2FVSkJRV2xDTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1VVRkRMME1zVFVGQlRTeFBRVUZQTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUXpkQ0xFdEJRVXNzVFVGQlRTeEpRVUZKTEVsQlFVa3NTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRla0lzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUTJwRUxFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeEZRVUZGTEZOQlFWTXNSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8xbEJRekZFTEVWQlFVVXNRMEZCUXl4aFFVRmhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRha1FzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRE1VSXNRMEZCUXp0UlFVVkVMRWxCUVVrc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dFJRVU5zUWl4SlFVRkpMRmRCUVN0Q0xFTkJRVU03VVVGRGNFTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRGJFSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFZEJRVlVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0blFrRkRia1VzUlVGQlJTeEZRVUZGTEV0QlFXTTdaMEpCUTJ4Q0xFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTXNUMEZCVHp0aFFVTndRaXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5LTEV0QlFVc3NSMEZCUnl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRMnhDTEZkQlFWY3NSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRE8xRkJRemxDTEVOQlFVTTdVVUZGUkN4UFFVRlBPMWxCUTB3c1ZVRkJWU3hGUVVGRkxGTkJRVk03V1VGRGNrSXNWVUZCVlN4RlFVRkZMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEdGQlFXRXNSVUZCUlR0WlFVTnFSQ3hMUVVGTExFVkJRVVVzVDBGQlR6dFpRVU5rTEV0QlFVczdXVUZEVEN4WFFVRlhPMU5CUTFvc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJEczdPMDlCUjBjN1NVRkRUeXhSUVVGUkxFTkJRMmhDTEZOQlFXbENPMUZCUldwQ0xFOUJRVThzU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSVHRaUVVNM1FpeFJRVUZSTEVOQlEwNHNUVUZCVFN4RlFVTk9MRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRMVFzUlVGQlJTeEhRVUZITEVWQlFVVXNVMEZCVXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzUlVGRGJrTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEZRVUZGTzJkQ1FVTjRRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEhRVUZITEUxQlFVMHNTVUZCU1N4RlFVRkZMRWRCUVVjc1RVRkJUU3hKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMmRDUVVOMlJDeEpRVUZKTEV0QlFVc3NSVUZCUlN4RFFVRkRPMjlDUVVOV0xFOUJRVThzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRkxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJRenR2UWtGRGVFUXNUMEZCVHp0blFrRkRWQ3hEUVVGRE8yZENRVU5FTEU5QlFVOHNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hKUVVGSkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVTm9ReXhEUVVGRExFTkJRMFlzUTBGQlF6dFJRVU5LTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTB3c1EwRkJRenREUVVOR08wRkJSVVFzYTBOQlFXdERPMEZCUTJ4RExFMUJRVTBzUTBGQlF5eE5RVUZOTERCQ1FVRXdRaXhIUVVGSExFbEJRVWtzTUVKQlFUQkNMRVZCUVVVc1EwRkJRenRCUVVVelJTeHBSRUZCYVVRN1FVRkRha1FzVFVGQlRTeFZRVUZWTEdkRFFVRm5ReXhEUVVNNVF5eGhRVUZ4UWp0SlFVVnlRaXhQUVVGUExFbEJRVWtzTUVKQlFUQkNMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03UVVGRGRrUXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1FHMXZaSFZzWlNCcGJuUmxaM0poZEdsdmJuTXZjR3gxWjJsdWN5OXJhV0poYm1FdmFXNXpkR0ZzYkdWeVhHNGdLaUJBYzNWdGJXRnllU0JMYVdKaGJtRWdaR0Z6YUdKdllYSmtJR1Z0WW1Wa0lIQnNkV2RwYmlCcGJuTjBZV3hzWlhJdVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1NXMXdiR1Z0Wlc1MGN5QmdSR0Z6YUdKdllYSmtSVzFpWldSUWJIVm5hVzVnSUdadmNpQkxhV0poYm1FNklHSjFhV3hrY3lCMGFHVWdjM1JoWW14bFhHNGdLaUJwWm5KaGJXVWdaVzFpWldRZ1ZWSk1MQ0JqY21WaGRHVnpMM05sYm1SeklITjNhWFJqYUMxa1lYTm9ZbTloY21RZ2JXVnpjMkZuWlhNc0lHRnVaQ0J0WVhSbGNtbGhiR2w2WlhOY2JpQXFJSFJvWlNCblpXNWxjbUYwWldRZ2NHeDFaMmx1SUhOdmRYSmpaU0JwYm5SdklHRWdkR0Z5WjJWMElHUnBjbVZqZEc5eWVTQW9iM0IwYVc5dVlXeHNlU0JpZFdsc1pHbHVaeUJwZENrdVhHNGdLbHh1SUNvZ1ZHaGxJSEJzZFdkcGJpQnBjeUJ2Y21jdFlXZHViM04wYVdNNklIUm9aWEpsSUdseklHNWxkbVZ5SUhOd1lXTmxJSE4zYVhSamFHbHVaeTRnVkdobElHTjFjbkpsYm5SY2JpQXFJRXRwWW1GdVlTQnpjR0ZqWlNCamIyMWxjeUJtY205dElIUm9aU0J5WlhGMVpYTjBMM05sYzNOcGIyNHZjSEp2ZUhrZ1kyOXVkR1Y0ZEN3Z2JtOTBJR1p5YjIwZ2RHaGxYRzRnS2lCd2JIVm5hVzRzSUhOdklIUm9aU0J6WVcxbElIQnNkV2RwYmlCelpYSjJaWE1nWlhabGNua2diM0puTGx4dUlDb3ZYRzVwYlhCdmNuUWdleUJKYm5SbGNtNWhiRVZ5Y205eUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2V5QlZibk4xY0hCdmNuUmxaRVZ5Y205eUxDQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtY2dmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQXFJR0Z6SUdaeklHWnliMjBnWENKdWIyUmxPbVp6WENJN1hHNXBiWEJ2Y25RZ0tpQmhjeUJ3WVhSb0lHWnliMjBnWENKdWIyUmxPbkJoZEdoY0lqdGNibWx0Y0c5eWRDQjdJR1Y0WldOR2FXeGxJSDBnWm5KdmJTQmNJbTV2WkdVNlkyaHBiR1JmY0hKdlkyVnpjMXdpTzF4dVhHNXBiWEJ2Y25RZ2UxeHVJQ0JqY21WaGRHVlRkMmwwWTJoRVlYTm9ZbTloY21STlpYTnpZV2RsTEZ4dUlDQnpaVzVrVTNkcGRHTm9SR0Z6YUdKdllYSmtUV1Z6YzJGblpTeGNiaUFnZEhsd1pTQkVZWE5vWW05aGNtUkZiV0psWkZCc2RXZHBiaXhjYmlBZ2RIbHdaU0JFWVhOb1ltOWhjbVJGYldKbFpGQnNkV2RwYmtSbGMyTnlhWEIwYjNJc1hHNGdJSFI1Y0dVZ1JXMWlaV1JWY214UGNIUnBiMjV6TEZ4dUlDQjBlWEJsSUZCc2RXZHBia2x1YzNSaGJHeFBjSFJwYjI1ekxGeHVJQ0IwZVhCbElGQnNkV2RwYmtsdWMzUmhiR3hTWlhOMWJIUXNYRzRnSUhSNWNHVWdVM2RwZEdOb1JHRnphR0p2WVhKa1VHRjViRzloWkN4Y2JpQWdkSGx3WlNCVGQybDBZMmhFWVhOb1ltOWhjbVJOWlhOellXZGxMRnh1SUNCMGVYQmxJRVZ0WW1Wa1RXVnpjMkZuWlZSaGNtZGxkQ3hjYm4wZ1puSnZiU0JjSWk0dUwyTnZiblJ5WVdOMFhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCTFNVSkJUa0ZmUVZCUVgwbEVMRnh1SUNCTFNVSkJUa0ZmVUV4VlIwbE9YMGxFTEZ4dUlDQkxTVUpCVGtGZlVFeFZSMGxPWDFaRlVsTkpUMDRzWEc0Z0lHSjFhV3hrUzJsaVlXNWhUV0Z1YVdabGMzUXNYRzU5SUdaeWIyMGdYQ0l1TDIxaGJtbG1aWE4wWENJN1hHNXBiWEJ2Y25RZ2V5QnJhV0poYm1GUWJIVm5hVzVHYVd4bGN5QjlJR1p5YjIwZ1hDSXVMM1JsYlhCc1lYUmxjMXdpTzF4dVhHNHZLaW9nUkdWbVlYVnNkQ0JMYVdKaGJtRWdZbUZ6WlNCd1lYUm9JSGRvWlc0Z2JtOXVaU0JwY3lCd2NtOTJhV1JsWkM0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCTFNVSkJUa0ZmUkVWR1FWVk1WRjlDUVZORlgxQkJWRWdnUFNCY0ltdHBZbUZ1WVZ3aU8xeHVYRzR2S2lwY2JpQXFJRUoxYVd4a0lIUm9aU0J6ZEdGaWJHVWdTMmxpWVc1aElHVnRZbVZrSUdsbWNtRnRaU0JWVWt3dVhHNGdLbHh1SUNvZ1FHVjRZVzF3YkdWY2JpQXFJQ0FnWW5WcGJHUkxhV0poYm1GRmJXSmxaRlZ5YkNoN0lHaHZjM1E2SUZ3aWNIUndMbWh2YzNSY0lpd2daR0Z6YUdKdllYSmtTV1E2SUZ3aVlXSmpYQ0lzSUhCaGNtVnVkRTl5YVdkcGJqb2dYQ0pvZEhSd2N6b3ZMMkZ3Y0M1bGVHRnRjR3hsTG1OdmJWd2lJSDBwWEc0Z0tpQWdJQzh2SUQwK0lGd2lMeTl3ZEhBdWFHOXpkQzlyYVdKaGJtRXZZWEJ3TDI5eVoxOWtZWE5vWW05aGNtUmZaVzFpWldRL1pHRnphR0p2WVhKa1NXUTlZV0pqSm5CaGNtVnVkRTl5YVdkcGJqMW9kSFJ3Y3lVelFTVXlSaVV5Um1Gd2NDNWxlR0Z0Y0d4bExtTnZiVndpWEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmlkV2xzWkV0cFltRnVZVVZ0WW1Wa1ZYSnNLRzl3ZEdsdmJuTTZJRVZ0WW1Wa1ZYSnNUM0IwYVc5dWN5azZJSE4wY21sdVp5QjdYRzRnSUdOdmJuTjBJR0poYzJWUVlYUm9JRDBnYjNCMGFXOXVjeTVpWVhObFVHRjBhQ0EvUHlCTFNVSkJUa0ZmUkVWR1FWVk1WRjlDUVZORlgxQkJWRWc3WEc0Z0lHTnZibk4wSUhCaGNtRnRjeUE5SUc1bGR5QlZVa3hUWldGeVkyaFFZWEpoYlhNb0tUdGNiaUFnY0dGeVlXMXpMbk5sZENoY0ltUmhjMmhpYjJGeVpFbGtYQ0lzSUc5d2RHbHZibk11WkdGemFHSnZZWEprU1dRcE8xeHVJQ0J3WVhKaGJYTXVjMlYwS0Z3aWNHRnlaVzUwVDNKcFoybHVYQ0lzSUc5d2RHbHZibk11Y0dGeVpXNTBUM0pwWjJsdUtUdGNiaUFnYVdZZ0tHOXdkR2x2Ym5NdWRtbGxkejh1ZEdsdFpWSmhibWRsS1NCN1hHNGdJQ0FnY0dGeVlXMXpMbk5sZENoY2JpQWdJQ0FnSUZ3aWRHbHRaVkpoYm1kbFhDSXNYRzRnSUNBZ0lDQktVMDlPTG5OMGNtbHVaMmxtZVNodmNIUnBiMjV6TG5acFpYY3VkR2x0WlZKaGJtZGxLVnh1SUNBZ0lDazdYRzRnSUgxY2JpQWdjbVYwZFhKdUlHQXZMeVI3YjNCMGFXOXVjeTVvYjNOMGZTOGtlMkpoYzJWUVlYUm9mUzloY0hBdkpIdExTVUpCVGtGZlFWQlFYMGxFZlQ4a2UzQmhjbUZ0Y3k1MGIxTjBjbWx1WnlncGZXQTdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FHTnNZWE56SUV0cFltRnVZVVJoYzJoaWIyRnlaRVZ0WW1Wa1VHeDFaMmx1WEc0Z0tpQkFjM1Z0YldGeWVTQkxhV0poYm1FZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnYjJZZ2RHaGxJR0JFWVhOb1ltOWhjbVJGYldKbFpGQnNkV2RwYm1BZ1kyOXVkSEpoWTNRdVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1QzSm5MV0ZuYm05emRHbGpJRzExYkhScExYUmxibUZ1ZENCa1lYTm9ZbTloY21RZ1pXMWlaV1FnY0d4MVoybHVJR1p2Y2lCTGFXSmhibUV1WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCTGFXSmhibUZFWVhOb1ltOWhjbVJGYldKbFpGQnNkV2RwYmlCcGJYQnNaVzFsYm5SeklFUmhjMmhpYjJGeVpFVnRZbVZrVUd4MVoybHVJSHRjYmlBZ2NIVmliR2xqSUhKbFlXUnZibXg1SUdSbGMyTnlhWEIwYjNJNklFUmhjMmhpYjJGeVpFVnRZbVZrVUd4MVoybHVSR1Z6WTNKcGNIUnZjanRjYmx4dUlDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9kR0Z5WjJWMFZtVnljMmx2YmpvZ2MzUnlhVzVuSUQwZ1hDSnJhV0poYm1GY0lpa2dlMXh1SUNBZ0lIUm9hWE11WkdWelkzSnBjSFJ2Y2lBOUlIdGNiaUFnSUNBZ0lHbGtPaUJMU1VKQlRrRmZVRXhWUjBsT1gwbEVMRnh1SUNBZ0lDQWdZWEJ3U1dRNklFdEpRa0ZPUVY5QlVGQmZTVVFzWEc0Z0lDQWdJQ0IyWlhKemFXOXVPaUJMU1VKQlRrRmZVRXhWUjBsT1gxWkZVbE5KVDA0c1hHNGdJQ0FnSUNCMFlYSm5aWFJXWlhKemFXOXVMRnh1SUNBZ0lDQWdkRzl2YkRvZ1hDSnJhV0poYm1GY0lpeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHMWhibWxtWlhOMEtIUmhjbWRsZEZabGNuTnBiMjQ2SUhOMGNtbHVaeUE5SUhSb2FYTXVaR1Z6WTNKcGNIUnZjaTUwWVhKblpYUldaWEp6YVc5dUtUb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2RXNXJibTkzYmo0Z2UxeHVJQ0FnSUhKbGRIVnliaUJpZFdsc1pFdHBZbUZ1WVUxaGJtbG1aWE4wS0hSaGNtZGxkRlpsY25OcGIyNHBJR0Z6SUhWdWEyNXZkMjRnWVhNZ1VtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajQ3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWW5WcGJHUkZiV0psWkZWeWJDaHZjSFJwYjI1ek9pQkZiV0psWkZWeWJFOXdkR2x2Ym5NcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUhKbGRIVnliaUJpZFdsc1pFdHBZbUZ1WVVWdFltVmtWWEpzS0c5d2RHbHZibk1wTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdOeVpXRjBaVk4zYVhSamFFUmhjMmhpYjJGeVpFMWxjM05oWjJVb1hHNGdJQ0FnY0dGNWJHOWhaRG9nVTNkcGRHTm9SR0Z6YUdKdllYSmtVR0Y1Ykc5aFpGeHVJQ0FwT2lCVGQybDBZMmhFWVhOb1ltOWhjbVJOWlhOellXZGxJSHRjYmlBZ0lDQnlaWFIxY200Z1kzSmxZWFJsVTNkcGRHTm9SR0Z6YUdKdllYSmtUV1Z6YzJGblpTaHdZWGxzYjJGa0tUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QnpaVzVrVTNkcGRHTm9SR0Z6YUdKdllYSmtUV1Z6YzJGblpTaGNiaUFnSUNCMFlYSm5aWFE2SUVWdFltVmtUV1Z6YzJGblpWUmhjbWRsZEN4Y2JpQWdJQ0J3WVhsc2IyRmtPaUJUZDJsMFkyaEVZWE5vWW05aGNtUlFZWGxzYjJGa0xGeHVJQ0FnSUhSaGNtZGxkRTl5YVdkcGJqb2djM1J5YVc1blhHNGdJQ2s2SUhadmFXUWdlMXh1SUNBZ0lITmxibVJUZDJsMFkyaEVZWE5vWW05aGNtUk5aWE56WVdkbEtIUmhjbWRsZEN3Z2NHRjViRzloWkN3Z2RHRnlaMlYwVDNKcFoybHVLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCTllYUmxjbWxoYkdsNlpTQjBhR1VnWjJWdVpYSmhkR1ZrSUV0cFltRnVZU0J3YkhWbmFXNGdhVzUwYnlCZ2RHRnlaMlYwVUdGMGFDOXZjbWRmWkdGemFHSnZZWEprWDJWdFltVmtMMkF1WEc0Z0lDQXFYRzRnSUNBcUlFdHBZbUZ1WVNCd2JIVm5hVzV6SUcxMWMzUWdZbVVnWW5WcGJIUWdkMmwwYUdsdUlIUm9aU0JMYVdKaGJtRWdjbVZ3YnlCaFoyRnBibk4wSUhSb1pTQmxlR0ZqZEZ4dUlDQWdLaUJMYVdKaGJtRWdkbVZ5YzJsdmJpNGdWMmhsYmlCZ1luVnBiR1JnSUdseklIUnlkV1VzSUhSb2FYTWdZWFIwWlcxd2RITWdZSGxoY200Z1luVnBiR1JnSUdsdUlIUm9aVnh1SUNBZ0tpQndiSFZuYVc0Z1pHbHlaV04wYjNKNUlDaGlaWE4wTFdWbVptOXlkQ2s3SUhKbFlXd2dZblZwYkdSeklISmxjWFZwY21VZ2RHaGxJRXRwWW1GdVlTQndiSFZuYVc1Y2JpQWdJQ29nYUdWc2NHVnljeUJsYm5acGNtOXViV1Z1ZEM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCaGMzbHVZeUJwYm5OMFlXeHNLRnh1SUNBZ0lHOXdkR2x2Ym5NNklGQnNkV2RwYmtsdWMzUmhiR3hQY0hScGIyNXpYRzRnSUNrNklGQnliMjFwYzJVOFVHeDFaMmx1U1c1emRHRnNiRkpsYzNWc2RENGdlMXh1SUNBZ0lHTnZibk4wSUdOMGVDQTlJRzl3ZEdsdmJuTXVZMjl1ZEdWNGRDQmhjeUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBpQjhJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnBaaUFvWTNSNEtTQjdYRzRnSUNBZ0lDQXZMeUJEYjI1MFpYaDBJR2x6SUdGalkyVndkR1ZrSUdadmNpQjBjbUZqWldGaWFXeHBkSGs3SUc1dklHeHZaMmRwYm1jZ2MybGtaUzFsWm1abFkzUWdjbVZ4ZFdseVpXUWdhR1Z5WlM1Y2JpQWdJQ0FnSUhadmFXUWdZM1I0TzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvSVc5d2RHbHZibk11ZEdGeVoyVjBVR0YwYUNCOGZDQnZjSFJwYjI1ekxuUmhjbWRsZEZCaGRHZ3VkSEpwYlNncExteGxibWQwYUNBOVBUMGdNQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUZWdWMzVndjRzl5ZEdWa1JYSnliM0lvWENKcGJuTjBZV3hzSUhSaGNtZGxkRkJoZEdnZ2FYTWdjbVZ4ZFdseVpXUmNJaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2RHRnlaMlYwVm1WeWMybHZiaUE5SUc5d2RHbHZibk11ZEdGeVoyVjBWbVZ5YzJsdmJpQS9QeUIwYUdsekxtUmxjMk55YVhCMGIzSXVkR0Z5WjJWMFZtVnljMmx2Ymp0Y2JpQWdJQ0JqYjI1emRDQndiSFZuYVc1RWFYSWdQU0J3WVhSb0xuSmxjMjlzZG1Vb1hHNGdJQ0FnSUNCdmNIUnBiMjV6TG5SaGNtZGxkRkJoZEdnc1hHNGdJQ0FnSUNCTFNVSkJUa0ZmUVZCUVgwbEVYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHbG1JQ2htY3k1bGVHbHpkSE5UZVc1aktIQnNkV2RwYmtScGNpa3BJSHRjYmlBZ0lDQWdJR2xtSUNnaGIzQjBhVzl1Y3k1dmRtVnlkM0pwZEdVcElIdGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdZRkJzZFdkcGJpQmthWEpsWTNSdmNua2dZV3h5WldGa2VTQmxlR2x6ZEhNNklDUjdjR3gxWjJsdVJHbHlmU0FvZFhObElHOTJaWEozY21sMFpUb2dkSEoxWlNsZ1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQm1jeTV5YlZONWJtTW9jR3gxWjJsdVJHbHlMQ0I3SUhKbFkzVnljMmwyWlRvZ2RISjFaU3dnWm05eVkyVTZJSFJ5ZFdVZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnWm1sc1pYTWdQU0JyYVdKaGJtRlFiSFZuYVc1R2FXeGxjeWgwWVhKblpYUldaWEp6YVc5dUtUdGNiaUFnSUNCamIyNXpkQ0IzY21sMGRHVnVPaUJ6ZEhKcGJtZGJYU0E5SUZ0ZE8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ1ptbHNaU0J2WmlCbWFXeGxjeWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdablZzYkZCaGRHZ2dQU0J3WVhSb0xtcHZhVzRvY0d4MVoybHVSR2x5TENCbWFXeGxMbkJoZEdncE8xeHVJQ0FnSUNBZ1puTXViV3RrYVhKVGVXNWpLSEJoZEdndVpHbHlibUZ0WlNobWRXeHNVR0YwYUNrc0lIc2djbVZqZFhKemFYWmxPaUIwY25WbElIMHBPMXh1SUNBZ0lDQWdabk11ZDNKcGRHVkdhV3hsVTNsdVl5aG1kV3hzVUdGMGFDd2dabWxzWlM1amIyNTBaVzUwTENCY0luVjBaamhjSWlrN1hHNGdJQ0FnSUNCM2NtbDBkR1Z1TG5CMWMyZ29abWxzWlM1d1lYUm9LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnNaWFFnWW5WcGJIUWdQU0JtWVd4elpUdGNiaUFnSUNCc1pYUWdZblZwYkdSUGRYUndkWFE2SUhOMGNtbHVaeUI4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1aWRXbHNaQ2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjbVZ6ZFd4MElEMGdZWGRoYVhRZ2RHaHBjeTV5ZFc1Q2RXbHNaQ2h3YkhWbmFXNUVhWElwTG1OaGRHTm9LQ2hsY25JNklFVnljbTl5S1NBOVBpQW9lMXh1SUNBZ0lDQWdJQ0J2YXpvZ1ptRnNjMlVnWVhNZ1kyOXVjM1FzWEc0Z0lDQWdJQ0FnSUc5MWRIQjFkRG9nWlhKeUxtMWxjM05oWjJVc1hHNGdJQ0FnSUNCOUtTazdYRzRnSUNBZ0lDQmlkV2xzZENBOUlISmxjM1ZzZEM1dmF6dGNiaUFnSUNBZ0lHSjFhV3hrVDNWMGNIVjBJRDBnY21WemRXeDBMbTkxZEhCMWREdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnY0d4MVoybHVVR0YwYURvZ2NHeDFaMmx1UkdseUxGeHVJQ0FnSUNBZ1pHVnpZM0pwY0hSdmNqb2dleUF1TGk1MGFHbHpMbVJsYzJOeWFYQjBiM0lzSUhSaGNtZGxkRlpsY25OcGIyNGdmU3hjYmlBZ0lDQWdJR1pwYkdWek9pQjNjbWwwZEdWdUxGeHVJQ0FnSUNBZ1luVnBiSFFzWEc0Z0lDQWdJQ0JpZFdsc1pFOTFkSEIxZEN4Y2JpQWdJQ0I5TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFSmxjM1F0WldabWIzSjBJR0I1WVhKdUlHSjFhV3hrWUNCcGJpQjBhR1VnY0d4MVoybHVJR1JwY21WamRHOXllUzRnVW1WaGJDQmlkV2xzWkhNZ2NtVnhkV2x5WlNCMGFHVmNiaUFnSUNvZ1MybGlZVzVoSUhCc2RXZHBiaUJvWld4d1pYSnpJR1Z1ZG1seWIyNXRaVzUwT3lCbVlXbHNkWEpsY3lCaGNtVWdZMkZ3ZEhWeVpXUXNJRzV2ZENCMGFISnZkMjR1WEc0Z0lDQXFMMXh1SUNCd2NtOTBaV04wWldRZ2NuVnVRblZwYkdRb1hHNGdJQ0FnY0d4MVoybHVSR2x5T2lCemRISnBibWRjYmlBZ0tUb2dVSEp2YldselpUeDdJRzlyT2lCaWIyOXNaV0Z1T3lCdmRYUndkWFE2SUhOMGNtbHVaeUI5UGlCN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCUWNtOXRhWE5sS0NoeVpYTnZiSFpsS1NBOVBpQjdYRzRnSUNBZ0lDQmxlR1ZqUm1sc1pTaGNiaUFnSUNBZ0lDQWdYQ0o1WVhKdVhDSXNYRzRnSUNBZ0lDQWdJRnRjSW1KMWFXeGtYQ0pkTEZ4dUlDQWdJQ0FnSUNCN0lHTjNaRG9nY0d4MVoybHVSR2x5TENCMGFXMWxiM1YwT2lBeE1qQXdNREFnZlN4Y2JpQWdJQ0FnSUNBZ0tHVnljbTl5TENCemRHUnZkWFFzSUhOMFpHVnljaWtnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHOTFkSEIxZENBOUlHQWtlM04wWkc5MWRDQS9QeUJjSWx3aWZTUjdjM1JrWlhKeUlEOC9JRndpWENKOVlDNTBjbWx0S0NrN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dWeWNtOXlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWE52YkhabEtIc2diMnM2SUdaaGJITmxMQ0J2ZFhSd2RYUTZJRzkxZEhCMWRDQjhmQ0JsY25KdmNpNXRaWE56WVdkbElIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0J5WlhOdmJIWmxLSHNnYjJzNklIUnlkV1VzSUc5MWRIQjFkQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOUtUdGNiaUFnZlZ4dWZWeHVYRzR2S2lvZ1JHVm1ZWFZzZENCemFXNW5iR1YwYjI0Z2FXNXpkR0Z1WTJVdUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ2EybGlZVzVoUkdGemFHSnZZWEprUlcxaVpXUlFiSFZuYVc0Z1BTQnVaWGNnUzJsaVlXNWhSR0Z6YUdKdllYSmtSVzFpWldSUWJIVm5hVzRvS1R0Y2JseHVMeW9xSUVaaFkzUnZjbmtnWVdOalpYQjBhVzVuSUdFZ2RHRnlaMlYwSUV0cFltRnVZU0IyWlhKemFXOXVMaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdOeVpXRjBaVXRwWW1GdVlVUmhjMmhpYjJGeVpFVnRZbVZrVUd4MVoybHVLRnh1SUNCMFlYSm5aWFJXWlhKemFXOXVPaUJ6ZEhKcGJtZGNiaWs2SUV0cFltRnVZVVJoYzJoaWIyRnlaRVZ0WW1Wa1VHeDFaMmx1SUh0Y2JpQWdjbVYwZFhKdUlHNWxkeUJMYVdKaGJtRkVZWE5vWW05aGNtUkZiV0psWkZCc2RXZHBiaWgwWVhKblpYUldaWEp6YVc5dUtUdGNibjFjYmlKZGZRPT0iXX0=
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EMBED_MESSAGE_TYPE = exports.KIBANA_PLUGIN_VERSION = exports.KIBANA_APP_ID = exports.KIBANA_PLUGIN_ID = void 0;
4
+ exports.buildKibanaManifest = buildKibanaManifest;
5
+ /**
6
+ * @module integrations/plugins/kibana/manifest
7
+ * @summary Kibana embed plugin manifest builder.
8
+ * @description Builds the `kibana.json` manifest for the org-agnostic
9
+ * `orgDashboardEmbed` plugin against a target Kibana version.
10
+ */
11
+ const contract_js_1 = require("./../contract.cjs");
12
+ Object.defineProperty(exports, "EMBED_MESSAGE_TYPE", { enumerable: true, get: function () { return contract_js_1.EMBED_MESSAGE_TYPE; } });
13
+ exports.KIBANA_PLUGIN_ID = "orgDashboardEmbed";
14
+ exports.KIBANA_APP_ID = "org_dashboard_embed";
15
+ exports.KIBANA_PLUGIN_VERSION = "1.0.0";
16
+ /**
17
+ * Build the `kibana.json` manifest for a target Kibana version.
18
+ *
19
+ * @param targetVersion - Kibana version (defaults to "kibana").
20
+ */
21
+ function buildKibanaManifest(targetVersion = "kibana") {
22
+ return {
23
+ id: exports.KIBANA_PLUGIN_ID,
24
+ version: exports.KIBANA_PLUGIN_VERSION,
25
+ kibanaVersion: targetVersion,
26
+ server: true,
27
+ ui: true,
28
+ requiredPlugins: ["dashboard", "embeddable", "data"],
29
+ optionalPlugins: [],
30
+ };
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2lucy9raWJhbmEvbWFuaWZlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUseUJBQW9CO0FBRWpELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxPQUFPLENBQUM7QUFhN0M7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsZ0JBQXdCLFFBQVE7SUFFaEMsT0FBTztRQUNMLEVBQUUsRUFBRSxnQkFBZ0I7UUFDcEIsT0FBTyxFQUFFLHFCQUFxQjtRQUM5QixhQUFhLEVBQUUsYUFBYTtRQUM1QixNQUFNLEVBQUUsSUFBSTtRQUNaLEVBQUUsRUFBRSxJQUFJO1FBQ1IsZUFBZSxFQUFFLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUM7UUFDcEQsZUFBZSxFQUFFLEVBQUU7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvcGx1Z2lucy9raWJhbmEvbWFuaWZlc3RcbiAqIEBzdW1tYXJ5IEtpYmFuYSBlbWJlZCBwbHVnaW4gbWFuaWZlc3QgYnVpbGRlci5cbiAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgdGhlIGBraWJhbmEuanNvbmAgbWFuaWZlc3QgZm9yIHRoZSBvcmctYWdub3N0aWNcbiAqIGBvcmdEYXNoYm9hcmRFbWJlZGAgcGx1Z2luIGFnYWluc3QgYSB0YXJnZXQgS2liYW5hIHZlcnNpb24uXG4gKi9cbmltcG9ydCB7IEVNQkVEX01FU1NBR0VfVFlQRSB9IGZyb20gXCIuLi9jb250cmFjdFwiO1xuXG5leHBvcnQgY29uc3QgS0lCQU5BX1BMVUdJTl9JRCA9IFwib3JnRGFzaGJvYXJkRW1iZWRcIjtcbmV4cG9ydCBjb25zdCBLSUJBTkFfQVBQX0lEID0gXCJvcmdfZGFzaGJvYXJkX2VtYmVkXCI7XG5leHBvcnQgY29uc3QgS0lCQU5BX1BMVUdJTl9WRVJTSU9OID0gXCIxLjAuMFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtpYmFuYU1hbmlmZXN0IHtcbiAgaWQ6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBraWJhbmFWZXJzaW9uOiBzdHJpbmc7XG4gIHNlcnZlcjogYm9vbGVhbjtcbiAgdWk6IGJvb2xlYW47XG4gIHJlcXVpcmVkUGx1Z2luczogc3RyaW5nW107XG4gIG9wdGlvbmFsUGx1Z2luczogc3RyaW5nW107XG4gIHJlcXVpcmVkQnVuZGxlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBga2liYW5hLmpzb25gIG1hbmlmZXN0IGZvciBhIHRhcmdldCBLaWJhbmEgdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0gdGFyZ2V0VmVyc2lvbiAtIEtpYmFuYSB2ZXJzaW9uIChkZWZhdWx0cyB0byBcImtpYmFuYVwiKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkS2liYW5hTWFuaWZlc3QoXG4gIHRhcmdldFZlcnNpb246IHN0cmluZyA9IFwia2liYW5hXCJcbik6IEtpYmFuYU1hbmlmZXN0IHtcbiAgcmV0dXJuIHtcbiAgICBpZDogS0lCQU5BX1BMVUdJTl9JRCxcbiAgICB2ZXJzaW9uOiBLSUJBTkFfUExVR0lOX1ZFUlNJT04sXG4gICAga2liYW5hVmVyc2lvbjogdGFyZ2V0VmVyc2lvbixcbiAgICBzZXJ2ZXI6IHRydWUsXG4gICAgdWk6IHRydWUsXG4gICAgcmVxdWlyZWRQbHVnaW5zOiBbXCJkYXNoYm9hcmRcIiwgXCJlbWJlZGRhYmxlXCIsIFwiZGF0YVwiXSxcbiAgICBvcHRpb25hbFBsdWdpbnM6IFtdLFxuICB9O1xufVxuXG4vKipcbiAqIE1lc3NhZ2UgdHlwZSBjb25zdGFudHMgcmUtZXhwb3J0ZWQgc28gdGhlIGdlbmVyYXRlZCBwbHVnaW4gdGVtcGxhdGVzIGNhblxuICogcmVmZXJlbmNlIHRoZSBzYW1lIHByb3RvY29sIGlkZW50aWZpZXJzIGFzIHRoZSBob3N0IGhlbHBlcnMuXG4gKi9cbmV4cG9ydCB7IEVNQkVEX01FU1NBR0VfVFlQRSB9O1xuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYW5pZmVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFlQSxrREFVQztBQXpCRDs7Ozs7R0FLRztBQUNILGtEQUFzRDtBQXdCN0MsbUdBeEJBLGdDQUFrQixPQXdCQTtBQXZCZCxRQUFBLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDO0FBQ3ZDLFFBQUEsYUFBYSxHQUFHLHFCQUFxQixDQUFDO0FBQ3RDLFFBQUEscUJBQXFCLEdBQUcsT0FBTyxDQUFDO0FBQzdDOzs7O0dBSUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxhQUFhLEdBQUcsUUFBUTtJQUN4RCxPQUFPO1FBQ0gsRUFBRSxFQUFFLHdCQUFnQjtRQUNwQixPQUFPLEVBQUUsNkJBQXFCO1FBQzlCLGFBQWEsRUFBRSxhQUFhO1FBQzVCLE1BQU0sRUFBRSxJQUFJO1FBQ1osRUFBRSxFQUFFLElBQUk7UUFDUixlQUFlLEVBQUUsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQztRQUNwRCxlQUFlLEVBQUUsRUFBRTtLQUN0QixDQUFDO0FBQ04sQ0FBQztBQU1ELHNxRkFBc3FGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9wbHVnaW5zL2tpYmFuYS9tYW5pZmVzdFxuICogQHN1bW1hcnkgS2liYW5hIGVtYmVkIHBsdWdpbiBtYW5pZmVzdCBidWlsZGVyLlxuICogQGRlc2NyaXB0aW9uIEJ1aWxkcyB0aGUgYGtpYmFuYS5qc29uYCBtYW5pZmVzdCBmb3IgdGhlIG9yZy1hZ25vc3RpY1xuICogYG9yZ0Rhc2hib2FyZEVtYmVkYCBwbHVnaW4gYWdhaW5zdCBhIHRhcmdldCBLaWJhbmEgdmVyc2lvbi5cbiAqL1xuaW1wb3J0IHsgRU1CRURfTUVTU0FHRV9UWVBFIH0gZnJvbSBcIi4vLi4vY29udHJhY3QuanNcIjtcbmV4cG9ydCBjb25zdCBLSUJBTkFfUExVR0lOX0lEID0gXCJvcmdEYXNoYm9hcmRFbWJlZFwiO1xuZXhwb3J0IGNvbnN0IEtJQkFOQV9BUFBfSUQgPSBcIm9yZ19kYXNoYm9hcmRfZW1iZWRcIjtcbmV4cG9ydCBjb25zdCBLSUJBTkFfUExVR0lOX1ZFUlNJT04gPSBcIjEuMC4wXCI7XG4vKipcbiAqIEJ1aWxkIHRoZSBga2liYW5hLmpzb25gIG1hbmlmZXN0IGZvciBhIHRhcmdldCBLaWJhbmEgdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0gdGFyZ2V0VmVyc2lvbiAtIEtpYmFuYSB2ZXJzaW9uIChkZWZhdWx0cyB0byBcImtpYmFuYVwiKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkS2liYW5hTWFuaWZlc3QodGFyZ2V0VmVyc2lvbiA9IFwia2liYW5hXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBpZDogS0lCQU5BX1BMVUdJTl9JRCxcbiAgICAgICAgdmVyc2lvbjogS0lCQU5BX1BMVUdJTl9WRVJTSU9OLFxuICAgICAgICBraWJhbmFWZXJzaW9uOiB0YXJnZXRWZXJzaW9uLFxuICAgICAgICBzZXJ2ZXI6IHRydWUsXG4gICAgICAgIHVpOiB0cnVlLFxuICAgICAgICByZXF1aXJlZFBsdWdpbnM6IFtcImRhc2hib2FyZFwiLCBcImVtYmVkZGFibGVcIiwgXCJkYXRhXCJdLFxuICAgICAgICBvcHRpb25hbFBsdWdpbnM6IFtdLFxuICAgIH07XG59XG4vKipcbiAqIE1lc3NhZ2UgdHlwZSBjb25zdGFudHMgcmUtZXhwb3J0ZWQgc28gdGhlIGdlbmVyYXRlZCBwbHVnaW4gdGVtcGxhdGVzIGNhblxuICogcmVmZXJlbmNlIHRoZSBzYW1lIHByb3RvY29sIGlkZW50aWZpZXJzIGFzIHRoZSBob3N0IGhlbHBlcnMuXG4gKi9cbmV4cG9ydCB7IEVNQkVEX01FU1NBR0VfVFlQRSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldGdWFXWmxjM1F1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdmNHeDFaMmx1Y3k5cmFXSmhibUV2YldGdWFXWmxjM1F1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdPenM3TzBkQlMwYzdRVUZEU0N4UFFVRlBMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNlVUpCUVc5Q08wRkJSV3BFTEUxQlFVMHNRMEZCUXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEcxQ1FVRnRRaXhEUVVGRE8wRkJRM0JFTEUxQlFVMHNRMEZCUXl4TlFVRk5MR0ZCUVdFc1IwRkJSeXh4UWtGQmNVSXNRMEZCUXp0QlFVTnVSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXhQUVVGUExFTkJRVU03UVVGaE4wTTdPenM3UjBGSlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4dFFrRkJiVUlzUTBGRGFrTXNaMEpCUVhkQ0xGRkJRVkU3U1VGRmFFTXNUMEZCVHp0UlFVTk1MRVZCUVVVc1JVRkJSU3huUWtGQlowSTdVVUZEY0VJc1QwRkJUeXhGUVVGRkxIRkNRVUZ4UWp0UlFVTTVRaXhoUVVGaExFVkJRVVVzWVVGQllUdFJRVU0xUWl4TlFVRk5MRVZCUVVVc1NVRkJTVHRSUVVOYUxFVkJRVVVzUlVGQlJTeEpRVUZKTzFGQlExSXNaVUZCWlN4RlFVRkZMRU5CUVVNc1YwRkJWeXhGUVVGRkxGbEJRVmtzUlVGQlJTeE5RVUZOTEVOQlFVTTdVVUZEY0VRc1pVRkJaU3hGUVVGRkxFVkJRVVU3UzBGRGNFSXNRMEZCUXp0QlFVTktMRU5CUVVNN1FVRkZSRHM3TzBkQlIwYzdRVUZEU0N4UFFVRlBMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1FHMXZaSFZzWlNCcGJuUmxaM0poZEdsdmJuTXZjR3gxWjJsdWN5OXJhV0poYm1FdmJXRnVhV1psYzNSY2JpQXFJRUJ6ZFcxdFlYSjVJRXRwWW1GdVlTQmxiV0psWkNCd2JIVm5hVzRnYldGdWFXWmxjM1FnWW5WcGJHUmxjaTVjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJDZFdsc1pITWdkR2hsSUdCcmFXSmhibUV1YW5OdmJtQWdiV0Z1YVdabGMzUWdabTl5SUhSb1pTQnZjbWN0WVdkdWIzTjBhV05jYmlBcUlHQnZjbWRFWVhOb1ltOWhjbVJGYldKbFpHQWdjR3gxWjJsdUlHRm5ZV2x1YzNRZ1lTQjBZWEpuWlhRZ1MybGlZVzVoSUhabGNuTnBiMjR1WEc0Z0tpOWNibWx0Y0c5eWRDQjdJRVZOUWtWRVgwMUZVMU5CUjBWZlZGbFFSU0I5SUdaeWIyMGdYQ0l1TGk5amIyNTBjbUZqZEZ3aU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1MwbENRVTVCWDFCTVZVZEpUbDlKUkNBOUlGd2liM0puUkdGemFHSnZZWEprUlcxaVpXUmNJanRjYm1WNGNHOXlkQ0JqYjI1emRDQkxTVUpCVGtGZlFWQlFYMGxFSUQwZ1hDSnZjbWRmWkdGemFHSnZZWEprWDJWdFltVmtYQ0k3WEc1bGVIQnZjblFnWTI5dWMzUWdTMGxDUVU1QlgxQk1WVWRKVGw5V1JWSlRTVTlPSUQwZ1hDSXhMakF1TUZ3aU8xeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRXRwWW1GdVlVMWhibWxtWlhOMElIdGNiaUFnYVdRNklITjBjbWx1Wnp0Y2JpQWdkbVZ5YzJsdmJqb2djM1J5YVc1bk8xeHVJQ0JyYVdKaGJtRldaWEp6YVc5dU9pQnpkSEpwYm1jN1hHNGdJSE5sY25abGNqb2dZbTl2YkdWaGJqdGNiaUFnZFdrNklHSnZiMnhsWVc0N1hHNGdJSEpsY1hWcGNtVmtVR3gxWjJsdWN6b2djM1J5YVc1blcxMDdYRzRnSUc5d2RHbHZibUZzVUd4MVoybHVjem9nYzNSeWFXNW5XMTA3WEc0Z0lISmxjWFZwY21Wa1FuVnVaR3hsY3o4NklITjBjbWx1WjF0ZE8xeHVmVnh1WEc0dktpcGNiaUFxSUVKMWFXeGtJSFJvWlNCZ2EybGlZVzVoTG1wemIyNWdJRzFoYm1sbVpYTjBJR1p2Y2lCaElIUmhjbWRsZENCTGFXSmhibUVnZG1WeWMybHZiaTVjYmlBcVhHNGdLaUJBY0dGeVlXMGdkR0Z5WjJWMFZtVnljMmx2YmlBdElFdHBZbUZ1WVNCMlpYSnphVzl1SUNoa1pXWmhkV3gwY3lCMGJ5QmNJbXRwWW1GdVlWd2lLUzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHSjFhV3hrUzJsaVlXNWhUV0Z1YVdabGMzUW9YRzRnSUhSaGNtZGxkRlpsY25OcGIyNDZJSE4wY21sdVp5QTlJRndpYTJsaVlXNWhYQ0pjYmlrNklFdHBZbUZ1WVUxaGJtbG1aWE4wSUh0Y2JpQWdjbVYwZFhKdUlIdGNiaUFnSUNCcFpEb2dTMGxDUVU1QlgxQk1WVWRKVGw5SlJDeGNiaUFnSUNCMlpYSnphVzl1T2lCTFNVSkJUa0ZmVUV4VlIwbE9YMVpGVWxOSlQwNHNYRzRnSUNBZ2EybGlZVzVoVm1WeWMybHZiam9nZEdGeVoyVjBWbVZ5YzJsdmJpeGNiaUFnSUNCelpYSjJaWEk2SUhSeWRXVXNYRzRnSUNBZ2RXazZJSFJ5ZFdVc1hHNGdJQ0FnY21WeGRXbHlaV1JRYkhWbmFXNXpPaUJiWENKa1lYTm9ZbTloY21SY0lpd2dYQ0psYldKbFpHUmhZbXhsWENJc0lGd2laR0YwWVZ3aVhTeGNiaUFnSUNCdmNIUnBiMjVoYkZCc2RXZHBibk02SUZ0ZExGeHVJQ0I5TzF4dWZWeHVYRzR2S2lwY2JpQXFJRTFsYzNOaFoyVWdkSGx3WlNCamIyNXpkR0Z1ZEhNZ2NtVXRaWGh3YjNKMFpXUWdjMjhnZEdobElHZGxibVZ5WVhSbFpDQndiSFZuYVc0Z2RHVnRjR3hoZEdWeklHTmhibHh1SUNvZ2NtVm1aWEpsYm1ObElIUm9aU0J6WVcxbElIQnliM1J2WTI5c0lHbGtaVzUwYVdacFpYSnpJR0Z6SUhSb1pTQm9iM04wSUdobGJIQmxjbk11WEc0Z0tpOWNibVY0Y0c5eWRDQjdJRVZOUWtWRVgwMUZVMU5CUjBWZlZGbFFSU0I5TzF4dUlsMTkiXX0=