@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.
- package/README.md +11 -3
- package/dist/integrations.cjs +2087 -2
- package/dist/integrations.js +2356 -2
- package/jest.config.cjs +1 -1
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
- package/lib/cjs/blob/core/BlobKey.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
- package/lib/cjs/blob/core/BlobValue.cjs +2 -2
- package/lib/cjs/blob/core/index.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/gcp/index.cjs +2 -2
- package/lib/cjs/blob/index.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/index.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/local/index.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/memory/index.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/feature-flags/constants.cjs +16 -0
- package/lib/cjs/feature-flags/decorators.cjs +65 -0
- package/lib/cjs/feature-flags/environment.cjs +26 -0
- package/lib/cjs/feature-flags/index.cjs +31 -0
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +81 -0
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +78 -0
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +25 -0
- package/lib/cjs/feature-flags/readers/index.cjs +19 -0
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +259 -0
- package/lib/cjs/feature-flags/types.cjs +4 -0
- package/lib/cjs/feature-flags/utils.cjs +141 -0
- package/lib/cjs/graph/engine/constants.cjs +2 -2
- package/lib/cjs/graph/engine/decorators.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/index.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +2 -2
- package/lib/cjs/graph/engine/events/index.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/index.cjs +2 -2
- package/lib/cjs/graph/engine/index.cjs +2 -2
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/index.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/index.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs +2 -2
- package/lib/cjs/graph/engine/planning/index.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +2 -2
- package/lib/cjs/graph/engine/registry/index.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/index.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/index.cjs +2 -2
- package/lib/cjs/graph/engine/types.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/index.cjs +2 -2
- package/lib/cjs/graph/index.cjs +2 -2
- package/lib/cjs/graph/shared/constants.cjs +2 -2
- package/lib/cjs/graph/shared/index.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/agent.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/base.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/category-styles.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/flow-control.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/index.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/triggers.cjs +2 -2
- package/lib/cjs/graph/shared/types.cjs +2 -2
- package/lib/cjs/index.cjs +6 -5
- package/lib/cjs/keycloak/index.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +329 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +37 -0
- package/lib/cjs/kibana/builders/index.cjs +20 -0
- package/lib/cjs/kibana/helpers.cjs +20 -16
- package/lib/cjs/kibana/index.cjs +3 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs +2 -2
- package/lib/cjs/kibana/types.cjs +11 -2
- package/lib/cjs/loader/ObjectLoader.cjs +154 -0
- package/lib/cjs/loader/families.cjs +78 -0
- package/lib/cjs/loader/index.cjs +28 -0
- package/lib/cjs/loader/types.cjs +4 -0
- package/lib/cjs/namespaces/index.cjs +2 -2
- package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group.model.cjs +2 -2
- package/lib/cjs/namespaces/models/index.cjs +2 -2
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role.model.cjs +2 -2
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/user.model.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group.service.cjs +2 -2
- package/lib/cjs/namespaces/services/index.cjs +2 -2
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
- package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role.service.cjs +2 -2
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
- package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/user.service.cjs +2 -2
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/nest/decorators.cjs +17 -0
- package/lib/cjs/nest/graph/GraphExecutionController.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +2 -2
- package/lib/cjs/nest/graph/GraphResultService.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs +2 -2
- package/lib/cjs/nest/graph/index.cjs +2 -2
- package/lib/cjs/nest/graph/main.cjs +2 -2
- package/lib/cjs/nest/index.cjs +3 -3
- package/lib/cjs/nest/keycloakAuthHandler.cjs +74 -35
- package/lib/cjs/nest/keycloakModule.cjs +7 -10
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/utils.cjs +58 -50
- package/lib/cjs/plugins/contract.cjs +76 -0
- package/lib/cjs/plugins/index.cjs +35 -0
- package/lib/cjs/plugins/kibana/host.cjs +24 -0
- package/lib/cjs/plugins/kibana/index.cjs +38 -0
- package/lib/cjs/plugins/kibana/installer.cjs +180 -0
- package/lib/cjs/plugins/kibana/manifest.cjs +33 -0
- package/lib/cjs/plugins/kibana/templates.cjs +503 -0
- package/lib/cjs/plugins/kibana/types.cjs +33 -0
- package/lib/cjs/plugins/superset/host.cjs +26 -0
- package/lib/cjs/plugins/superset/index.cjs +40 -0
- package/lib/cjs/plugins/superset/installer.cjs +232 -0
- package/lib/cjs/plugins/superset/manifest.cjs +35 -0
- package/lib/cjs/plugins/superset/templates.cjs +844 -0
- package/lib/cjs/plugins/superset/types.cjs +39 -0
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/aws/index.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
- package/lib/cjs/secrets/core/SecretName.cjs +2 -2
- package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
- package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
- package/lib/cjs/secrets/core/SecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
- package/lib/cjs/secrets/core/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/gcp/index.cjs +2 -2
- package/lib/cjs/secrets/index.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/model/Secret.cjs +2 -2
- package/lib/cjs/secrets/model/index.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/onepassword/index.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/vault/index.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/utils.cjs +2 -2
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/core/BlobErrors.js +1 -1
- package/lib/esm/blob/core/BlobKey.js +1 -1
- package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
- package/lib/esm/blob/core/BlobStoreService.js +1 -1
- package/lib/esm/blob/core/BlobTypes.js +1 -1
- package/lib/esm/blob/core/BlobValue.js +1 -1
- package/lib/esm/blob/core/index.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
- package/lib/esm/blob/gcp/index.js +1 -1
- package/lib/esm/blob/index.js +1 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/index.js +1 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
- package/lib/esm/blob/local/index.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
- package/lib/esm/blob/memory/index.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/feature-flags/constants.js +12 -0
- package/lib/esm/feature-flags/decorators.js +49 -0
- package/lib/esm/feature-flags/environment.js +18 -0
- package/lib/esm/feature-flags/index.js +14 -0
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +72 -0
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +69 -0
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js +19 -0
- package/lib/esm/feature-flags/readers/index.js +2 -0
- package/lib/esm/feature-flags/services/FeatureFlag.service.js +250 -0
- package/lib/esm/feature-flags/types.js +2 -0
- package/lib/esm/feature-flags/utils.js +126 -0
- package/lib/esm/graph/engine/constants.js +1 -1
- package/lib/esm/graph/engine/decorators.js +1 -1
- package/lib/esm/graph/engine/errors/GraphCycleError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphExecutionError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphInputError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPinningError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPortError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphStoreError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphTopologyError.js +1 -1
- package/lib/esm/graph/engine/errors/index.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js +1 -1
- package/lib/esm/graph/engine/events/index.js +1 -1
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js +1 -1
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/index.js +1 -1
- package/lib/esm/graph/engine/index.js +1 -1
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +1 -1
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/index.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningService.js +1 -1
- package/lib/esm/graph/engine/pinning/index.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +1 -1
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js +1 -1
- package/lib/esm/graph/engine/planning/GraphTopology.js +1 -1
- package/lib/esm/graph/engine/planning/index.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +1 -1
- package/lib/esm/graph/engine/registry/index.js +1 -1
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +1 -1
- package/lib/esm/graph/engine/snapshots/index.js +1 -1
- package/lib/esm/graph/engine/store/GraphCachedValue.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueKey.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStore.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/index.js +1 -1
- package/lib/esm/graph/engine/types.js +1 -1
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +1 -1
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +1 -1
- package/lib/esm/graph/engine/validation/GraphValueValidator.js +1 -1
- package/lib/esm/graph/engine/validation/index.js +1 -1
- package/lib/esm/graph/index.js +1 -1
- package/lib/esm/graph/shared/constants.js +1 -1
- package/lib/esm/graph/shared/index.js +1 -1
- package/lib/esm/graph/shared/nodes/agent.js +1 -1
- package/lib/esm/graph/shared/nodes/base.js +1 -1
- package/lib/esm/graph/shared/nodes/category-styles.js +1 -1
- package/lib/esm/graph/shared/nodes/flow-control.js +1 -1
- package/lib/esm/graph/shared/nodes/index.js +1 -1
- package/lib/esm/graph/shared/nodes/triggers.js +1 -1
- package/lib/esm/graph/shared/types.js +1 -1
- package/lib/esm/index.js +5 -4
- package/lib/esm/keycloak/index.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/runtime.js +1 -1
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js +319 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +32 -0
- package/lib/esm/kibana/builders/index.js +3 -0
- package/lib/esm/kibana/helpers.js +19 -15
- package/lib/esm/kibana/index.js +2 -1
- package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
- package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
- package/lib/esm/kibana/services/KibanaService.js +1 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
- package/lib/esm/kibana/services/KibanaUserService.js +1 -1
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/runtime.js +1 -1
- package/lib/esm/kibana/types.js +13 -2
- package/lib/esm/loader/ObjectLoader.js +115 -0
- package/lib/esm/loader/families.js +66 -0
- package/lib/esm/loader/index.js +11 -0
- package/lib/esm/loader/types.js +2 -0
- package/lib/esm/namespaces/index.js +1 -1
- package/lib/esm/namespaces/models/authorization-model.js +1 -1
- package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js +1 -1
- package/lib/esm/namespaces/models/group.model.js +1 -1
- package/lib/esm/namespaces/models/index.js +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js +1 -1
- package/lib/esm/namespaces/models/permission.model.js +1 -1
- package/lib/esm/namespaces/models/principal.model.js +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js +1 -1
- package/lib/esm/namespaces/models/role.model.js +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
- package/lib/esm/namespaces/models/tenant.model.js +1 -1
- package/lib/esm/namespaces/models/user.model.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
- package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
- package/lib/esm/namespaces/services/group-membership.service.js +1 -1
- package/lib/esm/namespaces/services/group.service.js +1 -1
- package/lib/esm/namespaces/services/index.js +1 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit.service.js +1 -1
- package/lib/esm/namespaces/services/permission.service.js +1 -1
- package/lib/esm/namespaces/services/principal.service.js +1 -1
- package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
- package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
- package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
- package/lib/esm/namespaces/services/role-permission.service.js +1 -1
- package/lib/esm/namespaces/services/role.service.js +1 -1
- package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
- package/lib/esm/namespaces/services/system-management.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
- package/lib/esm/namespaces/services/tenant.service.js +1 -1
- package/lib/esm/namespaces/services/user.service.js +1 -1
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/nest/decorators.js +12 -0
- package/lib/esm/nest/graph/GraphExecutionController.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionModule.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -1
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +1 -1
- package/lib/esm/nest/graph/GraphResultService.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowModel.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowService.js +1 -1
- package/lib/esm/nest/graph/index.js +1 -1
- package/lib/esm/nest/graph/main.js +1 -1
- package/lib/esm/nest/index.js +2 -2
- package/lib/esm/nest/keycloakAuthHandler.js +67 -35
- package/lib/esm/nest/keycloakModule.js +7 -10
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/utils.js +55 -46
- package/lib/esm/plugins/contract.js +68 -0
- package/lib/esm/plugins/index.js +18 -0
- package/lib/esm/plugins/kibana/host.js +19 -0
- package/lib/esm/plugins/kibana/index.js +14 -0
- package/lib/esm/plugins/kibana/installer.js +140 -0
- package/lib/esm/plugins/kibana/manifest.js +32 -0
- package/lib/esm/plugins/kibana/templates.js +499 -0
- package/lib/esm/plugins/kibana/types.js +10 -0
- package/lib/esm/plugins/superset/host.js +21 -0
- package/lib/esm/plugins/superset/index.js +16 -0
- package/lib/esm/plugins/superset/installer.js +192 -0
- package/lib/esm/plugins/superset/manifest.js +30 -0
- package/lib/esm/plugins/superset/templates.js +840 -0
- package/lib/esm/plugins/superset/types.js +11 -0
- package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/aws/index.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/core/SecretErrors.js +1 -1
- package/lib/esm/secrets/core/SecretName.js +1 -1
- package/lib/esm/secrets/core/SecretReference.js +1 -1
- package/lib/esm/secrets/core/SecretSerialization.js +1 -1
- package/lib/esm/secrets/core/SecretService.js +1 -1
- package/lib/esm/secrets/core/SecretTypes.js +1 -1
- package/lib/esm/secrets/core/index.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
- package/lib/esm/secrets/gcp/index.js +1 -1
- package/lib/esm/secrets/index.js +1 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js +1 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/model/Secret.js +1 -1
- package/lib/esm/secrets/model/index.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/onepassword/index.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/vault/index.js +1 -1
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/types/feature-flags/constants.d.cts +11 -0
- package/lib/types/feature-flags/constants.d.mts +11 -0
- package/lib/types/feature-flags/decorators.d.cts +11 -0
- package/lib/types/feature-flags/decorators.d.mts +11 -0
- package/lib/types/feature-flags/environment.d.cts +11 -0
- package/lib/types/feature-flags/environment.d.mts +11 -0
- package/lib/types/feature-flags/index.d.cts +13 -0
- package/lib/types/feature-flags/index.d.mts +13 -0
- package/lib/types/feature-flags/models/FeatureFlag.model.d.cts +16 -0
- package/lib/types/feature-flags/models/FeatureFlag.model.d.mts +16 -0
- package/lib/types/feature-flags/models/FeatureFlagAccess.model.d.cts +15 -0
- package/lib/types/feature-flags/models/FeatureFlagAccess.model.d.mts +15 -0
- package/lib/types/feature-flags/readers/FeatureFlagReader.d.cts +10 -0
- package/lib/types/feature-flags/readers/FeatureFlagReader.d.mts +10 -0
- package/lib/types/feature-flags/readers/index.d.cts +1 -0
- package/lib/types/feature-flags/readers/index.d.mts +1 -0
- package/lib/types/feature-flags/services/FeatureFlag.service.d.cts +43 -0
- package/lib/types/feature-flags/services/FeatureFlag.service.d.mts +43 -0
- package/lib/types/feature-flags/types.d.cts +39 -0
- package/lib/types/feature-flags/types.d.mts +39 -0
- package/lib/types/feature-flags/utils.d.cts +13 -0
- package/lib/types/feature-flags/utils.d.mts +13 -0
- package/lib/types/index.d.cts +3 -2
- package/lib/types/index.d.mts +3 -2
- package/lib/types/kibana/builders/KibanaIndexBuilder.d.cts +67 -0
- package/lib/types/kibana/builders/KibanaIndexBuilder.d.mts +67 -0
- package/lib/types/kibana/builders/KibanaIndexBuilderCollection.d.cts +17 -0
- package/lib/types/kibana/builders/KibanaIndexBuilderCollection.d.mts +17 -0
- package/lib/types/kibana/builders/index.d.cts +2 -0
- package/lib/types/kibana/builders/index.d.mts +2 -0
- package/lib/types/kibana/index.d.cts +1 -0
- package/lib/types/kibana/index.d.mts +1 -0
- package/lib/types/kibana/types.d.cts +11 -0
- package/lib/types/kibana/types.d.mts +11 -0
- package/lib/types/loader/ObjectLoader.d.cts +27 -0
- package/lib/types/loader/ObjectLoader.d.mts +27 -0
- package/lib/types/loader/families.d.cts +34 -0
- package/lib/types/loader/families.d.mts +34 -0
- package/lib/types/loader/index.d.cts +10 -0
- package/lib/types/loader/index.d.mts +10 -0
- package/lib/types/loader/types.d.cts +24 -0
- package/lib/types/loader/types.d.mts +24 -0
- package/lib/types/nest/decorators.d.cts +8 -0
- package/lib/types/nest/decorators.d.mts +8 -0
- package/lib/types/nest/index.d.cts +1 -1
- package/lib/types/nest/index.d.mts +1 -1
- package/lib/types/nest/keycloakAuthHandler.d.cts +19 -42
- package/lib/types/nest/keycloakAuthHandler.d.mts +19 -42
- package/lib/types/nest/keycloakModule.d.cts +3 -5
- package/lib/types/nest/keycloakModule.d.mts +3 -5
- package/lib/types/nest/types.d.cts +2 -0
- package/lib/types/nest/types.d.mts +2 -0
- package/lib/types/nest/utils.d.cts +3 -4
- package/lib/types/nest/utils.d.mts +3 -4
- package/lib/types/plugins/contract.d.cts +180 -0
- package/lib/types/plugins/contract.d.mts +180 -0
- package/lib/types/plugins/index.d.cts +17 -0
- package/lib/types/plugins/index.d.mts +17 -0
- package/lib/types/plugins/kibana/host.d.cts +18 -0
- package/lib/types/plugins/kibana/host.d.mts +18 -0
- package/lib/types/plugins/kibana/index.d.cts +13 -0
- package/lib/types/plugins/kibana/index.d.mts +13 -0
- package/lib/types/plugins/kibana/installer.d.cts +45 -0
- package/lib/types/plugins/kibana/installer.d.mts +45 -0
- package/lib/types/plugins/kibana/manifest.d.cts +31 -0
- package/lib/types/plugins/kibana/manifest.d.mts +31 -0
- package/lib/types/plugins/kibana/templates.d.cts +12 -0
- package/lib/types/plugins/kibana/templates.d.mts +12 -0
- package/lib/types/plugins/kibana/types.d.cts +9 -0
- package/lib/types/plugins/kibana/types.d.mts +9 -0
- package/lib/types/plugins/superset/host.d.cts +20 -0
- package/lib/types/plugins/superset/host.d.mts +20 -0
- package/lib/types/plugins/superset/index.d.cts +15 -0
- package/lib/types/plugins/superset/index.d.mts +15 -0
- package/lib/types/plugins/superset/installer.d.cts +70 -0
- package/lib/types/plugins/superset/installer.d.mts +70 -0
- package/lib/types/plugins/superset/manifest.d.cts +28 -0
- package/lib/types/plugins/superset/manifest.d.mts +28 -0
- package/lib/types/plugins/superset/templates.d.cts +12 -0
- package/lib/types/plugins/superset/templates.d.mts +12 -0
- package/lib/types/plugins/superset/types.d.cts +10 -0
- package/lib/types/plugins/superset/types.d.mts +10 -0
- package/package.json +62 -3
- package/plugins/kibana/.gitignore +16 -0
- package/plugins/kibana/Dockerfile +19 -0
- package/plugins/kibana/docker-compose.yml +50 -0
- package/plugins/kibana/host/index.html +101 -0
- package/plugins/kibana/setup-dashboards.sh +84 -0
- package/plugins/superset/.gitignore +17 -0
- package/plugins/superset/Dockerfile +79 -0
- package/plugins/superset/docker-compose.yml +62 -0
- package/plugins/superset/host/index.html +168 -0
- package/plugins/superset/setup-dashboards.sh +106 -0
- package/plugins/superset/superset_config.py +49 -0
- package/dist/integrations.cjs.map +0 -1
- package/dist/integrations.js.map +0 -1
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/azure/index.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
- package/lib/cjs/blob/core/index.cjs.map +0 -1
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/gcp/index.cjs.map +0 -1
- package/lib/cjs/blob/index.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/index.cjs.map +0 -1
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/local/index.cjs.map +0 -1
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/memory/index.cjs.map +0 -1
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/index.cjs.map +0 -1
- package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
- package/lib/cjs/docker/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/constants.cjs.map +0 -1
- package/lib/cjs/graph/engine/decorators.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +0 -1
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/registry/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +0 -1
- package/lib/cjs/graph/engine/snapshots/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/types.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/index.cjs.map +0 -1
- package/lib/cjs/graph/index.cjs.map +0 -1
- package/lib/cjs/graph/shared/constants.cjs.map +0 -1
- package/lib/cjs/graph/shared/index.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/agent.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/base.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/index.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/triggers.cjs.map +0 -1
- package/lib/cjs/graph/shared/types.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/keycloak/index.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/index.cjs.map +0 -1
- package/lib/cjs/keycloak/services/runtime.cjs.map +0 -1
- package/lib/cjs/keycloak/types.cjs.map +0 -1
- package/lib/cjs/kibana/helpers.cjs.map +0 -1
- package/lib/cjs/kibana/index.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
- package/lib/cjs/kibana/services/index.cjs.map +0 -1
- package/lib/cjs/kibana/services/runtime.cjs.map +0 -1
- package/lib/cjs/kibana/types.cjs.map +0 -1
- package/lib/cjs/namespaces/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/authorization-model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/principal.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/user.model.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +0 -1
- package/lib/cjs/namespaces/services/authz.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/index.cjs.map +0 -1
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/principal.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/system-management.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/user.service.cjs.map +0 -1
- package/lib/cjs/namespaces/types.cjs.map +0 -1
- package/lib/cjs/namespaces/utils.cjs.map +0 -1
- package/lib/cjs/nest/authService.cjs +0 -91
- package/lib/cjs/nest/authService.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphResultService.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs.map +0 -1
- package/lib/cjs/nest/graph/index.cjs.map +0 -1
- package/lib/cjs/nest/graph/main.cjs.map +0 -1
- package/lib/cjs/nest/index.cjs.map +0 -1
- package/lib/cjs/nest/keycloakAuthHandler.cjs.map +0 -1
- package/lib/cjs/nest/keycloakModule.cjs.map +0 -1
- package/lib/cjs/nest/logging.cjs.map +0 -1
- package/lib/cjs/nest/types.cjs.map +0 -1
- package/lib/cjs/nest/utils.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/aws/index.cjs.map +0 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/azure/index.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretErrors.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretName.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretReference.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretSerialization.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretService.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretTypes.cjs.map +0 -1
- package/lib/cjs/secrets/core/index.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/index.cjs.map +0 -1
- package/lib/cjs/secrets/index.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/model/Secret.cjs.map +0 -1
- package/lib/cjs/secrets/model/index.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/index.cjs.map +0 -1
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/vault/index.cjs.map +0 -1
- package/lib/cjs/shared/runtime.cjs.map +0 -1
- package/lib/cjs/utils.cjs.map +0 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +0 -1
- package/lib/esm/blob/azure/index.js.map +0 -1
- package/lib/esm/blob/core/BlobErrors.js.map +0 -1
- package/lib/esm/blob/core/BlobKey.js.map +0 -1
- package/lib/esm/blob/core/BlobStoreFactory.js.map +0 -1
- package/lib/esm/blob/core/BlobStoreService.js.map +0 -1
- package/lib/esm/blob/core/BlobTypes.js.map +0 -1
- package/lib/esm/blob/core/BlobValue.js.map +0 -1
- package/lib/esm/blob/core/index.js.map +0 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +0 -1
- package/lib/esm/blob/gcp/index.js.map +0 -1
- package/lib/esm/blob/index.js.map +0 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +0 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/index.js.map +0 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js.map +0 -1
- package/lib/esm/blob/local/index.js.map +0 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +0 -1
- package/lib/esm/blob/memory/index.js.map +0 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/index.js.map +0 -1
- package/lib/esm/docker/DockerComposeService.js.map +0 -1
- package/lib/esm/docker/index.js.map +0 -1
- package/lib/esm/graph/engine/constants.js.map +0 -1
- package/lib/esm/graph/engine/decorators.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphCycleError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphInputError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphPinningError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphPortError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphStoreError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +0 -1
- package/lib/esm/graph/engine/errors/index.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +0 -1
- package/lib/esm/graph/engine/events/index.js.map +0 -1
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/index.js.map +0 -1
- package/lib/esm/graph/engine/index.js.map +0 -1
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +0 -1
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/index.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +0 -1
- package/lib/esm/graph/engine/pinning/index.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphTopology.js.map +0 -1
- package/lib/esm/graph/engine/planning/index.js.map +0 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +0 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +0 -1
- package/lib/esm/graph/engine/registry/index.js.map +0 -1
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +0 -1
- package/lib/esm/graph/engine/snapshots/index.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphCachedValue.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphValueKey.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphValueStore.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +0 -1
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +0 -1
- package/lib/esm/graph/engine/store/index.js.map +0 -1
- package/lib/esm/graph/engine/types.js.map +0 -1
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +0 -1
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +0 -1
- package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +0 -1
- package/lib/esm/graph/engine/validation/index.js.map +0 -1
- package/lib/esm/graph/index.js.map +0 -1
- package/lib/esm/graph/shared/constants.js.map +0 -1
- package/lib/esm/graph/shared/index.js.map +0 -1
- package/lib/esm/graph/shared/nodes/agent.js.map +0 -1
- package/lib/esm/graph/shared/nodes/base.js.map +0 -1
- package/lib/esm/graph/shared/nodes/category-styles.js.map +0 -1
- package/lib/esm/graph/shared/nodes/flow-control.js.map +0 -1
- package/lib/esm/graph/shared/nodes/index.js.map +0 -1
- package/lib/esm/graph/shared/nodes/triggers.js.map +0 -1
- package/lib/esm/graph/shared/types.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/keycloak/index.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
- package/lib/esm/keycloak/services/index.js.map +0 -1
- package/lib/esm/keycloak/services/runtime.js.map +0 -1
- package/lib/esm/keycloak/types.js.map +0 -1
- package/lib/esm/kibana/helpers.js.map +0 -1
- package/lib/esm/kibana/index.js.map +0 -1
- package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
- package/lib/esm/kibana/services/index.js.map +0 -1
- package/lib/esm/kibana/services/runtime.js.map +0 -1
- package/lib/esm/kibana/types.js.map +0 -1
- package/lib/esm/namespaces/index.js.map +0 -1
- package/lib/esm/namespaces/models/authorization-model.js.map +0 -1
- package/lib/esm/namespaces/models/effective-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/group-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/group.model.js.map +0 -1
- package/lib/esm/namespaces/models/index.js.map +0 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit.model.js.map +0 -1
- package/lib/esm/namespaces/models/permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/principal.model.js.map +0 -1
- package/lib/esm/namespaces/models/protected-resource.model.js.map +0 -1
- package/lib/esm/namespaces/models/resource-grant.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-assignment.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/role.model.js.map +0 -1
- package/lib/esm/namespaces/models/storage-binding.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant.model.js.map +0 -1
- package/lib/esm/namespaces/models/user.model.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js.map +0 -1
- package/lib/esm/namespaces/services/authz.service.js.map +0 -1
- package/lib/esm/namespaces/services/bootstrap.service.js.map +0 -1
- package/lib/esm/namespaces/services/effective-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/group-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/group.service.js.map +0 -1
- package/lib/esm/namespaces/services/index.js.map +0 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit.service.js.map +0 -1
- package/lib/esm/namespaces/services/permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/principal.service.js.map +0 -1
- package/lib/esm/namespaces/services/protected-resource.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-grant.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-assignment.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/role.service.js.map +0 -1
- package/lib/esm/namespaces/services/storage-binding.service.js.map +0 -1
- package/lib/esm/namespaces/services/system-management.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant.service.js.map +0 -1
- package/lib/esm/namespaces/services/user.service.js.map +0 -1
- package/lib/esm/namespaces/types.js.map +0 -1
- package/lib/esm/namespaces/utils.js.map +0 -1
- package/lib/esm/nest/authService.js +0 -86
- package/lib/esm/nest/authService.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutionController.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutionModule.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +0 -1
- package/lib/esm/nest/graph/GraphResultService.js.map +0 -1
- package/lib/esm/nest/graph/GraphWorkflowModel.js.map +0 -1
- package/lib/esm/nest/graph/GraphWorkflowService.js.map +0 -1
- package/lib/esm/nest/graph/index.js.map +0 -1
- package/lib/esm/nest/graph/main.js.map +0 -1
- package/lib/esm/nest/index.js.map +0 -1
- package/lib/esm/nest/keycloakAuthHandler.js.map +0 -1
- package/lib/esm/nest/keycloakModule.js.map +0 -1
- package/lib/esm/nest/logging.js.map +0 -1
- package/lib/esm/nest/types.js.map +0 -1
- package/lib/esm/nest/utils.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretService.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/aws/index.js.map +0 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +0 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/azure/index.js.map +0 -1
- package/lib/esm/secrets/core/SecretErrors.js.map +0 -1
- package/lib/esm/secrets/core/SecretName.js.map +0 -1
- package/lib/esm/secrets/core/SecretReference.js.map +0 -1
- package/lib/esm/secrets/core/SecretSerialization.js.map +0 -1
- package/lib/esm/secrets/core/SecretService.js.map +0 -1
- package/lib/esm/secrets/core/SecretTypes.js.map +0 -1
- package/lib/esm/secrets/core/index.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +0 -1
- package/lib/esm/secrets/gcp/index.js.map +0 -1
- package/lib/esm/secrets/index.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretService.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/model/Secret.js.map +0 -1
- package/lib/esm/secrets/model/index.js.map +0 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +0 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/onepassword/index.js.map +0 -1
- package/lib/esm/secrets/vault/VaultSecretService.js.map +0 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/vault/index.js.map +0 -1
- package/lib/esm/shared/runtime.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
- package/lib/types/nest/authService.d.cts +0 -63
- package/lib/types/nest/authService.d.mts +0 -63
|
@@ -0,0 +1,33 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.kibanaPluginFiles = exports.buildKibanaManifest = exports.KIBANA_PLUGIN_VERSION = exports.KIBANA_APP_ID = exports.KIBANA_PLUGIN_ID = void 0;
|
|
18
|
+
/**
|
|
19
|
+
* @module integrations/plugins/kibana/types
|
|
20
|
+
* @summary Kibana embed plugin types.
|
|
21
|
+
* @description Re-exports the shared contract types and exposes Kibana-specific
|
|
22
|
+
* constants/types for the org-agnostic dashboard embed plugin.
|
|
23
|
+
*/
|
|
24
|
+
__exportStar(require("./../contract.cjs"), exports);
|
|
25
|
+
var manifest_js_1 = require("./manifest.cjs");
|
|
26
|
+
Object.defineProperty(exports, "KIBANA_PLUGIN_ID", { enumerable: true, get: function () { return manifest_js_1.KIBANA_PLUGIN_ID; } });
|
|
27
|
+
Object.defineProperty(exports, "KIBANA_APP_ID", { enumerable: true, get: function () { return manifest_js_1.KIBANA_APP_ID; } });
|
|
28
|
+
Object.defineProperty(exports, "KIBANA_PLUGIN_VERSION", { enumerable: true, get: function () { return manifest_js_1.KIBANA_PLUGIN_VERSION; } });
|
|
29
|
+
Object.defineProperty(exports, "buildKibanaManifest", { enumerable: true, get: function () { return manifest_js_1.buildKibanaManifest; } });
|
|
30
|
+
var templates_js_1 = require("./templates.cjs");
|
|
31
|
+
Object.defineProperty(exports, "kibanaPluginFiles", { enumerable: true, get: function () { return templates_js_1.kibanaPluginFiles; } });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2lucy9raWJhbmEvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSCxpQ0FBNEI7QUFDNUIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLG1CQUFtQixHQUVwQixzQkFBbUI7QUFDcEIsT0FBTyxFQUFFLGlCQUFpQixFQUF5Qix1QkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3BsdWdpbnMva2liYW5hL3R5cGVzXG4gKiBAc3VtbWFyeSBLaWJhbmEgZW1iZWQgcGx1Z2luIHR5cGVzLlxuICogQGRlc2NyaXB0aW9uIFJlLWV4cG9ydHMgdGhlIHNoYXJlZCBjb250cmFjdCB0eXBlcyBhbmQgZXhwb3NlcyBLaWJhbmEtc3BlY2lmaWNcbiAqIGNvbnN0YW50cy90eXBlcyBmb3IgdGhlIG9yZy1hZ25vc3RpYyBkYXNoYm9hcmQgZW1iZWQgcGx1Z2luLlxuICovXG5leHBvcnQgKiBmcm9tIFwiLi4vY29udHJhY3RcIjtcbmV4cG9ydCB7XG4gIEtJQkFOQV9QTFVHSU5fSUQsXG4gIEtJQkFOQV9BUFBfSUQsXG4gIEtJQkFOQV9QTFVHSU5fVkVSU0lPTixcbiAgYnVpbGRLaWJhbmFNYW5pZmVzdCxcbiAgdHlwZSBLaWJhbmFNYW5pZmVzdCxcbn0gZnJvbSBcIi4vbWFuaWZlc3RcIjtcbmV4cG9ydCB7IGtpYmFuYVBsdWdpbkZpbGVzLCB0eXBlIEtpYmFuYVBsdWdpbkZpbGUgfSBmcm9tIFwiLi90ZW1wbGF0ZXNcIjtcbiJdfQ==
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsbURBQWlDO0FBQ2pDLDZDQUE2RztBQUFwRywrR0FBQSxnQkFBZ0IsT0FBQTtBQUFFLDRHQUFBLGFBQWEsT0FBQTtBQUFFLG9IQUFBLHFCQUFxQixPQUFBO0FBQUUsa0hBQUEsbUJBQW1CLE9BQUE7QUFDcEYsK0NBQW1EO0FBQTFDLGlIQUFBLGlCQUFpQixPQUFBO0FBQzFCLGtrQ0FBa2tDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9wbHVnaW5zL2tpYmFuYS90eXBlc1xuICogQHN1bW1hcnkgS2liYW5hIGVtYmVkIHBsdWdpbiB0eXBlcy5cbiAqIEBkZXNjcmlwdGlvbiBSZS1leHBvcnRzIHRoZSBzaGFyZWQgY29udHJhY3QgdHlwZXMgYW5kIGV4cG9zZXMgS2liYW5hLXNwZWNpZmljXG4gKiBjb25zdGFudHMvdHlwZXMgZm9yIHRoZSBvcmctYWdub3N0aWMgZGFzaGJvYXJkIGVtYmVkIHBsdWdpbi5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vLi4vY29udHJhY3QuanNcIjtcbmV4cG9ydCB7IEtJQkFOQV9QTFVHSU5fSUQsIEtJQkFOQV9BUFBfSUQsIEtJQkFOQV9QTFVHSU5fVkVSU0lPTiwgYnVpbGRLaWJhbmFNYW5pZmVzdCwgfSBmcm9tIFwiLi9tYW5pZmVzdC5qc1wiO1xuZXhwb3J0IHsga2liYW5hUGx1Z2luRmlsZXMgfSBmcm9tIFwiLi90ZW1wbGF0ZXMuanNcIjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRIbHdaWE11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdmNHeDFaMmx1Y3k5cmFXSmhibUV2ZEhsd1pYTXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFN096czdPMGRCUzBjN1FVRkRTQ3hwUTBGQk5FSTdRVUZETlVJc1QwRkJUeXhGUVVOTUxHZENRVUZuUWl4RlFVTm9RaXhoUVVGaExFVkJRMklzY1VKQlFYRkNMRVZCUTNKQ0xHMUNRVUZ0UWl4SFFVVndRaXh6UWtGQmJVSTdRVUZEY0VJc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RlFVRjVRaXgxUWtGQmIwSWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lwY2JpQXFJRUJ0YjJSMWJHVWdhVzUwWldkeVlYUnBiMjV6TDNCc2RXZHBibk12YTJsaVlXNWhMM1I1Y0dWelhHNGdLaUJBYzNWdGJXRnllU0JMYVdKaGJtRWdaVzFpWldRZ2NHeDFaMmx1SUhSNWNHVnpMbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRkpsTFdWNGNHOXlkSE1nZEdobElITm9ZWEpsWkNCamIyNTBjbUZqZENCMGVYQmxjeUJoYm1RZ1pYaHdiM05sY3lCTGFXSmhibUV0YzNCbFkybG1hV05jYmlBcUlHTnZibk4wWVc1MGN5OTBlWEJsY3lCbWIzSWdkR2hsSUc5eVp5MWhaMjV2YzNScFl5QmtZWE5vWW05aGNtUWdaVzFpWldRZ2NHeDFaMmx1TGx4dUlDb3ZYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTR2WTI5dWRISmhZM1JjSWp0Y2JtVjRjRzl5ZENCN1hHNGdJRXRKUWtGT1FWOVFURlZIU1U1ZlNVUXNYRzRnSUV0SlFrRk9RVjlCVUZCZlNVUXNYRzRnSUV0SlFrRk9RVjlRVEZWSFNVNWZWa1ZTVTBsUFRpeGNiaUFnWW5WcGJHUkxhV0poYm1GTllXNXBabVZ6ZEN4Y2JpQWdkSGx3WlNCTGFXSmhibUZOWVc1cFptVnpkQ3hjYm4wZ1puSnZiU0JjSWk0dmJXRnVhV1psYzNSY0lqdGNibVY0Y0c5eWRDQjdJR3RwWW1GdVlWQnNkV2RwYmtacGJHVnpMQ0IwZVhCbElFdHBZbUZ1WVZCc2RXZHBia1pwYkdVZ2ZTQm1jbTl0SUZ3aUxpOTBaVzF3YkdGMFpYTmNJanRjYmlKZGZRPT0iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildSupersetEmbedUrl = void 0;
|
|
4
|
+
exports.sendSupersetSwitchDashboardMessage = sendSupersetSwitchDashboardMessage;
|
|
5
|
+
/**
|
|
6
|
+
* @module integrations/plugins/superset/host
|
|
7
|
+
* @summary Angular host-side helpers for the Superset embed plugin.
|
|
8
|
+
* @description DOM-free convenience helpers the Angular host uses to build the
|
|
9
|
+
* embedded URL and send switch-dashboard messages to the embedded Superset
|
|
10
|
+
* plugin via the SDK handle.
|
|
11
|
+
*/
|
|
12
|
+
const contract_js_1 = require("./../contract.cjs");
|
|
13
|
+
const installer_js_1 = require("./installer.cjs");
|
|
14
|
+
Object.defineProperty(exports, "buildSupersetEmbedUrl", { enumerable: true, get: function () { return installer_js_1.buildSupersetEmbedUrl; } });
|
|
15
|
+
/**
|
|
16
|
+
* Send a switch-dashboard message to the embedded Superset dashboard.
|
|
17
|
+
*
|
|
18
|
+
* The Angular host passes the embedded SDK's `EmbeddedDashboard` handle
|
|
19
|
+
* (wrapped to satisfy `EmbedMessageTarget.switchDashboard`) and the Superset
|
|
20
|
+
* origin as `targetOrigin`.
|
|
21
|
+
*/
|
|
22
|
+
function sendSupersetSwitchDashboardMessage(target, payload, targetOrigin) {
|
|
23
|
+
(0, contract_js_1.sendSwitchDashboardMessage)(target, payload, targetOrigin);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW5zL3N1cGVyc2V0L2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUNMLDBCQUEwQixJQUFJLFVBQVUsR0FJekMseUJBQW9CO0FBQ3JCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBb0I7QUFFcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUM7QUFFakM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGtDQUFrQyxDQUNoRCxNQUEwQixFQUMxQixPQUErQixFQUMvQixZQUFvQjtJQUVwQixVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9wbHVnaW5zL3N1cGVyc2V0L2hvc3RcbiAqIEBzdW1tYXJ5IEFuZ3VsYXIgaG9zdC1zaWRlIGhlbHBlcnMgZm9yIHRoZSBTdXBlcnNldCBlbWJlZCBwbHVnaW4uXG4gKiBAZGVzY3JpcHRpb24gRE9NLWZyZWUgY29udmVuaWVuY2UgaGVscGVycyB0aGUgQW5ndWxhciBob3N0IHVzZXMgdG8gYnVpbGQgdGhlXG4gKiBlbWJlZGRlZCBVUkwgYW5kIHNlbmQgc3dpdGNoLWRhc2hib2FyZCBtZXNzYWdlcyB0byB0aGUgZW1iZWRkZWQgU3VwZXJzZXRcbiAqIHBsdWdpbiB2aWEgdGhlIFNESyBoYW5kbGUuXG4gKi9cbmltcG9ydCB7XG4gIHNlbmRTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlIGFzIHNlbmRTaGFyZWQsXG4gIHR5cGUgRW1iZWRNZXNzYWdlVGFyZ2V0LFxuICB0eXBlIEVtYmVkVXJsT3B0aW9ucyxcbiAgdHlwZSBTd2l0Y2hEYXNoYm9hcmRQYXlsb2FkLFxufSBmcm9tIFwiLi4vY29udHJhY3RcIjtcbmltcG9ydCB7IGJ1aWxkU3VwZXJzZXRFbWJlZFVybCB9IGZyb20gXCIuL2luc3RhbGxlclwiO1xuXG5leHBvcnQgeyBidWlsZFN1cGVyc2V0RW1iZWRVcmwgfTtcblxuLyoqXG4gKiBTZW5kIGEgc3dpdGNoLWRhc2hib2FyZCBtZXNzYWdlIHRvIHRoZSBlbWJlZGRlZCBTdXBlcnNldCBkYXNoYm9hcmQuXG4gKlxuICogVGhlIEFuZ3VsYXIgaG9zdCBwYXNzZXMgdGhlIGVtYmVkZGVkIFNESydzIGBFbWJlZGRlZERhc2hib2FyZGAgaGFuZGxlXG4gKiAod3JhcHBlZCB0byBzYXRpc2Z5IGBFbWJlZE1lc3NhZ2VUYXJnZXQuc3dpdGNoRGFzaGJvYXJkYCkgYW5kIHRoZSBTdXBlcnNldFxuICogb3JpZ2luIGFzIGB0YXJnZXRPcmlnaW5gLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VuZFN1cGVyc2V0U3dpdGNoRGFzaGJvYXJkTWVzc2FnZShcbiAgdGFyZ2V0OiBFbWJlZE1lc3NhZ2VUYXJnZXQsXG4gIHBheWxvYWQ6IFN3aXRjaERhc2hib2FyZFBheWxvYWQsXG4gIHRhcmdldE9yaWdpbjogc3RyaW5nXG4pOiB2b2lkIHtcbiAgc2VuZFNoYXJlZCh0YXJnZXQsIHBheWxvYWQsIHRhcmdldE9yaWdpbik7XG59XG5cbi8qKiBSZS1leHBvcnQgdGhlIFVSTCBvcHRpb25zIHR5cGUgZm9yIGhvc3QgY29udmVuaWVuY2UuICovXG5leHBvcnQgdHlwZSB7IEVtYmVkVXJsT3B0aW9ucyB9O1xuIl19
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhvc3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUJBLGdGQUVDO0FBbkJEOzs7Ozs7R0FNRztBQUNILGtEQUE2RTtBQUM3RSxpREFBdUQ7QUFDOUMsc0dBREEsb0NBQXFCLE9BQ0E7QUFDOUI7Ozs7OztHQU1HO0FBQ0gsU0FBZ0Isa0NBQWtDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZO0lBQzVFLElBQUEsd0NBQVUsRUFBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFDRCw4a0VBQThrRSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvcGx1Z2lucy9zdXBlcnNldC9ob3N0XG4gKiBAc3VtbWFyeSBBbmd1bGFyIGhvc3Qtc2lkZSBoZWxwZXJzIGZvciB0aGUgU3VwZXJzZXQgZW1iZWQgcGx1Z2luLlxuICogQGRlc2NyaXB0aW9uIERPTS1mcmVlIGNvbnZlbmllbmNlIGhlbHBlcnMgdGhlIEFuZ3VsYXIgaG9zdCB1c2VzIHRvIGJ1aWxkIHRoZVxuICogZW1iZWRkZWQgVVJMIGFuZCBzZW5kIHN3aXRjaC1kYXNoYm9hcmQgbWVzc2FnZXMgdG8gdGhlIGVtYmVkZGVkIFN1cGVyc2V0XG4gKiBwbHVnaW4gdmlhIHRoZSBTREsgaGFuZGxlLlxuICovXG5pbXBvcnQgeyBzZW5kU3dpdGNoRGFzaGJvYXJkTWVzc2FnZSBhcyBzZW5kU2hhcmVkLCB9IGZyb20gXCIuLy4uL2NvbnRyYWN0LmpzXCI7XG5pbXBvcnQgeyBidWlsZFN1cGVyc2V0RW1iZWRVcmwgfSBmcm9tIFwiLi9pbnN0YWxsZXIuanNcIjtcbmV4cG9ydCB7IGJ1aWxkU3VwZXJzZXRFbWJlZFVybCB9O1xuLyoqXG4gKiBTZW5kIGEgc3dpdGNoLWRhc2hib2FyZCBtZXNzYWdlIHRvIHRoZSBlbWJlZGRlZCBTdXBlcnNldCBkYXNoYm9hcmQuXG4gKlxuICogVGhlIEFuZ3VsYXIgaG9zdCBwYXNzZXMgdGhlIGVtYmVkZGVkIFNESydzIGBFbWJlZGRlZERhc2hib2FyZGAgaGFuZGxlXG4gKiAod3JhcHBlZCB0byBzYXRpc2Z5IGBFbWJlZE1lc3NhZ2VUYXJnZXQuc3dpdGNoRGFzaGJvYXJkYCkgYW5kIHRoZSBTdXBlcnNldFxuICogb3JpZ2luIGFzIGB0YXJnZXRPcmlnaW5gLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VuZFN1cGVyc2V0U3dpdGNoRGFzaGJvYXJkTWVzc2FnZSh0YXJnZXQsIHBheWxvYWQsIHRhcmdldE9yaWdpbikge1xuICAgIHNlbmRTaGFyZWQodGFyZ2V0LCBwYXlsb2FkLCB0YXJnZXRPcmlnaW4pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYUc5emRDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTl3YkhWbmFXNXpMM04xY0dWeWMyVjBMMmh2YzNRdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUU3T3pzN096dEhRVTFITzBGQlEwZ3NUMEZCVHl4RlFVTk1MREJDUVVFd1FpeEpRVUZKTEZWQlFWVXNSMEZKZWtNc2VVSkJRVzlDTzBGQlEzSkNMRTlCUVU4c1JVRkJSU3h4UWtGQmNVSXNSVUZCUlN4MVFrRkJiMEk3UVVGRmNFUXNUMEZCVHl4RlFVRkZMSEZDUVVGeFFpeEZRVUZGTEVOQlFVTTdRVUZGYWtNN096czdPenRIUVUxSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEd0RFFVRnJReXhEUVVOb1JDeE5RVUV3UWl4RlFVTXhRaXhQUVVFclFpeEZRVU12UWl4WlFVRnZRanRKUVVWd1FpeFZRVUZWTEVOQlFVTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3haUVVGWkxFTkJRVU1zUTBGQlF6dEJRVU0xUXl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvcVhHNGdLaUJBYlc5a2RXeGxJR2x1ZEdWbmNtRjBhVzl1Y3k5d2JIVm5hVzV6TDNOMWNHVnljMlYwTDJodmMzUmNiaUFxSUVCemRXMXRZWEo1SUVGdVozVnNZWElnYUc5emRDMXphV1JsSUdobGJIQmxjbk1nWm05eUlIUm9aU0JUZFhCbGNuTmxkQ0JsYldKbFpDQndiSFZuYVc0dVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1JFOU5MV1p5WldVZ1kyOXVkbVZ1YVdWdVkyVWdhR1ZzY0dWeWN5QjBhR1VnUVc1bmRXeGhjaUJvYjNOMElIVnpaWE1nZEc4Z1luVnBiR1FnZEdobFhHNGdLaUJsYldKbFpHUmxaQ0JWVWt3Z1lXNWtJSE5sYm1RZ2MzZHBkR05vTFdSaGMyaGliMkZ5WkNCdFpYTnpZV2RsY3lCMGJ5QjBhR1VnWlcxaVpXUmtaV1FnVTNWd1pYSnpaWFJjYmlBcUlIQnNkV2RwYmlCMmFXRWdkR2hsSUZORVN5Qm9ZVzVrYkdVdVhHNGdLaTljYm1sdGNHOXlkQ0I3WEc0Z0lITmxibVJUZDJsMFkyaEVZWE5vWW05aGNtUk5aWE56WVdkbElHRnpJSE5sYm1SVGFHRnlaV1FzWEc0Z0lIUjVjR1VnUlcxaVpXUk5aWE56WVdkbFZHRnlaMlYwTEZ4dUlDQjBlWEJsSUVWdFltVmtWWEpzVDNCMGFXOXVjeXhjYmlBZ2RIbHdaU0JUZDJsMFkyaEVZWE5vWW05aGNtUlFZWGxzYjJGa0xGeHVmU0JtY205dElGd2lMaTR2WTI5dWRISmhZM1JjSWp0Y2JtbHRjRzl5ZENCN0lHSjFhV3hrVTNWd1pYSnpaWFJGYldKbFpGVnliQ0I5SUdaeWIyMGdYQ0l1TDJsdWMzUmhiR3hsY2x3aU8xeHVYRzVsZUhCdmNuUWdleUJpZFdsc1pGTjFjR1Z5YzJWMFJXMWlaV1JWY213Z2ZUdGNibHh1THlvcVhHNGdLaUJUWlc1a0lHRWdjM2RwZEdOb0xXUmhjMmhpYjJGeVpDQnRaWE56WVdkbElIUnZJSFJvWlNCbGJXSmxaR1JsWkNCVGRYQmxjbk5sZENCa1lYTm9ZbTloY21RdVhHNGdLbHh1SUNvZ1ZHaGxJRUZ1WjNWc1lYSWdhRzl6ZENCd1lYTnpaWE1nZEdobElHVnRZbVZrWkdWa0lGTkVTeWR6SUdCRmJXSmxaR1JsWkVSaGMyaGliMkZ5WkdBZ2FHRnVaR3hsWEc0Z0tpQW9kM0poY0hCbFpDQjBieUJ6WVhScGMyWjVJR0JGYldKbFpFMWxjM05oWjJWVVlYSm5aWFF1YzNkcGRHTm9SR0Z6YUdKdllYSmtZQ2tnWVc1a0lIUm9aU0JUZFhCbGNuTmxkRnh1SUNvZ2IzSnBaMmx1SUdGeklHQjBZWEpuWlhSUGNtbG5hVzVnTGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjMlZ1WkZOMWNHVnljMlYwVTNkcGRHTm9SR0Z6YUdKdllYSmtUV1Z6YzJGblpTaGNiaUFnZEdGeVoyVjBPaUJGYldKbFpFMWxjM05oWjJWVVlYSm5aWFFzWEc0Z0lIQmhlV3h2WVdRNklGTjNhWFJqYUVSaGMyaGliMkZ5WkZCaGVXeHZZV1FzWEc0Z0lIUmhjbWRsZEU5eWFXZHBiam9nYzNSeWFXNW5YRzRwT2lCMmIybGtJSHRjYmlBZ2MyVnVaRk5vWVhKbFpDaDBZWEpuWlhRc0lIQmhlV3h2WVdRc0lIUmhjbWRsZEU5eWFXZHBiaWs3WEc1OVhHNWNiaThxS2lCU1pTMWxlSEJ2Y25RZ2RHaGxJRlZTVENCdmNIUnBiMjV6SUhSNWNHVWdabTl5SUdodmMzUWdZMjl1ZG1WdWFXVnVZMlV1SUNvdlhHNWxlSEJ2Y25RZ2RIbHdaU0I3SUVWdFltVmtWWEpzVDNCMGFXOXVjeUI5TzF4dUlsMTkiXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.sendSupersetSwitchDashboardMessage = exports.SUPERSET_DEFAULT_BASE_PATH = exports.buildSupersetEmbedUrl = exports.createSupersetDashboardEmbedPlugin = exports.supersetDashboardEmbedPlugin = exports.SupersetDashboardEmbedPlugin = void 0;
|
|
18
|
+
/**
|
|
19
|
+
* @module integrations/plugins/superset
|
|
20
|
+
* @summary Superset dashboard embed plugin surface.
|
|
21
|
+
* @description Org-agnostic multi-tenant Superset dashboard embed plugin
|
|
22
|
+
* (patch-and-build strategy). Same API as the Kibana plugin. Decaf holds
|
|
23
|
+
* patch scripts that modify Superset's internal embedded frontend and SDK
|
|
24
|
+
* source files to add a `switchDashboard` method, keeping the iframe element,
|
|
25
|
+
* document, contentWindow, React runtime, and Switchboard MessageChannel alive.
|
|
26
|
+
*/
|
|
27
|
+
__exportStar(require("./../contract.cjs"), exports);
|
|
28
|
+
__exportStar(require("./types.cjs"), exports);
|
|
29
|
+
__exportStar(require("./manifest.cjs"), exports);
|
|
30
|
+
__exportStar(require("./templates.cjs"), exports);
|
|
31
|
+
var installer_js_1 = require("./installer.cjs");
|
|
32
|
+
Object.defineProperty(exports, "SupersetDashboardEmbedPlugin", { enumerable: true, get: function () { return installer_js_1.SupersetDashboardEmbedPlugin; } });
|
|
33
|
+
Object.defineProperty(exports, "supersetDashboardEmbedPlugin", { enumerable: true, get: function () { return installer_js_1.supersetDashboardEmbedPlugin; } });
|
|
34
|
+
Object.defineProperty(exports, "createSupersetDashboardEmbedPlugin", { enumerable: true, get: function () { return installer_js_1.createSupersetDashboardEmbedPlugin; } });
|
|
35
|
+
Object.defineProperty(exports, "buildSupersetEmbedUrl", { enumerable: true, get: function () { return installer_js_1.buildSupersetEmbedUrl; } });
|
|
36
|
+
Object.defineProperty(exports, "SUPERSET_DEFAULT_BASE_PATH", { enumerable: true, get: function () { return installer_js_1.SUPERSET_DEFAULT_BASE_PATH; } });
|
|
37
|
+
var host_js_1 = require("./host.cjs");
|
|
38
|
+
Object.defineProperty(exports, "sendSupersetSwitchDashboardMessage", { enumerable: true, get: function () { return host_js_1.sendSupersetSwitchDashboardMessage; } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2lucy9zdXBlcnNldC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILGlDQUE0QjtBQUM1QiwyQkFBd0I7QUFDeEIsOEJBQTJCO0FBQzNCLCtCQUE0QjtBQUM1QixPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1QixrQ0FBa0MsRUFDbEMscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUUzQix1QkFBb0I7QUFDckIsT0FBTyxFQUNMLGtDQUFrQyxHQUNuQyxrQkFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvcGx1Z2lucy9zdXBlcnNldFxuICogQHN1bW1hcnkgU3VwZXJzZXQgZGFzaGJvYXJkIGVtYmVkIHBsdWdpbiBzdXJmYWNlLlxuICogQGRlc2NyaXB0aW9uIE9yZy1hZ25vc3RpYyBtdWx0aS10ZW5hbnQgU3VwZXJzZXQgZGFzaGJvYXJkIGVtYmVkIHBsdWdpblxuICogKHBhdGNoLWFuZC1idWlsZCBzdHJhdGVneSkuIFNhbWUgQVBJIGFzIHRoZSBLaWJhbmEgcGx1Z2luLiBEZWNhZiBob2xkc1xuICogcGF0Y2ggc2NyaXB0cyB0aGF0IG1vZGlmeSBTdXBlcnNldCdzIGludGVybmFsIGVtYmVkZGVkIGZyb250ZW5kIGFuZCBTREtcbiAqIHNvdXJjZSBmaWxlcyB0byBhZGQgYSBgc3dpdGNoRGFzaGJvYXJkYCBtZXRob2QsIGtlZXBpbmcgdGhlIGlmcmFtZSBlbGVtZW50LFxuICogZG9jdW1lbnQsIGNvbnRlbnRXaW5kb3csIFJlYWN0IHJ1bnRpbWUsIGFuZCBTd2l0Y2hib2FyZCBNZXNzYWdlQ2hhbm5lbCBhbGl2ZS5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4uL2NvbnRyYWN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWFuaWZlc3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RlbXBsYXRlc1wiO1xuZXhwb3J0IHtcbiAgU3VwZXJzZXREYXNoYm9hcmRFbWJlZFBsdWdpbixcbiAgc3VwZXJzZXREYXNoYm9hcmRFbWJlZFBsdWdpbixcbiAgY3JlYXRlU3VwZXJzZXREYXNoYm9hcmRFbWJlZFBsdWdpbixcbiAgYnVpbGRTdXBlcnNldEVtYmVkVXJsLFxuICBTVVBFUlNFVF9ERUZBVUxUX0JBU0VfUEFUSCxcbiAgdHlwZSBTdXBlcnNldEluc3RhbGxPcHRpb25zLFxufSBmcm9tIFwiLi9pbnN0YWxsZXJcIjtcbmV4cG9ydCB7XG4gIHNlbmRTdXBlcnNldFN3aXRjaERhc2hib2FyZE1lc3NhZ2UsXG59IGZyb20gXCIuL2hvc3RcIjtcbiJdfQ==
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7OztHQVFHO0FBQ0gsbURBQWlDO0FBQ2pDLDZDQUEyQjtBQUMzQixnREFBOEI7QUFDOUIsaURBQStCO0FBQy9CLCtDQUFvTDtBQUEzSyw0SEFBQSw0QkFBNEIsT0FBQTtBQUFFLDRIQUFBLDRCQUE0QixPQUFBO0FBQUUsa0lBQUEsa0NBQWtDLE9BQUE7QUFBRSxxSEFBQSxxQkFBcUIsT0FBQTtBQUFFLDBIQUFBLDBCQUEwQixPQUFBO0FBQzFKLHFDQUFnRTtBQUF2RCw2SEFBQSxrQ0FBa0MsT0FBQTtBQUMzQyw4ckRBQThyRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvcGx1Z2lucy9zdXBlcnNldFxuICogQHN1bW1hcnkgU3VwZXJzZXQgZGFzaGJvYXJkIGVtYmVkIHBsdWdpbiBzdXJmYWNlLlxuICogQGRlc2NyaXB0aW9uIE9yZy1hZ25vc3RpYyBtdWx0aS10ZW5hbnQgU3VwZXJzZXQgZGFzaGJvYXJkIGVtYmVkIHBsdWdpblxuICogKHBhdGNoLWFuZC1idWlsZCBzdHJhdGVneSkuIFNhbWUgQVBJIGFzIHRoZSBLaWJhbmEgcGx1Z2luLiBEZWNhZiBob2xkc1xuICogcGF0Y2ggc2NyaXB0cyB0aGF0IG1vZGlmeSBTdXBlcnNldCdzIGludGVybmFsIGVtYmVkZGVkIGZyb250ZW5kIGFuZCBTREtcbiAqIHNvdXJjZSBmaWxlcyB0byBhZGQgYSBgc3dpdGNoRGFzaGJvYXJkYCBtZXRob2QsIGtlZXBpbmcgdGhlIGlmcmFtZSBlbGVtZW50LFxuICogZG9jdW1lbnQsIGNvbnRlbnRXaW5kb3csIFJlYWN0IHJ1bnRpbWUsIGFuZCBTd2l0Y2hib2FyZCBNZXNzYWdlQ2hhbm5lbCBhbGl2ZS5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vLi4vY29udHJhY3QuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tYW5pZmVzdC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGVtcGxhdGVzLmpzXCI7XG5leHBvcnQgeyBTdXBlcnNldERhc2hib2FyZEVtYmVkUGx1Z2luLCBzdXBlcnNldERhc2hib2FyZEVtYmVkUGx1Z2luLCBjcmVhdGVTdXBlcnNldERhc2hib2FyZEVtYmVkUGx1Z2luLCBidWlsZFN1cGVyc2V0RW1iZWRVcmwsIFNVUEVSU0VUX0RFRkFVTFRfQkFTRV9QQVRILCB9IGZyb20gXCIuL2luc3RhbGxlci5qc1wiO1xuZXhwb3J0IHsgc2VuZFN1cGVyc2V0U3dpdGNoRGFzaGJvYXJkTWVzc2FnZSwgfSBmcm9tIFwiLi9ob3N0LmpzXCI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk5emNtTXZjR3gxWjJsdWN5OXpkWEJsY25ObGRDOXBibVJsZUM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRVHM3T3pzN096czdSMEZSUnp0QlFVTklMR2xEUVVFMFFqdEJRVU0xUWl3eVFrRkJkMEk3UVVGRGVFSXNPRUpCUVRKQ08wRkJRek5DTEN0Q1FVRTBRanRCUVVNMVFpeFBRVUZQTEVWQlEwd3NORUpCUVRSQ0xFVkJRelZDTERSQ1FVRTBRaXhGUVVNMVFpeHJRMEZCYTBNc1JVRkRiRU1zY1VKQlFYRkNMRVZCUTNKQ0xEQkNRVUV3UWl4SFFVVXpRaXgxUWtGQmIwSTdRVUZEY2tJc1QwRkJUeXhGUVVOTUxHdERRVUZyUXl4SFFVTnVReXhyUWtGQlpTSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2x4dUlDb2dRRzF2WkhWc1pTQnBiblJsWjNKaGRHbHZibk12Y0d4MVoybHVjeTl6ZFhCbGNuTmxkRnh1SUNvZ1FITjFiVzFoY25rZ1UzVndaWEp6WlhRZ1pHRnphR0p2WVhKa0lHVnRZbVZrSUhCc2RXZHBiaUJ6ZFhKbVlXTmxMbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRTl5WnkxaFoyNXZjM1JwWXlCdGRXeDBhUzEwWlc1aGJuUWdVM1Z3WlhKelpYUWdaR0Z6YUdKdllYSmtJR1Z0WW1Wa0lIQnNkV2RwYmx4dUlDb2dLSEJoZEdOb0xXRnVaQzFpZFdsc1pDQnpkSEpoZEdWbmVTa3VJRk5oYldVZ1FWQkpJR0Z6SUhSb1pTQkxhV0poYm1FZ2NHeDFaMmx1TGlCRVpXTmhaaUJvYjJ4a2MxeHVJQ29nY0dGMFkyZ2djMk55YVhCMGN5QjBhR0YwSUcxdlpHbG1lU0JUZFhCbGNuTmxkQ2R6SUdsdWRHVnlibUZzSUdWdFltVmtaR1ZrSUdaeWIyNTBaVzVrSUdGdVpDQlRSRXRjYmlBcUlITnZkWEpqWlNCbWFXeGxjeUIwYnlCaFpHUWdZU0JnYzNkcGRHTm9SR0Z6YUdKdllYSmtZQ0J0WlhSb2IyUXNJR3RsWlhCcGJtY2dkR2hsSUdsbWNtRnRaU0JsYkdWdFpXNTBMRnh1SUNvZ1pHOWpkVzFsYm5Rc0lHTnZiblJsYm5SWGFXNWtiM2NzSUZKbFlXTjBJSEoxYm5ScGJXVXNJR0Z1WkNCVGQybDBZMmhpYjJGeVpDQk5aWE56WVdkbFEyaGhibTVsYkNCaGJHbDJaUzVjYmlBcUwxeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHVMMk52Ym5SeVlXTjBYQ0k3WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5MGVYQmxjMXdpTzF4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dmJXRnVhV1psYzNSY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMM1JsYlhCc1lYUmxjMXdpTzF4dVpYaHdiM0owSUh0Y2JpQWdVM1Z3WlhKelpYUkVZWE5vWW05aGNtUkZiV0psWkZCc2RXZHBiaXhjYmlBZ2MzVndaWEp6WlhSRVlYTm9ZbTloY21SRmJXSmxaRkJzZFdkcGJpeGNiaUFnWTNKbFlYUmxVM1Z3WlhKelpYUkVZWE5vWW05aGNtUkZiV0psWkZCc2RXZHBiaXhjYmlBZ1luVnBiR1JUZFhCbGNuTmxkRVZ0WW1Wa1ZYSnNMRnh1SUNCVFZWQkZVbE5GVkY5RVJVWkJWVXhVWDBKQlUwVmZVRUZVU0N4Y2JpQWdkSGx3WlNCVGRYQmxjbk5sZEVsdWMzUmhiR3hQY0hScGIyNXpMRnh1ZlNCbWNtOXRJRndpTGk5cGJuTjBZV3hzWlhKY0lqdGNibVY0Y0c5eWRDQjdYRzRnSUhObGJtUlRkWEJsY25ObGRGTjNhWFJqYUVSaGMyaGliMkZ5WkUxbGMzTmhaMlVzWEc1OUlHWnliMjBnWENJdUwyaHZjM1JjSWp0Y2JpSmRmUT09Il19
|
|
@@ -0,0 +1,232 @@
|
|
|
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.supersetDashboardEmbedPlugin = exports.SupersetDashboardEmbedPlugin = exports.SUPERSET_DEFAULT_BASE_PATH = void 0;
|
|
37
|
+
exports.buildSupersetEmbedUrl = buildSupersetEmbedUrl;
|
|
38
|
+
exports.createSupersetDashboardEmbedPlugin = createSupersetDashboardEmbedPlugin;
|
|
39
|
+
/**
|
|
40
|
+
* @module integrations/plugins/superset/installer
|
|
41
|
+
* @summary Superset dashboard embed plugin installer.
|
|
42
|
+
* @description Implements `DashboardEmbedPlugin` for Superset using a
|
|
43
|
+
* patch-and-build strategy. Decaf holds patch scripts that modify Superset's
|
|
44
|
+
* internal embedded frontend and SDK source files to add a `switchDashboard`
|
|
45
|
+
* method. `install` materializes the scripts, clones/uses Superset source,
|
|
46
|
+
* applies patches, and builds (SDK + frontend + optionally Docker image).
|
|
47
|
+
*
|
|
48
|
+
* The same `DashboardEmbedPlugin` API as Kibana is exposed. `sendSwitchDashboardMessage`
|
|
49
|
+
* delegates to `target.switchDashboard(dashboardId, guestToken)` (the Superset
|
|
50
|
+
* SDK handle) instead of `postMessage`.
|
|
51
|
+
*/
|
|
52
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
53
|
+
const core_1 = require("@decaf-ts/core");
|
|
54
|
+
const fs = __importStar(require("node:fs"));
|
|
55
|
+
const path = __importStar(require("node:path"));
|
|
56
|
+
const node_child_process_1 = require("node:child_process");
|
|
57
|
+
const contract_js_1 = require("./../contract.cjs");
|
|
58
|
+
const manifest_js_1 = require("./manifest.cjs");
|
|
59
|
+
const templates_js_1 = require("./templates.cjs");
|
|
60
|
+
/** Default Superset base path when none is provided. */
|
|
61
|
+
exports.SUPERSET_DEFAULT_BASE_PATH = "superset";
|
|
62
|
+
/**
|
|
63
|
+
* Build the Superset embedded URL.
|
|
64
|
+
*
|
|
65
|
+
* For Superset, the `dashboardId` field in `EmbedUrlOptions` is the
|
|
66
|
+
* embedded-configuration UUID used in `/embedded/:uuid`.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* buildSupersetEmbedUrl({ host: "superset.example.com", dashboardId: "abc-uuid", parentOrigin: "https://app.example.com" })
|
|
70
|
+
* // => "//superset.example.com/superset/embedded/abc-uuid?parentOrigin=https%3A%2F%2Fapp.example.com"
|
|
71
|
+
*/
|
|
72
|
+
function buildSupersetEmbedUrl(options) {
|
|
73
|
+
const basePath = options.basePath ?? exports.SUPERSET_DEFAULT_BASE_PATH;
|
|
74
|
+
const params = new URLSearchParams();
|
|
75
|
+
params.set("parentOrigin", options.parentOrigin);
|
|
76
|
+
if (options.view?.timeRange) {
|
|
77
|
+
params.set("timeRange", JSON.stringify(options.view.timeRange));
|
|
78
|
+
}
|
|
79
|
+
return `//${options.host}/${basePath}/embedded/${options.dashboardId}?${params.toString()}`;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @class SupersetDashboardEmbedPlugin
|
|
83
|
+
* @summary Superset implementation of the `DashboardEmbedPlugin` contract.
|
|
84
|
+
* @description Org-agnostic multi-tenant dashboard embed plugin for Superset
|
|
85
|
+
* using a patch-and-build strategy. Same API as `KibanaDashboardEmbedPlugin`.
|
|
86
|
+
*/
|
|
87
|
+
class SupersetDashboardEmbedPlugin {
|
|
88
|
+
constructor(targetVersion = "superset") {
|
|
89
|
+
this.descriptor = {
|
|
90
|
+
id: manifest_js_1.SUPERSET_PLUGIN_ID,
|
|
91
|
+
appId: manifest_js_1.SUPERSET_APP_ID,
|
|
92
|
+
version: manifest_js_1.SUPERSET_PLUGIN_VERSION,
|
|
93
|
+
targetVersion,
|
|
94
|
+
tool: "superset",
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
manifest(targetVersion = this.descriptor.targetVersion) {
|
|
98
|
+
return (0, manifest_js_1.buildSupersetManifest)(targetVersion);
|
|
99
|
+
}
|
|
100
|
+
buildEmbedUrl(options) {
|
|
101
|
+
return buildSupersetEmbedUrl(options);
|
|
102
|
+
}
|
|
103
|
+
createSwitchDashboardMessage(payload) {
|
|
104
|
+
return (0, contract_js_1.createSwitchDashboardMessage)(payload);
|
|
105
|
+
}
|
|
106
|
+
sendSwitchDashboardMessage(target, payload, targetOrigin) {
|
|
107
|
+
(0, contract_js_1.sendSwitchDashboardMessage)(target, payload, targetOrigin);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Materialize the patch and build scripts into `targetPath/`, and when
|
|
111
|
+
* `build` is true, clone/use Superset source, apply patches, and build
|
|
112
|
+
* (SDK + frontend + optionally Docker image).
|
|
113
|
+
*
|
|
114
|
+
* Unlike Kibana (which generates plugin source), Superset's "plugin" is a
|
|
115
|
+
* patch-and-build strategy: Decaf holds scripts that modify Superset's
|
|
116
|
+
* existing internal source files.
|
|
117
|
+
*/
|
|
118
|
+
async install(options) {
|
|
119
|
+
const ctx = options.context;
|
|
120
|
+
if (ctx) {
|
|
121
|
+
void ctx;
|
|
122
|
+
}
|
|
123
|
+
if (!options.targetPath || options.targetPath.trim().length === 0) {
|
|
124
|
+
throw new core_1.UnsupportedError("install targetPath is required");
|
|
125
|
+
}
|
|
126
|
+
const targetVersion = options.targetVersion ?? this.descriptor.targetVersion;
|
|
127
|
+
const pluginDir = path.resolve(options.targetPath, manifest_js_1.SUPERSET_APP_ID);
|
|
128
|
+
if (fs.existsSync(pluginDir)) {
|
|
129
|
+
if (!options.overwrite) {
|
|
130
|
+
throw new db_decorators_1.InternalError(`Plugin directory already exists: ${pluginDir} (use overwrite: true)`);
|
|
131
|
+
}
|
|
132
|
+
fs.rmSync(pluginDir, { recursive: true, force: true });
|
|
133
|
+
}
|
|
134
|
+
const files = (0, templates_js_1.supersetPatchFiles)();
|
|
135
|
+
const written = [];
|
|
136
|
+
for (const file of files) {
|
|
137
|
+
const fullPath = path.join(pluginDir, file.path);
|
|
138
|
+
fs.mkdirSync(path.dirname(fullPath), { recursive: true });
|
|
139
|
+
fs.writeFileSync(fullPath, file.content, "utf8");
|
|
140
|
+
if (file.executable) {
|
|
141
|
+
fs.chmodSync(fullPath, 0o755);
|
|
142
|
+
}
|
|
143
|
+
written.push(file.path);
|
|
144
|
+
}
|
|
145
|
+
let built = false;
|
|
146
|
+
let buildOutput;
|
|
147
|
+
if (options.build) {
|
|
148
|
+
const supersetRoot = await this.resolveSupersetRoot(pluginDir, options);
|
|
149
|
+
const result = await this.runPatchAndBuild(pluginDir, supersetRoot, options).catch((err) => ({
|
|
150
|
+
ok: false,
|
|
151
|
+
output: err.message,
|
|
152
|
+
}));
|
|
153
|
+
built = result.ok;
|
|
154
|
+
buildOutput = result.output;
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
pluginPath: pluginDir,
|
|
158
|
+
descriptor: { ...this.descriptor, targetVersion },
|
|
159
|
+
files: written,
|
|
160
|
+
built,
|
|
161
|
+
buildOutput,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Resolve the Superset source root: use an existing checkout or clone via git.
|
|
166
|
+
*/
|
|
167
|
+
async resolveSupersetRoot(pluginDir, options) {
|
|
168
|
+
if (options.supersetSourcePath) {
|
|
169
|
+
const resolved = path.resolve(options.supersetSourcePath);
|
|
170
|
+
if (!fs.existsSync(path.join(resolved, "superset-frontend", "src", "embedded", "index.tsx"))) {
|
|
171
|
+
throw new db_decorators_1.InternalError(`Superset source not found at: ${resolved} (missing superset-frontend/src/embedded/index.tsx)`);
|
|
172
|
+
}
|
|
173
|
+
return resolved;
|
|
174
|
+
}
|
|
175
|
+
const gitUrl = options.supersetGitUrl ?? "https://github.com/apache/superset.git";
|
|
176
|
+
const gitRef = options.supersetGitRef ?? options.targetVersion ?? "6.1.0";
|
|
177
|
+
const cloneDir = path.join(pluginDir, ".superset-source");
|
|
178
|
+
if (fs.existsSync(cloneDir)) {
|
|
179
|
+
fs.rmSync(cloneDir, { recursive: true, force: true });
|
|
180
|
+
}
|
|
181
|
+
await this.runCommand("git", ["clone", "--depth", "1", "--branch", gitRef, gitUrl, cloneDir], pluginDir);
|
|
182
|
+
return cloneDir;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Apply patches, verify, and build (SDK + frontend + optionally Docker).
|
|
186
|
+
*/
|
|
187
|
+
async runPatchAndBuild(pluginDir, supersetRoot, options) {
|
|
188
|
+
const outputs = [];
|
|
189
|
+
// 1. Apply patch
|
|
190
|
+
const patchResult = await this.runCommand("python3", [path.join(pluginDir, "patches", "apply_superset_6_1_patch.py"), supersetRoot], pluginDir);
|
|
191
|
+
outputs.push(patchResult);
|
|
192
|
+
// 2. Verify patch
|
|
193
|
+
const verifyResult = await this.runCommand(path.join(pluginDir, "patches", "verify_patch.sh"), [supersetRoot], pluginDir);
|
|
194
|
+
outputs.push(verifyResult);
|
|
195
|
+
// 3. Build (Docker image or SDK + frontend)
|
|
196
|
+
if (options.dockerImageTag) {
|
|
197
|
+
const dockerResult = await this.runCommand(path.join(pluginDir, "build", "build-docker-image.sh"), [supersetRoot, options.dockerImageTag], pluginDir);
|
|
198
|
+
outputs.push(dockerResult);
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
const sdkResult = await this.runCommand(path.join(pluginDir, "build", "build-sdk.sh"), [supersetRoot], pluginDir);
|
|
202
|
+
outputs.push(sdkResult);
|
|
203
|
+
const frontendResult = await this.runCommand(path.join(pluginDir, "build", "build-superset-frontend.sh"), [supersetRoot], pluginDir);
|
|
204
|
+
outputs.push(frontendResult);
|
|
205
|
+
}
|
|
206
|
+
return { ok: true, output: outputs.join("\n") };
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Run a command and capture stdout+stderr.
|
|
210
|
+
*/
|
|
211
|
+
runCommand(cmd, args, cwd) {
|
|
212
|
+
return new Promise((resolve, reject) => {
|
|
213
|
+
(0, node_child_process_1.execFile)(cmd, args, { cwd, timeout: 600000 }, (error, stdout, stderr) => {
|
|
214
|
+
const output = `${stdout ?? ""}${stderr ?? ""}`.trim();
|
|
215
|
+
if (error) {
|
|
216
|
+
reject(new Error(output || error.message));
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
resolve(output);
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
exports.SupersetDashboardEmbedPlugin = SupersetDashboardEmbedPlugin;
|
|
225
|
+
/** Default singleton instance. */
|
|
226
|
+
exports.supersetDashboardEmbedPlugin = new SupersetDashboardEmbedPlugin();
|
|
227
|
+
/** Factory accepting a target Superset version. */
|
|
228
|
+
function createSupersetDashboardEmbedPlugin(targetVersion) {
|
|
229
|
+
return new SupersetDashboardEmbedPlugin(targetVersion);
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvc3VwZXJzZXQvaW5zdGFsbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsMEJBQTBCLElBQUksVUFBVSxHQVN6Qyx5QkFBb0I7QUFDckIsT0FBTyxFQUNMLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUN0QixzQkFBbUI7QUFDcEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHVCQUFvQjtBQUVqRCx3REFBd0Q7QUFDeEQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsVUFBVSxDQUFDO0FBZ0JyRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsT0FBd0I7SUFDNUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSwwQkFBMEIsQ0FBQztJQUNoRSxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMs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Q0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVEOztPQUVHO0lBQ08sVUFBVSxDQUNsQixHQUFXLEVBQ1gsSUFBYyxFQUNkLEdBQVc7UUFFWCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLFFBQVEsQ0FDTixHQUFHLEVBQ0gsSUFBSSxFQUNKLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFDeEIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN4QixNQUFNLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN2RCxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNWLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQzNDLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVELGtDQUFrQztBQUNsQyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLDRCQUE0QixFQUFFLENBQUM7QUFFL0UsbURBQW1EO0FBQ25ELE1BQU0sVUFBVSxrQ0FBa0MsQ0FDaEQsYUFBcUI7SUFFckIsT0FBTyxJQUFJLDRCQUE0QixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3BsdWdpbnMvc3VwZXJzZXQvaW5zdGFsbGVyXG4gKiBAc3VtbWFyeSBTdXBlcnNldCBkYXNoYm9hcmQgZW1iZWQgcGx1Z2luIGluc3RhbGxlci5cbiAqIEBkZXNjcmlwdGlvbiBJbXBsZW1lbnRzIGBEYXNoYm9hcmRFbWJlZFBsdWdpbmAgZm9yIFN1cGVyc2V0IHVzaW5nIGFcbiAqIHBhdGNoLWFuZC1idWlsZCBzdHJhdGVneS4gRGVjYWYgaG9sZHMgcGF0Y2ggc2NyaXB0cyB0aGF0IG1vZGlmeSBTdXBlcnNldCdzXG4gKiBpbnRlcm5hbCBlbWJlZGRlZCBmcm9udGVuZCBhbmQgU0RLIHNvdXJjZSBmaWxlcyB0byBhZGQgYSBgc3dpdGNoRGFzaGJvYXJkYFxuICogbWV0aG9kLiBgaW5zdGFsbGAgbWF0ZXJpYWxpemVzIHRoZSBzY3JpcHRzLCBjbG9uZXMvdXNlcyBTdXBlcnNldCBzb3VyY2UsXG4gKiBhcHBsaWVzIHBhdGNoZXMsIGFuZCBidWlsZHMgKFNESyArIGZyb250ZW5kICsgb3B0aW9uYWxseSBEb2NrZXIgaW1hZ2UpLlxuICpcbiAqIFRoZSBzYW1lIGBEYXNoYm9hcmRFbWJlZFBsdWdpbmAgQVBJIGFzIEtpYmFuYSBpcyBleHBvc2VkLiBgc2VuZFN3aXRjaERhc2hib2FyZE1lc3NhZ2VgXG4gKiBkZWxlZ2F0ZXMgdG8gYHRhcmdldC5zd2l0Y2hEYXNoYm9hcmQoZGFzaGJvYXJkSWQsIGd1ZXN0VG9rZW4pYCAodGhlIFN1cGVyc2V0XG4gKiBTREsgaGFuZGxlKSBpbnN0ZWFkIG9mIGBwb3N0TWVzc2FnZWAuXG4gKi9cbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IFVuc3VwcG9ydGVkRXJyb3IsIE1heWJlQ29udGV4dHVhbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZXhlY0ZpbGUgfSBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5cbmltcG9ydCB7XG4gIGNyZWF0ZVN3aXRjaERhc2hib2FyZE1lc3NhZ2UsXG4gIHNlbmRTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlIGFzIHNlbmRTaGFyZWQsXG4gIHR5cGUgRGFzaGJvYXJkRW1iZWRQbHVnaW4sXG4gIHR5cGUgRGFzaGJvYXJkRW1iZWRQbHVnaW5EZXNjcmlwdG9yLFxuICB0eXBlIEVtYmVkTWVzc2FnZVRhcmdldCxcbiAgdHlwZSBFbWJlZFVybE9wdGlvbnMsXG4gIHR5cGUgUGx1Z2luSW5zdGFsbE9wdGlvbnMsXG4gIHR5cGUgUGx1Z2luSW5zdGFsbFJlc3VsdCxcbiAgdHlwZSBTd2l0Y2hEYXNoYm9hcmRQYXlsb2FkLFxuICB0eXBlIFN3aXRjaERhc2hib2FyZE1lc3NhZ2UsXG59IGZyb20gXCIuLi9jb250cmFjdFwiO1xuaW1wb3J0IHtcbiAgU1VQRVJTRVRfQVBQX0lELFxuICBTVVBFUlNFVF9QTFVHSU5fSUQsXG4gIFNVUEVSU0VUX1BMVUdJTl9WRVJTSU9OLFxuICBidWlsZFN1cGVyc2V0TWFuaWZlc3QsXG59IGZyb20gXCIuL21hbmlmZXN0XCI7XG5pbXBvcnQgeyBzdXBlcnNldFBhdGNoRmlsZXMgfSBmcm9tIFwiLi90ZW1wbGF0ZXNcIjtcblxuLyoqIERlZmF1bHQgU3VwZXJzZXQgYmFzZSBwYXRoIHdoZW4gbm9uZSBpcyBwcm92aWRlZC4gKi9cbmV4cG9ydCBjb25zdCBTVVBFUlNFVF9ERUZBVUxUX0JBU0VfUEFUSCA9IFwic3VwZXJzZXRcIjtcblxuLyoqXG4gKiBFeHRlbnNpb24gb2YgYFBsdWdpbkluc3RhbGxPcHRpb25zYCBmb3IgU3VwZXJzZXQtc3BlY2lmaWMgYnVpbGQgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdXBlcnNldEluc3RhbGxPcHRpb25zIGV4dGVuZHMgUGx1Z2luSW5zdGFsbE9wdGlvbnMge1xuICAvKiogUGF0aCB0byBhbiBleGlzdGluZyBTdXBlcnNldCBzb3VyY2UgY2hlY2tvdXQuIElmIGFic2VudCwgdGhlIGluc3RhbGxlciBjbG9uZXMgdmlhIGdpdC4gKi9cbiAgc3VwZXJzZXRTb3VyY2VQYXRoPzogc3RyaW5nO1xuICAvKiogR2l0IFVSTCB0byBjbG9uZSBTdXBlcnNldCBmcm9tICh1c2VkIHdoZW4gYHN1cGVyc2V0U291cmNlUGF0aGAgaXMgYWJzZW50KS4gKi9cbiAgc3VwZXJzZXRHaXRVcmw/OiBzdHJpbmc7XG4gIC8qKiBHaXQgcmVmL2JyYW5jaC90YWcgdG8gY2hlY2tvdXQgYWZ0ZXIgY2xvbmluZy4gKi9cbiAgc3VwZXJzZXRHaXRSZWY/OiBzdHJpbmc7XG4gIC8qKiBEb2NrZXIgaW1hZ2UgdGFnIHRvIGJ1aWxkICh3aGVuIHByb3ZpZGVkLCBidWlsZHMgYSBEb2NrZXIgaW1hZ2UgaW5zdGVhZCBvZiBqdXN0IFNESytmcm9udGVuZCkuICovXG4gIGRvY2tlckltYWdlVGFnPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBTdXBlcnNldCBlbWJlZGRlZCBVUkwuXG4gKlxuICogRm9yIFN1cGVyc2V0LCB0aGUgYGRhc2hib2FyZElkYCBmaWVsZCBpbiBgRW1iZWRVcmxPcHRpb25zYCBpcyB0aGVcbiAqIGVtYmVkZGVkLWNvbmZpZ3VyYXRpb24gVVVJRCB1c2VkIGluIGAvZW1iZWRkZWQvOnV1aWRgLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIGJ1aWxkU3VwZXJzZXRFbWJlZFVybCh7IGhvc3Q6IFwic3VwZXJzZXQuZXhhbXBsZS5jb21cIiwgZGFzaGJvYXJkSWQ6IFwiYWJjLXV1aWRcIiwgcGFyZW50T3JpZ2luOiBcImh0dHBzOi8vYXBwLmV4YW1wbGUuY29tXCIgfSlcbiAqICAgLy8gPT4gXCIvL3N1cGVyc2V0LmV4YW1wbGUuY29tL3N1cGVyc2V0L2VtYmVkZGVkL2FiYy11dWlkP3BhcmVudE9yaWdpbj1odHRwcyUzQSUyRiUyRmFwcC5leGFtcGxlLmNvbVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFN1cGVyc2V0RW1iZWRVcmwob3B0aW9uczogRW1iZWRVcmxPcHRpb25zKTogc3RyaW5nIHtcbiAgY29uc3QgYmFzZVBhdGggPSBvcHRpb25zLmJhc2VQYXRoID8/IFNVUEVSU0VUX0RFRkFVTFRfQkFTRV9QQVRIO1xuICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gIHBhcmFtcy5zZXQoXCJwYXJlbnRPcmlnaW5cIiwgb3B0aW9ucy5wYXJlbnRPcmlnaW4pO1xuICBpZiAob3B0aW9ucy52aWV3Py50aW1lUmFuZ2UpIHtcbiAgICBwYXJhbXMuc2V0KFwidGltZVJhbmdlXCIsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMudmlldy50aW1lUmFuZ2UpKTtcbiAgfVxuICByZXR1cm4gYC8vJHtvcHRpb25zLmhvc3R9LyR7YmFzZVBhdGh9L2VtYmVkZGVkLyR7b3B0aW9ucy5kYXNoYm9hcmRJZH0/JHtwYXJhbXMudG9TdHJpbmcoKX1gO1xufVxuXG4vKipcbiAqIEBjbGFzcyBTdXBlcnNldERhc2hib2FyZEVtYmVkUGx1Z2luXG4gKiBAc3VtbWFyeSBTdXBlcnNldCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYERhc2hib2FyZEVtYmVkUGx1Z2luYCBjb250cmFjdC5cbiAqIEBkZXNjcmlwdGlvbiBPcmctYWdub3N0aWMgbXVsdGktdGVuYW50IGRhc2hib2FyZCBlbWJlZCBwbHVnaW4gZm9yIFN1cGVyc2V0XG4gKiB1c2luZyBhIHBhdGNoLWFuZC1idWlsZCBzdHJhdGVneS4gU2FtZSBBUEkgYXMgYEtpYmFuYURhc2hib2FyZEVtYmVkUGx1Z2luYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN1cGVyc2V0RGFzaGJvYXJkRW1iZWRQbHVnaW4gaW1wbGVtZW50cyBEYXNoYm9hcmRFbWJlZFBsdWdpbiB7XG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdG9yOiBEYXNoYm9hcmRFbWJlZFBsdWdpbkRlc2NyaXB0b3I7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHRhcmdldFZlcnNpb246IHN0cmluZyA9IFwic3VwZXJzZXRcIikge1xuICAgIHRoaXMuZGVzY3JpcHRvciA9IHtcbiAgICAgIGlkOiBTVVBFUlNFVF9QTFVHSU5fSUQsXG4gICAgICBhcHBJZDogU1VQRVJTRVRfQVBQX0lELFxuICAgICAgdmVyc2lvbjogU1VQRVJTRVRfUExVR0lOX1ZFUlNJT04sXG4gICAgICB0YXJnZXRWZXJzaW9uLFxuICAgICAgdG9vbDogXCJzdXBlcnNldFwiLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgbWFuaWZlc3QodGFyZ2V0VmVyc2lvbjogc3RyaW5nID0gdGhpcy5kZXNjcmlwdG9yLnRhcmdldFZlcnNpb24pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuIGJ1aWxkU3VwZXJzZXRNYW5pZmVzdCh0YXJnZXRWZXJzaW9uKSBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB9XG5cbiAgcHVibGljIGJ1aWxkRW1iZWRVcmwob3B0aW9uczogRW1iZWRVcmxPcHRpb25zKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYnVpbGRTdXBlcnNldEVtYmVkVXJsKG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZVN3aXRjaERhc2hib2FyZE1lc3NhZ2UoXG4gICAgcGF5bG9hZDogU3dpdGNoRGFzaGJvYXJkUGF5bG9hZFxuICApOiBTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlIHtcbiAgICByZXR1cm4gY3JlYXRlU3dpdGNoRGFzaGJvYXJkTWVzc2FnZShwYXlsb2FkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZW5kU3dpdGNoRGFzaGJvYXJkTWVzc2FnZShcbiAgICB0YXJnZXQ6IEVtYmVkTWVzc2FnZVRhcmdldCxcbiAgICBwYXlsb2FkOiBTd2l0Y2hEYXNoYm9hcmRQYXlsb2FkLFxuICAgIHRhcmdldE9yaWdpbjogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIHNlbmRTaGFyZWQodGFyZ2V0LCBwYXlsb2FkLCB0YXJnZXRPcmlnaW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGVyaWFsaXplIHRoZSBwYXRjaCBhbmQgYnVpbGQgc2NyaXB0cyBpbnRvIGB0YXJnZXRQYXRoL2AsIGFuZCB3aGVuXG4gICAqIGBidWlsZGAgaXMgdHJ1ZSwgY2xvbmUvdXNlIFN1cGVyc2V0IHNvdXJjZSwgYXBwbHkgcGF0Y2hlcywgYW5kIGJ1aWxkXG4gICAqIChTREsgKyBmcm9udGVuZCArIG9wdGlvbmFsbHkgRG9ja2VyIGltYWdlKS5cbiAgICpcbiAgICogVW5saWtlIEtpYmFuYSAod2hpY2ggZ2VuZXJhdGVzIHBsdWdpbiBzb3VyY2UpLCBTdXBlcnNldCdzIFwicGx1Z2luXCIgaXMgYVxuICAgKiBwYXRjaC1hbmQtYnVpbGQgc3RyYXRlZ3k6IERlY2FmIGhvbGRzIHNjcmlwdHMgdGhhdCBtb2RpZnkgU3VwZXJzZXQnc1xuICAgKiBleGlzdGluZyBpbnRlcm5hbCBzb3VyY2UgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaW5zdGFsbChcbiAgICBvcHRpb25zOiBTdXBlcnNldEluc3RhbGxPcHRpb25zXG4gICk6IFByb21pc2U8UGx1Z2luSW5zdGFsbFJlc3VsdD4ge1xuICAgIGNvbnN0IGN0eCA9IG9wdGlvbnMuY29udGV4dCBhcyBNYXliZUNvbnRleHR1YWxBcmc8YW55PiB8IHVuZGVmaW5lZDtcbiAgICBpZiAoY3R4KSB7XG4gICAgICB2b2lkIGN0eDtcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLnRhcmdldFBhdGggfHwgb3B0aW9ucy50YXJnZXRQYXRoLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFwiaW5zdGFsbCB0YXJnZXRQYXRoIGlzIHJlcXVpcmVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldFZlcnNpb24gPSBvcHRpb25zLnRhcmdldFZlcnNpb24gPz8gdGhpcy5kZXNjcmlwdG9yLnRhcmdldFZlcnNpb247XG4gICAgY29uc3QgcGx1Z2luRGlyID0gcGF0aC5yZXNvbHZlKFxuICAgICAgb3B0aW9ucy50YXJnZXRQYXRoLFxuICAgICAgU1VQRVJTRVRfQVBQX0lEXG4gICAgKTtcblxuICAgIGlmIChmcy5leGlzdHNTeW5jKHBsdWdpbkRpcikpIHtcbiAgICAgIGlmICghb3B0aW9ucy5vdmVyd3JpdGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgYFBsdWdpbiBkaXJlY3RvcnkgYWxyZWFkeSBleGlzdHM6ICR7cGx1Z2luRGlyfSAodXNlIG92ZXJ3cml0ZTogdHJ1ZSlgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBmcy5ybVN5bmMocGx1Z2luRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZXMgPSBzdXBlcnNldFBhdGNoRmlsZXMoKTtcbiAgICBjb25zdCB3cml0dGVuOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLmpvaW4ocGx1Z2luRGlyLCBmaWxlLnBhdGgpO1xuICAgICAgZnMubWtkaXJTeW5jKHBhdGguZGlybmFtZShmdWxsUGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhmdWxsUGF0aCwgZmlsZS5jb250ZW50LCBcInV0ZjhcIik7XG4gICAgICBpZiAoZmlsZS5leGVjdXRhYmxlKSB7XG4gICAgICAgIGZzLmNobW9kU3luYyhmdWxsUGF0aCwgMG83NTUpO1xuICAgICAgfVxuICAgICAgd3JpdHRlbi5wdXNoKGZpbGUucGF0aCk7XG4gICAgfVxuXG4gICAgbGV0IGJ1aWx0ID0gZmFsc2U7XG4gICAgbGV0IGJ1aWxkT3V0cHV0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAob3B0aW9ucy5idWlsZCkge1xuICAgICAgY29uc3Qgc3VwZXJzZXRSb290ID0gYXdhaXQgdGhpcy5yZXNvbHZlU3VwZXJzZXRSb290KHBsdWdpbkRpciwgb3B0aW9ucyk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnJ1blBhdGNoQW5kQnVpbGQoXG4gICAgICAgIHBsdWdpbkRpcixcbiAgICAgICAgc3VwZXJzZXRSb290LFxuICAgICAgICBvcHRpb25zXG4gICAgICApLmNhdGNoKChlcnI6IEVycm9yKSA9PiAoe1xuICAgICAgICBvazogZmFsc2UgYXMgY29uc3QsXG4gICAgICAgIG91dHB1dDogZXJyLm1lc3NhZ2UsXG4gICAgICB9KSk7XG4gICAgICBidWlsdCA9IHJlc3VsdC5vaztcbiAgICAgIGJ1aWxkT3V0cHV0ID0gcmVzdWx0Lm91dHB1dDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGx1Z2luUGF0aDogcGx1Z2luRGlyLFxuICAgICAgZGVzY3JpcHRvcjogeyAuLi50aGlzLmRlc2NyaXB0b3IsIHRhcmdldFZlcnNpb24gfSxcbiAgICAgIGZpbGVzOiB3cml0dGVuLFxuICAgICAgYnVpbHQsXG4gICAgICBidWlsZE91dHB1dCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIFN1cGVyc2V0IHNvdXJjZSByb290OiB1c2UgYW4gZXhpc3RpbmcgY2hlY2tvdXQgb3IgY2xvbmUgdmlhIGdpdC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyByZXNvbHZlU3VwZXJzZXRSb290KFxuICAgIHBsdWdpbkRpcjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFN1cGVyc2V0SW5zdGFsbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAob3B0aW9ucy5zdXBlcnNldFNvdXJjZVBhdGgpIHtcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gcGF0aC5yZXNvbHZlKG9wdGlvbnMuc3VwZXJzZXRTb3VyY2VQYXRoKTtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4ocmVzb2x2ZWQsIFwic3VwZXJzZXQtZnJvbnRlbmRcIiwgXCJzcmNcIiwgXCJlbWJlZGRlZFwiLCBcImluZGV4LnRzeFwiKSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgYFN1cGVyc2V0IHNvdXJjZSBub3QgZm91bmQgYXQ6ICR7cmVzb2x2ZWR9IChtaXNzaW5nIHN1cGVyc2V0LWZyb250ZW5kL3NyYy9lbWJlZGRlZC9pbmRleC50c3gpYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGdpdFVybCA9IG9wdGlvbnMuc3VwZXJzZXRHaXRVcmwgPz8gXCJodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL3N1cGVyc2V0LmdpdFwiO1xuICAgIGNvbnN0IGdpdFJlZiA9IG9wdGlvbnMuc3VwZXJzZXRHaXRSZWYgPz8gb3B0aW9ucy50YXJnZXRWZXJzaW9uID8/IFwiNi4xLjBcIjtcbiAgICBjb25zdCBjbG9uZURpciA9IHBhdGguam9pbihwbHVnaW5EaXIsIFwiLnN1cGVyc2V0LXNvdXJjZVwiKTtcblxuICAgIGlmIChmcy5leGlzdHNTeW5jKGNsb25lRGlyKSkge1xuICAgICAgZnMucm1TeW5jKGNsb25lRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5ydW5Db21tYW5kKFwiZ2l0XCIsIFtcImNsb25lXCIsIFwiLS1kZXB0aFwiLCBcIjFcIiwgXCItLWJyYW5jaFwiLCBnaXRSZWYsIGdpdFVybCwgY2xvbmVEaXJdLCBwbHVnaW5EaXIpO1xuICAgIHJldHVybiBjbG9uZURpcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSBwYXRjaGVzLCB2ZXJpZnksIGFuZCBidWlsZCAoU0RLICsgZnJvbnRlbmQgKyBvcHRpb25hbGx5IERvY2tlcikuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgcnVuUGF0Y2hBbmRCdWlsZChcbiAgICBwbHVnaW5EaXI6IHN0cmluZyxcbiAgICBzdXBlcnNldFJvb3Q6IHN0cmluZyxcbiAgICBvcHRpb25zOiBTdXBlcnNldEluc3RhbGxPcHRpb25zXG4gICk6IFByb21pc2U8eyBvazogYm9vbGVhbjsgb3V0cHV0OiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IG91dHB1dHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyAxLiBBcHBseSBwYXRjaFxuICAgIGNvbnN0IHBhdGNoUmVzdWx0ID0gYXdhaXQgdGhpcy5ydW5Db21tYW5kKFxuICAgICAgXCJweXRob24zXCIsXG4gICAgICBbcGF0aC5qb2luKHBsdWdpbkRpciwgXCJwYXRjaGVzXCIsIFwiYXBwbHlfc3VwZXJzZXRfNl8xX3BhdGNoLnB5XCIpLCBzdXBlcnNldFJvb3RdLFxuICAgICAgcGx1Z2luRGlyXG4gICAgKTtcbiAgICBvdXRwdXRzLnB1c2gocGF0Y2hSZXN1bHQpO1xuXG4gICAgLy8gMi4gVmVyaWZ5IHBhdGNoXG4gICAgY29uc3QgdmVyaWZ5UmVzdWx0ID0gYXdhaXQgdGhpcy5ydW5Db21tYW5kKFxuICAgICAgcGF0aC5qb2luKHBsdWdpbkRpciwgXCJwYXRjaGVzXCIsIFwidmVyaWZ5X3BhdGNoLnNoXCIpLFxuICAgICAgW3N1cGVyc2V0Um9vdF0sXG4gICAgICBwbHVnaW5EaXJcbiAgICApO1xuICAgIG91dHB1dHMucHVzaCh2ZXJpZnlSZXN1bHQpO1xuXG4gICAgLy8gMy4gQnVpbGQgKERvY2tlciBpbWFnZSBvciBTREsgKyBmcm9udGVuZClcbiAgICBpZiAob3B0aW9ucy5kb2NrZXJJbWFnZVRhZykge1xuICAgICAgY29uc3QgZG9ja2VyUmVzdWx0ID0gYXdhaXQgdGhpcy5ydW5Db21tYW5kKFxuICAgICAgICBwYXRoLmpvaW4ocGx1Z2luRGlyLCBcImJ1aWxkXCIsIFwiYnVpbGQtZG9ja2VyLWltYWdlLnNoXCIpLFxuICAgICAgICBbc3VwZXJzZXRSb290LCBvcHRpb25zLmRvY2tlckltYWdlVGFnXSxcbiAgICAgICAgcGx1Z2luRGlyXG4gICAgICApO1xuICAgICAgb3V0cHV0cy5wdXNoKGRvY2tlclJlc3VsdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNka1Jlc3VsdCA9IGF3YWl0IHRoaXMucnVuQ29tbWFuZChcbiAgICAgICAgcGF0aC5qb2luKHBsdWdpbkRpciwgXCJidWlsZFwiLCBcImJ1aWxkLXNkay5zaFwiKSxcbiAgICAgICAgW3N1cGVyc2V0Um9vdF0sXG4gICAgICAgIHBsdWdpbkRpclxuICAgICAgKTtcbiAgICAgIG91dHB1dHMucHVzaChzZGtSZXN1bHQpO1xuXG4gICAgICBjb25zdCBmcm9udGVuZFJlc3VsdCA9IGF3YWl0IHRoaXMucnVuQ29tbWFuZChcbiAgICAgICAgcGF0aC5qb2luKHBsdWdpbkRpciwgXCJidWlsZFwiLCBcImJ1aWxkLXN1cGVyc2V0LWZyb250ZW5kLnNoXCIpLFxuICAgICAgICBbc3VwZXJzZXRSb290XSxcbiAgICAgICAgcGx1Z2luRGlyXG4gICAgICApO1xuICAgICAgb3V0cHV0cy5wdXNoKGZyb250ZW5kUmVzdWx0KTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBvazogdHJ1ZSwgb3V0cHV0OiBvdXRwdXRzLmpvaW4oXCJcXG5cIikgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gYSBjb21tYW5kIGFuZCBjYXB0dXJlIHN0ZG91dCtzdGRlcnIuXG4gICAqL1xuICBwcm90ZWN0ZWQgcnVuQ29tbWFuZChcbiAgICBjbWQ6IHN0cmluZyxcbiAgICBhcmdzOiBzdHJpbmdbXSxcbiAgICBjd2Q6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBleGVjRmlsZShcbiAgICAgICAgY21kLFxuICAgICAgICBhcmdzLFxuICAgICAgICB7IGN3ZCwgdGltZW91dDogNjAwMDAwIH0sXG4gICAgICAgIChlcnJvciwgc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgICAgICBjb25zdCBvdXRwdXQgPSBgJHtzdGRvdXQgPz8gXCJcIn0ke3N0ZGVyciA/PyBcIlwifWAudHJpbSgpO1xuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihvdXRwdXQgfHwgZXJyb3IubWVzc2FnZSkpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqIERlZmF1bHQgc2luZ2xldG9uIGluc3RhbmNlLiAqL1xuZXhwb3J0IGNvbnN0IHN1cGVyc2V0RGFzaGJvYXJkRW1iZWRQbHVnaW4gPSBuZXcgU3VwZXJzZXREYXNoYm9hcmRFbWJlZFBsdWdpbigpO1xuXG4vKiogRmFjdG9yeSBhY2NlcHRpbmcgYSB0YXJnZXQgU3VwZXJzZXQgdmVyc2lvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdXBlcnNldERhc2hib2FyZEVtYmVkUGx1Z2luKFxuICB0YXJnZXRWZXJzaW9uOiBzdHJpbmdcbik6IFN1cGVyc2V0RGFzaGJvYXJkRW1iZWRQbHVnaW4ge1xuICByZXR1cm4gbmV3IFN1cGVyc2V0RGFzaGJvYXJkRW1iZWRQbHVnaW4odGFyZ2V0VmVyc2lvbik7XG59XG4iXX0=
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW5zdGFsbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlDQSxzREFRQztBQW1KRCxnRkFFQztBQTlMRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCwyREFBd0Q7QUFDeEQseUNBQWtEO0FBQ2xELDRDQUE4QjtBQUM5QixnREFBa0M7QUFDbEMsMkRBQThDO0FBQzlDLGtEQUEyRztBQUMzRywrQ0FBcUg7QUFDckgsaURBQW9EO0FBQ3BELHdEQUF3RDtBQUMzQyxRQUFBLDBCQUEwQixHQUFHLFVBQVUsQ0FBQztBQUNyRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxPQUFPO0lBQ3pDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksa0NBQTBCLENBQUM7SUFDaEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUNyQyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxPQUFPLEtBQUssT0FBTyxDQUFDLElBQUksSUFBSSxRQUFRLGFBQWEsT0FBTyxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztBQUNoRyxDQUFDO0FBQ0Q7Ozs7O0dBS0c7QUFDSCxNQUFhLDRCQUE0QjtJQUNyQyxZQUFZLGFBQWEsR0FBRyxVQUFVO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDZCxFQUFFLEVBQUUsZ0NBQWtCO1lBQ3RCLEtBQUssRUFBRSw2QkFBZTtZQUN0QixPQUFPLEVBQUUscUNBQXVCO1lBQ2hDLGFBQWE7WUFDYixJQUFJLEVBQUUsVUFBVTtTQUNuQixDQUFDO0lBQ04sQ0FBQztJQUNELFFBQVEsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhO1FBQ2xELE9BQU8sSUFBQSxtQ0FBcUIsRUFBQyxhQUFhLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsYUFBYSxDQUFDLE9BQU87UUFDakIsT0FBTyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsNEJBQTRCLENBQUMsT0FBTztRQUNoQyxPQUFPLElBQUEsMENBQTRCLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELDBCQUEwQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWTtRQUNwRCxJQUFBLHdDQUFVLEVBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0Q7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU87UUFDakIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ04sS0FBSyxHQUFHLENBQUM7UUFDYixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEUsTUFBTSxJQUFJLHVCQUFnQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDN0UsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLDZCQUFlLENBQUMsQ0FBQztRQUNwRSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNyQixNQUFNLElBQUksNkJBQWEsQ0FBQyxvQ0FBb0MsU0FBUyx3QkFBd0IsQ0FBQyxDQUFDO1lBQ25HLENBQUM7WUFDRCxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUEsaUNBQWtCLEdBQUUsQ0FBQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbkIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakQsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDMUQsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNqRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEMsQ0FBQztZQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFDRCxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxXQUFXLENBQUM7UUFDaEIsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3hFLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN6RixFQUFFLEVBQUUsS0FBSztnQkFDVCxNQUFNLEVBQUUsR0FBRyxDQUFDLE9BQU87YUFDdEIsQ0FBQyxDQUFDLENBQUM7WUFDSixLQUFLLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNsQixXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxDQUFDO1FBQ0QsT0FBTztZQUNILFVBQVUsRUFBRSxTQUFTO1lBQ3JCLFVBQVUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUU7WUFDakQsS0FBSyxFQUFFLE9BQU87WUFDZCxLQUFLO1lBQ0wsV0FBVztTQUNkLENBQUM7SUFDTixDQUFDO0lBQ0Q7O09BRUc7SUFDSCxLQUFLLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLE9BQU87UUFDeEMsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMzRixNQUFNLElBQUksNkJBQWEsQ0FBQyxpQ0FBaUMsUUFBUSxxREFBcUQsQ0FBQyxDQUFDO1lBQzVILENBQUM7WUFDRCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsSUFBSSx3Q0FBd0MsQ0FBQztRQUNsRixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxhQUFhLElBQUksT0FBTyxDQUFDO1FBQzFFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDMUQsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDMUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekcsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUNEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsT0FBTztRQUNuRCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbkIsaUJBQWlCO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsNkJBQTZCLENBQUMsRUFBRSxZQUFZLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNoSixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFCLGtCQUFrQjtRQUNsQixNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMxSCxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNCLDRDQUE0QztRQUM1QyxJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3RKLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0IsQ0FBQzthQUNJLENBQUM7WUFDRixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDbEgsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4QixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNySSxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFDRDs7T0FFRztJQUNILFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUc7UUFDckIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxJQUFBLDZCQUFRLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNwRSxNQUFNLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN2RCxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNSLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQzNDLE9BQU87Z0JBQ1gsQ0FBQztnQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQXhJRCxvRUF3SUM7QUFDRCxrQ0FBa0M7QUFDckIsUUFBQSw0QkFBNEIsR0FBRyxJQUFJLDRCQUE0QixFQUFFLENBQUM7QUFDL0UsbURBQW1EO0FBQ25ELFNBQWdCLGtDQUFrQyxDQUFDLGFBQWE7SUFDNUQsT0FBTyxJQUFJLDRCQUE0QixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFDRCxreXJCQUFreXJCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9wbHVnaW5zL3N1cGVyc2V0L2luc3RhbGxlclxuICogQHN1bW1hcnkgU3VwZXJzZXQgZGFzaGJvYXJkIGVtYmVkIHBsdWdpbiBpbnN0YWxsZXIuXG4gKiBAZGVzY3JpcHRpb24gSW1wbGVtZW50cyBgRGFzaGJvYXJkRW1iZWRQbHVnaW5gIGZvciBTdXBlcnNldCB1c2luZyBhXG4gKiBwYXRjaC1hbmQtYnVpbGQgc3RyYXRlZ3kuIERlY2FmIGhvbGRzIHBhdGNoIHNjcmlwdHMgdGhhdCBtb2RpZnkgU3VwZXJzZXQnc1xuICogaW50ZXJuYWwgZW1iZWRkZWQgZnJvbnRlbmQgYW5kIFNESyBzb3VyY2UgZmlsZXMgdG8gYWRkIGEgYHN3aXRjaERhc2hib2FyZGBcbiAqIG1ldGhvZC4gYGluc3RhbGxgIG1hdGVyaWFsaXplcyB0aGUgc2NyaXB0cywgY2xvbmVzL3VzZXMgU3VwZXJzZXQgc291cmNlLFxuICogYXBwbGllcyBwYXRjaGVzLCBhbmQgYnVpbGRzIChTREsgKyBmcm9udGVuZCArIG9wdGlvbmFsbHkgRG9ja2VyIGltYWdlKS5cbiAqXG4gKiBUaGUgc2FtZSBgRGFzaGJvYXJkRW1iZWRQbHVnaW5gIEFQSSBhcyBLaWJhbmEgaXMgZXhwb3NlZC4gYHNlbmRTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlYFxuICogZGVsZWdhdGVzIHRvIGB0YXJnZXQuc3dpdGNoRGFzaGJvYXJkKGRhc2hib2FyZElkLCBndWVzdFRva2VuKWAgKHRoZSBTdXBlcnNldFxuICogU0RLIGhhbmRsZSkgaW5zdGVhZCBvZiBgcG9zdE1lc3NhZ2VgLlxuICovXG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBleGVjRmlsZSB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7IGNyZWF0ZVN3aXRjaERhc2hib2FyZE1lc3NhZ2UsIHNlbmRTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlIGFzIHNlbmRTaGFyZWQsIH0gZnJvbSBcIi4vLi4vY29udHJhY3QuanNcIjtcbmltcG9ydCB7IFNVUEVSU0VUX0FQUF9JRCwgU1VQRVJTRVRfUExVR0lOX0lELCBTVVBFUlNFVF9QTFVHSU5fVkVSU0lPTiwgYnVpbGRTdXBlcnNldE1hbmlmZXN0LCB9IGZyb20gXCIuL21hbmlmZXN0LmpzXCI7XG5pbXBvcnQgeyBzdXBlcnNldFBhdGNoRmlsZXMgfSBmcm9tIFwiLi90ZW1wbGF0ZXMuanNcIjtcbi8qKiBEZWZhdWx0IFN1cGVyc2V0IGJhc2UgcGF0aCB3aGVuIG5vbmUgaXMgcHJvdmlkZWQuICovXG5leHBvcnQgY29uc3QgU1VQRVJTRVRfREVGQVVMVF9CQVNFX1BBVEggPSBcInN1cGVyc2V0XCI7XG4vKipcbiAqIEJ1aWxkIHRoZSBTdXBlcnNldCBlbWJlZGRlZCBVUkwuXG4gKlxuICogRm9yIFN1cGVyc2V0LCB0aGUgYGRhc2hib2FyZElkYCBmaWVsZCBpbiBgRW1iZWRVcmxPcHRpb25zYCBpcyB0aGVcbiAqIGVtYmVkZGVkLWNvbmZpZ3VyYXRpb24gVVVJRCB1c2VkIGluIGAvZW1iZWRkZWQvOnV1aWRgLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIGJ1aWxkU3VwZXJzZXRFbWJlZFVybCh7IGhvc3Q6IFwic3VwZXJzZXQuZXhhbXBsZS5jb21cIiwgZGFzaGJvYXJkSWQ6IFwiYWJjLXV1aWRcIiwgcGFyZW50T3JpZ2luOiBcImh0dHBzOi8vYXBwLmV4YW1wbGUuY29tXCIgfSlcbiAqICAgLy8gPT4gXCIvL3N1cGVyc2V0LmV4YW1wbGUuY29tL3N1cGVyc2V0L2VtYmVkZGVkL2FiYy11dWlkP3BhcmVudE9yaWdpbj1odHRwcyUzQSUyRiUyRmFwcC5leGFtcGxlLmNvbVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFN1cGVyc2V0RW1iZWRVcmwob3B0aW9ucykge1xuICAgIGNvbnN0IGJhc2VQYXRoID0gb3B0aW9ucy5iYXNlUGF0aCA/PyBTVVBFUlNFVF9ERUZBVUxUX0JBU0VfUEFUSDtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgcGFyYW1zLnNldChcInBhcmVudE9yaWdpblwiLCBvcHRpb25zLnBhcmVudE9yaWdpbik7XG4gICAgaWYgKG9wdGlvbnMudmlldz8udGltZVJhbmdlKSB7XG4gICAgICAgIHBhcmFtcy5zZXQoXCJ0aW1lUmFuZ2VcIiwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucy52aWV3LnRpbWVSYW5nZSkpO1xuICAgIH1cbiAgICByZXR1cm4gYC8vJHtvcHRpb25zLmhvc3R9LyR7YmFzZVBhdGh9L2VtYmVkZGVkLyR7b3B0aW9ucy5kYXNoYm9hcmRJZH0/JHtwYXJhbXMudG9TdHJpbmcoKX1gO1xufVxuLyoqXG4gKiBAY2xhc3MgU3VwZXJzZXREYXNoYm9hcmRFbWJlZFBsdWdpblxuICogQHN1bW1hcnkgU3VwZXJzZXQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGBEYXNoYm9hcmRFbWJlZFBsdWdpbmAgY29udHJhY3QuXG4gKiBAZGVzY3JpcHRpb24gT3JnLWFnbm9zdGljIG11bHRpLXRlbmFudCBkYXNoYm9hcmQgZW1iZWQgcGx1Z2luIGZvciBTdXBlcnNldFxuICogdXNpbmcgYSBwYXRjaC1hbmQtYnVpbGQgc3RyYXRlZ3kuIFNhbWUgQVBJIGFzIGBLaWJhbmFEYXNoYm9hcmRFbWJlZFBsdWdpbmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXBlcnNldERhc2hib2FyZEVtYmVkUGx1Z2luIHtcbiAgICBjb25zdHJ1Y3Rvcih0YXJnZXRWZXJzaW9uID0gXCJzdXBlcnNldFwiKSB7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvciA9IHtcbiAgICAgICAgICAgIGlkOiBTVVBFUlNFVF9QTFVHSU5fSUQsXG4gICAgICAgICAgICBhcHBJZDogU1VQRVJTRVRfQVBQX0lELFxuICAgICAgICAgICAgdmVyc2lvbjogU1VQRVJTRVRfUExVR0lOX1ZFUlNJT04sXG4gICAgICAgICAgICB0YXJnZXRWZXJzaW9uLFxuICAgICAgICAgICAgdG9vbDogXCJzdXBlcnNldFwiLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBtYW5pZmVzdCh0YXJnZXRWZXJzaW9uID0gdGhpcy5kZXNjcmlwdG9yLnRhcmdldFZlcnNpb24pIHtcbiAgICAgICAgcmV0dXJuIGJ1aWxkU3VwZXJzZXRNYW5pZmVzdCh0YXJnZXRWZXJzaW9uKTtcbiAgICB9XG4gICAgYnVpbGRFbWJlZFVybChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBidWlsZFN1cGVyc2V0RW1iZWRVcmwob3B0aW9ucyk7XG4gICAgfVxuICAgIGNyZWF0ZVN3aXRjaERhc2hib2FyZE1lc3NhZ2UocGF5bG9hZCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU3dpdGNoRGFzaGJvYXJkTWVzc2FnZShwYXlsb2FkKTtcbiAgICB9XG4gICAgc2VuZFN3aXRjaERhc2hib2FyZE1lc3NhZ2UodGFyZ2V0LCBwYXlsb2FkLCB0YXJnZXRPcmlnaW4pIHtcbiAgICAgICAgc2VuZFNoYXJlZCh0YXJnZXQsIHBheWxvYWQsIHRhcmdldE9yaWdpbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hdGVyaWFsaXplIHRoZSBwYXRjaCBhbmQgYnVpbGQgc2NyaXB0cyBpbnRvIGB0YXJnZXRQYXRoL2AsIGFuZCB3aGVuXG4gICAgICogYGJ1aWxkYCBpcyB0cnVlLCBjbG9uZS91c2UgU3VwZXJzZXQgc291cmNlLCBhcHBseSBwYXRjaGVzLCBhbmQgYnVpbGRcbiAgICAgKiAoU0RLICsgZnJvbnRlbmQgKyBvcHRpb25hbGx5IERvY2tlciBpbWFnZSkuXG4gICAgICpcbiAgICAgKiBVbmxpa2UgS2liYW5hICh3aGljaCBnZW5lcmF0ZXMgcGx1Z2luIHNvdXJjZSksIFN1cGVyc2V0J3MgXCJwbHVnaW5cIiBpcyBhXG4gICAgICogcGF0Y2gtYW5kLWJ1aWxkIHN0cmF0ZWd5OiBEZWNhZiBob2xkcyBzY3JpcHRzIHRoYXQgbW9kaWZ5IFN1cGVyc2V0J3NcbiAgICAgKiBleGlzdGluZyBpbnRlcm5hbCBzb3VyY2UgZmlsZXMuXG4gICAgICovXG4gICAgYXN5bmMgaW5zdGFsbChvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IG9wdGlvbnMuY29udGV4dDtcbiAgICAgICAgaWYgKGN0eCkge1xuICAgICAgICAgICAgdm9pZCBjdHg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRpb25zLnRhcmdldFBhdGggfHwgb3B0aW9ucy50YXJnZXRQYXRoLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFwiaW5zdGFsbCB0YXJnZXRQYXRoIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhcmdldFZlcnNpb24gPSBvcHRpb25zLnRhcmdldFZlcnNpb24gPz8gdGhpcy5kZXNjcmlwdG9yLnRhcmdldFZlcnNpb247XG4gICAgICAgIGNvbnN0IHBsdWdpbkRpciA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnRhcmdldFBhdGgsIFNVUEVSU0VUX0FQUF9JRCk7XG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHBsdWdpbkRpcikpIHtcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5vdmVyd3JpdGUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgUGx1Z2luIGRpcmVjdG9yeSBhbHJlYWR5IGV4aXN0czogJHtwbHVnaW5EaXJ9ICh1c2Ugb3ZlcndyaXRlOiB0cnVlKWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnMucm1TeW5jKHBsdWdpbkRpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZpbGVzID0gc3VwZXJzZXRQYXRjaEZpbGVzKCk7XG4gICAgICAgIGNvbnN0IHdyaXR0ZW4gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgICAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGguam9pbihwbHVnaW5EaXIsIGZpbGUucGF0aCk7XG4gICAgICAgICAgICBmcy5ta2RpclN5bmMocGF0aC5kaXJuYW1lKGZ1bGxQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGZ1bGxQYXRoLCBmaWxlLmNvbnRlbnQsIFwidXRmOFwiKTtcbiAgICAgICAgICAgIGlmIChmaWxlLmV4ZWN1dGFibGUpIHtcbiAgICAgICAgICAgICAgICBmcy5jaG1vZFN5bmMoZnVsbFBhdGgsIDBvNzU1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdyaXR0ZW4ucHVzaChmaWxlLnBhdGgpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBidWlsdCA9IGZhbHNlO1xuICAgICAgICBsZXQgYnVpbGRPdXRwdXQ7XG4gICAgICAgIGlmIChvcHRpb25zLmJ1aWxkKSB7XG4gICAgICAgICAgICBjb25zdCBzdXBlcnNldFJvb3QgPSBhd2FpdCB0aGlzLnJlc29sdmVTdXBlcnNldFJvb3QocGx1Z2luRGlyLCBvcHRpb25zKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucnVuUGF0Y2hBbmRCdWlsZChwbHVnaW5EaXIsIHN1cGVyc2V0Um9vdCwgb3B0aW9ucykuY2F0Y2goKGVycikgPT4gKHtcbiAgICAgICAgICAgICAgICBvazogZmFsc2UsXG4gICAgICAgICAgICAgICAgb3V0cHV0OiBlcnIubWVzc2FnZSxcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIGJ1aWx0ID0gcmVzdWx0Lm9rO1xuICAgICAgICAgICAgYnVpbGRPdXRwdXQgPSByZXN1bHQub3V0cHV0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwbHVnaW5QYXRoOiBwbHVnaW5EaXIsXG4gICAgICAgICAgICBkZXNjcmlwdG9yOiB7IC4uLnRoaXMuZGVzY3JpcHRvciwgdGFyZ2V0VmVyc2lvbiB9LFxuICAgICAgICAgICAgZmlsZXM6IHdyaXR0ZW4sXG4gICAgICAgICAgICBidWlsdCxcbiAgICAgICAgICAgIGJ1aWxkT3V0cHV0LFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXNvbHZlIHRoZSBTdXBlcnNldCBzb3VyY2Ugcm9vdDogdXNlIGFuIGV4aXN0aW5nIGNoZWNrb3V0IG9yIGNsb25lIHZpYSBnaXQuXG4gICAgICovXG4gICAgYXN5bmMgcmVzb2x2ZVN1cGVyc2V0Um9vdChwbHVnaW5EaXIsIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuc3VwZXJzZXRTb3VyY2VQYXRoKSB7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZCA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnN1cGVyc2V0U291cmNlUGF0aCk7XG4gICAgICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocGF0aC5qb2luKHJlc29sdmVkLCBcInN1cGVyc2V0LWZyb250ZW5kXCIsIFwic3JjXCIsIFwiZW1iZWRkZWRcIiwgXCJpbmRleC50c3hcIikpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYFN1cGVyc2V0IHNvdXJjZSBub3QgZm91bmQgYXQ6ICR7cmVzb2x2ZWR9IChtaXNzaW5nIHN1cGVyc2V0LWZyb250ZW5kL3NyYy9lbWJlZGRlZC9pbmRleC50c3gpYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZ2l0VXJsID0gb3B0aW9ucy5zdXBlcnNldEdpdFVybCA/PyBcImh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvc3VwZXJzZXQuZ2l0XCI7XG4gICAgICAgIGNvbnN0IGdpdFJlZiA9IG9wdGlvbnMuc3VwZXJzZXRHaXRSZWYgPz8gb3B0aW9ucy50YXJnZXRWZXJzaW9uID8/IFwiNi4xLjBcIjtcbiAgICAgICAgY29uc3QgY2xvbmVEaXIgPSBwYXRoLmpvaW4ocGx1Z2luRGlyLCBcIi5zdXBlcnNldC1zb3VyY2VcIik7XG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKGNsb25lRGlyKSkge1xuICAgICAgICAgICAgZnMucm1TeW5jKGNsb25lRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5ydW5Db21tYW5kKFwiZ2l0XCIsIFtcImNsb25lXCIsIFwiLS1kZXB0aFwiLCBcIjFcIiwgXCItLWJyYW5jaFwiLCBnaXRSZWYsIGdpdFVybCwgY2xvbmVEaXJdLCBwbHVnaW5EaXIpO1xuICAgICAgICByZXR1cm4gY2xvbmVEaXI7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFwcGx5IHBhdGNoZXMsIHZlcmlmeSwgYW5kIGJ1aWxkIChTREsgKyBmcm9udGVuZCArIG9wdGlvbmFsbHkgRG9ja2VyKS5cbiAgICAgKi9cbiAgICBhc3luYyBydW5QYXRjaEFuZEJ1aWxkKHBsdWdpbkRpciwgc3VwZXJzZXRSb290LCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dHMgPSBbXTtcbiAgICAgICAgLy8gMS4gQXBwbHkgcGF0Y2hcbiAgICAgICAgY29uc3QgcGF0Y2hSZXN1bHQgPSBhd2FpdCB0aGlzLnJ1bkNvbW1hbmQoXCJweXRob24zXCIsIFtwYXRoLmpvaW4ocGx1Z2luRGlyLCBcInBhdGNoZXNcIiwgXCJhcHBseV9zdXBlcnNldF82XzFfcGF0Y2gucHlcIiksIHN1cGVyc2V0Um9vdF0sIHBsdWdpbkRpcik7XG4gICAgICAgIG91dHB1dHMucHVzaChwYXRjaFJlc3VsdCk7XG4gICAgICAgIC8vIDIuIFZlcmlmeSBwYXRjaFxuICAgICAgICBjb25zdCB2ZXJpZnlSZXN1bHQgPSBhd2FpdCB0aGlzLnJ1bkNvbW1hbmQocGF0aC5qb2luKHBsdWdpbkRpciwgXCJwYXRjaGVzXCIsIFwidmVyaWZ5X3BhdGNoLnNoXCIpLCBbc3VwZXJzZXRSb290XSwgcGx1Z2luRGlyKTtcbiAgICAgICAgb3V0cHV0cy5wdXNoKHZlcmlmeVJlc3VsdCk7XG4gICAgICAgIC8vIDMuIEJ1aWxkIChEb2NrZXIgaW1hZ2Ugb3IgU0RLICsgZnJvbnRlbmQpXG4gICAgICAgIGlmIChvcHRpb25zLmRvY2tlckltYWdlVGFnKSB7XG4gICAgICAgICAgICBjb25zdCBkb2NrZXJSZXN1bHQgPSBhd2FpdCB0aGlzLnJ1bkNvbW1hbmQocGF0aC5qb2luKHBsdWdpbkRpciwgXCJidWlsZFwiLCBcImJ1aWxkLWRvY2tlci1pbWFnZS5zaFwiKSwgW3N1cGVyc2V0Um9vdCwgb3B0aW9ucy5kb2NrZXJJbWFnZVRhZ10sIHBsdWdpbkRpcik7XG4gICAgICAgICAgICBvdXRwdXRzLnB1c2goZG9ja2VyUmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHNka1Jlc3VsdCA9IGF3YWl0IHRoaXMucnVuQ29tbWFuZChwYXRoLmpvaW4ocGx1Z2luRGlyLCBcImJ1aWxkXCIsIFwiYnVpbGQtc2RrLnNoXCIpLCBbc3VwZXJzZXRSb290XSwgcGx1Z2luRGlyKTtcbiAgICAgICAgICAgIG91dHB1dHMucHVzaChzZGtSZXN1bHQpO1xuICAgICAgICAgICAgY29uc3QgZnJvbnRlbmRSZXN1bHQgPSBhd2FpdCB0aGlzLnJ1bkNvbW1hbmQocGF0aC5qb2luKHBsdWdpbkRpciwgXCJidWlsZFwiLCBcImJ1aWxkLXN1cGVyc2V0LWZyb250ZW5kLnNoXCIpLCBbc3VwZXJzZXRSb290XSwgcGx1Z2luRGlyKTtcbiAgICAgICAgICAgIG91dHB1dHMucHVzaChmcm9udGVuZFJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgb2s6IHRydWUsIG91dHB1dDogb3V0cHV0cy5qb2luKFwiXFxuXCIpIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJ1biBhIGNvbW1hbmQgYW5kIGNhcHR1cmUgc3Rkb3V0K3N0ZGVyci5cbiAgICAgKi9cbiAgICBydW5Db21tYW5kKGNtZCwgYXJncywgY3dkKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBleGVjRmlsZShjbWQsIGFyZ3MsIHsgY3dkLCB0aW1lb3V0OiA2MDAwMDAgfSwgKGVycm9yLCBzdGRvdXQsIHN0ZGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IGAke3N0ZG91dCA/PyBcIlwifSR7c3RkZXJyID8/IFwiXCJ9YC50cmltKCk7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3Iob3V0cHV0IHx8IGVycm9yLm1lc3NhZ2UpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXNvbHZlKG91dHB1dCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuLyoqIERlZmF1bHQgc2luZ2xldG9uIGluc3RhbmNlLiAqL1xuZXhwb3J0IGNvbnN0IHN1cGVyc2V0RGFzaGJvYXJkRW1iZWRQbHVnaW4gPSBuZXcgU3VwZXJzZXREYXNoYm9hcmRFbWJlZFBsdWdpbigpO1xuLyoqIEZhY3RvcnkgYWNjZXB0aW5nIGEgdGFyZ2V0IFN1cGVyc2V0IHZlcnNpb24uICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3VwZXJzZXREYXNoYm9hcmRFbWJlZFBsdWdpbih0YXJnZXRWZXJzaW9uKSB7XG4gICAgcmV0dXJuIG5ldyBTdXBlcnNldERhc2hib2FyZEVtYmVkUGx1Z2luKHRhcmdldFZlcnNpb24pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1emRHRnNiR1Z5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwzQnNkV2RwYm5NdmMzVndaWEp6WlhRdmFXNXpkR0ZzYkdWeUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCT3pzN096czdPenM3T3pzN1IwRlpSenRCUVVOSUxFOUJRVThzUlVGQlJTeGhRVUZoTEVWQlFVVXNUVUZCVFN4NVFrRkJlVUlzUTBGQlF6dEJRVU40UkN4UFFVRlBMRVZCUVVVc1owSkJRV2RDTEVWQlFYTkNMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZEZEVVc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeFRRVUZUTEVOQlFVTTdRVUZET1VJc1QwRkJUeXhMUVVGTExFbEJRVWtzVFVGQlRTeFhRVUZYTEVOQlFVTTdRVUZEYkVNc1QwRkJUeXhGUVVGRkxGRkJRVkVzUlVGQlJTeE5RVUZOTEc5Q1FVRnZRaXhEUVVGRE8wRkJSVGxETEU5QlFVOHNSVUZEVEN3MFFrRkJORUlzUlVGRE5VSXNNRUpCUVRCQ0xFbEJRVWtzVlVGQlZTeEhRVk42UXl4NVFrRkJiMEk3UVVGRGNrSXNUMEZCVHl4RlFVTk1MR1ZCUVdVc1JVRkRaaXhyUWtGQmEwSXNSVUZEYkVJc2RVSkJRWFZDTEVWQlEzWkNMSEZDUVVGeFFpeEhRVU4wUWl4elFrRkJiVUk3UVVGRGNFSXNUMEZCVHl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEhWQ1FVRnZRanRCUVVWcVJDeDNSRUZCZDBRN1FVRkRlRVFzVFVGQlRTeERRVUZETEUxQlFVMHNNRUpCUVRCQ0xFZEJRVWNzVlVGQlZTeERRVUZETzBGQlowSnlSRHM3T3pzN096czdPMGRCVTBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzY1VKQlFYRkNMRU5CUVVNc1QwRkJkMEk3U1VGRE5VUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1QwRkJUeXhEUVVGRExGRkJRVkVzU1VGQlNTd3dRa0ZCTUVJc1EwRkJRenRKUVVOb1JTeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMR1ZCUVdVc1JVRkJSU3hEUVVGRE8wbEJRM0pETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1kwRkJZeXhGUVVGRkxFOUJRVThzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0SlFVTnFSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNN1VVRkROVUlzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4WFFVRlhMRVZCUVVVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGJFVXNRMEZCUXp0SlFVTkVMRTlCUVU4c1MwRkJTeXhQUVVGUExFTkJRVU1zU1VGQlNTeEpRVUZKTEZGQlFWRXNZVUZCWVN4UFFVRlBMRU5CUVVNc1YwRkJWeXhKUVVGSkxFMUJRVTBzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUlN4RFFVRkRPMEZCUXpsR0xFTkJRVU03UVVGRlJEczdPenM3UjBGTFJ6dEJRVU5JTEUxQlFVMHNUMEZCVHl3MFFrRkJORUk3U1VGSGRrTXNXVUZCYlVJc1owSkJRWGRDTEZWQlFWVTdVVUZEYmtRc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ6dFpRVU5vUWl4RlFVRkZMRVZCUVVVc2EwSkJRV3RDTzFsQlEzUkNMRXRCUVVzc1JVRkJSU3hsUVVGbE8xbEJRM1JDTEU5QlFVOHNSVUZCUlN4MVFrRkJkVUk3V1VGRGFFTXNZVUZCWVR0WlFVTmlMRWxCUVVrc1JVRkJSU3hWUVVGVk8xTkJRMnBDTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlUwc1VVRkJVU3hEUVVGRExHZENRVUYzUWl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0U3VVVGRGJrVXNUMEZCVHl4eFFrRkJjVUlzUTBGQlF5eGhRVUZoTEVOQlFYVkRMRU5CUVVNN1NVRkRjRVlzUTBGQlF6dEpRVVZOTEdGQlFXRXNRMEZCUXl4UFFVRjNRanRSUVVNelF5eFBRVUZQTEhGQ1FVRnhRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzaERMRU5CUVVNN1NVRkZUU3cwUWtGQk5FSXNRMEZEYWtNc1QwRkJLMEk3VVVGRkwwSXNUMEZCVHl3MFFrRkJORUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTXZReXhEUVVGRE8wbEJSVTBzTUVKQlFUQkNMRU5CUXk5Q0xFMUJRVEJDTEVWQlF6RkNMRTlCUVN0Q0xFVkJReTlDTEZsQlFXOUNPMUZCUlhCQ0xGVkJRVlVzUTBGQlF5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRmxCUVZrc1EwRkJReXhEUVVGRE8wbEJRelZETEVOQlFVTTdTVUZGUkRzN096czdPenM3VDBGUlJ6dEpRVU5KTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUTJ4Q0xFOUJRU3RDTzFGQlJTOUNMRTFCUVUwc1IwRkJSeXhIUVVGSExFOUJRVThzUTBGQlF5eFBRVUU0UXl4RFFVRkRPMUZCUTI1RkxFbEJRVWtzUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEVWl4TFFVRkxMRWRCUVVjc1EwRkJRenRSUVVOWUxFTkJRVU03VVVGRFJDeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hQUVVGUExFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU5zUlN4TlFVRk5MRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNaME5CUVdkRExFTkJRVU1zUTBGQlF6dFJRVU12UkN4RFFVRkRPMUZCUlVRc1RVRkJUU3hoUVVGaExFZEJRVWNzVDBGQlR5eERRVUZETEdGQlFXRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0VzUTBGQlF6dFJRVU0zUlN4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVU0xUWl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hGUVVOc1FpeGxRVUZsTEVOQlEyaENMRU5CUVVNN1VVRkZSaXhKUVVGSkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVNM1FpeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8yZENRVU4yUWl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVOeVFpeHZRMEZCYjBNc1UwRkJVeXgzUWtGQmQwSXNRMEZEZEVVc1EwRkJRenRaUVVOS0xFTkJRVU03V1VGRFJDeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkJSU3hGUVVGRkxGTkJRVk1zUlVGQlJTeEpRVUZKTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGVrUXNRMEZCUXp0UlFVVkVMRTFCUVUwc1MwRkJTeXhIUVVGSExHdENRVUZyUWl4RlFVRkZMRU5CUVVNN1VVRkRia01zVFVGQlRTeFBRVUZQTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUXpkQ0xFdEJRVXNzVFVGQlRTeEpRVUZKTEVsQlFVa3NTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRla0lzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUTJwRUxFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeEZRVUZGTEZOQlFWTXNSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8xbEJRekZFTEVWQlFVVXNRMEZCUXl4aFFVRmhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRha1FzU1VGQlNTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1owSkJRM0JDTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEyaERMRU5CUVVNN1dVRkRSQ3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNeFFpeERRVUZETzFGQlJVUXNTVUZCU1N4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRMnhDTEVsQlFVa3NWMEZCSzBJc1EwRkJRenRSUVVWd1F5eEpRVUZKTEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJRenRaUVVOc1FpeE5RVUZOTEZsQlFWa3NSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4VFFVRlRMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRGVFVXNUVUZCVFN4TlFVRk5MRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUTNoRExGTkJRVk1zUlVGRFZDeFpRVUZaTEVWQlExb3NUMEZCVHl4RFFVTlNMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUjBGQlZTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMmRDUVVOMlFpeEZRVUZGTEVWQlFVVXNTMEZCWXp0blFrRkRiRUlzVFVGQlRTeEZRVUZGTEVkQlFVY3NRMEZCUXl4UFFVRlBPMkZCUTNCQ0xFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEwb3NTMEZCU3l4SFFVRkhMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGJFSXNWMEZCVnl4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGRE9VSXNRMEZCUXp0UlFVVkVMRTlCUVU4N1dVRkRUQ3hWUVVGVkxFVkJRVVVzVTBGQlV6dFpRVU55UWl4VlFVRlZMRVZCUVVVc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNZVUZCWVN4RlFVRkZPMWxCUTJwRUxFdEJRVXNzUlVGQlJTeFBRVUZQTzFsQlEyUXNTMEZCU3p0WlFVTk1MRmRCUVZjN1UwRkRXaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFT3p0UFFVVkhPMGxCUTA4c1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4RFFVTnFReXhUUVVGcFFpeEZRVU5xUWl4UFFVRXJRanRSUVVVdlFpeEpRVUZKTEU5QlFVOHNRMEZCUXl4clFrRkJhMElzUlVGQlJTeERRVUZETzFsQlF5OUNMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTTdXVUZETVVRc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzYlVKQlFXMUNMRVZCUVVVc1MwRkJTeXhGUVVGRkxGVkJRVlVzUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1owSkJRemRHTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUTNKQ0xHbERRVUZwUXl4UlFVRlJMSEZFUVVGeFJDeERRVU12Uml4RFFVRkRPMWxCUTBvc1EwRkJRenRaUVVORUxFOUJRVThzVVVGQlVTeERRVUZETzFGQlEyeENMRU5CUVVNN1VVRkZSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNZMEZCWXl4SlFVRkpMSGREUVVGM1F5eERRVUZETzFGQlEyeEdMRTFCUVUwc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF5eGpRVUZqTEVsQlFVa3NUMEZCVHl4RFFVRkRMR0ZCUVdFc1NVRkJTU3hQUVVGUExFTkJRVU03VVVGRE1VVXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dFJRVVV4UkN4SlFVRkpMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTTFRaXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRk5CUVZNc1JVRkJSU3hKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRlRVFzUTBGQlF6dFJRVVZFTEUxQlFVMHNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eFBRVUZQTEVWQlFVVXNVMEZCVXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hWUVVGVkxFVkJRVVVzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4UlFVRlJMRU5CUVVNc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU42Unl4UFFVRlBMRkZCUVZFc1EwRkJRenRKUVVOc1FpeERRVUZETzBsQlJVUTdPMDlCUlVjN1NVRkRUeXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRU5CUXpsQ0xGTkJRV2xDTEVWQlEycENMRmxCUVc5Q0xFVkJRM0JDTEU5QlFTdENPMUZCUlM5Q0xFMUJRVTBzVDBGQlR5eEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVVTNRaXhwUWtGQmFVSTdVVUZEYWtJc1RVRkJUU3hYUVVGWExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVTjJReXhUUVVGVExFVkJRMVFzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hUUVVGVExFVkJRVVVzTmtKQlFUWkNMRU5CUVVNc1JVRkJSU3haUVVGWkxFTkJRVU1zUlVGRE9VVXNVMEZCVXl4RFFVTldMRU5CUVVNN1VVRkRSaXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUlRGQ0xHdENRVUZyUWp0UlFVTnNRaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUTNoRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hwUWtGQmFVSXNRMEZCUXl4RlFVTnNSQ3hEUVVGRExGbEJRVmtzUTBGQlF5eEZRVU5rTEZOQlFWTXNRMEZEVml4RFFVRkRPMUZCUTBZc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVVXpRaXcwUTBGQk5FTTdVVUZETlVNc1NVRkJTU3hQUVVGUExFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdXVUZETTBJc1RVRkJUU3haUVVGWkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVTjRReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlN4UFFVRlBMRVZCUVVVc2RVSkJRWFZDTEVOQlFVTXNSVUZEZEVRc1EwRkJReXhaUVVGWkxFVkJRVVVzVDBGQlR5eERRVUZETEdOQlFXTXNRMEZCUXl4RlFVTjBReXhUUVVGVExFTkJRMVlzUTBGQlF6dFpRVU5HTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRE4wSXNRMEZCUXp0aFFVRk5MRU5CUVVNN1dVRkRUaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUTNKRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hqUVVGakxFTkJRVU1zUlVGRE4wTXNRMEZCUXl4WlFVRlpMRU5CUVVNc1JVRkRaQ3hUUVVGVExFTkJRMVlzUTBGQlF6dFpRVU5HTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03V1VGRmVFSXNUVUZCVFN4alFVRmpMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVU14UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJTeFBRVUZQTEVWQlFVVXNORUpCUVRSQ0xFTkJRVU1zUlVGRE0wUXNRMEZCUXl4WlFVRlpMRU5CUVVNc1JVRkRaQ3hUUVVGVExFTkJRMVlzUTBGQlF6dFpRVU5HTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU03VVVGREwwSXNRMEZCUXp0UlFVVkVMRTlCUVU4c1JVRkJSU3hGUVVGRkxFVkJRVVVzU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTTdTVUZEYkVRc1EwRkJRenRKUVVWRU96dFBRVVZITzBsQlEwOHNWVUZCVlN4RFFVTnNRaXhIUVVGWExFVkJRMWdzU1VGQll5eEZRVU5rTEVkQlFWYzdVVUZGV0N4UFFVRlBMRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZPMWxCUTNKRExGRkJRVkVzUTBGRFRpeEhRVUZITEVWQlEwZ3NTVUZCU1N4RlFVTktMRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNSVUZEZUVJc1EwRkJReXhMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZPMmRDUVVONFFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4SFFVRkhMRTFCUVUwc1NVRkJTU3hGUVVGRkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8yZENRVU4yUkN4SlFVRkpMRXRCUVVzc1JVRkJSU3hEUVVGRE8yOUNRVU5XTEUxQlFVMHNRMEZCUXl4SlFVRkpMRXRCUVVzc1EwRkJReXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRek5ETEU5QlFVODdaMEpCUTFRc1EwRkJRenRuUWtGRFJDeFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRiRUlzUTBGQlF5eERRVU5HTEVOQlFVTTdVVUZEU2l4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOTUxFTkJRVU03UTBGRFJqdEJRVVZFTEd0RFFVRnJRenRCUVVOc1F5eE5RVUZOTEVOQlFVTXNUVUZCVFN3MFFrRkJORUlzUjBGQlJ5eEpRVUZKTERSQ1FVRTBRaXhGUVVGRkxFTkJRVU03UVVGRkwwVXNiVVJCUVcxRU8wRkJRMjVFTEUxQlFVMHNWVUZCVlN4clEwRkJhME1zUTBGRGFFUXNZVUZCY1VJN1NVRkZja0lzVDBGQlR5eEpRVUZKTERSQ1FVRTBRaXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBGQlEzcEVMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaXBjYmlBcUlFQnRiMlIxYkdVZ2FXNTBaV2R5WVhScGIyNXpMM0JzZFdkcGJuTXZjM1Z3WlhKelpYUXZhVzV6ZEdGc2JHVnlYRzRnS2lCQWMzVnRiV0Z5ZVNCVGRYQmxjbk5sZENCa1lYTm9ZbTloY21RZ1pXMWlaV1FnY0d4MVoybHVJR2x1YzNSaGJHeGxjaTVjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJKYlhCc1pXMWxiblJ6SUdCRVlYTm9ZbTloY21SRmJXSmxaRkJzZFdkcGJtQWdabTl5SUZOMWNHVnljMlYwSUhWemFXNW5JR0ZjYmlBcUlIQmhkR05vTFdGdVpDMWlkV2xzWkNCemRISmhkR1ZuZVM0Z1JHVmpZV1lnYUc5c1pITWdjR0YwWTJnZ2MyTnlhWEIwY3lCMGFHRjBJRzF2WkdsbWVTQlRkWEJsY25ObGRDZHpYRzRnS2lCcGJuUmxjbTVoYkNCbGJXSmxaR1JsWkNCbWNtOXVkR1Z1WkNCaGJtUWdVMFJMSUhOdmRYSmpaU0JtYVd4bGN5QjBieUJoWkdRZ1lTQmdjM2RwZEdOb1JHRnphR0p2WVhKa1lGeHVJQ29nYldWMGFHOWtMaUJnYVc1emRHRnNiR0FnYldGMFpYSnBZV3hwZW1WeklIUm9aU0J6WTNKcGNIUnpMQ0JqYkc5dVpYTXZkWE5sY3lCVGRYQmxjbk5sZENCemIzVnlZMlVzWEc0Z0tpQmhjSEJzYVdWeklIQmhkR05vWlhNc0lHRnVaQ0JpZFdsc1pITWdLRk5FU3lBcklHWnliMjUwWlc1a0lDc2diM0IwYVc5dVlXeHNlU0JFYjJOclpYSWdhVzFoWjJVcExseHVJQ3BjYmlBcUlGUm9aU0J6WVcxbElHQkVZWE5vWW05aGNtUkZiV0psWkZCc2RXZHBibUFnUVZCSklHRnpJRXRwWW1GdVlTQnBjeUJsZUhCdmMyVmtMaUJnYzJWdVpGTjNhWFJqYUVSaGMyaGliMkZ5WkUxbGMzTmhaMlZnWEc0Z0tpQmtaV3hsWjJGMFpYTWdkRzhnWUhSaGNtZGxkQzV6ZDJsMFkyaEVZWE5vWW05aGNtUW9aR0Z6YUdKdllYSmtTV1FzSUdkMVpYTjBWRzlyWlc0cFlDQW9kR2hsSUZOMWNHVnljMlYwWEc0Z0tpQlRSRXNnYUdGdVpHeGxLU0JwYm5OMFpXRmtJRzltSUdCd2IzTjBUV1Z6YzJGblpXQXVYRzRnS2k5Y2JtbHRjRzl5ZENCN0lFbHVkR1Z5Ym1Gc1JYSnliM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSaUxXUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0I3SUZWdWMzVndjRzl5ZEdWa1JYSnliM0lzSUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5WnlCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUNvZ1lYTWdabk1nWm5KdmJTQmNJbTV2WkdVNlpuTmNJanRjYm1sdGNHOXlkQ0FxSUdGeklIQmhkR2dnWm5KdmJTQmNJbTV2WkdVNmNHRjBhRndpTzF4dWFXMXdiM0owSUhzZ1pYaGxZMFpwYkdVZ2ZTQm1jbTl0SUZ3aWJtOWtaVHBqYUdsc1pGOXdjbTlqWlhOelhDSTdYRzVjYm1sdGNHOXlkQ0I3WEc0Z0lHTnlaV0YwWlZOM2FYUmphRVJoYzJoaWIyRnlaRTFsYzNOaFoyVXNYRzRnSUhObGJtUlRkMmwwWTJoRVlYTm9ZbTloY21STlpYTnpZV2RsSUdGeklITmxibVJUYUdGeVpXUXNYRzRnSUhSNWNHVWdSR0Z6YUdKdllYSmtSVzFpWldSUWJIVm5hVzRzWEc0Z0lIUjVjR1VnUkdGemFHSnZZWEprUlcxaVpXUlFiSFZuYVc1RVpYTmpjbWx3ZEc5eUxGeHVJQ0IwZVhCbElFVnRZbVZrVFdWemMyRm5aVlJoY21kbGRDeGNiaUFnZEhsd1pTQkZiV0psWkZWeWJFOXdkR2x2Ym5Nc1hHNGdJSFI1Y0dVZ1VHeDFaMmx1U1c1emRHRnNiRTl3ZEdsdmJuTXNYRzRnSUhSNWNHVWdVR3gxWjJsdVNXNXpkR0ZzYkZKbGMzVnNkQ3hjYmlBZ2RIbHdaU0JUZDJsMFkyaEVZWE5vWW05aGNtUlFZWGxzYjJGa0xGeHVJQ0IwZVhCbElGTjNhWFJqYUVSaGMyaGliMkZ5WkUxbGMzTmhaMlVzWEc1OUlHWnliMjBnWENJdUxpOWpiMjUwY21GamRGd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1UxVlFSVkpUUlZSZlFWQlFYMGxFTEZ4dUlDQlRWVkJGVWxORlZGOVFURlZIU1U1ZlNVUXNYRzRnSUZOVlVFVlNVMFZVWDFCTVZVZEpUbDlXUlZKVFNVOU9MRnh1SUNCaWRXbHNaRk4xY0dWeWMyVjBUV0Z1YVdabGMzUXNYRzU5SUdaeWIyMGdYQ0l1TDIxaGJtbG1aWE4wWENJN1hHNXBiWEJ2Y25RZ2V5QnpkWEJsY25ObGRGQmhkR05vUm1sc1pYTWdmU0JtY205dElGd2lMaTkwWlcxd2JHRjBaWE5jSWp0Y2JseHVMeW9xSUVSbFptRjFiSFFnVTNWd1pYSnpaWFFnWW1GelpTQndZWFJvSUhkb1pXNGdibTl1WlNCcGN5QndjbTkyYVdSbFpDNGdLaTljYm1WNGNHOXlkQ0JqYjI1emRDQlRWVkJGVWxORlZGOUVSVVpCVlV4VVgwSkJVMFZmVUVGVVNDQTlJRndpYzNWd1pYSnpaWFJjSWp0Y2JseHVMeW9xWEc0Z0tpQkZlSFJsYm5OcGIyNGdiMllnWUZCc2RXZHBia2x1YzNSaGJHeFBjSFJwYjI1ellDQm1iM0lnVTNWd1pYSnpaWFF0YzNCbFkybG1hV01nWW5WcGJHUWdZMjl1Wm1sbmRYSmhkR2x2Ymk1Y2JpQXFMMXh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JUZFhCbGNuTmxkRWx1YzNSaGJHeFBjSFJwYjI1eklHVjRkR1Z1WkhNZ1VHeDFaMmx1U1c1emRHRnNiRTl3ZEdsdmJuTWdlMXh1SUNBdktpb2dVR0YwYUNCMGJ5QmhiaUJsZUdsemRHbHVaeUJUZFhCbGNuTmxkQ0J6YjNWeVkyVWdZMmhsWTJ0dmRYUXVJRWxtSUdGaWMyVnVkQ3dnZEdobElHbHVjM1JoYkd4bGNpQmpiRzl1WlhNZ2RtbGhJR2RwZEM0Z0tpOWNiaUFnYzNWd1pYSnpaWFJUYjNWeVkyVlFZWFJvUHpvZ2MzUnlhVzVuTzF4dUlDQXZLaW9nUjJsMElGVlNUQ0IwYnlCamJHOXVaU0JUZFhCbGNuTmxkQ0JtY205dElDaDFjMlZrSUhkb1pXNGdZSE4xY0dWeWMyVjBVMjkxY21ObFVHRjBhR0FnYVhNZ1lXSnpaVzUwS1M0Z0tpOWNiaUFnYzNWd1pYSnpaWFJIYVhSVmNtdy9PaUJ6ZEhKcGJtYzdYRzRnSUM4cUtpQkhhWFFnY21WbUwySnlZVzVqYUM5MFlXY2dkRzhnWTJobFkydHZkWFFnWVdaMFpYSWdZMnh2Ym1sdVp5NGdLaTljYmlBZ2MzVndaWEp6WlhSSGFYUlNaV1kvT2lCemRISnBibWM3WEc0Z0lDOHFLaUJFYjJOclpYSWdhVzFoWjJVZ2RHRm5JSFJ2SUdKMWFXeGtJQ2gzYUdWdUlIQnliM1pwWkdWa0xDQmlkV2xzWkhNZ1lTQkViMk5yWlhJZ2FXMWhaMlVnYVc1emRHVmhaQ0J2WmlCcWRYTjBJRk5FU3l0bWNtOXVkR1Z1WkNrdUlDb3ZYRzRnSUdSdlkydGxja2x0WVdkbFZHRm5Qem9nYzNSeWFXNW5PMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFSjFhV3hrSUhSb1pTQlRkWEJsY25ObGRDQmxiV0psWkdSbFpDQlZVa3d1WEc0Z0tseHVJQ29nUm05eUlGTjFjR1Z5YzJWMExDQjBhR1VnWUdSaGMyaGliMkZ5WkVsa1lDQm1hV1ZzWkNCcGJpQmdSVzFpWldSVmNteFBjSFJwYjI1ellDQnBjeUIwYUdWY2JpQXFJR1Z0WW1Wa1pHVmtMV052Ym1acFozVnlZWFJwYjI0Z1ZWVkpSQ0IxYzJWa0lHbHVJR0F2WlcxaVpXUmtaV1F2T25WMWFXUmdMbHh1SUNwY2JpQXFJRUJsZUdGdGNHeGxYRzRnS2lBZ0lHSjFhV3hrVTNWd1pYSnpaWFJGYldKbFpGVnliQ2g3SUdodmMzUTZJRndpYzNWd1pYSnpaWFF1WlhoaGJYQnNaUzVqYjIxY0lpd2daR0Z6YUdKdllYSmtTV1E2SUZ3aVlXSmpMWFYxYVdSY0lpd2djR0Z5Wlc1MFQzSnBaMmx1T2lCY0ltaDBkSEJ6T2k4dllYQndMbVY0WVcxd2JHVXVZMjl0WENJZ2ZTbGNiaUFxSUNBZ0x5OGdQVDRnWENJdkwzTjFjR1Z5YzJWMExtVjRZVzF3YkdVdVkyOXRMM04xY0dWeWMyVjBMMlZ0WW1Wa1pHVmtMMkZpWXkxMWRXbGtQM0JoY21WdWRFOXlhV2RwYmoxb2RIUndjeVV6UVNVeVJpVXlSbUZ3Y0M1bGVHRnRjR3hsTG1OdmJWd2lYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCaWRXbHNaRk4xY0dWeWMyVjBSVzFpWldSVmNtd29iM0IwYVc5dWN6b2dSVzFpWldSVmNteFBjSFJwYjI1ektUb2djM1J5YVc1bklIdGNiaUFnWTI5dWMzUWdZbUZ6WlZCaGRHZ2dQU0J2Y0hScGIyNXpMbUpoYzJWUVlYUm9JRDgvSUZOVlVFVlNVMFZVWDBSRlJrRlZURlJmUWtGVFJWOVFRVlJJTzF4dUlDQmpiMjV6ZENCd1lYSmhiWE1nUFNCdVpYY2dWVkpNVTJWaGNtTm9VR0Z5WVcxektDazdYRzRnSUhCaGNtRnRjeTV6WlhRb1hDSndZWEpsYm5SUGNtbG5hVzVjSWl3Z2IzQjBhVzl1Y3k1d1lYSmxiblJQY21sbmFXNHBPMXh1SUNCcFppQW9iM0IwYVc5dWN5NTJhV1YzUHk1MGFXMWxVbUZ1WjJVcElIdGNiaUFnSUNCd1lYSmhiWE11YzJWMEtGd2lkR2x0WlZKaGJtZGxYQ0lzSUVwVFQwNHVjM1J5YVc1bmFXWjVLRzl3ZEdsdmJuTXVkbWxsZHk1MGFXMWxVbUZ1WjJVcEtUdGNiaUFnZlZ4dUlDQnlaWFIxY200Z1lDOHZKSHR2Y0hScGIyNXpMbWh2YzNSOUx5UjdZbUZ6WlZCaGRHaDlMMlZ0WW1Wa1pHVmtMeVI3YjNCMGFXOXVjeTVrWVhOb1ltOWhjbVJKWkgwL0pIdHdZWEpoYlhNdWRHOVRkSEpwYm1jb0tYMWdPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFQmpiR0Z6Y3lCVGRYQmxjbk5sZEVSaGMyaGliMkZ5WkVWdFltVmtVR3gxWjJsdVhHNGdLaUJBYzNWdGJXRnllU0JUZFhCbGNuTmxkQ0JwYlhCc1pXMWxiblJoZEdsdmJpQnZaaUIwYUdVZ1lFUmhjMmhpYjJGeVpFVnRZbVZrVUd4MVoybHVZQ0JqYjI1MGNtRmpkQzVjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJQY21jdFlXZHViM04wYVdNZ2JYVnNkR2t0ZEdWdVlXNTBJR1JoYzJoaWIyRnlaQ0JsYldKbFpDQndiSFZuYVc0Z1ptOXlJRk4xY0dWeWMyVjBYRzRnS2lCMWMybHVaeUJoSUhCaGRHTm9MV0Z1WkMxaWRXbHNaQ0J6ZEhKaGRHVm5lUzRnVTJGdFpTQkJVRWtnWVhNZ1lFdHBZbUZ1WVVSaGMyaGliMkZ5WkVWdFltVmtVR3gxWjJsdVlDNWNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRk4xY0dWeWMyVjBSR0Z6YUdKdllYSmtSVzFpWldSUWJIVm5hVzRnYVcxd2JHVnRaVzUwY3lCRVlYTm9ZbTloY21SRmJXSmxaRkJzZFdkcGJpQjdYRzRnSUhCMVlteHBZeUJ5WldGa2IyNXNlU0JrWlhOamNtbHdkRzl5T2lCRVlYTm9ZbTloY21SRmJXSmxaRkJzZFdkcGJrUmxjMk55YVhCMGIzSTdYRzVjYmlBZ2NIVmliR2xqSUdOdmJuTjBjblZqZEc5eUtIUmhjbWRsZEZabGNuTnBiMjQ2SUhOMGNtbHVaeUE5SUZ3aWMzVndaWEp6WlhSY0lpa2dlMXh1SUNBZ0lIUm9hWE11WkdWelkzSnBjSFJ2Y2lBOUlIdGNiaUFnSUNBZ0lHbGtPaUJUVlZCRlVsTkZWRjlRVEZWSFNVNWZTVVFzWEc0Z0lDQWdJQ0JoY0hCSlpEb2dVMVZRUlZKVFJWUmZRVkJRWDBsRUxGeHVJQ0FnSUNBZ2RtVnljMmx2YmpvZ1UxVlFSVkpUUlZSZlVFeFZSMGxPWDFaRlVsTkpUMDRzWEc0Z0lDQWdJQ0IwWVhKblpYUldaWEp6YVc5dUxGeHVJQ0FnSUNBZ2RHOXZiRG9nWENKemRYQmxjbk5sZEZ3aUxGeHVJQ0FnSUgwN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2JXRnVhV1psYzNRb2RHRnlaMlYwVm1WeWMybHZiam9nYzNSeWFXNW5JRDBnZEdocGN5NWtaWE5qY21sd2RHOXlMblJoY21kbGRGWmxjbk5wYjI0cE9pQlNaV052Y21ROGMzUnlhVzVuTENCMWJtdHViM2R1UGlCN1hHNGdJQ0FnY21WMGRYSnVJR0oxYVd4a1UzVndaWEp6WlhSTllXNXBabVZ6ZENoMFlYSm5aWFJXWlhKemFXOXVLU0JoY3lCMWJtdHViM2R1SUdGeklGSmxZMjl5WkR4emRISnBibWNzSUhWdWEyNXZkMjQrTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdKMWFXeGtSVzFpWldSVmNtd29iM0IwYVc5dWN6b2dSVzFpWldSVmNteFBjSFJwYjI1ektUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnWW5WcGJHUlRkWEJsY25ObGRFVnRZbVZrVlhKc0tHOXdkR2x2Ym5NcE8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHTnlaV0YwWlZOM2FYUmphRVJoYzJoaWIyRnlaRTFsYzNOaFoyVW9YRzRnSUNBZ2NHRjViRzloWkRvZ1UzZHBkR05vUkdGemFHSnZZWEprVUdGNWJHOWhaRnh1SUNBcE9pQlRkMmwwWTJoRVlYTm9ZbTloY21STlpYTnpZV2RsSUh0Y2JpQWdJQ0J5WlhSMWNtNGdZM0psWVhSbFUzZHBkR05vUkdGemFHSnZZWEprVFdWemMyRm5aU2h3WVhsc2IyRmtLVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ6Wlc1a1UzZHBkR05vUkdGemFHSnZZWEprVFdWemMyRm5aU2hjYmlBZ0lDQjBZWEpuWlhRNklFVnRZbVZrVFdWemMyRm5aVlJoY21kbGRDeGNiaUFnSUNCd1lYbHNiMkZrT2lCVGQybDBZMmhFWVhOb1ltOWhjbVJRWVhsc2IyRmtMRnh1SUNBZ0lIUmhjbWRsZEU5eWFXZHBiam9nYzNSeWFXNW5YRzRnSUNrNklIWnZhV1FnZTF4dUlDQWdJSE5sYm1SVGFHRnlaV1FvZEdGeVoyVjBMQ0J3WVhsc2IyRmtMQ0IwWVhKblpYUlBjbWxuYVc0cE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRTFoZEdWeWFXRnNhWHBsSUhSb1pTQndZWFJqYUNCaGJtUWdZblZwYkdRZ2MyTnlhWEIwY3lCcGJuUnZJR0IwWVhKblpYUlFZWFJvTDJBc0lHRnVaQ0IzYUdWdVhHNGdJQ0FxSUdCaWRXbHNaR0FnYVhNZ2RISjFaU3dnWTJ4dmJtVXZkWE5sSUZOMWNHVnljMlYwSUhOdmRYSmpaU3dnWVhCd2JIa2djR0YwWTJobGN5d2dZVzVrSUdKMWFXeGtYRzRnSUNBcUlDaFRSRXNnS3lCbWNtOXVkR1Z1WkNBcklHOXdkR2x2Ym1Gc2JIa2dSRzlqYTJWeUlHbHRZV2RsS1M1Y2JpQWdJQ3BjYmlBZ0lDb2dWVzVzYVd0bElFdHBZbUZ1WVNBb2QyaHBZMmdnWjJWdVpYSmhkR1Z6SUhCc2RXZHBiaUJ6YjNWeVkyVXBMQ0JUZFhCbGNuTmxkQ2R6SUZ3aWNHeDFaMmx1WENJZ2FYTWdZVnh1SUNBZ0tpQndZWFJqYUMxaGJtUXRZblZwYkdRZ2MzUnlZWFJsWjNrNklFUmxZMkZtSUdodmJHUnpJSE5qY21sd2RITWdkR2hoZENCdGIyUnBabmtnVTNWd1pYSnpaWFFuYzF4dUlDQWdLaUJsZUdsemRHbHVaeUJwYm5SbGNtNWhiQ0J6YjNWeVkyVWdabWxzWlhNdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1lYTjVibU1nYVc1emRHRnNiQ2hjYmlBZ0lDQnZjSFJwYjI1ek9pQlRkWEJsY25ObGRFbHVjM1JoYkd4UGNIUnBiMjV6WEc0Z0lDazZJRkJ5YjIxcGMyVThVR3gxWjJsdVNXNXpkR0ZzYkZKbGMzVnNkRDRnZTF4dUlDQWdJR052Ym5OMElHTjBlQ0E5SUc5d2RHbHZibk11WTI5dWRHVjRkQ0JoY3lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQaUI4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JwWmlBb1kzUjRLU0I3WEc0Z0lDQWdJQ0IyYjJsa0lHTjBlRHRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLQ0Z2Y0hScGIyNXpMblJoY21kbGRGQmhkR2dnZkh3Z2IzQjBhVzl1Y3k1MFlYSm5aWFJRWVhSb0xuUnlhVzBvS1M1c1pXNW5kR2dnUFQwOUlEQXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJWYm5OMWNIQnZjblJsWkVWeWNtOXlLRndpYVc1emRHRnNiQ0IwWVhKblpYUlFZWFJvSUdseklISmxjWFZwY21Wa1hDSXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhSaGNtZGxkRlpsY25OcGIyNGdQU0J2Y0hScGIyNXpMblJoY21kbGRGWmxjbk5wYjI0Z1B6OGdkR2hwY3k1a1pYTmpjbWx3ZEc5eUxuUmhjbWRsZEZabGNuTnBiMjQ3WEc0Z0lDQWdZMjl1YzNRZ2NHeDFaMmx1UkdseUlEMGdjR0YwYUM1eVpYTnZiSFpsS0Z4dUlDQWdJQ0FnYjNCMGFXOXVjeTUwWVhKblpYUlFZWFJvTEZ4dUlDQWdJQ0FnVTFWUVJWSlRSVlJmUVZCUVgwbEVYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHbG1JQ2htY3k1bGVHbHpkSE5UZVc1aktIQnNkV2RwYmtScGNpa3BJSHRjYmlBZ0lDQWdJR2xtSUNnaGIzQjBhVzl1Y3k1dmRtVnlkM0pwZEdVcElIdGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdZRkJzZFdkcGJpQmthWEpsWTNSdmNua2dZV3h5WldGa2VTQmxlR2x6ZEhNNklDUjdjR3gxWjJsdVJHbHlmU0FvZFhObElHOTJaWEozY21sMFpUb2dkSEoxWlNsZ1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQm1jeTV5YlZONWJtTW9jR3gxWjJsdVJHbHlMQ0I3SUhKbFkzVnljMmwyWlRvZ2RISjFaU3dnWm05eVkyVTZJSFJ5ZFdVZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnWm1sc1pYTWdQU0J6ZFhCbGNuTmxkRkJoZEdOb1JtbHNaWE1vS1R0Y2JpQWdJQ0JqYjI1emRDQjNjbWwwZEdWdU9pQnpkSEpwYm1kYlhTQTlJRnRkTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnWm1sc1pTQnZaaUJtYVd4bGN5a2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1puVnNiRkJoZEdnZ1BTQndZWFJvTG1wdmFXNG9jR3gxWjJsdVJHbHlMQ0JtYVd4bExuQmhkR2dwTzF4dUlDQWdJQ0FnWm5NdWJXdGthWEpUZVc1aktIQmhkR2d1WkdseWJtRnRaU2htZFd4c1VHRjBhQ2tzSUhzZ2NtVmpkWEp6YVhabE9pQjBjblZsSUgwcE8xeHVJQ0FnSUNBZ1puTXVkM0pwZEdWR2FXeGxVM2x1WXlobWRXeHNVR0YwYUN3Z1ptbHNaUzVqYjI1MFpXNTBMQ0JjSW5WMFpqaGNJaWs3WEc0Z0lDQWdJQ0JwWmlBb1ptbHNaUzVsZUdWamRYUmhZbXhsS1NCN1hHNGdJQ0FnSUNBZ0lHWnpMbU5vYlc5a1UzbHVZeWhtZFd4c1VHRjBhQ3dnTUc4M05UVXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkM0pwZEhSbGJpNXdkWE5vS0dacGJHVXVjR0YwYUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYkdWMElHSjFhV3gwSUQwZ1ptRnNjMlU3WEc0Z0lDQWdiR1YwSUdKMWFXeGtUM1YwY0hWME9pQnpkSEpwYm1jZ2ZDQjFibVJsWm1sdVpXUTdYRzVjYmlBZ0lDQnBaaUFvYjNCMGFXOXVjeTVpZFdsc1pDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2MzVndaWEp6WlhSU2IyOTBJRDBnWVhkaGFYUWdkR2hwY3k1eVpYTnZiSFpsVTNWd1pYSnpaWFJTYjI5MEtIQnNkV2RwYmtScGNpd2diM0IwYVc5dWN5azdYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTjFiSFFnUFNCaGQyRnBkQ0IwYUdsekxuSjFibEJoZEdOb1FXNWtRblZwYkdRb1hHNGdJQ0FnSUNBZ0lIQnNkV2RwYmtScGNpeGNiaUFnSUNBZ0lDQWdjM1Z3WlhKelpYUlNiMjkwTEZ4dUlDQWdJQ0FnSUNCdmNIUnBiMjV6WEc0Z0lDQWdJQ0FwTG1OaGRHTm9LQ2hsY25JNklFVnljbTl5S1NBOVBpQW9lMXh1SUNBZ0lDQWdJQ0J2YXpvZ1ptRnNjMlVnWVhNZ1kyOXVjM1FzWEc0Z0lDQWdJQ0FnSUc5MWRIQjFkRG9nWlhKeUxtMWxjM05oWjJVc1hHNGdJQ0FnSUNCOUtTazdYRzRnSUNBZ0lDQmlkV2xzZENBOUlISmxjM1ZzZEM1dmF6dGNiaUFnSUNBZ0lHSjFhV3hrVDNWMGNIVjBJRDBnY21WemRXeDBMbTkxZEhCMWREdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnY0d4MVoybHVVR0YwYURvZ2NHeDFaMmx1UkdseUxGeHVJQ0FnSUNBZ1pHVnpZM0pwY0hSdmNqb2dleUF1TGk1MGFHbHpMbVJsYzJOeWFYQjBiM0lzSUhSaGNtZGxkRlpsY25OcGIyNGdmU3hjYmlBZ0lDQWdJR1pwYkdWek9pQjNjbWwwZEdWdUxGeHVJQ0FnSUNBZ1luVnBiSFFzWEc0Z0lDQWdJQ0JpZFdsc1pFOTFkSEIxZEN4Y2JpQWdJQ0I5TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxjMjlzZG1VZ2RHaGxJRk4xY0dWeWMyVjBJSE52ZFhKalpTQnliMjkwT2lCMWMyVWdZVzRnWlhocGMzUnBibWNnWTJobFkydHZkWFFnYjNJZ1kyeHZibVVnZG1saElHZHBkQzVjYmlBZ0lDb3ZYRzRnSUhCeWIzUmxZM1JsWkNCaGMzbHVZeUJ5WlhOdmJIWmxVM1Z3WlhKelpYUlNiMjkwS0Z4dUlDQWdJSEJzZFdkcGJrUnBjam9nYzNSeWFXNW5MRnh1SUNBZ0lHOXdkR2x2Ym5NNklGTjFjR1Z5YzJWMFNXNXpkR0ZzYkU5d2RHbHZibk5jYmlBZ0tUb2dVSEp2YldselpUeHpkSEpwYm1jK0lIdGNiaUFnSUNCcFppQW9iM0IwYVc5dWN5NXpkWEJsY25ObGRGTnZkWEpqWlZCaGRHZ3BJSHRjYmlBZ0lDQWdJR052Ym5OMElISmxjMjlzZG1Wa0lEMGdjR0YwYUM1eVpYTnZiSFpsS0c5d2RHbHZibk11YzNWd1pYSnpaWFJUYjNWeVkyVlFZWFJvS1R0Y2JpQWdJQ0FnSUdsbUlDZ2habk11WlhocGMzUnpVM2x1WXlod1lYUm9MbXB2YVc0b2NtVnpiMngyWldRc0lGd2ljM1Z3WlhKelpYUXRabkp2Ym5SbGJtUmNJaXdnWENKemNtTmNJaXdnWENKbGJXSmxaR1JsWkZ3aUxDQmNJbWx1WkdWNExuUnplRndpS1NrcElIdGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdZRk4xY0dWeWMyVjBJSE52ZFhKalpTQnViM1FnWm05MWJtUWdZWFE2SUNSN2NtVnpiMngyWldSOUlDaHRhWE56YVc1bklITjFjR1Z5YzJWMExXWnliMjUwWlc1a0wzTnlZeTlsYldKbFpHUmxaQzlwYm1SbGVDNTBjM2dwWUZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMyOXNkbVZrTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHZHBkRlZ5YkNBOUlHOXdkR2x2Ym5NdWMzVndaWEp6WlhSSGFYUlZjbXdnUHo4Z1hDSm9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZZWEJoWTJobEwzTjFjR1Z5YzJWMExtZHBkRndpTzF4dUlDQWdJR052Ym5OMElHZHBkRkpsWmlBOUlHOXdkR2x2Ym5NdWMzVndaWEp6WlhSSGFYUlNaV1lnUHo4Z2IzQjBhVzl1Y3k1MFlYSm5aWFJXWlhKemFXOXVJRDgvSUZ3aU5pNHhMakJjSWp0Y2JpQWdJQ0JqYjI1emRDQmpiRzl1WlVScGNpQTlJSEJoZEdndWFtOXBiaWh3YkhWbmFXNUVhWElzSUZ3aUxuTjFjR1Z5YzJWMExYTnZkWEpqWlZ3aUtUdGNibHh1SUNBZ0lHbG1JQ2htY3k1bGVHbHpkSE5UZVc1aktHTnNiMjVsUkdseUtTa2dlMXh1SUNBZ0lDQWdabk11Y20xVGVXNWpLR05zYjI1bFJHbHlMQ0I3SUhKbFkzVnljMmwyWlRvZ2RISjFaU3dnWm05eVkyVTZJSFJ5ZFdVZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NXlkVzVEYjIxdFlXNWtLRndpWjJsMFhDSXNJRnRjSW1Oc2IyNWxYQ0lzSUZ3aUxTMWtaWEIwYUZ3aUxDQmNJakZjSWl3Z1hDSXRMV0p5WVc1amFGd2lMQ0JuYVhSU1pXWXNJR2RwZEZWeWJDd2dZMnh2Ym1WRWFYSmRMQ0J3YkhWbmFXNUVhWElwTzF4dUlDQWdJSEpsZEhWeWJpQmpiRzl1WlVScGNqdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJCY0hCc2VTQndZWFJqYUdWekxDQjJaWEpwWm5rc0lHRnVaQ0JpZFdsc1pDQW9VMFJMSUNzZ1puSnZiblJsYm1RZ0t5QnZjSFJwYjI1aGJHeDVJRVJ2WTJ0bGNpa3VYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnWVhONWJtTWdjblZ1VUdGMFkyaEJibVJDZFdsc1pDaGNiaUFnSUNCd2JIVm5hVzVFYVhJNklITjBjbWx1Wnl4Y2JpQWdJQ0J6ZFhCbGNuTmxkRkp2YjNRNklITjBjbWx1Wnl4Y2JpQWdJQ0J2Y0hScGIyNXpPaUJUZFhCbGNuTmxkRWx1YzNSaGJHeFBjSFJwYjI1elhHNGdJQ2s2SUZCeWIyMXBjMlU4ZXlCdmF6b2dZbTl2YkdWaGJqc2diM1YwY0hWME9pQnpkSEpwYm1jZ2ZUNGdlMXh1SUNBZ0lHTnZibk4wSUc5MWRIQjFkSE02SUhOMGNtbHVaMXRkSUQwZ1cxMDdYRzVjYmlBZ0lDQXZMeUF4TGlCQmNIQnNlU0J3WVhSamFGeHVJQ0FnSUdOdmJuTjBJSEJoZEdOb1VtVnpkV3gwSUQwZ1lYZGhhWFFnZEdocGN5NXlkVzVEYjIxdFlXNWtLRnh1SUNBZ0lDQWdYQ0p3ZVhSb2IyNHpYQ0lzWEc0Z0lDQWdJQ0JiY0dGMGFDNXFiMmx1S0hCc2RXZHBia1JwY2l3Z1hDSndZWFJqYUdWelhDSXNJRndpWVhCd2JIbGZjM1Z3WlhKelpYUmZObDh4WDNCaGRHTm9MbkI1WENJcExDQnpkWEJsY25ObGRGSnZiM1JkTEZ4dUlDQWdJQ0FnY0d4MVoybHVSR2x5WEc0Z0lDQWdLVHRjYmlBZ0lDQnZkWFJ3ZFhSekxuQjFjMmdvY0dGMFkyaFNaWE4xYkhRcE8xeHVYRzRnSUNBZ0x5OGdNaTRnVm1WeWFXWjVJSEJoZEdOb1hHNGdJQ0FnWTI5dWMzUWdkbVZ5YVdaNVVtVnpkV3gwSUQwZ1lYZGhhWFFnZEdocGN5NXlkVzVEYjIxdFlXNWtLRnh1SUNBZ0lDQWdjR0YwYUM1cWIybHVLSEJzZFdkcGJrUnBjaXdnWENKd1lYUmphR1Z6WENJc0lGd2lkbVZ5YVdaNVgzQmhkR05vTG5Ob1hDSXBMRnh1SUNBZ0lDQWdXM04xY0dWeWMyVjBVbTl2ZEYwc1hHNGdJQ0FnSUNCd2JIVm5hVzVFYVhKY2JpQWdJQ0FwTzF4dUlDQWdJRzkxZEhCMWRITXVjSFZ6YUNoMlpYSnBabmxTWlhOMWJIUXBPMXh1WEc0Z0lDQWdMeThnTXk0Z1FuVnBiR1FnS0VSdlkydGxjaUJwYldGblpTQnZjaUJUUkVzZ0t5Qm1jbTl1ZEdWdVpDbGNiaUFnSUNCcFppQW9iM0IwYVc5dWN5NWtiMk5yWlhKSmJXRm5aVlJoWnlrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWkc5amEyVnlVbVZ6ZFd4MElEMGdZWGRoYVhRZ2RHaHBjeTV5ZFc1RGIyMXRZVzVrS0Z4dUlDQWdJQ0FnSUNCd1lYUm9MbXB2YVc0b2NHeDFaMmx1UkdseUxDQmNJbUoxYVd4a1hDSXNJRndpWW5WcGJHUXRaRzlqYTJWeUxXbHRZV2RsTG5Ob1hDSXBMRnh1SUNBZ0lDQWdJQ0JiYzNWd1pYSnpaWFJTYjI5MExDQnZjSFJwYjI1ekxtUnZZMnRsY2tsdFlXZGxWR0ZuWFN4Y2JpQWdJQ0FnSUNBZ2NHeDFaMmx1UkdseVhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2IzVjBjSFYwY3k1d2RYTm9LR1J2WTJ0bGNsSmxjM1ZzZENrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR052Ym5OMElITmthMUpsYzNWc2RDQTlJR0YzWVdsMElIUm9hWE11Y25WdVEyOXRiV0Z1WkNoY2JpQWdJQ0FnSUNBZ2NHRjBhQzVxYjJsdUtIQnNkV2RwYmtScGNpd2dYQ0ppZFdsc1pGd2lMQ0JjSW1KMWFXeGtMWE5rYXk1emFGd2lLU3hjYmlBZ0lDQWdJQ0FnVzNOMWNHVnljMlYwVW05dmRGMHNYRzRnSUNBZ0lDQWdJSEJzZFdkcGJrUnBjbHh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJRzkxZEhCMWRITXVjSFZ6YUNoelpHdFNaWE4xYkhRcE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCbWNtOXVkR1Z1WkZKbGMzVnNkQ0E5SUdGM1lXbDBJSFJvYVhNdWNuVnVRMjl0YldGdVpDaGNiaUFnSUNBZ0lDQWdjR0YwYUM1cWIybHVLSEJzZFdkcGJrUnBjaXdnWENKaWRXbHNaRndpTENCY0ltSjFhV3hrTFhOMWNHVnljMlYwTFdaeWIyNTBaVzVrTG5Ob1hDSXBMRnh1SUNBZ0lDQWdJQ0JiYzNWd1pYSnpaWFJTYjI5MFhTeGNiaUFnSUNBZ0lDQWdjR3gxWjJsdVJHbHlYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdiM1YwY0hWMGN5NXdkWE5vS0daeWIyNTBaVzVrVW1WemRXeDBLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2V5QnZhem9nZEhKMVpTd2diM1YwY0hWME9pQnZkWFJ3ZFhSekxtcHZhVzRvWENKY1hHNWNJaWtnZlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNkVzRnWVNCamIyMXRZVzVrSUdGdVpDQmpZWEIwZFhKbElITjBaRzkxZEN0emRHUmxjbkl1WEc0Z0lDQXFMMXh1SUNCd2NtOTBaV04wWldRZ2NuVnVRMjl0YldGdVpDaGNiaUFnSUNCamJXUTZJSE4wY21sdVp5eGNiaUFnSUNCaGNtZHpPaUJ6ZEhKcGJtZGJYU3hjYmlBZ0lDQmpkMlE2SUhOMGNtbHVaMXh1SUNBcE9pQlFjbTl0YVhObFBITjBjbWx1Wno0Z2UxeHVJQ0FnSUhKbGRIVnliaUJ1WlhjZ1VISnZiV2x6WlNnb2NtVnpiMngyWlN3Z2NtVnFaV04wS1NBOVBpQjdYRzRnSUNBZ0lDQmxlR1ZqUm1sc1pTaGNiaUFnSUNBZ0lDQWdZMjFrTEZ4dUlDQWdJQ0FnSUNCaGNtZHpMRnh1SUNBZ0lDQWdJQ0I3SUdOM1pDd2dkR2x0Wlc5MWREb2dOakF3TURBd0lIMHNYRzRnSUNBZ0lDQWdJQ2hsY25KdmNpd2djM1JrYjNWMExDQnpkR1JsY25JcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J2ZFhSd2RYUWdQU0JnSkh0emRHUnZkWFFnUHo4Z1hDSmNJbjBrZTNOMFpHVnljaUEvUHlCY0lsd2lmV0F1ZEhKcGJTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaGxjbkp2Y2lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WcVpXTjBLRzVsZHlCRmNuSnZjaWh2ZFhSd2RYUWdmSHdnWlhKeWIzSXViV1Z6YzJGblpTa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0J5WlhOdmJIWmxLRzkxZEhCMWRDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmU2s3WEc0Z0lIMWNibjFjYmx4dUx5b3FJRVJsWm1GMWJIUWdjMmx1WjJ4bGRHOXVJR2x1YzNSaGJtTmxMaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJSE4xY0dWeWMyVjBSR0Z6YUdKdllYSmtSVzFpWldSUWJIVm5hVzRnUFNCdVpYY2dVM1Z3WlhKelpYUkVZWE5vWW05aGNtUkZiV0psWkZCc2RXZHBiaWdwTzF4dVhHNHZLaW9nUm1GamRHOXllU0JoWTJObGNIUnBibWNnWVNCMFlYSm5aWFFnVTNWd1pYSnpaWFFnZG1WeWMybHZiaTRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCamNtVmhkR1ZUZFhCbGNuTmxkRVJoYzJoaWIyRnlaRVZ0WW1Wa1VHeDFaMmx1S0Z4dUlDQjBZWEpuWlhSV1pYSnphVzl1T2lCemRISnBibWRjYmlrNklGTjFjR1Z5YzJWMFJHRnphR0p2WVhKa1JXMWlaV1JRYkhWbmFXNGdlMXh1SUNCeVpYUjFjbTRnYm1WM0lGTjFjR1Z5YzJWMFJHRnphR0p2WVhKa1JXMWlaV1JRYkhWbmFXNG9kR0Z5WjJWMFZtVnljMmx2YmlrN1hHNTlYRzRpWFgwPSJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EMBED_MESSAGE_TYPE = exports.SUPERSET_PLUGIN_VERSION = exports.SUPERSET_APP_ID = exports.SUPERSET_PLUGIN_ID = void 0;
|
|
4
|
+
exports.buildSupersetManifest = buildSupersetManifest;
|
|
5
|
+
/**
|
|
6
|
+
* @module integrations/plugins/superset/manifest
|
|
7
|
+
* @summary Superset embed plugin manifest builder (stub).
|
|
8
|
+
* @description Superset has no Kibana-style native plugin system. This builder
|
|
9
|
+
* returns a placeholder manifest describing the embed strategy. Detailed
|
|
10
|
+
* Superset support is deferred ("to be ignored for now").
|
|
11
|
+
*/
|
|
12
|
+
const contract_js_1 = require("./../contract.cjs");
|
|
13
|
+
Object.defineProperty(exports, "EMBED_MESSAGE_TYPE", { enumerable: true, get: function () { return contract_js_1.EMBED_MESSAGE_TYPE; } });
|
|
14
|
+
exports.SUPERSET_PLUGIN_ID = "orgDashboardEmbedSuperset";
|
|
15
|
+
exports.SUPERSET_APP_ID = "org_dashboard_embed_superset";
|
|
16
|
+
exports.SUPERSET_PLUGIN_VERSION = "1.0.0";
|
|
17
|
+
/**
|
|
18
|
+
* Build the placeholder Superset manifest for a target Superset version.
|
|
19
|
+
*/
|
|
20
|
+
function buildSupersetManifest(targetVersion = "superset") {
|
|
21
|
+
return {
|
|
22
|
+
id: exports.SUPERSET_PLUGIN_ID,
|
|
23
|
+
version: exports.SUPERSET_PLUGIN_VERSION,
|
|
24
|
+
targetVersion,
|
|
25
|
+
tool: "superset",
|
|
26
|
+
server: true,
|
|
27
|
+
ui: true,
|
|
28
|
+
embedStrategy: "iframe",
|
|
29
|
+
status: "stub",
|
|
30
|
+
requiredPlugins: [],
|
|
31
|
+
optionalPlugins: [],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2lucy9zdXBlcnNldC9tYW5pZmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUseUJBQW9CO0FBRWpELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLDJCQUEyQixDQUFDO0FBQzlELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyw4QkFBOEIsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxPQUFPLENBQUM7QUFlL0M7O0dBRUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLGdCQUF3QixVQUFVO0lBRWxDLE9BQU87UUFDTCxFQUFFLEVBQUUsa0JBQWtCO1FBQ3RCLE9BQU8sRUFBRSx1QkFBdUI7UUFDaEMsYUFBYTtRQUNiLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxJQUFJO1FBQ1osRUFBRSxFQUFFLElBQUk7UUFDUixhQUFhLEVBQUUsUUFBUTtRQUN2QixNQUFNLEVBQUUsTUFBTTtRQUNkLGVBQWUsRUFBRSxFQUFFO1FBQ25CLGVBQWUsRUFBRSxFQUFFO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3BsdWdpbnMvc3VwZXJzZXQvbWFuaWZlc3RcbiAqIEBzdW1tYXJ5IFN1cGVyc2V0IGVtYmVkIHBsdWdpbiBtYW5pZmVzdCBidWlsZGVyIChzdHViKS5cbiAqIEBkZXNjcmlwdGlvbiBTdXBlcnNldCBoYXMgbm8gS2liYW5hLXN0eWxlIG5hdGl2ZSBwbHVnaW4gc3lzdGVtLiBUaGlzIGJ1aWxkZXJcbiAqIHJldHVybnMgYSBwbGFjZWhvbGRlciBtYW5pZmVzdCBkZXNjcmliaW5nIHRoZSBlbWJlZCBzdHJhdGVneS4gRGV0YWlsZWRcbiAqIFN1cGVyc2V0IHN1cHBvcnQgaXMgZGVmZXJyZWQgKFwidG8gYmUgaWdub3JlZCBmb3Igbm93XCIpLlxuICovXG5pbXBvcnQgeyBFTUJFRF9NRVNTQUdFX1RZUEUgfSBmcm9tIFwiLi4vY29udHJhY3RcIjtcblxuZXhwb3J0IGNvbnN0IFNVUEVSU0VUX1BMVUdJTl9JRCA9IFwib3JnRGFzaGJvYXJkRW1iZWRTdXBlcnNldFwiO1xuZXhwb3J0IGNvbnN0IFNVUEVSU0VUX0FQUF9JRCA9IFwib3JnX2Rhc2hib2FyZF9lbWJlZF9zdXBlcnNldFwiO1xuZXhwb3J0IGNvbnN0IFNVUEVSU0VUX1BMVUdJTl9WRVJTSU9OID0gXCIxLjAuMFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN1cGVyc2V0TWFuaWZlc3Qge1xuICBpZDogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIHRhcmdldFZlcnNpb246IHN0cmluZztcbiAgdG9vbDogXCJzdXBlcnNldFwiO1xuICBzZXJ2ZXI6IGJvb2xlYW47XG4gIHVpOiBib29sZWFuO1xuICBlbWJlZFN0cmF0ZWd5OiBcImlmcmFtZVwiO1xuICBzdGF0dXM6IFwic3R1YlwiO1xuICByZXF1aXJlZFBsdWdpbnM6IHN0cmluZ1tdO1xuICBvcHRpb25hbFBsdWdpbnM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBwbGFjZWhvbGRlciBTdXBlcnNldCBtYW5pZmVzdCBmb3IgYSB0YXJnZXQgU3VwZXJzZXQgdmVyc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU3VwZXJzZXRNYW5pZmVzdChcbiAgdGFyZ2V0VmVyc2lvbjogc3RyaW5nID0gXCJzdXBlcnNldFwiXG4pOiBTdXBlcnNldE1hbmlmZXN0IHtcbiAgcmV0dXJuIHtcbiAgICBpZDogU1VQRVJTRVRfUExVR0lOX0lELFxuICAgIHZlcnNpb246IFNVUEVSU0VUX1BMVUdJTl9WRVJTSU9OLFxuICAgIHRhcmdldFZlcnNpb24sXG4gICAgdG9vbDogXCJzdXBlcnNldFwiLFxuICAgIHNlcnZlcjogdHJ1ZSxcbiAgICB1aTogdHJ1ZSxcbiAgICBlbWJlZFN0cmF0ZWd5OiBcImlmcmFtZVwiLFxuICAgIHN0YXR1czogXCJzdHViXCIsXG4gICAgcmVxdWlyZWRQbHVnaW5zOiBbXSxcbiAgICBvcHRpb25hbFBsdWdpbnM6IFtdLFxuICB9O1xufVxuXG5leHBvcnQgeyBFTUJFRF9NRVNTQUdFX1RZUEUgfTtcbiJdfQ==
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYW5pZmVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFjQSxzREFhQztBQTNCRDs7Ozs7O0dBTUc7QUFDSCxrREFBc0Q7QUFxQjdDLG1HQXJCQSxnQ0FBa0IsT0FxQkE7QUFwQmQsUUFBQSxrQkFBa0IsR0FBRywyQkFBMkIsQ0FBQztBQUNqRCxRQUFBLGVBQWUsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRCxRQUFBLHVCQUF1QixHQUFHLE9BQU8sQ0FBQztBQUMvQzs7R0FFRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLGFBQWEsR0FBRyxVQUFVO0lBQzVELE9BQU87UUFDSCxFQUFFLEVBQUUsMEJBQWtCO1FBQ3RCLE9BQU8sRUFBRSwrQkFBdUI7UUFDaEMsYUFBYTtRQUNiLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxJQUFJO1FBQ1osRUFBRSxFQUFFLElBQUk7UUFDUixhQUFhLEVBQUUsUUFBUTtRQUN2QixNQUFNLEVBQUUsTUFBTTtRQUNkLGVBQWUsRUFBRSxFQUFFO1FBQ25CLGVBQWUsRUFBRSxFQUFFO0tBQ3RCLENBQUM7QUFDTixDQUFDO0FBRUQsOHBGQUE4cEYiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3BsdWdpbnMvc3VwZXJzZXQvbWFuaWZlc3RcbiAqIEBzdW1tYXJ5IFN1cGVyc2V0IGVtYmVkIHBsdWdpbiBtYW5pZmVzdCBidWlsZGVyIChzdHViKS5cbiAqIEBkZXNjcmlwdGlvbiBTdXBlcnNldCBoYXMgbm8gS2liYW5hLXN0eWxlIG5hdGl2ZSBwbHVnaW4gc3lzdGVtLiBUaGlzIGJ1aWxkZXJcbiAqIHJldHVybnMgYSBwbGFjZWhvbGRlciBtYW5pZmVzdCBkZXNjcmliaW5nIHRoZSBlbWJlZCBzdHJhdGVneS4gRGV0YWlsZWRcbiAqIFN1cGVyc2V0IHN1cHBvcnQgaXMgZGVmZXJyZWQgKFwidG8gYmUgaWdub3JlZCBmb3Igbm93XCIpLlxuICovXG5pbXBvcnQgeyBFTUJFRF9NRVNTQUdFX1RZUEUgfSBmcm9tIFwiLi8uLi9jb250cmFjdC5qc1wiO1xuZXhwb3J0IGNvbnN0IFNVUEVSU0VUX1BMVUdJTl9JRCA9IFwib3JnRGFzaGJvYXJkRW1iZWRTdXBlcnNldFwiO1xuZXhwb3J0IGNvbnN0IFNVUEVSU0VUX0FQUF9JRCA9IFwib3JnX2Rhc2hib2FyZF9lbWJlZF9zdXBlcnNldFwiO1xuZXhwb3J0IGNvbnN0IFNVUEVSU0VUX1BMVUdJTl9WRVJTSU9OID0gXCIxLjAuMFwiO1xuLyoqXG4gKiBCdWlsZCB0aGUgcGxhY2Vob2xkZXIgU3VwZXJzZXQgbWFuaWZlc3QgZm9yIGEgdGFyZ2V0IFN1cGVyc2V0IHZlcnNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFN1cGVyc2V0TWFuaWZlc3QodGFyZ2V0VmVyc2lvbiA9IFwic3VwZXJzZXRcIikge1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBTVVBFUlNFVF9QTFVHSU5fSUQsXG4gICAgICAgIHZlcnNpb246IFNVUEVSU0VUX1BMVUdJTl9WRVJTSU9OLFxuICAgICAgICB0YXJnZXRWZXJzaW9uLFxuICAgICAgICB0b29sOiBcInN1cGVyc2V0XCIsXG4gICAgICAgIHNlcnZlcjogdHJ1ZSxcbiAgICAgICAgdWk6IHRydWUsXG4gICAgICAgIGVtYmVkU3RyYXRlZ3k6IFwiaWZyYW1lXCIsXG4gICAgICAgIHN0YXR1czogXCJzdHViXCIsXG4gICAgICAgIHJlcXVpcmVkUGx1Z2luczogW10sXG4gICAgICAgIG9wdGlvbmFsUGx1Z2luczogW10sXG4gICAgfTtcbn1cbmV4cG9ydCB7IEVNQkVEX01FU1NBR0VfVFlQRSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldGdWFXWmxjM1F1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdmNHeDFaMmx1Y3k5emRYQmxjbk5sZEM5dFlXNXBabVZ6ZEM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRVHM3T3pzN08wZEJUVWM3UVVGRFNDeFBRVUZQTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzZVVKQlFXOUNPMEZCUldwRUxFMUJRVTBzUTBGQlF5eE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExESkNRVUV5UWl4RFFVRkRPMEZCUXpsRUxFMUJRVTBzUTBGQlF5eE5RVUZOTEdWQlFXVXNSMEZCUnl3NFFrRkJPRUlzUTBGQlF6dEJRVU01UkN4TlFVRk5MRU5CUVVNc1RVRkJUU3gxUWtGQmRVSXNSMEZCUnl4UFFVRlBMRU5CUVVNN1FVRmxMME03TzBkQlJVYzdRVUZEU0N4TlFVRk5MRlZCUVZVc2NVSkJRWEZDTEVOQlEyNURMR2RDUVVGM1FpeFZRVUZWTzBsQlJXeERMRTlCUVU4N1VVRkRUQ3hGUVVGRkxFVkJRVVVzYTBKQlFXdENPMUZCUTNSQ0xFOUJRVThzUlVGQlJTeDFRa0ZCZFVJN1VVRkRhRU1zWVVGQllUdFJRVU5pTEVsQlFVa3NSVUZCUlN4VlFVRlZPMUZCUTJoQ0xFMUJRVTBzUlVGQlJTeEpRVUZKTzFGQlExb3NSVUZCUlN4RlFVRkZMRWxCUVVrN1VVRkRVaXhoUVVGaExFVkJRVVVzVVVGQlVUdFJRVU4yUWl4TlFVRk5MRVZCUVVVc1RVRkJUVHRSUVVOa0xHVkJRV1VzUlVGQlJTeEZRVUZGTzFGQlEyNUNMR1ZCUVdVc1JVRkJSU3hGUVVGRk8wdEJRM0JDTEVOQlFVTTdRVUZEU2l4RFFVRkRPMEZCUlVRc1QwRkJUeXhGUVVGRkxHdENRVUZyUWl4RlFVRkZMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaXBjYmlBcUlFQnRiMlIxYkdVZ2FXNTBaV2R5WVhScGIyNXpMM0JzZFdkcGJuTXZjM1Z3WlhKelpYUXZiV0Z1YVdabGMzUmNiaUFxSUVCemRXMXRZWEo1SUZOMWNHVnljMlYwSUdWdFltVmtJSEJzZFdkcGJpQnRZVzVwWm1WemRDQmlkV2xzWkdWeUlDaHpkSFZpS1M1Y2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCVGRYQmxjbk5sZENCb1lYTWdibThnUzJsaVlXNWhMWE4wZVd4bElHNWhkR2wyWlNCd2JIVm5hVzRnYzNsemRHVnRMaUJVYUdseklHSjFhV3hrWlhKY2JpQXFJSEpsZEhWeWJuTWdZU0J3YkdGalpXaHZiR1JsY2lCdFlXNXBabVZ6ZENCa1pYTmpjbWxpYVc1bklIUm9aU0JsYldKbFpDQnpkSEpoZEdWbmVTNGdSR1YwWVdsc1pXUmNiaUFxSUZOMWNHVnljMlYwSUhOMWNIQnZjblFnYVhNZ1pHVm1aWEp5WldRZ0tGd2lkRzhnWW1VZ2FXZHViM0psWkNCbWIzSWdibTkzWENJcExseHVJQ292WEc1cGJYQnZjblFnZXlCRlRVSkZSRjlOUlZOVFFVZEZYMVJaVUVVZ2ZTQm1jbTl0SUZ3aUxpNHZZMjl1ZEhKaFkzUmNJanRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRk5WVUVWU1UwVlVYMUJNVlVkSlRsOUpSQ0E5SUZ3aWIzSm5SR0Z6YUdKdllYSmtSVzFpWldSVGRYQmxjbk5sZEZ3aU8xeHVaWGh3YjNKMElHTnZibk4wSUZOVlVFVlNVMFZVWDBGUVVGOUpSQ0E5SUZ3aWIzSm5YMlJoYzJoaWIyRnlaRjlsYldKbFpGOXpkWEJsY25ObGRGd2lPMXh1Wlhod2IzSjBJR052Ym5OMElGTlZVRVZTVTBWVVgxQk1WVWRKVGw5V1JWSlRTVTlPSUQwZ1hDSXhMakF1TUZ3aU8xeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRk4xY0dWeWMyVjBUV0Z1YVdabGMzUWdlMXh1SUNCcFpEb2djM1J5YVc1bk8xeHVJQ0IyWlhKemFXOXVPaUJ6ZEhKcGJtYzdYRzRnSUhSaGNtZGxkRlpsY25OcGIyNDZJSE4wY21sdVp6dGNiaUFnZEc5dmJEb2dYQ0p6ZFhCbGNuTmxkRndpTzF4dUlDQnpaWEoyWlhJNklHSnZiMnhsWVc0N1hHNGdJSFZwT2lCaWIyOXNaV0Z1TzF4dUlDQmxiV0psWkZOMGNtRjBaV2Q1T2lCY0ltbG1jbUZ0WlZ3aU8xeHVJQ0J6ZEdGMGRYTTZJRndpYzNSMVlsd2lPMXh1SUNCeVpYRjFhWEpsWkZCc2RXZHBibk02SUhOMGNtbHVaMXRkTzF4dUlDQnZjSFJwYjI1aGJGQnNkV2RwYm5NNklITjBjbWx1WjF0ZE8xeHVmVnh1WEc0dktpcGNiaUFxSUVKMWFXeGtJSFJvWlNCd2JHRmpaV2h2YkdSbGNpQlRkWEJsY25ObGRDQnRZVzVwWm1WemRDQm1iM0lnWVNCMFlYSm5aWFFnVTNWd1pYSnpaWFFnZG1WeWMybHZiaTVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHSjFhV3hrVTNWd1pYSnpaWFJOWVc1cFptVnpkQ2hjYmlBZ2RHRnlaMlYwVm1WeWMybHZiam9nYzNSeWFXNW5JRDBnWENKemRYQmxjbk5sZEZ3aVhHNHBPaUJUZFhCbGNuTmxkRTFoYm1sbVpYTjBJSHRjYmlBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0JwWkRvZ1UxVlFSVkpUUlZSZlVFeFZSMGxPWDBsRUxGeHVJQ0FnSUhabGNuTnBiMjQ2SUZOVlVFVlNVMFZVWDFCTVZVZEpUbDlXUlZKVFNVOU9MRnh1SUNBZ0lIUmhjbWRsZEZabGNuTnBiMjRzWEc0Z0lDQWdkRzl2YkRvZ1hDSnpkWEJsY25ObGRGd2lMRnh1SUNBZ0lITmxjblpsY2pvZ2RISjFaU3hjYmlBZ0lDQjFhVG9nZEhKMVpTeGNiaUFnSUNCbGJXSmxaRk4wY21GMFpXZDVPaUJjSW1sbWNtRnRaVndpTEZ4dUlDQWdJSE4wWVhSMWN6b2dYQ0p6ZEhWaVhDSXNYRzRnSUNBZ2NtVnhkV2x5WldSUWJIVm5hVzV6T2lCYlhTeGNiaUFnSUNCdmNIUnBiMjVoYkZCc2RXZHBibk02SUZ0ZExGeHVJQ0I5TzF4dWZWeHVYRzVsZUhCdmNuUWdleUJGVFVKRlJGOU5SVk5UUVVkRlgxUlpVRVVnZlR0Y2JpSmRmUT09Il19
|