@decaf-ts/integrations 0.3.10 → 0.3.12
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/dist/integrations.cjs +1649 -2
- package/dist/integrations.js +1885 -2
- 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/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 +99 -0
- 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 +22 -3
- 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 +481 -0
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +19 -0
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +23 -6
- package/lib/cjs/graph/engine/execution/index.cjs +5 -2
- package/lib/cjs/graph/engine/index.cjs +5 -2
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +3 -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 +100 -17
- 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 +5 -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/helpers.cjs +2 -2
- package/lib/cjs/kibana/index.cjs +2 -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 +2 -2
- 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 +6 -6
- package/lib/cjs/namespaces/models/group-membership.model.cjs +8 -8
- package/lib/cjs/namespaces/models/group.model.cjs +8 -8
- package/lib/cjs/namespaces/models/index.cjs +22 -22
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +7 -7
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +7 -7
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +8 -8
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +4 -4
- package/lib/cjs/namespaces/models/org-unit.model.cjs +13 -13
- package/lib/cjs/namespaces/models/permission.model.cjs +4 -4
- package/lib/cjs/namespaces/models/principal.model.cjs +8 -8
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +10 -10
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +9 -9
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +8 -8
- package/lib/cjs/namespaces/models/role-permission.model.cjs +6 -6
- package/lib/cjs/namespaces/models/role.model.cjs +8 -8
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +4 -4
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +6 -6
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +4 -4
- package/lib/cjs/namespaces/models/tenant.model.cjs +10 -10
- package/lib/cjs/namespaces/models/user.model.cjs +6 -6
- 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 +23 -23
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +26 -26
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +19 -19
- package/lib/cjs/namespaces/services/group-membership.service.cjs +6 -6
- package/lib/cjs/namespaces/services/group.service.cjs +4 -4
- package/lib/cjs/namespaces/services/index.cjs +26 -26
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +4 -4
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +4 -4
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +4 -4
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +4 -4
- package/lib/cjs/namespaces/services/org-unit.service.cjs +13 -13
- package/lib/cjs/namespaces/services/permission.service.cjs +4 -4
- package/lib/cjs/namespaces/services/principal.service.cjs +4 -4
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +4 -4
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +4 -4
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +7 -7
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +4 -4
- package/lib/cjs/namespaces/services/role-permission.service.cjs +8 -8
- package/lib/cjs/namespaces/services/role.service.cjs +4 -4
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +4 -4
- package/lib/cjs/namespaces/services/system-management.service.cjs +14 -14
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +4 -4
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +4 -4
- package/lib/cjs/namespaces/services/tenant.service.cjs +4 -4
- package/lib/cjs/namespaces/services/user.service.cjs +4 -4
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/nest/authService.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionController.cjs +41 -52
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs +47 -42
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -20
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +21 -48
- package/lib/cjs/nest/graph/GraphResultService.cjs +54 -0
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +44 -0
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs +62 -0
- package/lib/cjs/nest/graph/index.cjs +5 -8
- package/lib/cjs/nest/graph/main.cjs +3 -3
- package/lib/cjs/nest/index.cjs +2 -2
- package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
- package/lib/cjs/nest/keycloakModule.cjs +2 -2
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/utils.cjs +2 -2
- 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/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 +94 -0
- 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 +21 -2
- 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 +440 -0
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +14 -0
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +22 -5
- package/lib/esm/graph/engine/execution/index.js +4 -1
- package/lib/esm/graph/engine/index.js +4 -1
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +2 -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 +99 -16
- 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 +4 -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/helpers.js +1 -1
- package/lib/esm/kibana/index.js +1 -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 +1 -1
- 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 +3 -3
- package/lib/esm/namespaces/models/group-membership.model.js +4 -4
- package/lib/esm/namespaces/models/group.model.js +4 -4
- package/lib/esm/namespaces/models/index.js +21 -21
- package/lib/esm/namespaces/models/inheritance-block.model.js +3 -3
- package/lib/esm/namespaces/models/org-unit-closure.model.js +3 -3
- package/lib/esm/namespaces/models/org-unit-membership.model.js +4 -4
- package/lib/esm/namespaces/models/org-unit-profile.model.js +2 -2
- package/lib/esm/namespaces/models/org-unit.model.js +6 -6
- package/lib/esm/namespaces/models/permission.model.js +2 -2
- package/lib/esm/namespaces/models/principal.model.js +4 -4
- package/lib/esm/namespaces/models/protected-resource.model.js +5 -5
- package/lib/esm/namespaces/models/resource-grant.model.js +4 -4
- package/lib/esm/namespaces/models/role-assignment.model.js +4 -4
- package/lib/esm/namespaces/models/role-permission.model.js +3 -3
- package/lib/esm/namespaces/models/role.model.js +4 -4
- package/lib/esm/namespaces/models/storage-binding.model.js +2 -2
- package/lib/esm/namespaces/models/tenant-membership.model.js +3 -3
- package/lib/esm/namespaces/models/tenant-profile.model.js +2 -2
- package/lib/esm/namespaces/models/tenant.model.js +5 -5
- package/lib/esm/namespaces/models/user.model.js +3 -3
- 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 +2 -2
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js +13 -13
- package/lib/esm/namespaces/services/effective-permission.service.js +9 -9
- package/lib/esm/namespaces/services/group-membership.service.js +3 -3
- package/lib/esm/namespaces/services/group.service.js +2 -2
- package/lib/esm/namespaces/services/index.js +25 -25
- package/lib/esm/namespaces/services/inheritance-block.service.js +2 -2
- package/lib/esm/namespaces/services/org-unit-closure.service.js +2 -2
- package/lib/esm/namespaces/services/org-unit-membership.service.js +2 -2
- package/lib/esm/namespaces/services/org-unit-profile.service.js +2 -2
- package/lib/esm/namespaces/services/org-unit.service.js +4 -4
- package/lib/esm/namespaces/services/permission.service.js +2 -2
- package/lib/esm/namespaces/services/principal.service.js +2 -2
- package/lib/esm/namespaces/services/protected-resource.service.js +2 -2
- package/lib/esm/namespaces/services/resource-grant.service.js +2 -2
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +3 -3
- package/lib/esm/namespaces/services/role-assignment.service.js +2 -2
- package/lib/esm/namespaces/services/role-permission.service.js +4 -4
- package/lib/esm/namespaces/services/role.service.js +2 -2
- package/lib/esm/namespaces/services/storage-binding.service.js +2 -2
- package/lib/esm/namespaces/services/system-management.service.js +7 -7
- package/lib/esm/namespaces/services/tenant-membership.service.js +2 -2
- package/lib/esm/namespaces/services/tenant-profile.service.js +2 -2
- package/lib/esm/namespaces/services/tenant.service.js +2 -2
- package/lib/esm/namespaces/services/user.service.js +2 -2
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/nest/authService.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionController.js +40 -51
- package/lib/esm/nest/graph/GraphExecutionModule.js +12 -40
- package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -19
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +21 -48
- package/lib/esm/nest/graph/GraphResultService.js +45 -0
- package/lib/esm/nest/graph/GraphWorkflowModel.js +35 -0
- package/lib/esm/nest/graph/GraphWorkflowService.js +53 -0
- package/lib/esm/nest/graph/index.js +4 -7
- package/lib/esm/nest/graph/main.js +2 -2
- package/lib/esm/nest/index.js +1 -1
- package/lib/esm/nest/keycloakAuthHandler.js +1 -1
- package/lib/esm/nest/keycloakModule.js +1 -1
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/utils.js +1 -1
- 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/graph/engine/execution/CodeGraphNodeExecutor.d.cts +65 -0
- package/lib/types/graph/engine/execution/CodeGraphNodeExecutor.d.mts +65 -0
- package/lib/types/graph/engine/execution/CodeSandboxEvaluator.d.cts +23 -0
- package/lib/types/graph/engine/execution/CodeSandboxEvaluator.d.mts +23 -0
- package/lib/types/graph/engine/execution/GraphExecutionEngine.d.cts +6 -0
- package/lib/types/graph/engine/execution/GraphExecutionEngine.d.mts +6 -0
- package/lib/types/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.d.cts +63 -0
- package/lib/types/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.d.mts +63 -0
- package/lib/types/graph/engine/execution/LogGraphNodeExecutor.d.cts +19 -0
- package/lib/types/graph/engine/execution/LogGraphNodeExecutor.d.mts +19 -0
- package/lib/types/graph/engine/execution/SwitchGraphNodeExecutor.d.cts +3 -2
- package/lib/types/graph/engine/execution/SwitchGraphNodeExecutor.d.mts +3 -2
- package/lib/types/graph/engine/execution/index.d.cts +3 -0
- package/lib/types/graph/engine/execution/index.d.mts +3 -0
- package/lib/types/graph/engine/index.d.cts +3 -0
- package/lib/types/graph/engine/index.d.mts +3 -0
- package/lib/types/graph/shared/nodes/flow-control.d.cts +36 -9
- package/lib/types/graph/shared/nodes/flow-control.d.mts +36 -9
- package/lib/types/graph/shared/types.d.cts +6 -0
- package/lib/types/graph/shared/types.d.mts +6 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/nest/graph/GraphExecutionController.d.cts +11 -42
- package/lib/types/nest/graph/GraphExecutionController.d.mts +11 -42
- package/lib/types/nest/graph/GraphExecutionModule.d.cts +9 -29
- package/lib/types/nest/graph/GraphExecutionModule.d.mts +9 -29
- package/lib/types/nest/graph/GraphExecutionResultModel.d.cts +0 -34
- package/lib/types/nest/graph/GraphExecutionResultModel.d.mts +0 -34
- package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +16 -9
- package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +16 -9
- package/lib/types/nest/graph/GraphResultService.d.cts +8 -0
- package/lib/types/nest/graph/GraphResultService.d.mts +8 -0
- package/lib/types/nest/graph/GraphWorkflowModel.d.cts +7 -0
- package/lib/types/nest/graph/GraphWorkflowModel.d.mts +7 -0
- package/lib/types/nest/graph/GraphWorkflowService.d.cts +7 -0
- package/lib/types/nest/graph/GraphWorkflowService.d.mts +7 -0
- package/lib/types/nest/graph/index.d.cts +3 -6
- package/lib/types/nest/graph/index.d.mts +3 -6
- package/package.json +5 -1
- 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/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/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.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/GraphExecutionResultRepository.cjs +0 -66
- package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.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/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/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.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/GraphExecutionResultRepository.js +0 -60
- package/lib/esm/nest/graph/GraphExecutionResultRepository.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.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/graph/GraphExecutionResultRepository.d.cts +0 -38
- package/lib/types/nest/graph/GraphExecutionResultRepository.d.mts +0 -38
|
@@ -284,5 +284,5 @@ async function walkDir(dir, acc) {
|
|
|
284
284
|
}
|
|
285
285
|
}
|
|
286
286
|
}
|
|
287
|
-
//# sourceMappingURL=LocalBlobStoreService.js.map
|
|
288
|
-
//# sourceMappingURL=LocalBlobStoreService.cjs.map
|
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxCbG9iU3RvcmVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Jsb2IvbG9jYWwvTG9jYWxCbG9iU3RvcmVTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQXVCLGNBQWMsRUFBMkIsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoSCxPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEVBQ2IsZUFBZSxHQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixRQUFRLElBQUksRUFBRSxHQUVmLE1BQU0sSUFBSSxDQUFDO0FBQ1osT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHNDQUFpQztBQW9CNUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUcxQztJQUNVLEtBQUssQ0FBQyxVQUFVLENBQ3ZCLEdBQUcsSUFBeUI7UUFLNUIsTUFBTSxNQUFNLEdBQ1YsSUFBSSxDQUFDLGlCQUFpQixDQUE4QixHQUFHLElBQUksQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLGFBQWEsQ0FDckIsMkNBQTJDLENBQzVDLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMs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TSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQ1IsR0FBWSxFQUNaLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLEdBQUcsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQ1YsR0FBWSxFQUNaLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNFLEdBQUcsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFB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RCxLQUFLLFVBQVUsT0FBTyxDQUFDLEdBQVcsRUFBRSxHQUFhO0lBQy9DLElBQUksT0FBaUIsQ0FBQztJQUN0QixJQUFJLENBQUM7UUFDSCxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsSUFBSyxDQUEyQixDQUFDLElBQUksS0FBSyxRQUFRO1lBQUUsT0FBTztRQUMzRCxNQUFNLENBQUMsQ0FBQztJQUNWLENBQUM7SUFDRCxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFBRSxTQUFTO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdkIsTUFBTSxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ04sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2Jsb2IvbG9jYWwvc2VydmljZVxuICogQHN1bW1hcnkgTG9jYWwgZmlsZXN5c3RlbSBibG9iIHN0b3JlIHNlcnZpY2UuXG4gKiBAZGVzY3JpcHRpb24gRmlsZXN5c3RlbS1iYWNrZWQgYmxvYiBzdG9yZSB3cmFwcGluZyBub2RlOmZzIHdpdGggYXRvbWljIHdyaXRlcyBhbmQgcGF0aC10cmF2ZXJzYWwgcHJvdGVjdGlvbi5cbiAqL1xuaW1wb3J0IHsgdHlwZSBDb250ZXh0dWFsQXJncywgRm9yYmlkZGVuRXJyb3IsIHR5cGUgTWF5YmVDb250ZXh0dWFsQXJnLCBVbnN1cHBvcnRlZEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQge1xuICBDb25mbGljdEVycm9yLFxuICBJbnRlcm5hbEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgZ2V0Q3J5cHRvIH0gZnJvbSBcIkBkZWNhZi10cy9jcnlwdG8vY29tbW9uXCI7XG5pbXBvcnQge1xuICBjcmVhdGVSZWFkU3RyZWFtLFxuICBjcmVhdGVXcml0ZVN0cmVhbSxcbiAgcHJvbWlzZXMgYXMgZnMsXG4gIHR5cGUgUmVhZFN0cmVhbSxcbn0gZnJvbSBcImZzXCI7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luLCByZWxhdGl2ZSwgcmVzb2x2ZSwgc2VwIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IEJsb2JTdG9yZVNlcnZpY2UgfSBmcm9tIFwiLi4vY29yZS9CbG9iU3RvcmVTZXJ2aWNlXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEJsb2JHZXRPcHRpb25zLFxuICBCbG9iR2V0UmVzdWx0LFxuICBCbG9iS2V5LFxuICBCbG9iTGlzdE9wdGlvbnMsXG4gIEJsb2JMaXN0UmVzdWx0LFxuICBCbG9iTWV0YWRhdGEsXG4gIEJsb2JQdXRPcHRpb25zLFxuICBCbG9iUHV0UmVzdWx0LFxuICBCbG9iVXJsT3B0aW9ucyxcbiAgQmxvYlVybFJlc3VsdCxcbiAgQmxvYlZhbHVlLFxuICBMb2NhbEJsb2JTdG9yZVNlcnZpY2VDb25maWcsXG59IGZyb20gXCIuLi9jb3JlL0Jsb2JUeXBlc1wiO1xuXG5pbnRlcmZhY2UgTG9jYWxGc0NsaWVudCB7XG4gIHJvb3Q6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIExvY2FsQmxvYlN0b3JlU2VydmljZSBleHRlbmRzIEJsb2JTdG9yZVNlcnZpY2U8XG4gIExvY2FsRnNDbGllbnQsXG4gIExvY2FsQmxvYlN0b3JlU2VydmljZUNvbmZpZ1xuPiB7XG4gIG92ZXJyaWRlIGFzeW5jIGluaXRpYWxpemUoXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPHtcbiAgICBjb25maWc6IExvY2FsQmxvYlN0b3JlU2VydmljZUNvbmZpZztcbiAgICBjbGllbnQ6IExvY2FsRnNDbGllbnQ7XG4gIH0+IHtcbiAgICBjb25zdCBjb25maWcgPVxuICAgICAgdGhpcy5nZXRDb25maWdGcm9tQXJnczxMb2NhbEJsb2JTdG9yZVNlcnZpY2VDb25maWc+KC4uLmFyZ3MpO1xuICAgIGlmICghY29uZmlnLnJvb3RQYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgXCJMb2NhbEJsb2JTdG9yZVNlcnZpY2UgcmVxdWlyZXMgYSByb290UGF0aFwiXG4gICAgICApO1xuICAgIH1cbiAgICBhd2FpdCBmcy5ta2Rpcihjb25maWcucm9vdFBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLl9jbGllbnQgPSB7IHJvb3Q6IHJlc29sdmUoY29uZmlnLnJvb3RQYXRoKSB9O1xuICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50OiB0aGlzLl9jbGllbnQgfTtcbiAgfVxuXG4gIGFzeW5jIHB1dChcbiAgICBrZXk6IEJsb2JLZXksXG4gICAgdmFsdWU6IEJsb2JWYWx1ZSxcbiAgICBvcHRpb25zOiBCbG9iUHV0T3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8QmxvYlB1dFJlc3VsdD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJwdXRcIiwgdHJ1ZSkpLmZvcih0aGlzLnB1dCk7XG4gICAgbG9nLnZlcmJvc2UoYFB1dHRpbmcgYmxvYiAke2tleX1gKTtcblxuICAgIGNvbnN0IHRhcmdldFBhdGggPSB0aGlzLnNhZmVQYXRoKGtleSk7XG5cbiAgICBpZiAob3B0aW9ucy5pZk5vdEV4aXN0cykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZnMuc3RhdCh0YXJnZXRQYXRoKTtcbiAgICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IoYEJsb2IgYWxyZWFkeSBleGlzdHM6ICR7a2V5fWApO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoKGUgYXMgTm9kZUpTLkVycm5vRXhjZXB0aW9uKS5jb2RlICE9PSBcIkVOT0VOVFwiKSB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGF3YWl0IGZzLm1rZGlyKGRpcm5hbWUodGFyZ2V0UGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY29sbGVjdFRvQnVmZmVyTG9jYWwodmFsdWUpO1xuICAgIGNvbnN0IGNyeXB0byA9IChhd2FpdCBnZXRDcnlwdG8oKSkgYXMgYW55O1xuICAgIGNvbnN0IHNoYTI1NiA9IGNyeXB0by5jcmVhdGVIYXNoKFwic2hhMjU2XCIpLnVwZGF0ZShidWZmZXIpLmRpZ2VzdChcImhleFwiKTtcblxuICAgIGlmIChvcHRpb25zLmV4cGVjdGVkU2hhMjU2ICYmIG9wdGlvbnMuZXhwZWN0ZWRTaGEyNTYgIT09IHNoYTI1Nikge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgQ2hlY2tzdW0gbWlzbWF0Y2ggZm9yICR7a2V5fWApO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuYXRvbWljV3JpdGUodGFyZ2V0UGF0aCwgYnVmZmVyKTtcblxuICAgIGNvbnN0IG1ldGFkYXRhOiBCbG9iTWV0YWRhdGEgPSB7XG4gICAgICBjb250ZW50VHlwZTogb3B0aW9ucy5jb250ZW50VHlwZSxcbiAgICAgIGNvbnRlbnRMZW5ndGg6IGJ1ZmZlci5sZW5ndGgsXG4gICAgICBzaGEyNTYsXG4gICAgICBjdXN0b206IG9wdGlvbnMubWV0YWRhdGEsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBrZXksXG4gICAgICB1cmk6IHRoaXMudXJpKGtleSwgXCJmaWxlXCIpLFxuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXIsXG4gICAgICBzb3VyY2VJZDogdGhpcy5zb3VyY2VJZCxcbiAgICAgIG1ldGFkYXRhLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBnZXQoXG4gICAga2V5OiBCbG9iS2V5LFxuICAgIG9wdGlvbnM6IEJsb2JHZXRPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxCbG9iR2V0UmVzdWx0PiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImdldFwiLCB0cnVlKSkuZm9yKHRoaXMuZ2V0KTtcbiAgICBsb2cudmVyYm9zZShgR2V0dGluZyBibG9iICR7a2V5fWApO1xuXG4gICAgY29uc3QgdGFyZ2V0UGF0aCA9IHRoaXMuc2FmZVBhdGgoa2V5KTtcbiAgICBjb25zdCBzdGF0ID0gYXdhaXQgdGhpcy5zYWZlU3RhdCh0YXJnZXRQYXRoKTtcbiAgICBpZiAoIXN0YXQpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBCbG9iIG5vdCBmb3VuZDogJHtrZXl9YCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyZWFtOiBSZWFkU3RyZWFtID0gY3JlYXRlUmVhZFN0cmVhbSh0YXJnZXRQYXRoLCB7XG4gICAgICBzdGFydDogb3B0aW9ucy5yYW5nZT8uc3RhcnQsXG4gICAgICBlbmQ6IG9wdGlvbnMucmFuZ2U/LmVuZCxcbiAgICB9KTtcblxuICAgIGNvbnN0IG1ldGFkYXRhOiBCbG9iTWV0YWRhdGEgPSB7XG4gICAgICBjb250ZW50TGVuZ3RoOiBzdGF0LnNpemUsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBrZXksXG4gICAgICB2YWx1ZTogc3RyZWFtVG9Bc3luY0l0ZXJhYmxlKHN0cmVhbSksXG4gICAgICB1cmk6IHRoaXMudXJpKGtleSwgXCJmaWxlXCIpLFxuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXIsXG4gICAgICBzb3VyY2VJZDogdGhpcy5zb3VyY2VJZCxcbiAgICAgIG1ldGFkYXRhLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBoYXMoXG4gICAga2V5OiBCbG9iS2V5LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJoYXNcIiwgdHJ1ZSkpLmZvcih0aGlzLmhhcyk7XG4gICAgbG9nLnZlcmJvc2UoYENoZWNraW5nIGJsb2IgJHtrZXl9YCk7XG4gICAgY29uc3QgdGFyZ2V0UGF0aCA9IHRoaXMuc2FmZVBhdGgoa2V5KTtcbiAgICByZXR1cm4gQm9vbGVhbihhd2FpdCB0aGlzLnNhZmVTdGF0KHRhcmdldFBhdGgpKTtcbiAgfVxuXG4gIGFzeW5jIHN0YXQoXG4gICAga2V5OiBCbG9iS2V5LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8QmxvYk1ldGFkYXRhPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInN0YXRcIiwgdHJ1ZSkpLmZvcih0aGlzLnN0YXQpO1xuICAgIGxvZy52ZXJib3NlKGBTdGF0dGluZyBibG9iICR7a2V5fWApO1xuICAgIGNvbnN0IHRhcmdldFBhdGggPSB0aGlzLnNhZmVQYXRoKGtleSk7XG4gICAgY29uc3Qgc3RhdCA9IGF3YWl0IHRoaXMuc2FmZVN0YXQodGFyZ2V0UGF0aCk7XG4gICAgaWYgKCFzdGF0KSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgQmxvYiBub3QgZm91bmQ6ICR7a2V5fWApO1xuICAgIH1cbiAgICByZXR1cm4geyBjb250ZW50TGVuZ3RoOiBzdGF0LnNpemUgfTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShcbiAgICBrZXk6IEJsb2JLZXksXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZVwiLCB0cnVlKSkuZm9yKHRoaXMuZGVsZXRlKTtcbiAgICBsb2cudmVyYm9zZShgRGVsZXRpbmcgYmxvYiAke2tleX1gKTtcbiAgICBjb25zdCB0YXJnZXRQYXRoID0gdGhpcy5zYWZlUGF0aChrZXkpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy51bmxpbmsodGFyZ2V0UGF0aCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKChlIGFzIE5vZGVKUy5FcnJub0V4Y2VwdGlvbikuY29kZSAhPT0gXCJFTk9FTlRcIikgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjb3B5KFxuICAgIGZyb21LZXk6IEJsb2JLZXksXG4gICAgdG9LZXk6IEJsb2JLZXksXG4gICAgb3B0aW9uczogQmxvYlB1dE9wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPEJsb2JQdXRSZXN1bHQ+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY29weVwiLCB0cnVlKSkuZm9yKHRoaXMuY29weSk7XG4gICAgbG9nLnZlcmJvc2UoYENvcHlpbmcgYmxvYiAke2Zyb21LZXl9IHRvICR7dG9LZXl9YCk7XG4gICAgY29uc3QgZnJvbVBhdGggPSB0aGlzLnNhZmVQYXRoKGZyb21LZXkpO1xuICAgIGNvbnN0IGZyb21TdGF0ID0gYXdhaXQgdGhpcy5zYWZlU3RhdChmcm9tUGF0aCk7XG4gICAgaWYgKCFmcm9tU3RhdCkge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYEJsb2Igbm90IGZvdW5kOiAke2Zyb21LZXl9YCk7XG4gICAgfVxuICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IGZzLnJlYWRGaWxlKGZyb21QYXRoKTtcbiAgICByZXR1cm4gdGhpcy5wdXQodG9LZXksIGJ1ZmZlciwgb3B0aW9ucyk7XG4gIH1cblxuICBhc3luYyBsaXN0KFxuICAgIG9wdGlvbnM6IEJsb2JMaXN0T3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8QmxvYkxpc3RSZXN1bHQ+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibGlzdFwiLCB0cnVlKSkuZm9yKHRoaXMubGlzdCk7XG4gICAgbG9nLnZlcmJvc2UoXCJMaXN0aW5nIGJsb2JzXCIpO1xuXG4gICAgY29uc3QgcHJlZml4ID0gb3B0aW9ucy5wcmVmaXggPyB0aGlzLnBoeXNpY2FsS2V5KG9wdGlvbnMucHJlZml4KSA6IFwiXCI7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMuY2xpZW50LnJvb3Q7XG4gICAgY29uc3QgYmFzZURpciA9IHByZWZpeCA/IGpvaW4ocm9vdCwgcHJlZml4KSA6IHJvb3Q7XG5cbiAgICBjb25zdCBhbGxGaWxlczogc3RyaW5nW10gPSBbXTtcbiAgICBhd2FpdCB3YWxrRGlyKGJhc2VEaXIsIGFsbEZpbGVzKTtcblxuICAgIGNvbnN0IGtleXMgPSBhbGxGaWxlc1xuICAgICAgLm1hcCgoZikgPT4ge1xuICAgICAgICBjb25zdCByZWwgPSByZWxhdGl2ZShyb290LCBmKS5zcGxpdChzZXApLmpvaW4oXCIvXCIpO1xuICAgICAgICByZXR1cm4gcHJlZml4ID8gcmVsIDogcmVsO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKGspID0+IChwcmVmaXggPyBrLnN0YXJ0c1dpdGgocHJlZml4KSA6IHRydWUpKVxuICAgICAgLnNvcnQoKTtcblxuICAgIGNvbnN0IGxpbWl0ID0gb3B0aW9ucy5saW1pdCA/PyAxMDAwO1xuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBvcHRpb25zLmN1cnNvciA/IE51bWJlcihvcHRpb25zLmN1cnNvcikgOiAwO1xuICAgIGNvbnN0IHNsaWNlID0ga2V5cy5zbGljZShzdGFydEluZGV4LCBzdGFydEluZGV4ICsgbGltaXQpO1xuICAgIGNvbnN0IG5leHRDdXJzb3IgPVxuICAgICAgc3RhcnRJbmRleCArIGxpbWl0IDwga2V5cy5sZW5ndGhcbiAgICAgICAgPyBTdHJpbmcoc3RhcnRJbmRleCArIGxpbWl0KVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICBpdGVtczogc2xpY2UubWFwKChrKSA9PiAoeyBrZXk6IGsgfSkpLFxuICAgICAgY3Vyc29yOiBuZXh0Q3Vyc29yLFxuICAgIH07XG4gIH1cblxuICBhc3luYyB1cmwoXG4gICAga2V5OiBCbG9iS2V5LFxuICAgIG9wdGlvbnM6IEJsb2JVcmxPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxCbG9iVXJsUmVzdWx0PiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVybFwiLCB0cnVlKSkuZm9yKHRoaXMudXJsKTtcbiAgICBsb2cudmVyYm9zZShgQnVpbGRpbmcgdXJsIGZvciBibG9iICR7a2V5fWApO1xuICAgIGlmIChvcHRpb25zLm9wZXJhdGlvbiAmJiBvcHRpb25zLm9wZXJhdGlvbiAhPT0gXCJnZXRcIikge1xuICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXCJMb2NhbCBibG9iIHN0b3JlIGRvZXMgbm90IHN1cHBvcnQgUFVUIHVybHNcIik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB1cmw6IHRoaXMudXJpKGtleSwgXCJmaWxlXCIpLFxuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgZXhwaXJlc0F0OiBuZXcgRGF0ZShcbiAgICAgICAgRGF0ZS5ub3coKSArIChvcHRpb25zLmV4cGlyZXNJblNlY29uZHMgPz8gMzAwKSAqIDEwMDBcbiAgICAgICksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUVycm9yKGVycm9yOiB1bmtub3duKTogRXJyb3Ige1xuICAgIGNvbnN0IGVyciA9IGVycm9yIGFzIEVycm9yO1xuICAgIGlmIChcbiAgICAgIGVyciBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IgfHxcbiAgICAgIGVyciBpbnN0YW5jZW9mIENvbmZsaWN0RXJyb3IgfHxcbiAgICAgIGVyciBpbnN0YW5jZW9mIFZhbGlkYXRpb25FcnJvciB8fFxuICAgICAgZXJyIGluc3RhbmNlb2YgSW50ZXJuYWxFcnJvclxuICAgICkge1xuICAgICAgcmV0dXJuIGVycjtcbiAgICB9XG4gICAgY29uc3QgbWVzc2FnZSA9IGVyci5tZXNzYWdlIHx8IFwiVW5rbm93biBlcnJvclwiO1xuICAgIGNvbnN0IGxvd2VyID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGNvZGUgPSAoZXJyIGFzIE5vZGVKUy5FcnJub0V4Y2VwdGlvbikuY29kZTtcbiAgICBpZiAoY29kZSA9PT0gXCJFTk9FTlRcIiB8fCBsb3dlci5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKGVycik7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSBcIkVFWElTVFwiIHx8IGxvd2VyLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihlcnIpO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gXCJFQUNDRVNcIiB8fCBjb2RlID09PSBcIkVQRVJNXCIgfHwgbG93ZXIuaW5jbHVkZXMoXCJwZXJtaXNzaW9uXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IEZvcmJpZGRlbkVycm9yKGVycik7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSBcIkVOQU1FVE9PTE9OR1wiIHx8IGxvd2VyLmluY2x1ZGVzKFwiaW52YWxpZFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBWYWxpZGF0aW9uRXJyb3IoZXJyKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKGVycik7XG4gIH1cblxuICBwcml2YXRlIHNhZmVQYXRoKGtleTogQmxvYktleSk6IHN0cmluZyB7XG4gICAgY29uc3QgcGh5c2ljYWwgPSB0aGlzLnBoeXNpY2FsS2V5KGtleSk7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMuY2xpZW50LnJvb3Q7XG4gICAgY29uc3QgdGFyZ2V0ID0gcmVzb2x2ZShyb290LCBwaHlzaWNhbCk7XG4gICAgY29uc3QgcmVsID0gcmVsYXRpdmUocm9vdCwgdGFyZ2V0KTtcbiAgICBpZiAocmVsLnN0YXJ0c1dpdGgoXCIuLlwiKSB8fCByZWwgPT09IFwiXCIgfHwgcmVsID09PSBcIi5cIiB8fCByZWwuc3RhcnRzV2l0aChgLi4ke3NlcH1gKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgQmxvYiBrZXkgZXNjYXBlcyByb290IHBhdGg6ICR7a2V5fWApO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYWZlU3RhdChcbiAgICBwYXRoOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx7IHNpemU6IG51bWJlciB9IHwgdW5kZWZpbmVkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YXQgPSBhd2FpdCBmcy5zdGF0KHBhdGgpO1xuICAgICAgaWYgKHN0YXQuaXNGaWxlKCkpIHJldHVybiB7IHNpemU6IHN0YXQuc2l6ZSB9O1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoKGUgYXMgTm9kZUpTLkVycm5vRXhjZXB0aW9uKS5jb2RlID09PSBcIkVOT0VOVFwiKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGF0b21pY1dyaXRlKHRhcmdldFBhdGg6IHN0cmluZywgYnVmZmVyOiBCdWZmZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjcnlwdG8gPSAoYXdhaXQgZ2V0Q3J5cHRvKCkpIGFzIGFueTtcbiAgICBjb25zdCB0bXBQYXRoID0gYCR7dGFyZ2V0UGF0aH0uJHtjcnlwdG8ucmFuZG9tQnl0ZXMoNikudG9TdHJpbmcoXCJoZXhcIil9LnRtcGA7XG4gICAgY29uc3Qgc3RyZWFtID0gY3JlYXRlV3JpdGVTdHJlYW0odG1wUGF0aCk7XG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc3RyZWFtLm9uKFwiZXJyb3JcIiwgcmVqZWN0KTtcbiAgICAgIHN0cmVhbS5vbihcImZpbmlzaFwiLCAoKSA9PiByZXNvbHZlKCkpO1xuICAgICAgc3RyZWFtLmVuZChidWZmZXIpO1xuICAgIH0pO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy5yZW5hbWUodG1wUGF0aCwgdGFyZ2V0UGF0aCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZnMudW5saW5rKHRtcFBhdGgpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8qIGlnbm9yZSAqL1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY29sbGVjdFRvQnVmZmVyTG9jYWwodmFsdWU6IEJsb2JWYWx1ZSk6IFByb21pc2U8QnVmZmVyPiB7XG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHJldHVybiBCdWZmZXIuZnJvbSh2YWx1ZSk7XG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEJ1ZmZlcikgcmV0dXJuIHZhbHVlO1xuICBpZiAodHlwZW9mICh2YWx1ZSBhcyBhbnkpPy5bU3ltYm9sLmFzeW5jSXRlcmF0b3JdID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBjb25zdCBjaHVua3M6IEJ1ZmZlcltdID0gW107XG4gICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiB2YWx1ZSBhcyBBc3luY0l0ZXJhYmxlPFVpbnQ4QXJyYXk+KSB7XG4gICAgICBjaHVua3MucHVzaChCdWZmZXIuZnJvbShjaHVuaykpO1xuICAgIH1cbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChjaHVua3MpO1xuICB9XG4gIGlmICh0eXBlb2YgKHZhbHVlIGFzIGFueSk/LmdldFJlYWRlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgY29uc3QgcmVhZGVyID0gKHZhbHVlIGFzIFJlYWRhYmxlU3RyZWFtKS5nZXRSZWFkZXIoKTtcbiAgICBjb25zdCBjaHVua3M6IEJ1ZmZlcltdID0gW107XG4gICAgbGV0IHJlc3VsdCA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgd2hpbGUgKCFyZXN1bHQuZG9uZSkge1xuICAgICAgY2h1bmtzLnB1c2goQnVmZmVyLmZyb20ocmVzdWx0LnZhbHVlIGFzIFVpbnQ4QXJyYXkpKTtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgfVxuICAgIHJldHVybiBCdWZmZXIuY29uY2F0KGNodW5rcyk7XG4gIH1cbiAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgVW5zdXBwb3J0ZWQgYmxvYiB2YWx1ZSB0eXBlOiAke3R5cGVvZiB2YWx1ZX1gKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24qIHN0cmVhbVRvQXN5bmNJdGVyYWJsZShcbiAgc3RyZWFtOiBSZWFkU3RyZWFtXG4pOiBBc3luY0l0ZXJhYmxlPFVpbnQ4QXJyYXk+IHtcbiAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBzdHJlYW0pIHtcbiAgICB5aWVsZCBjaHVuayBhcyBVaW50OEFycmF5O1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdhbGtEaXIoZGlyOiBzdHJpbmcsIGFjYzogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgbGV0IGVudHJpZXM6IHN0cmluZ1tdO1xuICB0cnkge1xuICAgIGVudHJpZXMgPSBhd2FpdCBmcy5yZWFkZGlyKGRpcik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoKGUgYXMgTm9kZUpTLkVycm5vRXhjZXB0aW9uKS5jb2RlID09PSBcIkVOT0VOVFwiKSByZXR1cm47XG4gICAgdGhyb3cgZTtcbiAgfVxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICBpZiAoZW50cnkuZW5kc1dpdGgoXCIudG1wXCIpKSBjb250aW51ZTtcbiAgICBjb25zdCBmdWxsID0gam9pbihkaXIsIGVudHJ5KTtcbiAgICBjb25zdCBzdGF0ID0gYXdhaXQgZnMuc3RhdChmdWxsKTtcbiAgICBpZiAoc3RhdC5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICBhd2FpdCB3YWxrRGlyKGZ1bGwsIGFjYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjYy5wdXNoKGZ1bGwpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxCbG9iU3RvcmVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTG9jYWxCbG9iU3RvcmVTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDSCx5Q0FBa0U7QUFDbEUsMkRBQXdHO0FBQ3hHLG9EQUFvRDtBQUNwRCwyQkFBMEU7QUFDMUUsK0JBQTZEO0FBQzdELHVFQUFpRTtBQUNqRSxNQUFhLHFCQUFzQixTQUFRLHNDQUFnQjtJQUN2RCxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTtRQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSw2QkFBYSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELE1BQU0sYUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFBLGNBQU8sRUFBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSTtRQUN2QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdB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TUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUN0QixTQUFTO1FBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFHLE1BQU0sYUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM3QixDQUFDO2FBQ0ksQ0FBQztZQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsQ0FBQztJQUNMLENBQUM7QUFDTCxDQUFDO0FBQ0QsazM3QkFBazM3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvYmxvYi9sb2NhbC9zZXJ2aWNlXG4gKiBAc3VtbWFyeSBMb2NhbCBmaWxlc3lzdGVtIGJsb2Igc3RvcmUgc2VydmljZS5cbiAqIEBkZXNjcmlwdGlvbiBGaWxlc3lzdGVtLWJhY2tlZCBibG9iIHN0b3JlIHdyYXBwaW5nIG5vZGU6ZnMgd2l0aCBhdG9taWMgd3JpdGVzIGFuZCBwYXRoLXRyYXZlcnNhbCBwcm90ZWN0aW9uLlxuICovXG5pbXBvcnQgeyBGb3JiaWRkZW5FcnJvciwgVW5zdXBwb3J0ZWRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ29uZmxpY3RFcnJvciwgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciwgVmFsaWRhdGlvbkVycm9yLCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgZ2V0Q3J5cHRvIH0gZnJvbSBcIkBkZWNhZi10cy9jcnlwdG8vY29tbW9uXCI7XG5pbXBvcnQgeyBjcmVhdGVSZWFkU3RyZWFtLCBjcmVhdGVXcml0ZVN0cmVhbSwgcHJvbWlzZXMgYXMgZnMsIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luLCByZWxhdGl2ZSwgcmVzb2x2ZSwgc2VwIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IEJsb2JTdG9yZVNlcnZpY2UgfSBmcm9tIFwiLi8uLi9jb3JlL0Jsb2JTdG9yZVNlcnZpY2UuanNcIjtcbmV4cG9ydCBjbGFzcyBMb2NhbEJsb2JTdG9yZVNlcnZpY2UgZXh0ZW5kcyBCbG9iU3RvcmVTZXJ2aWNlIHtcbiAgICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5nZXRDb25maWdGcm9tQXJncyguLi5hcmdzKTtcbiAgICAgICAgaWYgKCFjb25maWcucm9vdFBhdGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTG9jYWxCbG9iU3RvcmVTZXJ2aWNlIHJlcXVpcmVzIGEgcm9vdFBhdGhcIik7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgZnMubWtkaXIoY29uZmlnLnJvb3RQYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgICAgICB0aGlzLl9jbGllbnQgPSB7IHJvb3Q6IHJlc29sdmUoY29uZmlnLnJvb3RQYXRoKSB9O1xuICAgICAgICByZXR1cm4geyBjb25maWcsIGNsaWVudDogdGhpcy5fY2xpZW50IH07XG4gICAgfVxuICAgIGFzeW5jIHB1dChrZXksIHZhbHVlLCBvcHRpb25zID0ge30sIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInB1dFwiLCB0cnVlKSkuZm9yKHRoaXMucHV0KTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYFB1dHRpbmcgYmxvYiAke2tleX1gKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0UGF0aCA9IHRoaXMuc2FmZVBhdGgoa2V5KTtcbiAgICAgICAgaWYgKG9wdGlvbnMuaWZOb3RFeGlzdHMpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgZnMuc3RhdCh0YXJnZXRQYXRoKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihgQmxvYiBhbHJlYWR5IGV4aXN0czogJHtrZXl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGlmIChlLmNvZGUgIT09IFwiRU5PRU5UXCIpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgZnMubWtkaXIoZGlybmFtZSh0YXJnZXRQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IGNvbGxlY3RUb0J1ZmZlckxvY2FsKHZhbHVlKTtcbiAgICAgICAgY29uc3QgY3J5cHRvID0gKGF3YWl0IGdldENyeXB0bygpKTtcbiAgICAgICAgY29uc3Qgc2hhMjU2ID0gY3J5cHRvLmNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKGJ1ZmZlcikuZGlnZXN0KFwiaGV4XCIpO1xuICAgICAgICBpZiAob3B0aW9ucy5leHBlY3RlZFNoYTI1NiAmJiBvcHRpb25zLmV4cGVjdGVkU2hhMjU2ICE9PSBzaGEyNTYpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYENoZWNrc3VtIG1pc21hdGNoIGZvciAke2tleX1gKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLmF0b21pY1dyaXRlKHRhcmdldFBhdGgsIGJ1ZmZlcik7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgICAgICAgICAgY29udGVudFR5cGU6IG9wdGlvbnMuY29udGVudFR5cGUsXG4gICAgICAgICAgICBjb250ZW50TGVuZ3RoOiBidWZmZXIubGVuZ3RoLFxuICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgY3VzdG9tOiBvcHRpb25zLm1ldGFkYXRhLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgdXJpOiB0aGlzLnVyaShrZXksIFwiZmlsZVwiKSxcbiAgICAgICAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgICAgICAgc291cmNlSWQ6IHRoaXMuc291cmNlSWQsXG4gICAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0KGtleSwgb3B0aW9ucyA9IHt9LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJnZXRcIiwgdHJ1ZSkpLmZvcih0aGlzLmdldCk7XG4gICAgICAgIGxvZy52ZXJib3NlKGBHZXR0aW5nIGJsb2IgJHtrZXl9YCk7XG4gICAgICAgIGNvbnN0IHRhcmdldFBhdGggPSB0aGlzLnNhZmVQYXRoKGtleSk7XG4gICAgICAgIGNvbnN0IHN0YXQgPSBhd2FpdCB0aGlzLnNhZmVTdGF0KHRhcmdldFBhdGgpO1xuICAgICAgICBpZiAoIXN0YXQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBCbG9iIG5vdCBmb3VuZDogJHtrZXl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyZWFtID0gY3JlYXRlUmVhZFN0cmVhbSh0YXJnZXRQYXRoLCB7XG4gICAgICAgICAgICBzdGFydDogb3B0aW9ucy5yYW5nZT8uc3RhcnQsXG4gICAgICAgICAgICBlbmQ6IG9wdGlvbnMucmFuZ2U/LmVuZCxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgICAgICAgICAgY29udGVudExlbmd0aDogc3RhdC5zaXplLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgdmFsdWU6IHN0cmVhbVRvQXN5bmNJdGVyYWJsZShzdHJlYW0pLFxuICAgICAgICAgICAgdXJpOiB0aGlzLnVyaShrZXksIFwiZmlsZVwiKSxcbiAgICAgICAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgICAgICAgc291cmNlSWQ6IHRoaXMuc291cmNlSWQsXG4gICAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYXN5bmMgaGFzKGtleSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaGFzXCIsIHRydWUpKS5mb3IodGhpcy5oYXMpO1xuICAgICAgICBsb2cudmVyYm9zZShgQ2hlY2tpbmcgYmxvYiAke2tleX1gKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0UGF0aCA9IHRoaXMuc2FmZVBhdGgoa2V5KTtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oYXdhaXQgdGhpcy5zYWZlU3RhdCh0YXJnZXRQYXRoKSk7XG4gICAgfVxuICAgIGFzeW5jIHN0YXQoa2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzdGF0XCIsIHRydWUpKS5mb3IodGhpcy5zdGF0KTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYFN0YXR0aW5nIGJsb2IgJHtrZXl9YCk7XG4gICAgICAgIGNvbnN0IHRhcmdldFBhdGggPSB0aGlzLnNhZmVQYXRoKGtleSk7XG4gICAgICAgIGNvbnN0IHN0YXQgPSBhd2FpdCB0aGlzLnNhZmVTdGF0KHRhcmdldFBhdGgpO1xuICAgICAgICBpZiAoIXN0YXQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBCbG9iIG5vdCBmb3VuZDogJHtrZXl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgY29udGVudExlbmd0aDogc3RhdC5zaXplIH07XG4gICAgfVxuICAgIGFzeW5jIGRlbGV0ZShrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZVwiLCB0cnVlKSkuZm9yKHRoaXMuZGVsZXRlKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYERlbGV0aW5nIGJsb2IgJHtrZXl9YCk7XG4gICAgICAgIGNvbnN0IHRhcmdldFBhdGggPSB0aGlzLnNhZmVQYXRoKGtleSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBmcy51bmxpbmsodGFyZ2V0UGF0aCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChlLmNvZGUgIT09IFwiRU5PRU5UXCIpXG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBjb3B5KGZyb21LZXksIHRvS2V5LCBvcHRpb25zID0ge30sIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNvcHlcIiwgdHJ1ZSkpLmZvcih0aGlzLmNvcHkpO1xuICAgICAgICBsb2cudmVyYm9zZShgQ29weWluZyBibG9iICR7ZnJvbUtleX0gdG8gJHt0b0tleX1gKTtcbiAgICAgICAgY29uc3QgZnJvbVBhdGggPSB0aGlzLnNhZmVQYXRoKGZyb21LZXkpO1xuICAgICAgICBjb25zdCBmcm9tU3RhdCA9IGF3YWl0IHRoaXMuc2FmZVN0YXQoZnJvbVBhdGgpO1xuICAgICAgICBpZiAoIWZyb21TdGF0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgQmxvYiBub3QgZm91bmQ6ICR7ZnJvbUtleX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBmcy5yZWFkRmlsZShmcm9tUGF0aCk7XG4gICAgICAgIHJldHVybiB0aGlzLnB1dCh0b0tleSwgYnVmZmVyLCBvcHRpb25zKTtcbiAgICB9XG4gICAgYXN5bmMgbGlzdChvcHRpb25zID0ge30sIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImxpc3RcIiwgdHJ1ZSkpLmZvcih0aGlzLmxpc3QpO1xuICAgICAgICBsb2cudmVyYm9zZShcIkxpc3RpbmcgYmxvYnNcIik7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IG9wdGlvbnMucHJlZml4ID8gdGhpcy5waHlzaWNhbEtleShvcHRpb25zLnByZWZpeCkgOiBcIlwiO1xuICAgICAgICBjb25zdCByb290ID0gdGhpcy5jbGllbnQucm9vdDtcbiAgICAgICAgY29uc3QgYmFzZURpciA9IHByZWZpeCA/IGpvaW4ocm9vdCwgcHJlZml4KSA6IHJvb3Q7XG4gICAgICAgIGNvbnN0IGFsbEZpbGVzID0gW107XG4gICAgICAgIGF3YWl0IHdhbGtEaXIoYmFzZURpciwgYWxsRmlsZXMpO1xuICAgICAgICBjb25zdCBrZXlzID0gYWxsRmlsZXNcbiAgICAgICAgICAgIC5tYXAoKGYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlbCA9IHJlbGF0aXZlKHJvb3QsIGYpLnNwbGl0KHNlcCkuam9pbihcIi9cIik7XG4gICAgICAgICAgICByZXR1cm4gcHJlZml4ID8gcmVsIDogcmVsO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLmZpbHRlcigoaykgPT4gKHByZWZpeCA/IGsuc3RhcnRzV2l0aChwcmVmaXgpIDogdHJ1ZSkpXG4gICAgICAgICAgICAuc29ydCgpO1xuICAgICAgICBjb25zdCBsaW1pdCA9IG9wdGlvbnMubGltaXQgPz8gMTAwMDtcbiAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IG9wdGlvbnMuY3Vyc29yID8gTnVtYmVyKG9wdGlvbnMuY3Vyc29yKSA6IDA7XG4gICAgICAgIGNvbnN0IHNsaWNlID0ga2V5cy5zbGljZShzdGFydEluZGV4LCBzdGFydEluZGV4ICsgbGltaXQpO1xuICAgICAgICBjb25zdCBuZXh0Q3Vyc29yID0gc3RhcnRJbmRleCArIGxpbWl0IDwga2V5cy5sZW5ndGhcbiAgICAgICAgICAgID8gU3RyaW5nKHN0YXJ0SW5kZXggKyBsaW1pdClcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHNsaWNlLm1hcCgoaykgPT4gKHsga2V5OiBrIH0pKSxcbiAgICAgICAgICAgIGN1cnNvcjogbmV4dEN1cnNvcixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYXN5bmMgdXJsKGtleSwgb3B0aW9ucyA9IHt9LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ1cmxcIiwgdHJ1ZSkpLmZvcih0aGlzLnVybCk7XG4gICAgICAgIGxvZy52ZXJib3NlKGBCdWlsZGluZyB1cmwgZm9yIGJsb2IgJHtrZXl9YCk7XG4gICAgICAgIGlmIChvcHRpb25zLm9wZXJhdGlvbiAmJiBvcHRpb25zLm9wZXJhdGlvbiAhPT0gXCJnZXRcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXCJMb2NhbCBibG9iIHN0b3JlIGRvZXMgbm90IHN1cHBvcnQgUFVUIHVybHNcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHVybDogdGhpcy51cmkoa2V5LCBcImZpbGVcIiksXG4gICAgICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICAgICAgICBleHBpcmVzQXQ6IG5ldyBEYXRlKERhdGUubm93KCkgKyAob3B0aW9ucy5leHBpcmVzSW5TZWNvbmRzID8/IDMwMCkgKiAxMDAwKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcGFyc2VFcnJvcihlcnJvcikge1xuICAgICAgICBjb25zdCBlcnIgPSBlcnJvcjtcbiAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IgfHxcbiAgICAgICAgICAgIGVyciBpbnN0YW5jZW9mIENvbmZsaWN0RXJyb3IgfHxcbiAgICAgICAgICAgIGVyciBpbnN0YW5jZW9mIFZhbGlkYXRpb25FcnJvciB8fFxuICAgICAgICAgICAgZXJyIGluc3RhbmNlb2YgSW50ZXJuYWxFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGVycjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyLm1lc3NhZ2UgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgICAgIGNvbnN0IGxvd2VyID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBjb2RlID0gZXJyLmNvZGU7XG4gICAgICAgIGlmIChjb2RlID09PSBcIkVOT0VOVFwiIHx8IGxvd2VyLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29kZSA9PT0gXCJFRVhJU1RcIiB8fCBsb3dlci5pbmNsdWRlcyhcImFscmVhZHkgZXhpc3RzXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbmZsaWN0RXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29kZSA9PT0gXCJFQUNDRVNcIiB8fCBjb2RlID09PSBcIkVQRVJNXCIgfHwgbG93ZXIuaW5jbHVkZXMoXCJwZXJtaXNzaW9uXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEZvcmJpZGRlbkVycm9yKGVycik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvZGUgPT09IFwiRU5BTUVUT09MT05HXCIgfHwgbG93ZXIuaW5jbHVkZXMoXCJpbnZhbGlkXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFZhbGlkYXRpb25FcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihlcnIpO1xuICAgIH1cbiAgICBzYWZlUGF0aChrZXkpIHtcbiAgICAgICAgY29uc3QgcGh5c2ljYWwgPSB0aGlzLnBoeXNpY2FsS2V5KGtleSk7XG4gICAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLmNsaWVudC5yb290O1xuICAgICAgICBjb25zdCB0YXJnZXQgPSByZXNvbHZlKHJvb3QsIHBoeXNpY2FsKTtcbiAgICAgICAgY29uc3QgcmVsID0gcmVsYXRpdmUocm9vdCwgdGFyZ2V0KTtcbiAgICAgICAgaWYgKHJlbC5zdGFydHNXaXRoKFwiLi5cIikgfHwgcmVsID09PSBcIlwiIHx8IHJlbCA9PT0gXCIuXCIgfHwgcmVsLnN0YXJ0c1dpdGgoYC4uJHtzZXB9YCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYEJsb2Iga2V5IGVzY2FwZXMgcm9vdCBwYXRoOiAke2tleX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH1cbiAgICBhc3luYyBzYWZlU3RhdChwYXRoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ID0gYXdhaXQgZnMuc3RhdChwYXRoKTtcbiAgICAgICAgICAgIGlmIChzdGF0LmlzRmlsZSgpKVxuICAgICAgICAgICAgICAgIHJldHVybiB7IHNpemU6IHN0YXQuc2l6ZSB9O1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gXCJFTk9FTlRcIilcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBhdG9taWNXcml0ZSh0YXJnZXRQYXRoLCBidWZmZXIpIHtcbiAgICAgICAgY29uc3QgY3J5cHRvID0gKGF3YWl0IGdldENyeXB0bygpKTtcbiAgICAgICAgY29uc3QgdG1wUGF0aCA9IGAke3RhcmdldFBhdGh9LiR7Y3J5cHRvLnJhbmRvbUJ5dGVzKDYpLnRvU3RyaW5nKFwiaGV4XCIpfS50bXBgO1xuICAgICAgICBjb25zdCBzdHJlYW0gPSBjcmVhdGVXcml0ZVN0cmVhbSh0bXBQYXRoKTtcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RyZWFtLm9uKFwiZXJyb3JcIiwgcmVqZWN0KTtcbiAgICAgICAgICAgIHN0cmVhbS5vbihcImZpbmlzaFwiLCAoKSA9PiByZXNvbHZlKCkpO1xuICAgICAgICAgICAgc3RyZWFtLmVuZChidWZmZXIpO1xuICAgICAgICB9KTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGZzLnJlbmFtZSh0bXBQYXRoLCB0YXJnZXRQYXRoKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBhd2FpdCBmcy51bmxpbmsodG1wUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgLyogaWdub3JlICovXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgfVxufVxuYXN5bmMgZnVuY3Rpb24gY29sbGVjdFRvQnVmZmVyTG9jYWwodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KVxuICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20odmFsdWUpO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEJ1ZmZlcilcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIGlmICh0eXBlb2YgdmFsdWU/LltTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCBjaHVua3MgPSBbXTtcbiAgICAgICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiB2YWx1ZSkge1xuICAgICAgICAgICAgY2h1bmtzLnB1c2goQnVmZmVyLmZyb20oY2h1bmspKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChjaHVua3MpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlPy5nZXRSZWFkZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCByZWFkZXIgPSB2YWx1ZS5nZXRSZWFkZXIoKTtcbiAgICAgICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgICAgICB3aGlsZSAoIXJlc3VsdC5kb25lKSB7XG4gICAgICAgICAgICBjaHVua3MucHVzaChCdWZmZXIuZnJvbShyZXN1bHQudmFsdWUpKTtcbiAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoY2h1bmtzKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgVW5zdXBwb3J0ZWQgYmxvYiB2YWx1ZSB0eXBlOiAke3R5cGVvZiB2YWx1ZX1gKTtcbn1cbmFzeW5jIGZ1bmN0aW9uKiBzdHJlYW1Ub0FzeW5jSXRlcmFibGUoc3RyZWFtKSB7XG4gICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBzdHJlYW0pIHtcbiAgICAgICAgeWllbGQgY2h1bms7XG4gICAgfVxufVxuYXN5bmMgZnVuY3Rpb24gd2Fsa0RpcihkaXIsIGFjYykge1xuICAgIGxldCBlbnRyaWVzO1xuICAgIHRyeSB7XG4gICAgICAgIGVudHJpZXMgPSBhd2FpdCBmcy5yZWFkZGlyKGRpcik7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChlLmNvZGUgPT09IFwiRU5PRU5UXCIpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICBpZiAoZW50cnkuZW5kc1dpdGgoXCIudG1wXCIpKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNvbnN0IGZ1bGwgPSBqb2luKGRpciwgZW50cnkpO1xuICAgICAgICBjb25zdCBzdGF0ID0gYXdhaXQgZnMuc3RhdChmdWxsKTtcbiAgICAgICAgaWYgKHN0YXQuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgICAgYXdhaXQgd2Fsa0RpcihmdWxsLCBhY2MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgYWNjLnB1c2goZnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lURzlqWVd4Q2JHOWlVM1J2Y21WVFpYSjJhV05sTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwySnNiMkl2Ykc5allXd3ZURzlqWVd4Q2JHOWlVM1J2Y21WVFpYSjJhV05sTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJPenM3TzBkQlNVYzdRVUZEU0N4UFFVRlBMRVZCUVhWQ0xHTkJRV01zUlVGQk1rSXNaMEpCUVdkQ0xFVkJRVVVzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVOb1NDeFBRVUZQTEVWQlEwd3NZVUZCWVN4RlFVTmlMR0ZCUVdFc1JVRkRZaXhoUVVGaExFVkJRMklzWlVGQlpTeEhRVU5vUWl4TlFVRk5MSGxDUVVGNVFpeERRVUZETzBGQlEycERMRTlCUVU4c1JVRkJSU3hUUVVGVExFVkJRVVVzVFVGQlRTeDVRa0ZCZVVJc1EwRkJRenRCUVVOd1JDeFBRVUZQTEVWQlEwd3NaMEpCUVdkQ0xFVkJRMmhDTEdsQ1FVRnBRaXhGUVVOcVFpeFJRVUZSTEVsQlFVa3NSVUZCUlN4SFFVVm1MRTFCUVUwc1NVRkJTU3hEUVVGRE8wRkJRMW9zVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVc1VVRkJVU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNUVUZCVFN4TlFVRk5MRU5CUVVNN1FVRkROMFFzVDBGQlR5eEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxITkRRVUZwUXp0QlFXOUNOVVFzVFVGQlRTeFBRVUZQTEhGQ1FVRnpRaXhUUVVGUkxHZENRVWN4UXp0SlFVTlZMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRM1pDTEVkQlFVY3NTVUZCZVVJN1VVRkxOVUlzVFVGQlRTeE5RVUZOTEVkQlExWXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUU0UWl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJReTlFTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU03V1VGRGNrSXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkRja0lzTWtOQlFUSkRMRU5CUXpWRExFTkJRVU03VVVGRFNpeERRVUZETzFGQlEwUXNUVUZCVFN4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUlN4VFFVRlRMRVZCUVVVc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU55UkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF6dFJRVU4wUWl4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVVzUTBGQlF6dFJRVU5zUkN4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1NVRkRNVU1zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUTFBc1IwRkJXU3hGUVVOYUxFdEJRV2RDTEVWQlEyaENMRlZCUVRCQ0xFVkJRVVVzUlVGRE5VSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGNrVXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhuUWtGQlowSXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVWdVF5eE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlJYUkRMRWxCUVVrc1QwRkJUeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETzFsQlEzaENMRWxCUVVrc1EwRkJRenRuUWtGRFNDeE5RVUZOTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03WjBKQlF6RkNMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zZDBKQlFYZENMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRGVrUXNRMEZCUXp0WlFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVU03WjBKQlExZ3NTVUZCU3l4RFFVRXlRaXhEUVVGRExFbEJRVWtzUzBGQlN5eFJRVUZSTzI5Q1FVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJRemxFTEVOQlFVTTdVVUZEU0N4RFFVRkRPMUZCUlVRc1RVRkJUU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4VlFVRlZMRU5CUVVNc1JVRkJSU3hGUVVGRkxGTkJRVk1zUlVGQlJTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUlhwRUxFMUJRVTBzVFVGQlRTeEhRVUZITEUxQlFVMHNiMEpCUVc5Q0xFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEYWtRc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlF5eE5RVUZOTEZOQlFWTXNSVUZCUlN4RFFVRlJMRU5CUVVNN1VVRkRNVU1zVFVGQlRTeE5RVUZOTEVkQlFVY3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlJYaEZMRWxCUVVrc1QwRkJUeXhEUVVGRExHTkJRV01zU1VGQlNTeFBRVUZQTEVOQlFVTXNZMEZCWXl4TFFVRkxMRTFCUVUwc1JVRkJSU3hEUVVGRE8xbEJRMmhGTEUxQlFVMHNTVUZCU1N4bFFVRmxMRU5CUVVNc2VVSkJRWGxDTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkROVVFzUTBGQlF6dFJRVVZFTEUxQlFVMHNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhWUVVGVkxFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdVVUZGTTBNc1RVRkJUU3hSUVVGUkxFZEJRV2xDTzFsQlF6ZENMRmRCUVZjc1JVRkJSU3hQUVVGUExFTkJRVU1zVjBGQlZ6dFpRVU5vUXl4aFFVRmhMRVZCUVVVc1RVRkJUU3hEUVVGRExFMUJRVTA3V1VGRE5VSXNUVUZCVFR0WlFVTk9MRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zVVVGQlVUdFRRVU42UWl4RFFVRkRPMUZCUlVZc1QwRkJUenRaUVVOTUxFZEJRVWM3V1VGRFNDeEhRVUZITEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzVFVGQlRTeERRVUZETzFsQlF6RkNMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVUdFpRVU4yUWl4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkU3V1VGRGRrSXNVVUZCVVR0VFFVTlVMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZEVUN4SFFVRlpMRVZCUTFvc1ZVRkJNRUlzUlVGQlJTeEZRVU0xUWl4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU55UlN4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExHZENRVUZuUWl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSVzVETEUxQlFVMHNWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZEVNc1RVRkJUU3hKUVVGSkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJRemRETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRaUVVOV0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNiVUpCUVcxQ0xFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEY0VRc1EwRkJRenRSUVVWRUxFMUJRVTBzVFVGQlRTeEhRVUZsTEdkQ1FVRm5RaXhEUVVGRExGVkJRVlVzUlVGQlJUdFpRVU4wUkN4TFFVRkxMRVZCUVVVc1QwRkJUeXhEUVVGRExFdEJRVXNzUlVGQlJTeExRVUZMTzFsQlF6TkNMRWRCUVVjc1JVRkJSU3hQUVVGUExFTkJRVU1zUzBGQlN5eEZRVUZGTEVkQlFVYzdVMEZEZUVJc1EwRkJReXhEUVVGRE8xRkJSVWdzVFVGQlRTeFJRVUZSTEVkQlFXbENPMWxCUXpkQ0xHRkJRV0VzUlVGQlJTeEpRVUZKTEVOQlFVTXNTVUZCU1R0VFFVTjZRaXhEUVVGRE8xRkJSVVlzVDBGQlR6dFpRVU5NTEVkQlFVYzdXVUZEU0N4TFFVRkxMRVZCUVVVc2NVSkJRWEZDTEVOQlFVTXNUVUZCVFN4RFFVRkRPMWxCUTNCRExFZEJRVWNzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hOUVVGTkxFTkJRVU03V1VGRE1VSXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUk8xbEJRM1pDTEZGQlFWRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVVHRaUVVOMlFpeFJRVUZSTzFOQlExUXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zUjBGQlJ5eERRVU5RTEVkQlFWa3NSVUZEV2l4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU55UlN4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExHbENRVUZwUWl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM0JETEUxQlFVMHNWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZEVNc1QwRkJUeXhQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGJFUXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRMUlzUjBGQldTeEZRVU5hTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM1pGTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRjRU1zVFVGQlRTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU4wUXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkROME1zU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMWxCUTFZc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGQlF5eHRRa0ZCYlVJc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU53UkN4RFFVRkRPMUZCUTBRc1QwRkJUeXhGUVVGRkxHRkJRV0VzUlVGQlJTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1NVRkRkRU1zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUTFZc1IwRkJXU3hGUVVOYUxFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFJRVUZSTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpORkxFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNhVUpCUVdsQ0xFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEY0VNc1RVRkJUU3hWUVVGVkxFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOMFF5eEpRVUZKTEVOQlFVTTdXVUZEU0N4TlFVRk5MRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZET1VJc1EwRkJRenRSUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEV0N4SlFVRkxMRU5CUVRKQ0xFTkJRVU1zU1VGQlNTeExRVUZMTEZGQlFWRTdaMEpCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRE9VUXNRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVU5TTEU5QlFXZENMRVZCUTJoQ0xFdEJRV01zUlVGRFpDeFZRVUV3UWl4RlFVRkZMRVZCUXpWQ0xFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTNaRkxFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNaMEpCUVdkQ0xFOUJRVThzVDBGQlR5eExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTI1RUxFMUJRVTBzVVVGQlVTeEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGVFTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUXk5RExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0WlFVTmtMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zYlVKQlFXMUNMRTlCUVU4c1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGVFUXNRMEZCUXp0UlFVTkVMRTFCUVUwc1RVRkJUU3hIUVVGSExFMUJRVTBzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVNelF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTXhReXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZEVWl4VlFVRXlRaXhGUVVGRkxFVkJRemRDTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM1pGTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03VVVGRk4wSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRSUVVOMFJTeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF6dFJRVU01UWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXp0UlFVVnVSQ3hOUVVGTkxGRkJRVkVzUjBGQllTeEZRVUZGTEVOQlFVTTdVVUZET1VJc1RVRkJUU3hQUVVGUExFTkJRVU1zVDBGQlR5eEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUldwRExFMUJRVTBzU1VGQlNTeEhRVUZITEZGQlFWRTdZVUZEYkVJc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZEVkN4TlFVRk5MRWRCUVVjc1IwRkJSeXhSUVVGUkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRia1FzVDBGQlR5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETzFGQlF6VkNMRU5CUVVNc1EwRkJRenRoUVVORUxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMkZCUTNKRUxFbEJRVWtzUlVGQlJTeERRVUZETzFGQlJWWXNUVUZCVFN4TFFVRkxMRWRCUVVjc1QwRkJUeXhEUVVGRExFdEJRVXNzU1VGQlNTeEpRVUZKTEVOQlFVTTdVVUZEY0VNc1RVRkJUU3hWUVVGVkxFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJReTlFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVlVGQlZTeEZRVUZGTEZWQlFWVXNSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVONlJDeE5RVUZOTEZWQlFWVXNSMEZEWkN4VlFVRlZMRWRCUVVjc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTzFsQlF6bENMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zVlVGQlZTeEhRVUZITEV0QlFVc3NRMEZCUXp0WlFVTTFRaXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETzFGQlJXaENMRTlCUVU4N1dVRkRUQ3hMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xbEJRM0pETEUxQlFVMHNSVUZCUlN4VlFVRlZPMU5CUTI1Q0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkRVQ3hIUVVGWkxFVkJRMW9zVlVGQk1FSXNSVUZCUlN4RlFVTTFRaXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTnlSU3hIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEhsQ1FVRjVRaXhIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF6VkRMRWxCUVVrc1QwRkJUeXhEUVVGRExGTkJRVk1zU1VGQlNTeFBRVUZQTEVOQlFVTXNVMEZCVXl4TFFVRkxMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRM0pFTEUxQlFVMHNTVUZCU1N4blFrRkJaMElzUTBGQlF5dzBRMEZCTkVNc1EwRkJReXhEUVVGRE8xRkJRek5GTEVOQlFVTTdVVUZEUkN4UFFVRlBPMWxCUTB3c1IwRkJSeXhGUVVGRkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RlFVRkZMRTFCUVUwc1EwRkJRenRaUVVNeFFpeE5RVUZOTEVWQlFVVXNTMEZCU3p0WlFVTmlMRk5CUVZNc1JVRkJSU3hKUVVGSkxFbEJRVWtzUTBGRGFrSXNTVUZCU1N4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEdkQ1FVRm5RaXhKUVVGSkxFZEJRVWNzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZEZEVRN1UwRkRSaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZUTEZWQlFWVXNRMEZCUXl4TFFVRmpPMUZCUTJwRExFMUJRVTBzUjBGQlJ5eEhRVUZITEV0QlFXTXNRMEZCUXp0UlFVTXpRaXhKUVVORkxFZEJRVWNzV1VGQldTeGhRVUZoTzFsQlF6VkNMRWRCUVVjc1dVRkJXU3hoUVVGaE8xbEJRelZDTEVkQlFVY3NXVUZCV1N4bFFVRmxPMWxCUXpsQ0xFZEJRVWNzV1VGQldTeGhRVUZoTEVWQlF6VkNMRU5CUVVNN1dVRkRSQ3hQUVVGUExFZEJRVWNzUTBGQlF6dFJRVU5pTEVOQlFVTTdVVUZEUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhIUVVGSExFTkJRVU1zVDBGQlR5eEpRVUZKTEdWQlFXVXNRMEZCUXp0UlFVTXZReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1VVRkRjRU1zVFVGQlRTeEpRVUZKTEVkQlFVa3NSMEZCTmtJc1EwRkJReXhKUVVGSkxFTkJRVU03VVVGRGFrUXNTVUZCU1N4SlFVRkpMRXRCUVVzc1VVRkJVU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOeVJDeFBRVUZQTEVsQlFVa3NZVUZCWVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMmhETEVOQlFVTTdVVUZEUkN4SlFVRkpMRWxCUVVrc1MwRkJTeXhSUVVGUkxFbEJRVWtzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZETVVRc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTm9ReXhEUVVGRE8xRkJRMFFzU1VGQlNTeEpRVUZKTEV0QlFVc3NVVUZCVVN4SlFVRkpMRWxCUVVrc1MwRkJTeXhQUVVGUExFbEJRVWtzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4WlFVRlpMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRekZGTEU5QlFVOHNTVUZCU1N4alFVRmpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGFrTXNRMEZCUXp0UlFVTkVMRWxCUVVrc1NVRkJTU3hMUVVGTExHTkJRV01zU1VGQlNTeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRk5CUVZNc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGVrUXNUMEZCVHl4SlFVRkpMR1ZCUVdVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5zUXl4RFFVRkRPMUZCUTBRc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTm9ReXhEUVVGRE8wbEJSVThzVVVGQlVTeERRVUZETEVkQlFWazdVVUZETTBJc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOMlF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF6dFJRVU01UWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUTNaRExFMUJRVTBzUjBGQlJ5eEhRVUZITEZGQlFWRXNRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRGJrTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NTMEZCU3l4RlFVRkZMRWxCUVVrc1IwRkJSeXhMUVVGTExFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNWVUZCVlN4RFFVRkRMRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEzQkdMRTFCUVUwc1NVRkJTU3hsUVVGbExFTkJRVU1zSzBKQlFTdENMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGJFVXNRMEZCUXp0UlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZGVHl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVOd1FpeEpRVUZaTzFGQlJWb3NTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hKUVVGSkxFZEJRVWNzVFVGQlRTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xbEJRMnBETEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSVHRuUWtGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFpRVU01UXl4UFFVRlBMRk5CUVZNc1EwRkJRenRSUVVOdVFpeERRVUZETzFGQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOWUxFbEJRVXNzUTBGQk1rSXNRMEZCUXl4SlFVRkpMRXRCUVVzc1VVRkJVVHRuUWtGQlJTeFBRVUZQTEZOQlFWTXNRMEZCUXp0WlFVTnlSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU5XTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlU4c1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eFZRVUZyUWl4RlFVRkZMRTFCUVdNN1VVRkRNVVFzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4TlFVRk5MRk5CUVZNc1JVRkJSU3hEUVVGUkxFTkJRVU03VVVGRE1VTXNUVUZCVFN4UFFVRlBMRWRCUVVjc1IwRkJSeXhWUVVGVkxFbEJRVWtzVFVGQlRTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTTNSU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU14UXl4TlFVRk5MRWxCUVVrc1QwRkJUeXhEUVVGUExFTkJRVU1zVDBGQlR5eEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZPMWxCUXpGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJRek5DTEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkRja01zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVOeVFpeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMRWxCUVVrc1EwRkJRenRaUVVOSUxFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRVZCUVVVc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGRrTXNRMEZCUXp0UlFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRFdDeEpRVUZKTEVOQlFVTTdaMEpCUTBnc1RVRkJUU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUXpOQ0xFTkJRVU03V1VGQlF5eE5RVUZOTEVOQlFVTTdaMEpCUTFBc1dVRkJXVHRaUVVOa0xFTkJRVU03V1VGRFJDeE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTldMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wTkJRMFk3UVVGRlJDeExRVUZMTEZWQlFWVXNiMEpCUVc5Q0xFTkJRVU1zUzBGQlowSTdTVUZEYkVRc1NVRkJTU3hMUVVGTExGbEJRVmtzVlVGQlZUdFJRVUZGTEU5QlFVOHNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU16UkN4SlFVRkpMRXRCUVVzc1dVRkJXU3hOUVVGTk8xRkJRVVVzVDBGQlR5eExRVUZMTEVOQlFVTTdTVUZETVVNc1NVRkJTU3hQUVVGUkxFdEJRV0VzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4aFFVRmhMRU5CUVVNc1MwRkJTeXhWUVVGVkxFVkJRVVVzUTBGQlF6dFJRVU5xUlN4TlFVRk5MRTFCUVUwc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRE5VSXNTVUZCU1N4TFFVRkxMRVZCUVVVc1RVRkJUU3hMUVVGTExFbEJRVWtzUzBGQmEwTXNSVUZCUlN4RFFVRkRPMWxCUXpkRUxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEyeERMRU5CUVVNN1VVRkRSQ3hQUVVGUExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRMMElzUTBGQlF6dEpRVU5FTEVsQlFVa3NUMEZCVVN4TFFVRmhMRVZCUVVVc1UwRkJVeXhMUVVGTExGVkJRVlVzUlVGQlJTeERRVUZETzFGQlEzQkVMRTFCUVUwc1RVRkJUU3hIUVVGSkxFdEJRWGRDTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1VVRkRja1FzVFVGQlRTeE5RVUZOTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUXpWQ0xFbEJRVWtzVFVGQlRTeEhRVUZITEUxQlFVMHNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJRMnBETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03V1VGRGNFSXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRnRRaXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU55UkN4TlFVRk5MRWRCUVVjc1RVRkJUU3hOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdVVUZETDBJc1EwRkJRenRSUVVORUxFOUJRVThzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVNdlFpeERRVUZETzBsQlEwUXNUVUZCVFN4SlFVRkpMR1ZCUVdVc1EwRkJReXhuUTBGQlowTXNUMEZCVHl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRelZGTEVOQlFVTTdRVUZGUkN4TFFVRkxMRk5CUVZNc1EwRkJReXhEUVVGRExIRkNRVUZ4UWl4RFFVTnVReXhOUVVGclFqdEpRVVZzUWl4SlFVRkpMRXRCUVVzc1JVRkJSU3hOUVVGTkxFdEJRVXNzU1VGQlNTeE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTnFReXhOUVVGTkxFdEJRVzFDTEVOQlFVTTdTVUZETlVJc1EwRkJRenRCUVVOSUxFTkJRVU03UVVGRlJDeExRVUZMTEZWQlFWVXNUMEZCVHl4RFFVRkRMRWRCUVZjc1JVRkJSU3hIUVVGaE8wbEJReTlETEVsQlFVa3NUMEZCYVVJc1EwRkJRenRKUVVOMFFpeEpRVUZKTEVOQlFVTTdVVUZEU0N4UFFVRlBMRWRCUVVjc1RVRkJUU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTJ4RExFTkJRVU03U1VGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRPMUZCUTFnc1NVRkJTeXhEUVVFeVFpeERRVUZETEVsQlFVa3NTMEZCU3l4UlFVRlJPMWxCUVVVc1QwRkJUenRSUVVNelJDeE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVTldMRU5CUVVNN1NVRkRSQ3hMUVVGTExFMUJRVTBzUzBGQlN5eEpRVUZKTEU5QlFVOHNSVUZCUlN4RFFVRkRPMUZCUXpWQ0xFbEJRVWtzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkJSU3hUUVVGVE8xRkJRM0pETEUxQlFVMHNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZET1VJc1RVRkJUU3hKUVVGSkxFZEJRVWNzVFVGQlRTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRMnBETEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSU3hGUVVGRkxFTkJRVU03V1VGRGRrSXNUVUZCVFN4UFFVRlBMRU5CUVVNc1NVRkJTU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlF6TkNMRU5CUVVNN1lVRkJUU3hEUVVGRE8xbEJRMDRzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOcVFpeERRVUZETzBsQlEwZ3NRMEZCUXp0QlFVTklMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaXBjYmlBcUlFQnRiMlIxYkdVZ2FXNTBaV2R5WVhScGIyNXpMMkpzYjJJdmJHOWpZV3d2YzJWeWRtbGpaVnh1SUNvZ1FITjFiVzFoY25rZ1RHOWpZV3dnWm1sc1pYTjVjM1JsYlNCaWJHOWlJSE4wYjNKbElITmxjblpwWTJVdVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1JtbHNaWE41YzNSbGJTMWlZV05yWldRZ1lteHZZaUJ6ZEc5eVpTQjNjbUZ3Y0dsdVp5QnViMlJsT21aeklIZHBkR2dnWVhSdmJXbGpJSGR5YVhSbGN5QmhibVFnY0dGMGFDMTBjbUYyWlhKellXd2djSEp2ZEdWamRHbHZiaTVjYmlBcUwxeHVhVzF3YjNKMElIc2dkSGx3WlNCRGIyNTBaWGgwZFdGc1FYSm5jeXdnUm05eVltbGtaR1Z1UlhKeWIzSXNJSFI1Y0dVZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKbkxDQlZibk4xY0hCdmNuUmxaRVZ5Y205eUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JEYjI1bWJHbGpkRVZ5Y205eUxGeHVJQ0JKYm5SbGNtNWhiRVZ5Y205eUxGeHVJQ0JPYjNSR2IzVnVaRVZ5Y205eUxGeHVJQ0JXWVd4cFpHRjBhVzl1UlhKeWIzSXNYRzU5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdJdFpHVmpiM0poZEc5eWMxd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFEzSjVjSFJ2SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amNubHdkRzh2WTI5dGJXOXVYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQmpjbVZoZEdWU1pXRmtVM1J5WldGdExGeHVJQ0JqY21WaGRHVlhjbWwwWlZOMGNtVmhiU3hjYmlBZ2NISnZiV2x6WlhNZ1lYTWdabk1zWEc0Z0lIUjVjR1VnVW1WaFpGTjBjbVZoYlN4Y2JuMGdabkp2YlNCY0ltWnpYQ0k3WEc1cGJYQnZjblFnZXlCa2FYSnVZVzFsTENCcWIybHVMQ0J5Wld4aGRHbDJaU3dnY21WemIyeDJaU3dnYzJWd0lIMGdabkp2YlNCY0luQmhkR2hjSWp0Y2JtbHRjRzl5ZENCN0lFSnNiMkpUZEc5eVpWTmxjblpwWTJVZ2ZTQm1jbTl0SUZ3aUxpNHZZMjl5WlM5Q2JHOWlVM1J2Y21WVFpYSjJhV05sWENJN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3WEc0Z0lFSnNiMkpIWlhSUGNIUnBiMjV6TEZ4dUlDQkNiRzlpUjJWMFVtVnpkV3gwTEZ4dUlDQkNiRzlpUzJWNUxGeHVJQ0JDYkc5aVRHbHpkRTl3ZEdsdmJuTXNYRzRnSUVKc2IySk1hWE4wVW1WemRXeDBMRnh1SUNCQ2JHOWlUV1YwWVdSaGRHRXNYRzRnSUVKc2IySlFkWFJQY0hScGIyNXpMRnh1SUNCQ2JHOWlVSFYwVW1WemRXeDBMRnh1SUNCQ2JHOWlWWEpzVDNCMGFXOXVjeXhjYmlBZ1FteHZZbFZ5YkZKbGMzVnNkQ3hjYmlBZ1FteHZZbFpoYkhWbExGeHVJQ0JNYjJOaGJFSnNiMkpUZEc5eVpWTmxjblpwWTJWRGIyNW1hV2NzWEc1OUlHWnliMjBnWENJdUxpOWpiM0psTDBKc2IySlVlWEJsYzF3aU8xeHVYRzVwYm5SbGNtWmhZMlVnVEc5allXeEdjME5zYVdWdWRDQjdYRzRnSUhKdmIzUTZJSE4wY21sdVp6dGNibjFjYmx4dVpYaHdiM0owSUdOc1lYTnpJRXh2WTJGc1FteHZZbE4wYjNKbFUyVnlkbWxqWlNCbGVIUmxibVJ6SUVKc2IySlRkRzl5WlZObGNuWnBZMlU4WEc0Z0lFeHZZMkZzUm5ORGJHbGxiblFzWEc0Z0lFeHZZMkZzUW14dllsTjBiM0psVTJWeWRtbGpaVU52Ym1acFoxeHVQaUI3WEc0Z0lHOTJaWEp5YVdSbElHRnplVzVqSUdsdWFYUnBZV3hwZW1Vb1hHNGdJQ0FnTGk0dVlYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSHRjYmlBZ0lDQmpiMjVtYVdjNklFeHZZMkZzUW14dllsTjBiM0psVTJWeWRtbGpaVU52Ym1acFp6dGNiaUFnSUNCamJHbGxiblE2SUV4dlkyRnNSbk5EYkdsbGJuUTdYRzRnSUgwK0lIdGNiaUFnSUNCamIyNXpkQ0JqYjI1bWFXY2dQVnh1SUNBZ0lDQWdkR2hwY3k1blpYUkRiMjVtYVdkR2NtOXRRWEpuY3p4TWIyTmhiRUpzYjJKVGRHOXlaVk5sY25acFkyVkRiMjVtYVdjK0tDNHVMbUZ5WjNNcE8xeHVJQ0FnSUdsbUlDZ2hZMjl1Wm1sbkxuSnZiM1JRWVhSb0tTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY2JpQWdJQ0FnSUNBZ1hDSk1iMk5oYkVKc2IySlRkRzl5WlZObGNuWnBZMlVnY21WeGRXbHlaWE1nWVNCeWIyOTBVR0YwYUZ3aVhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JpQWdJQ0JoZDJGcGRDQm1jeTV0YTJScGNpaGpiMjVtYVdjdWNtOXZkRkJoZEdnc0lIc2djbVZqZFhKemFYWmxPaUIwY25WbElIMHBPMXh1SUNBZ0lIUm9hWE11WDJOdmJtWnBaeUE5SUdOdmJtWnBaenRjYmlBZ0lDQjBhR2x6TGw5amJHbGxiblFnUFNCN0lISnZiM1E2SUhKbGMyOXNkbVVvWTI5dVptbG5Mbkp2YjNSUVlYUm9LU0I5TzF4dUlDQWdJSEpsZEhWeWJpQjdJR052Ym1acFp5d2dZMnhwWlc1ME9pQjBhR2x6TGw5amJHbGxiblFnZlR0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUhCMWRDaGNiaUFnSUNCclpYazZJRUpzYjJKTFpYa3NYRzRnSUNBZ2RtRnNkV1U2SUVKc2IySldZV3gxWlN4Y2JpQWdJQ0J2Y0hScGIyNXpPaUJDYkc5aVVIVjBUM0IwYVc5dWN5QTlJSHQ5TEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4UW14dllsQjFkRkpsYzNWc2RENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5JSDBnUFNBb1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKd2RYUmNJaXdnZEhKMVpTa3BMbVp2Y2loMGFHbHpMbkIxZENrN1hHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1lGQjFkSFJwYm1jZ1lteHZZaUFrZTJ0bGVYMWdLVHRjYmx4dUlDQWdJR052Ym5OMElIUmhjbWRsZEZCaGRHZ2dQU0IwYUdsekxuTmhabVZRWVhSb0tHdGxlU2s3WEc1Y2JpQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1cFprNXZkRVY0YVhOMGN5a2dlMXh1SUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ1lYZGhhWFFnWm5NdWMzUmhkQ2gwWVhKblpYUlFZWFJvS1R0Y2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFTnZibVpzYVdOMFJYSnliM0lvWUVKc2IySWdZV3h5WldGa2VTQmxlR2x6ZEhNNklDUjdhMlY1ZldBcE8xeHVJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb0tHVWdZWE1nVG05a1pVcFRMa1Z5Y201dlJYaGpaWEIwYVc5dUtTNWpiMlJsSUNFOVBTQmNJa1ZPVDBWT1ZGd2lLU0IwYUhKdmR5QmxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHRjNZV2wwSUdaekxtMXJaR2x5S0dScGNtNWhiV1VvZEdGeVoyVjBVR0YwYUNrc0lIc2djbVZqZFhKemFYWmxPaUIwY25WbElIMHBPMXh1WEc0Z0lDQWdZMjl1YzNRZ1luVm1abVZ5SUQwZ1lYZGhhWFFnWTI5c2JHVmpkRlJ2UW5WbVptVnlURzlqWVd3b2RtRnNkV1VwTzF4dUlDQWdJR052Ym5OMElHTnllWEIwYnlBOUlDaGhkMkZwZENCblpYUkRjbmx3ZEc4b0tTa2dZWE1nWVc1NU8xeHVJQ0FnSUdOdmJuTjBJSE5vWVRJMU5pQTlJR055ZVhCMGJ5NWpjbVZoZEdWSVlYTm9LRndpYzJoaE1qVTJYQ0lwTG5Wd1pHRjBaU2hpZFdabVpYSXBMbVJwWjJWemRDaGNJbWhsZUZ3aUtUdGNibHh1SUNBZ0lHbG1JQ2h2Y0hScGIyNXpMbVY0Y0dWamRHVmtVMmhoTWpVMklDWW1JRzl3ZEdsdmJuTXVaWGh3WldOMFpXUlRhR0V5TlRZZ0lUMDlJSE5vWVRJMU5pa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRlpoYkdsa1lYUnBiMjVGY25KdmNpaGdRMmhsWTJ0emRXMGdiV2x6YldGMFkyZ2dabTl5SUNSN2EyVjVmV0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR0YzWVdsMElIUm9hWE11WVhSdmJXbGpWM0pwZEdVb2RHRnlaMlYwVUdGMGFDd2dZblZtWm1WeUtUdGNibHh1SUNBZ0lHTnZibk4wSUcxbGRHRmtZWFJoT2lCQ2JHOWlUV1YwWVdSaGRHRWdQU0I3WEc0Z0lDQWdJQ0JqYjI1MFpXNTBWSGx3WlRvZ2IzQjBhVzl1Y3k1amIyNTBaVzUwVkhsd1pTeGNiaUFnSUNBZ0lHTnZiblJsYm5STVpXNW5kR2c2SUdKMVptWmxjaTVzWlc1bmRHZ3NYRzRnSUNBZ0lDQnphR0V5TlRZc1hHNGdJQ0FnSUNCamRYTjBiMjA2SUc5d2RHbHZibk11YldWMFlXUmhkR0VzWEc0Z0lDQWdmVHRjYmx4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQnJaWGtzWEc0Z0lDQWdJQ0IxY21rNklIUm9hWE11ZFhKcEtHdGxlU3dnWENKbWFXeGxYQ0lwTEZ4dUlDQWdJQ0FnY0hKdmRtbGtaWEk2SUhSb2FYTXVjSEp2ZG1sa1pYSXNYRzRnSUNBZ0lDQnpiM1Z5WTJWSlpEb2dkR2hwY3k1emIzVnlZMlZKWkN4Y2JpQWdJQ0FnSUcxbGRHRmtZWFJoTEZ4dUlDQWdJSDA3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJuWlhRb1hHNGdJQ0FnYTJWNU9pQkNiRzlpUzJWNUxGeHVJQ0FnSUc5d2RHbHZibk02SUVKc2IySkhaWFJQY0hScGIyNXpJRDBnZTMwc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4Q2JHOWlSMlYwVW1WemRXeDBQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNnZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltZGxkRndpTENCMGNuVmxLU2t1Wm05eUtIUm9hWE11WjJWMEtUdGNiaUFnSUNCc2IyY3VkbVZ5WW05elpTaGdSMlYwZEdsdVp5QmliRzlpSUNSN2EyVjVmV0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdkR0Z5WjJWMFVHRjBhQ0E5SUhSb2FYTXVjMkZtWlZCaGRHZ29hMlY1S1R0Y2JpQWdJQ0JqYjI1emRDQnpkR0YwSUQwZ1lYZGhhWFFnZEdocGN5NXpZV1psVTNSaGRDaDBZWEpuWlhSUVlYUm9LVHRjYmlBZ0lDQnBaaUFvSVhOMFlYUXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtHQkNiRzlpSUc1dmRDQm1iM1Z1WkRvZ0pIdHJaWGw5WUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdjM1J5WldGdE9pQlNaV0ZrVTNSeVpXRnRJRDBnWTNKbFlYUmxVbVZoWkZOMGNtVmhiU2gwWVhKblpYUlFZWFJvTENCN1hHNGdJQ0FnSUNCemRHRnlkRG9nYjNCMGFXOXVjeTV5WVc1blpUOHVjM1JoY25Rc1hHNGdJQ0FnSUNCbGJtUTZJRzl3ZEdsdmJuTXVjbUZ1WjJVL0xtVnVaQ3hjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJR052Ym5OMElHMWxkR0ZrWVhSaE9pQkNiRzlpVFdWMFlXUmhkR0VnUFNCN1hHNGdJQ0FnSUNCamIyNTBaVzUwVEdWdVozUm9PaUJ6ZEdGMExuTnBlbVVzWEc0Z0lDQWdmVHRjYmx4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQnJaWGtzWEc0Z0lDQWdJQ0IyWVd4MVpUb2djM1J5WldGdFZHOUJjM2x1WTBsMFpYSmhZbXhsS0hOMGNtVmhiU2tzWEc0Z0lDQWdJQ0IxY21rNklIUm9hWE11ZFhKcEtHdGxlU3dnWENKbWFXeGxYQ0lwTEZ4dUlDQWdJQ0FnY0hKdmRtbGtaWEk2SUhSb2FYTXVjSEp2ZG1sa1pYSXNYRzRnSUNBZ0lDQnpiM1Z5WTJWSlpEb2dkR2hwY3k1emIzVnlZMlZKWkN4Y2JpQWdJQ0FnSUcxbGRHRmtZWFJoTEZ4dUlDQWdJSDA3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJvWVhNb1hHNGdJQ0FnYTJWNU9pQkNiRzlpUzJWNUxGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOFltOXZiR1ZoYmo0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkc5bklIMGdQU0FvWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0pvWVhOY0lpd2dkSEoxWlNrcExtWnZjaWgwYUdsekxtaGhjeWs3WEc0Z0lDQWdiRzluTG5abGNtSnZjMlVvWUVOb1pXTnJhVzVuSUdKc2IySWdKSHRyWlhsOVlDazdYRzRnSUNBZ1kyOXVjM1FnZEdGeVoyVjBVR0YwYUNBOUlIUm9hWE11YzJGbVpWQmhkR2dvYTJWNUtUdGNiaUFnSUNCeVpYUjFjbTRnUW05dmJHVmhiaWhoZDJGcGRDQjBhR2x6TG5OaFptVlRkR0YwS0hSaGNtZGxkRkJoZEdncEtUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklITjBZWFFvWEc0Z0lDQWdhMlY1T2lCQ2JHOWlTMlY1TEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4UW14dllrMWxkR0ZrWVhSaFBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY2dmU0E5SUNoaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW5OMFlYUmNJaXdnZEhKMVpTa3BMbVp2Y2loMGFHbHpMbk4wWVhRcE8xeHVJQ0FnSUd4dlp5NTJaWEppYjNObEtHQlRkR0YwZEdsdVp5QmliRzlpSUNSN2EyVjVmV0FwTzF4dUlDQWdJR052Ym5OMElIUmhjbWRsZEZCaGRHZ2dQU0IwYUdsekxuTmhabVZRWVhSb0tHdGxlU2s3WEc0Z0lDQWdZMjl1YzNRZ2MzUmhkQ0E5SUdGM1lXbDBJSFJvYVhNdWMyRm1aVk4wWVhRb2RHRnlaMlYwVUdGMGFDazdYRzRnSUNBZ2FXWWdLQ0Z6ZEdGMEtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dUbTkwUm05MWJtUkZjbkp2Y2loZ1FteHZZaUJ1YjNRZ1ptOTFibVE2SUNSN2EyVjVmV0FwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2V5QmpiMjUwWlc1MFRHVnVaM1JvT2lCemRHRjBMbk5wZW1VZ2ZUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHUmxiR1YwWlNoY2JpQWdJQ0JyWlhrNklFSnNiMkpMWlhrc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNnZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltUmxiR1YwWlZ3aUxDQjBjblZsS1NrdVptOXlLSFJvYVhNdVpHVnNaWFJsS1R0Y2JpQWdJQ0JzYjJjdWRtVnlZbTl6WlNoZ1JHVnNaWFJwYm1jZ1lteHZZaUFrZTJ0bGVYMWdLVHRjYmlBZ0lDQmpiMjV6ZENCMFlYSm5aWFJRWVhSb0lEMGdkR2hwY3k1ellXWmxVR0YwYUNoclpYa3BPMXh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0JoZDJGcGRDQm1jeTUxYm14cGJtc29kR0Z5WjJWMFVHRjBhQ2s3WEc0Z0lDQWdmU0JqWVhSamFDQW9aU2tnZTF4dUlDQWdJQ0FnYVdZZ0tDaGxJR0Z6SUU1dlpHVktVeTVGY25KdWIwVjRZMlZ3ZEdsdmJpa3VZMjlrWlNBaFBUMGdYQ0pGVGs5RlRsUmNJaWtnZEdoeWIzY2daVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmpiM0I1S0Z4dUlDQWdJR1p5YjIxTFpYazZJRUpzYjJKTFpYa3NYRzRnSUNBZ2RHOUxaWGs2SUVKc2IySkxaWGtzWEc0Z0lDQWdiM0IwYVc5dWN6b2dRbXh2WWxCMWRFOXdkR2x2Ym5NZ1BTQjdmU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQRUpzYjJKUWRYUlNaWE4xYkhRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5QjlJRDBnS0dGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpWTI5d2VWd2lMQ0IwY25WbEtTa3VabTl5S0hSb2FYTXVZMjl3ZVNrN1hHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1lFTnZjSGxwYm1jZ1lteHZZaUFrZTJaeWIyMUxaWGw5SUhSdklDUjdkRzlMWlhsOVlDazdYRzRnSUNBZ1kyOXVjM1FnWm5KdmJWQmhkR2dnUFNCMGFHbHpMbk5oWm1WUVlYUm9LR1p5YjIxTFpYa3BPMXh1SUNBZ0lHTnZibk4wSUdaeWIyMVRkR0YwSUQwZ1lYZGhhWFFnZEdocGN5NXpZV1psVTNSaGRDaG1jbTl0VUdGMGFDazdYRzRnSUNBZ2FXWWdLQ0ZtY205dFUzUmhkQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUU1dmRFWnZkVzVrUlhKeWIzSW9ZRUpzYjJJZ2JtOTBJR1p2ZFc1a09pQWtlMlp5YjIxTFpYbDlZQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUdKMVptWmxjaUE5SUdGM1lXbDBJR1p6TG5KbFlXUkdhV3hsS0daeWIyMVFZWFJvS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1d2RYUW9kRzlMWlhrc0lHSjFabVpsY2l3Z2IzQjBhVzl1Y3lrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCc2FYTjBLRnh1SUNBZ0lHOXdkR2x2Ym5NNklFSnNiMkpNYVhOMFQzQjBhVzl1Y3lBOUlIdDlMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThRbXh2WWt4cGMzUlNaWE4xYkhRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5QjlJRDBnS0dGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpYkdsemRGd2lMQ0IwY25WbEtTa3VabTl5S0hSb2FYTXViR2x6ZENrN1hHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1hDSk1hWE4wYVc1bklHSnNiMkp6WENJcE8xeHVYRzRnSUNBZ1kyOXVjM1FnY0hKbFptbDRJRDBnYjNCMGFXOXVjeTV3Y21WbWFYZ2dQeUIwYUdsekxuQm9lWE5wWTJGc1MyVjVLRzl3ZEdsdmJuTXVjSEpsWm1sNEtTQTZJRndpWENJN1hHNGdJQ0FnWTI5dWMzUWdjbTl2ZENBOUlIUm9hWE11WTJ4cFpXNTBMbkp2YjNRN1hHNGdJQ0FnWTI5dWMzUWdZbUZ6WlVScGNpQTlJSEJ5WldacGVDQS9JR3B2YVc0b2NtOXZkQ3dnY0hKbFptbDRLU0E2SUhKdmIzUTdYRzVjYmlBZ0lDQmpiMjV6ZENCaGJHeEdhV3hsY3pvZ2MzUnlhVzVuVzEwZ1BTQmJYVHRjYmlBZ0lDQmhkMkZwZENCM1lXeHJSR2x5S0dKaGMyVkVhWElzSUdGc2JFWnBiR1Z6S1R0Y2JseHVJQ0FnSUdOdmJuTjBJR3RsZVhNZ1BTQmhiR3hHYVd4bGMxeHVJQ0FnSUNBZ0xtMWhjQ2dvWmlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnlaV3dnUFNCeVpXeGhkR2wyWlNoeWIyOTBMQ0JtS1M1emNHeHBkQ2h6WlhBcExtcHZhVzRvWENJdlhDSXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjSEpsWm1sNElEOGdjbVZzSURvZ2NtVnNPMXh1SUNBZ0lDQWdmU2xjYmlBZ0lDQWdJQzVtYVd4MFpYSW9LR3NwSUQwK0lDaHdjbVZtYVhnZ1B5QnJMbk4wWVhKMGMxZHBkR2dvY0hKbFptbDRLU0E2SUhSeWRXVXBLVnh1SUNBZ0lDQWdMbk52Y25Rb0tUdGNibHh1SUNBZ0lHTnZibk4wSUd4cGJXbDBJRDBnYjNCMGFXOXVjeTVzYVcxcGRDQS9QeUF4TURBd08xeHVJQ0FnSUdOdmJuTjBJSE4wWVhKMFNXNWtaWGdnUFNCdmNIUnBiMjV6TG1OMWNuTnZjaUEvSUU1MWJXSmxjaWh2Y0hScGIyNXpMbU4xY25OdmNpa2dPaUF3TzF4dUlDQWdJR052Ym5OMElITnNhV05sSUQwZ2EyVjVjeTV6YkdsalpTaHpkR0Z5ZEVsdVpHVjRMQ0J6ZEdGeWRFbHVaR1Y0SUNzZ2JHbHRhWFFwTzF4dUlDQWdJR052Ym5OMElHNWxlSFJEZFhKemIzSWdQVnh1SUNBZ0lDQWdjM1JoY25SSmJtUmxlQ0FySUd4cGJXbDBJRHdnYTJWNWN5NXNaVzVuZEdoY2JpQWdJQ0FnSUNBZ1B5QlRkSEpwYm1jb2MzUmhjblJKYm1SbGVDQXJJR3hwYldsMEtWeHVJQ0FnSUNBZ0lDQTZJSFZ1WkdWbWFXNWxaRHRjYmx4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQnBkR1Z0Y3pvZ2MyeHBZMlV1YldGd0tDaHJLU0E5UGlBb2V5QnJaWGs2SUdzZ2ZTa3BMRnh1SUNBZ0lDQWdZM1Z5YzI5eU9pQnVaWGgwUTNWeWMyOXlMRnh1SUNBZ0lIMDdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QjFjbXdvWEc0Z0lDQWdhMlY1T2lCQ2JHOWlTMlY1TEZ4dUlDQWdJRzl3ZEdsdmJuTTZJRUpzYjJKVmNteFBjSFJwYjI1eklEMGdlMzBzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHhDYkc5aVZYSnNVbVZ6ZFd4MFBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY2dmU0E5SUNoaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW5WeWJGd2lMQ0IwY25WbEtTa3VabTl5S0hSb2FYTXVkWEpzS1R0Y2JpQWdJQ0JzYjJjdWRtVnlZbTl6WlNoZ1FuVnBiR1JwYm1jZ2RYSnNJR1p2Y2lCaWJHOWlJQ1I3YTJWNWZXQXBPMXh1SUNBZ0lHbG1JQ2h2Y0hScGIyNXpMbTl3WlhKaGRHbHZiaUFtSmlCdmNIUnBiMjV6TG05d1pYSmhkR2x2YmlBaFBUMGdYQ0puWlhSY0lpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRlZ1YzNWd2NHOXlkR1ZrUlhKeWIzSW9YQ0pNYjJOaGJDQmliRzlpSUhOMGIzSmxJR1J2WlhNZ2JtOTBJSE4xY0hCdmNuUWdVRlZVSUhWeWJITmNJaWs3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCMWNtdzZJSFJvYVhNdWRYSnBLR3RsZVN3Z1hDSm1hV3hsWENJcExGeHVJQ0FnSUNBZ2JXVjBhRzlrT2lCY0lrZEZWRndpTEZ4dUlDQWdJQ0FnWlhod2FYSmxjMEYwT2lCdVpYY2dSR0YwWlNoY2JpQWdJQ0FnSUNBZ1JHRjBaUzV1YjNjb0tTQXJJQ2h2Y0hScGIyNXpMbVY0Y0dseVpYTkpibE5sWTI5dVpITWdQejhnTXpBd0tTQXFJREV3TURCY2JpQWdJQ0FnSUNrc1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lIQnliM1JsWTNSbFpDQndZWEp6WlVWeWNtOXlLR1Z5Y205eU9pQjFibXR1YjNkdUtUb2dSWEp5YjNJZ2UxeHVJQ0FnSUdOdmJuTjBJR1Z5Y2lBOUlHVnljbTl5SUdGeklFVnljbTl5TzF4dUlDQWdJR2xtSUNoY2JpQWdJQ0FnSUdWeWNpQnBibk4wWVc1alpXOW1JRTV2ZEVadmRXNWtSWEp5YjNJZ2ZIeGNiaUFnSUNBZ0lHVnljaUJwYm5OMFlXNWpaVzltSUVOdmJtWnNhV04wUlhKeWIzSWdmSHhjYmlBZ0lDQWdJR1Z5Y2lCcGJuTjBZVzVqWlc5bUlGWmhiR2xrWVhScGIyNUZjbkp2Y2lCOGZGeHVJQ0FnSUNBZ1pYSnlJR2x1YzNSaGJtTmxiMllnU1c1MFpYSnVZV3hGY25KdmNseHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdWeWNqdGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUWdiV1Z6YzJGblpTQTlJR1Z5Y2k1dFpYTnpZV2RsSUh4OElGd2lWVzVyYm05M2JpQmxjbkp2Y2x3aU8xeHVJQ0FnSUdOdmJuTjBJR3h2ZDJWeUlEMGdiV1Z6YzJGblpTNTBiMHh2ZDJWeVEyRnpaU2dwTzF4dUlDQWdJR052Ym5OMElHTnZaR1VnUFNBb1pYSnlJR0Z6SUU1dlpHVktVeTVGY25KdWIwVjRZMlZ3ZEdsdmJpa3VZMjlrWlR0Y2JpQWdJQ0JwWmlBb1kyOWtaU0E5UFQwZ1hDSkZUazlGVGxSY0lpQjhmQ0JzYjNkbGNpNXBibU5zZFdSbGN5aGNJbTV2ZENCbWIzVnVaRndpS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0dWeWNpazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaGpiMlJsSUQwOVBTQmNJa1ZGV0VsVFZGd2lJSHg4SUd4dmQyVnlMbWx1WTJ4MVpHVnpLRndpWVd4eVpXRmtlU0JsZUdsemRITmNJaWtwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1EyOXVabXhwWTNSRmNuSnZjaWhsY25JcE8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb1kyOWtaU0E5UFQwZ1hDSkZRVU5EUlZOY0lpQjhmQ0JqYjJSbElEMDlQU0JjSWtWUVJWSk5YQ0lnZkh3Z2JHOTNaWEl1YVc1amJIVmtaWE1vWENKd1pYSnRhWE56YVc5dVhDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUVadmNtSnBaR1JsYmtWeWNtOXlLR1Z5Y2lrN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoamIyUmxJRDA5UFNCY0lrVk9RVTFGVkU5UFRFOU9SMXdpSUh4OElHeHZkMlZ5TG1sdVkyeDFaR1Z6S0Z3aWFXNTJZV3hwWkZ3aUtTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJXWVd4cFpHRjBhVzl1UlhKeWIzSW9aWEp5S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtHVnljaWs3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhOaFptVlFZWFJvS0d0bGVUb2dRbXh2WWt0bGVTazZJSE4wY21sdVp5QjdYRzRnSUNBZ1kyOXVjM1FnY0doNWMybGpZV3dnUFNCMGFHbHpMbkJvZVhOcFkyRnNTMlY1S0d0bGVTazdYRzRnSUNBZ1kyOXVjM1FnY205dmRDQTlJSFJvYVhNdVkyeHBaVzUwTG5KdmIzUTdYRzRnSUNBZ1kyOXVjM1FnZEdGeVoyVjBJRDBnY21WemIyeDJaU2h5YjI5MExDQndhSGx6YVdOaGJDazdYRzRnSUNBZ1kyOXVjM1FnY21Wc0lEMGdjbVZzWVhScGRtVW9jbTl2ZEN3Z2RHRnlaMlYwS1R0Y2JpQWdJQ0JwWmlBb2NtVnNMbk4wWVhKMGMxZHBkR2dvWENJdUxsd2lLU0I4ZkNCeVpXd2dQVDA5SUZ3aVhDSWdmSHdnY21Wc0lEMDlQU0JjSWk1Y0lpQjhmQ0J5Wld3dWMzUmhjblJ6VjJsMGFDaGdMaTRrZTNObGNIMWdLU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUZaaGJHbGtZWFJwYjI1RmNuSnZjaWhnUW14dllpQnJaWGtnWlhOallYQmxjeUJ5YjI5MElIQmhkR2c2SUNSN2EyVjVmV0FwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2RHRnlaMlYwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJ6WVdabFUzUmhkQ2hjYmlBZ0lDQndZWFJvT2lCemRISnBibWRjYmlBZ0tUb2dVSEp2YldselpUeDdJSE5wZW1VNklHNTFiV0psY2lCOUlId2dkVzVrWldacGJtVmtQaUI3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE4wWVhRZ1BTQmhkMkZwZENCbWN5NXpkR0YwS0hCaGRHZ3BPMXh1SUNBZ0lDQWdhV1lnS0hOMFlYUXVhWE5HYVd4bEtDa3BJSEpsZEhWeWJpQjdJSE5wZW1VNklITjBZWFF1YzJsNlpTQjlPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCOUlHTmhkR05vSUNobEtTQjdYRzRnSUNBZ0lDQnBaaUFvS0dVZ1lYTWdUbTlrWlVwVExrVnljbTV2UlhoalpYQjBhVzl1S1M1amIyUmxJRDA5UFNCY0lrVk9UMFZPVkZ3aUtTQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ2RHaHliM2NnWlR0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGemVXNWpJR0YwYjIxcFkxZHlhWFJsS0hSaGNtZGxkRkJoZEdnNklITjBjbWx1Wnl3Z1luVm1abVZ5T2lCQ2RXWm1aWElwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCamNubHdkRzhnUFNBb1lYZGhhWFFnWjJWMFEzSjVjSFJ2S0NrcElHRnpJR0Z1ZVR0Y2JpQWdJQ0JqYjI1emRDQjBiWEJRWVhSb0lEMGdZQ1I3ZEdGeVoyVjBVR0YwYUgwdUpIdGpjbmx3ZEc4dWNtRnVaRzl0UW5sMFpYTW9OaWt1ZEc5VGRISnBibWNvWENKb1pYaGNJaWw5TG5SdGNHQTdYRzRnSUNBZ1kyOXVjM1FnYzNSeVpXRnRJRDBnWTNKbFlYUmxWM0pwZEdWVGRISmxZVzBvZEcxd1VHRjBhQ2s3WEc0Z0lDQWdZWGRoYVhRZ2JtVjNJRkJ5YjIxcGMyVThkbTlwWkQ0b0tISmxjMjlzZG1Vc0lISmxhbVZqZENrZ1BUNGdlMXh1SUNBZ0lDQWdjM1J5WldGdExtOXVLRndpWlhKeWIzSmNJaXdnY21WcVpXTjBLVHRjYmlBZ0lDQWdJSE4wY21WaGJTNXZiaWhjSW1acGJtbHphRndpTENBb0tTQTlQaUJ5WlhOdmJIWmxLQ2twTzF4dUlDQWdJQ0FnYzNSeVpXRnRMbVZ1WkNoaWRXWm1aWElwTzF4dUlDQWdJSDBwTzF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCaGQyRnBkQ0JtY3k1eVpXNWhiV1VvZEcxd1VHRjBhQ3dnZEdGeVoyVjBVR0YwYUNrN1hHNGdJQ0FnZlNCallYUmphQ0FvWlNrZ2UxeHVJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnWVhkaGFYUWdabk11ZFc1c2FXNXJLSFJ0Y0ZCaGRHZ3BPMXh1SUNBZ0lDQWdmU0JqWVhSamFDQjdYRzRnSUNBZ0lDQWdJQzhxSUdsbmJtOXlaU0FxTDF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnZEdoeWIzY2daVHRjYmlBZ0lDQjlYRzRnSUgxY2JuMWNibHh1WVhONWJtTWdablZ1WTNScGIyNGdZMjlzYkdWamRGUnZRblZtWm1WeVRHOWpZV3dvZG1Gc2RXVTZJRUpzYjJKV1lXeDFaU2s2SUZCeWIyMXBjMlU4UW5WbVptVnlQaUI3WEc0Z0lHbG1JQ2gyWVd4MVpTQnBibk4wWVc1alpXOW1JRlZwYm5RNFFYSnlZWGtwSUhKbGRIVnliaUJDZFdabVpYSXVabkp2YlNoMllXeDFaU2s3WEc0Z0lHbG1JQ2gyWVd4MVpTQnBibk4wWVc1alpXOW1JRUoxWm1abGNpa2djbVYwZFhKdUlIWmhiSFZsTzF4dUlDQnBaaUFvZEhsd1pXOW1JQ2gyWVd4MVpTQmhjeUJoYm5rcFB5NWJVM2x0WW05c0xtRnplVzVqU1hSbGNtRjBiM0pkSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lwSUh0Y2JpQWdJQ0JqYjI1emRDQmphSFZ1YTNNNklFSjFabVpsY2x0ZElEMGdXMTA3WEc0Z0lDQWdabTl5SUdGM1lXbDBJQ2hqYjI1emRDQmphSFZ1YXlCdlppQjJZV3gxWlNCaGN5QkJjM2x1WTBsMFpYSmhZbXhsUEZWcGJuUTRRWEp5WVhrK0tTQjdYRzRnSUNBZ0lDQmphSFZ1YTNNdWNIVnphQ2hDZFdabVpYSXVabkp2YlNoamFIVnVheWtwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1FuVm1abVZ5TG1OdmJtTmhkQ2hqYUhWdWEzTXBPMXh1SUNCOVhHNGdJR2xtSUNoMGVYQmxiMllnS0haaGJIVmxJR0Z6SUdGdWVTay9MbWRsZEZKbFlXUmxjaUE5UFQwZ1hDSm1kVzVqZEdsdmJsd2lLU0I3WEc0Z0lDQWdZMjl1YzNRZ2NtVmhaR1Z5SUQwZ0tIWmhiSFZsSUdGeklGSmxZV1JoWW14bFUzUnlaV0Z0S1M1blpYUlNaV0ZrWlhJb0tUdGNiaUFnSUNCamIyNXpkQ0JqYUhWdWEzTTZJRUoxWm1abGNsdGRJRDBnVzEwN1hHNGdJQ0FnYkdWMElISmxjM1ZzZENBOUlHRjNZV2wwSUhKbFlXUmxjaTV5WldGa0tDazdYRzRnSUNBZ2QyaHBiR1VnS0NGeVpYTjFiSFF1Wkc5dVpTa2dlMXh1SUNBZ0lDQWdZMmgxYm10ekxuQjFjMmdvUW5WbVptVnlMbVp5YjIwb2NtVnpkV3gwTG5aaGJIVmxJR0Z6SUZWcGJuUTRRWEp5WVhrcEtUdGNiaUFnSUNBZ0lISmxjM1ZzZENBOUlHRjNZV2wwSUhKbFlXUmxjaTV5WldGa0tDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJDZFdabVpYSXVZMjl1WTJGMEtHTm9kVzVyY3lrN1hHNGdJSDFjYmlBZ2RHaHliM2NnYm1WM0lGWmhiR2xrWVhScGIyNUZjbkp2Y2loZ1ZXNXpkWEJ3YjNKMFpXUWdZbXh2WWlCMllXeDFaU0IwZVhCbE9pQWtlM1I1Y0dWdlppQjJZV3gxWlgxZ0tUdGNibjFjYmx4dVlYTjVibU1nWm5WdVkzUnBiMjRxSUhOMGNtVmhiVlJ2UVhONWJtTkpkR1Z5WVdKc1pTaGNiaUFnYzNSeVpXRnRPaUJTWldGa1UzUnlaV0Z0WEc0cE9pQkJjM2x1WTBsMFpYSmhZbXhsUEZWcGJuUTRRWEp5WVhrK0lIdGNiaUFnWm05eUlHRjNZV2wwSUNoamIyNXpkQ0JqYUhWdWF5QnZaaUJ6ZEhKbFlXMHBJSHRjYmlBZ0lDQjVhV1ZzWkNCamFIVnVheUJoY3lCVmFXNTBPRUZ5Y21GNU8xeHVJQ0I5WEc1OVhHNWNibUZ6ZVc1aklHWjFibU4wYVc5dUlIZGhiR3RFYVhJb1pHbHlPaUJ6ZEhKcGJtY3NJR0ZqWXpvZ2MzUnlhVzVuVzEwcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdiR1YwSUdWdWRISnBaWE02SUhOMGNtbHVaMXRkTzF4dUlDQjBjbmtnZTF4dUlDQWdJR1Z1ZEhKcFpYTWdQU0JoZDJGcGRDQm1jeTV5WldGa1pHbHlLR1JwY2lrN1hHNGdJSDBnWTJGMFkyZ2dLR1VwSUh0Y2JpQWdJQ0JwWmlBb0tHVWdZWE1nVG05a1pVcFRMa1Z5Y201dlJYaGpaWEIwYVc5dUtTNWpiMlJsSUQwOVBTQmNJa1ZPVDBWT1ZGd2lLU0J5WlhSMWNtNDdYRzRnSUNBZ2RHaHliM2NnWlR0Y2JpQWdmVnh1SUNCbWIzSWdLR052Ym5OMElHVnVkSEo1SUc5bUlHVnVkSEpwWlhNcElIdGNiaUFnSUNCcFppQW9aVzUwY25rdVpXNWtjMWRwZEdnb1hDSXVkRzF3WENJcEtTQmpiMjUwYVc1MVpUdGNiaUFnSUNCamIyNXpkQ0JtZFd4c0lEMGdhbTlwYmloa2FYSXNJR1Z1ZEhKNUtUdGNiaUFnSUNCamIyNXpkQ0J6ZEdGMElEMGdZWGRoYVhRZ1puTXVjM1JoZENobWRXeHNLVHRjYmlBZ0lDQnBaaUFvYzNSaGRDNXBjMFJwY21WamRHOXllU2dwS1NCN1hHNGdJQ0FnSUNCaGQyRnBkQ0IzWVd4clJHbHlLR1oxYkd3c0lHRmpZeWs3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lHRmpZeTV3ZFhOb0tHWjFiR3dwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==
|
|
@@ -20,5 +20,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
20
20
|
* @description Re-exports the local filesystem blob store service.
|
|
21
21
|
*/
|
|
22
22
|
__exportStar(require("./LocalBlobStoreService.cjs"), exports);
|
|
23
|
-
//# sourceMappingURL=
|
|
24
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmxvYi9sb2NhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsMkNBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ibG9iL2xvY2FsXG4gKiBAc3VtbWFyeSBMb2NhbCBmaWxlc3lzdGVtIGJsb2Igc3RvcmUgZXhwb3J0cy5cbiAqIEBkZXNjcmlwdGlvbiBSZS1leHBvcnRzIHRoZSBsb2NhbCBmaWxlc3lzdGVtIGJsb2Igc3RvcmUgc2VydmljZS5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vTG9jYWxCbG9iU3RvcmVTZXJ2aWNlXCI7XG4iXX0=
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7R0FJRztBQUNILDZEQUEyQztBQUMzQywwaUJBQTBpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvYmxvYi9sb2NhbFxuICogQHN1bW1hcnkgTG9jYWwgZmlsZXN5c3RlbSBibG9iIHN0b3JlIGV4cG9ydHMuXG4gKiBAZGVzY3JpcHRpb24gUmUtZXhwb3J0cyB0aGUgbG9jYWwgZmlsZXN5c3RlbSBibG9iIHN0b3JlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL0xvY2FsQmxvYlN0b3JlU2VydmljZS5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12WW14dllpOXNiMk5oYkM5cGJtUmxlQzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdPenRIUVVsSE8wRkJRMGdzTWtOQlFYZERJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvcVhHNGdLaUJBYlc5a2RXeGxJR2x1ZEdWbmNtRjBhVzl1Y3k5aWJHOWlMMnh2WTJGc1hHNGdLaUJBYzNWdGJXRnllU0JNYjJOaGJDQm1hV3hsYzNsemRHVnRJR0pzYjJJZ2MzUnZjbVVnWlhod2IzSjBjeTVjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJTWlMxbGVIQnZjblJ6SUhSb1pTQnNiMk5oYkNCbWFXeGxjM2x6ZEdWdElHSnNiMklnYzNSdmNtVWdjMlZ5ZG1salpTNWNiaUFxTDF4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dlRHOWpZV3hDYkc5aVUzUnZjbVZUWlhKMmFXTmxYQ0k3WEc0aVhYMD0iXX0=
|
|
@@ -142,5 +142,5 @@ class MemoryBlobStoreService extends BlobStoreService_js_1.BlobStoreService {
|
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
144
|
exports.MemoryBlobStoreService = MemoryBlobStoreService;
|
|
145
|
-
//# sourceMappingURL=MemoryBlobStoreService.js.map
|
|
146
|
-
//# sourceMappingURL=MemoryBlobStoreService.cjs.map
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVtb3J5QmxvYlN0b3JlU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ibG9iL21lbW9yeS9NZW1vcnlCbG9iU3RvcmVTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQWdELGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEcsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEVBQ2IsYUFBYSxFQUNiLGVBQWUsR0FDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsK0JBQTBCO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxzQ0FBaUM7QUFxQjVELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFHM0M7SUFDVSxLQUFLLENBQUMsVUFBVSxDQUN2QixHQUFHLElBQXlCO1FBSzVCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBeUIsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO1FBQzlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FDUCxHQUFZLEVBQ1osS0FBZ0IsRUFDaEIsVUFBMEIsRUFBRSxFQUM1QixHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRSxHQUFHLENBQUMsT0FBTyxD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Q2hDLEtBQUssWUFBWSxhQUFhLEVBQzlCLENBQUM7WUFDRCxPQUFPLEtBQWMsQ0FBQztRQUN4QixDQUFDO1FBQ0QsT0FBTyxJQUFJLGFBQWEsQ0FDdEIsc0JBQXVCLEtBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FDakQsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvYmxvYi9tZW1vcnkvc2VydmljZVxuICogQHN1bW1hcnkgSW4tbWVtb3J5IGJsb2Igc3RvcmUgc2VydmljZS5cbiAqIEBkZXNjcmlwdGlvbiBQcm9jZXNzLWxvY2FsIE1hcC1iYWNrZWQgYmxvYiBzdG9yZSBmb3IgdGVzdHMgYW5kIGV4YW1wbGVzLiBObyBTREsgZGVwZW5kZW5jeS5cbiAqL1xuaW1wb3J0IHsgdHlwZSBDb250ZXh0dWFsQXJncywgdHlwZSBNYXliZUNvbnRleHR1YWxBcmcsIFVuc3VwcG9ydGVkRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7XG4gIENvbmZsaWN0RXJyb3IsXG4gIEludGVybmFsRXJyb3IsXG4gIE5vdEZvdW5kRXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBjb2xsZWN0VG9CdWZmZXIsIGNvbXB1dGVTaGEyNTYsIHRvQXN5bmNJdGVyYWJsZSB9IGZyb20gXCIuLi9jb3JlL0Jsb2JWYWx1ZVwiO1xuaW1wb3J0IHsgQmxvYlN0b3JlU2VydmljZSB9IGZyb20gXCIuLi9jb3JlL0Jsb2JTdG9yZVNlcnZpY2VcIjtcbmltcG9ydCB0eXBlIHtcbiAgQmxvYkdldE9wdGlvbnMsXG4gIEJsb2JHZXRSZXN1bHQsXG4gIEJsb2JLZXksXG4gIEJsb2JMaXN0T3B0aW9ucyxcbiAgQmxvYkxpc3RSZXN1bHQsXG4gIEJsb2JNZXRhZGF0YSxcbiAgQmxvYlB1dE9wdGlvbnMsXG4gIEJsb2JQdXRSZXN1bHQsXG4gIEJsb2JTdG9yZVNlcnZpY2VDb25maWcsXG4gIEJsb2JVcmxPcHRpb25zLFxuICBCbG9iVXJsUmVzdWx0LFxuICBCbG9iVmFsdWUsXG59IGZyb20gXCIuLi9jb3JlL0Jsb2JUeXBlc1wiO1xuXG5pbnRlcmZhY2UgTWVtb3J5RW50cnkge1xuICB2YWx1ZTogQnVmZmVyO1xuICBtZXRhZGF0YTogQmxvYk1ldGFkYXRhO1xufVxuXG5leHBvcnQgY2xhc3MgTWVtb3J5QmxvYlN0b3JlU2VydmljZSBleHRlbmRzIEJsb2JTdG9yZVNlcnZpY2U8XG4gIE1hcDxzdHJpbmcsIE1lbW9yeUVudHJ5PixcbiAgQmxvYlN0b3JlU2VydmljZUNvbmZpZ1xuPiB7XG4gIG92ZXJyaWRlIGFzeW5jIGluaXRpYWxpemUoXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPHtcbiAgICBjb25maWc6IEJsb2JTdG9yZVNlcnZpY2VDb25maWc7XG4gICAgY2xpZW50OiBNYXA8c3RyaW5nLCBNZW1vcnlFbnRyeT47XG4gIH0+IHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmdldENvbmZpZ0Zyb21BcmdzPEJsb2JTdG9yZVNlcnZpY2VDb25maWc+KC4uLmFyZ3MpO1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLl9jbGllbnQgPSBuZXcgTWFwPHN0cmluZywgTWVtb3J5RW50cnk+KCk7XG4gICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQ6IHRoaXMuX2NsaWVudCB9O1xuICB9XG5cbiAgYXN5bmMgcHV0KFxuICAgIGtleTogQmxvYktleSxcbiAgICB2YWx1ZTogQmxvYlZhbHVlLFxuICAgIG9wdGlvbnM6IEJsb2JQdXRPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxCbG9iUHV0UmVzdWx0PiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInB1dFwiLCB0cnVlKSkuZm9yKHRoaXMucHV0KTtcbiAgICBsb2cudmVyYm9zZShgUHV0dGluZyBibG9iICR7a2V5fWApO1xuXG4gICAgY29uc3QgcGh5c2ljYWxLZXkgPSB0aGlzLnBoeXNpY2FsS2V5KGtleSk7XG5cbiAgICBpZiAob3B0aW9ucy5pZk5vdEV4aXN0cyAmJiB0aGlzLmNsaWVudC5oYXMocGh5c2ljYWxLZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihgQmxvYiBhbHJlYWR5IGV4aXN0czogJHtrZXl9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY29sbGVjdFRvQnVmZmVyKHZhbHVlKTtcbiAgICBjb25zdCBzaGEyNTYgPSBhd2FpdCBjb21wdXRlU2hhMjU2KGJ1ZmZlcik7XG5cbiAgICBpZiAob3B0aW9ucy5leHBlY3RlZFNoYTI1NiAmJiBvcHRpb25zLmV4cGVjdGVkU2hhMjU2ICE9PSBzaGEyNTYpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYENoZWNrc3VtIG1pc21hdGNoIGZvciAke2tleX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhZGF0YTogQmxvYk1ldGFkYXRhID0ge1xuICAgICAgY29udGVudFR5cGU6IG9wdGlvbnMuY29udGVudFR5cGUsXG4gICAgICBjb250ZW50TGVuZ3RoOiBidWZmZXIubGVuZ3RoLFxuICAgICAgc2hhMjU2LFxuICAgICAgY3VzdG9tOiBvcHRpb25zLm1ldGFkYXRhLFxuICAgIH07XG5cbiAgICB0aGlzLmNsaWVudC5zZXQocGh5c2ljYWxLZXksIHsgdmFsdWU6IGJ1ZmZlciwgbWV0YWRhdGEgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAga2V5LFxuICAgICAgdXJpOiB0aGlzLnVyaShrZXksIFwibWVtb3J5XCIpLFxuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXIsXG4gICAgICBzb3VyY2VJZDogdGhpcy5zb3VyY2VJZCxcbiAgICAgIG1ldGFkYXRhLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBnZXQoXG4gICAga2V5OiBCbG9iS2V5LFxuICAgIG9wdGlvbnM6IEJsb2JHZXRPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxCbG9iR2V0UmVzdWx0PiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImdldFwiLCB0cnVlKSkuZm9yKHRoaXMuZ2V0KTtcbiAgICBsb2cudmVyYm9zZShgR2V0dGluZyBibG9iICR7a2V5fWApO1xuXG4gICAgY29uc3QgcGh5c2ljYWxLZXkgPSB0aGlzLnBoeXNpY2FsS2V5KGtleSk7XG4gICAgY29uc3QgZW50cnkgPSB0aGlzLmNsaWVudC5nZXQocGh5c2ljYWxLZXkpO1xuXG4gICAgaWYgKCFlbnRyeSkge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYEJsb2Igbm90IGZvdW5kOiAke2tleX1gKTtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWU6IEJsb2JWYWx1ZSA9IGVudHJ5LnZhbHVlO1xuICAgIGlmIChvcHRpb25zLnJhbmdlKSB7XG4gICAgICBjb25zdCBzdGFydCA9IG9wdGlvbnMucmFuZ2Uuc3RhcnQ7XG4gICAgICBjb25zdCBlbmQgPSBvcHRpb25zLnJhbmdlLmVuZCA/PyBlbnRyeS52YWx1ZS5sZW5ndGg7XG4gICAgICB2YWx1ZSA9IGVudHJ5LnZhbHVlLnN1YmFycmF5KHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBrZXksXG4gICAgICB2YWx1ZTogdG9Bc3luY0l0ZXJhYmxlKHZhbHVlKSxcbiAgICAgIHVyaTogdGhpcy51cmkoa2V5LCBcIm1lbW9yeVwiKSxcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgc291cmNlSWQ6IHRoaXMuc291cmNlSWQsXG4gICAgICBtZXRhZGF0YTogZW50cnkubWV0YWRhdGEsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGhhcyhcbiAgICBrZXk6IEJsb2JLZXksXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImhhc1wiLCB0cnVlKSkuZm9yKHRoaXMuaGFzKTtcbiAgICBsb2cudmVyYm9zZShgQ2hlY2tpbmcgYmxvYiAke2tleX1gKTtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuaGFzKHRoaXMucGh5c2ljYWxLZXkoa2V5KSk7XG4gIH1cblxuICBhc3luYyBzdGF0KFxuICAgIGtleTogQmxvYktleSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPEJsb2JNZXRhZGF0YT4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzdGF0XCIsIHRydWUpKS5mb3IodGhpcy5zdGF0KTtcbiAgICBsb2cudmVyYm9zZShgU3RhdHRpbmcgYmxvYiAke2tleX1gKTtcbiAgICBjb25zdCBlbnRyeSA9IHRoaXMuY2xpZW50LmdldCh0aGlzLnBoeXNpY2FsS2V5KGtleSkpO1xuICAgIGlmICghZW50cnkpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBCbG9iIG5vdCBmb3VuZDogJHtrZXl9YCk7XG4gICAgfVxuICAgIHJldHVybiBlbnRyeS5tZXRhZGF0YTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShcbiAgICBrZXk6IEJsb2JLZXksXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZVwiLCB0cnVlKSkuZm9yKHRoaXMuZGVsZXRlKTtcbiAgICBsb2cudmVyYm9zZShgRGVsZXRpbmcgYmxvYiAke2tleX1gKTtcbiAgICB0aGlzLmNsaWVudC5kZWxldGUodGhpcy5waHlzaWNhbEtleShrZXkpKTtcbiAgfVxuXG4gIGFzeW5jIGNvcHkoXG4gICAgZnJvbUtleTogQmxvYktleSxcbiAgICB0b0tleTogQmxvYktleSxcbiAgICBvcHRpb25zOiBCbG9iUHV0T3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8QmxvYlB1dFJlc3VsdD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjb3B5XCIsIHRydWUpKS5mb3IodGhpcy5jb3B5KTtcbiAgICBsb2cudmVyYm9zZShgQ29weWluZyBibG9iICR7ZnJvbUtleX0gdG8gJHt0b0tleX1gKTtcbiAgICBjb25zdCBzb3VyY2UgPSB0aGlzLmNsaWVudC5nZXQodGhpcy5waHlzaWNhbEtleShmcm9tS2V5KSk7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBCbG9iIG5vdCBmb3VuZDogJHtmcm9tS2V5fWApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wdXQodG9LZXksIHNvdXJjZS52YWx1ZSwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGNvbnRlbnRUeXBlOiBvcHRpb25zLmNvbnRlbnRUeXBlID8/IHNvdXJjZS5tZXRhZGF0YS5jb250ZW50VHlwZSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3QoXG4gICAgb3B0aW9uczogQmxvYkxpc3RPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxCbG9iTGlzdFJlc3VsdD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJsaXN0XCIsIHRydWUpKS5mb3IodGhpcy5saXN0KTtcbiAgICBsb2cudmVyYm9zZShcIkxpc3RpbmcgYmxvYnNcIik7XG5cbiAgICBjb25zdCBwcmVmaXggPSBvcHRpb25zLnByZWZpeCA/IHRoaXMucGh5c2ljYWxLZXkob3B0aW9ucy5wcmVmaXgpIDogXCJcIjtcbiAgICBjb25zdCBhbGxLZXlzID0gQXJyYXkuZnJvbSh0aGlzLmNsaWVudC5rZXlzKCkpXG4gICAgICAuZmlsdGVyKChrKSA9PiAocHJlZml4ID8gay5zdGFydHNXaXRoKHByZWZpeCkgOiB0cnVlKSlcbiAgICAgIC5zb3J0KCk7XG5cbiAgICBjb25zdCBsaW1pdCA9IG9wdGlvbnMubGltaXQgPz8gMTAwMDtcbiAgICBjb25zdCBzdGFydEluZGV4ID0gb3B0aW9ucy5jdXJzb3IgPyBOdW1iZXIob3B0aW9ucy5jdXJzb3IpIDogMDtcbiAgICBjb25zdCBzbGljZSA9IGFsbEtleXMuc2xpY2Uoc3RhcnRJbmRleCwgc3RhcnRJbmRleCArIGxpbWl0KTtcbiAgICBjb25zdCBuZXh0Q3Vyc29yID1cbiAgICAgIHN0YXJ0SW5kZXggKyBsaW1pdCA8IGFsbEtleXMubGVuZ3RoXG4gICAgICAgID8gU3RyaW5nKHN0YXJ0SW5kZXggKyBsaW1pdClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IHNsaWNlLm1hcCgoaykgPT4gKHtcbiAgICAgICAga2V5OiBrLFxuICAgICAgICBtZXRhZGF0YTogdGhpcy5jbGllbnQuZ2V0KGspPy5tZXRhZGF0YSxcbiAgICAgIH0pKSxcbiAgICAgIGN1cnNvcjogbmV4dEN1cnNvcixcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgdXJsKFxuICAgIGtleTogQmxvYktleSxcbiAgICBvcHRpb25zOiBCbG9iVXJsT3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8QmxvYlVybFJlc3VsdD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ1cmxcIiwgdHJ1ZSkpLmZvcih0aGlzLnVybCk7XG4gICAgbG9nLnZlcmJvc2UoYEJ1aWxkaW5nIHVybCBmb3IgYmxvYiAke2tleX1gKTtcbiAgICBpZiAob3B0aW9ucy5vcGVyYXRpb24gJiYgb3B0aW9ucy5vcGVyYXRpb24gIT09IFwiZ2V0XCIpIHtcbiAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFwiTWVtb3J5IGJsb2Igc3RvcmUgZG9lcyBub3Qgc3VwcG9ydCBQVVQgdXJsc1wiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHVybDogdGhpcy51cmkoa2V5LCBcIm1lbW9yeVwiKSxcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGV4cGlyZXNBdDogbmV3IERhdGUoXG4gICAgICAgIERhdGUubm93KCkgKyAob3B0aW9ucy5leHBpcmVzSW5TZWNvbmRzID8/IDMwMCkgKiAxMDAwXG4gICAgICApLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VFcnJvcihlcnJvcjogdW5rbm93bik6IEVycm9yIHtcbiAgICBpZiAoXG4gICAgICBlcnJvciBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IgfHxcbiAgICAgIGVycm9yIGluc3RhbmNlb2YgQ29uZmxpY3RFcnJvciB8fFxuICAgICAgZXJyb3IgaW5zdGFuY2VvZiBWYWxpZGF0aW9uRXJyb3IgfHxcbiAgICAgIGVycm9yIGluc3RhbmNlb2YgSW50ZXJuYWxFcnJvclxuICAgICkge1xuICAgICAgcmV0dXJuIGVycm9yIGFzIEVycm9yO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgTWVtb3J5IGJsb2IgZXJyb3I6ICR7KGVycm9yIGFzIEVycm9yKS5tZXNzYWdlfWBcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVtb3J5QmxvYlN0b3JlU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIk1lbW9yeUJsb2JTdG9yZVNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7R0FJRztBQUNILHlDQUFrRDtBQUNsRCwyREFBd0c7QUFDeEcseURBQXlGO0FBQ3pGLHVFQUFpRTtBQUNqRSxNQUFhLHNCQUF1QixTQUFRLHNDQUFnQjtJQUN4RCxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTtRQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUk7UUFDdkMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JFLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxNQUFNLElBQUksNkJBQWEs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ODVpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvYmxvYi9tZW1vcnkvc2VydmljZVxuICogQHN1bW1hcnkgSW4tbWVtb3J5IGJsb2Igc3RvcmUgc2VydmljZS5cbiAqIEBkZXNjcmlwdGlvbiBQcm9jZXNzLWxvY2FsIE1hcC1iYWNrZWQgYmxvYiBzdG9yZSBmb3IgdGVzdHMgYW5kIGV4YW1wbGVzLiBObyBTREsgZGVwZW5kZW5jeS5cbiAqL1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ29uZmxpY3RFcnJvciwgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciwgVmFsaWRhdGlvbkVycm9yLCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgY29sbGVjdFRvQnVmZmVyLCBjb21wdXRlU2hhMjU2LCB0b0FzeW5jSXRlcmFibGUgfSBmcm9tIFwiLi8uLi9jb3JlL0Jsb2JWYWx1ZS5qc1wiO1xuaW1wb3J0IHsgQmxvYlN0b3JlU2VydmljZSB9IGZyb20gXCIuLy4uL2NvcmUvQmxvYlN0b3JlU2VydmljZS5qc1wiO1xuZXhwb3J0IGNsYXNzIE1lbW9yeUJsb2JTdG9yZVNlcnZpY2UgZXh0ZW5kcyBCbG9iU3RvcmVTZXJ2aWNlIHtcbiAgICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5nZXRDb25maWdGcm9tQXJncyguLi5hcmdzKTtcbiAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgICAgICB0aGlzLl9jbGllbnQgPSBuZXcgTWFwKCk7XG4gICAgICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50OiB0aGlzLl9jbGllbnQgfTtcbiAgICB9XG4gICAgYXN5bmMgcHV0KGtleSwgdmFsdWUsIG9wdGlvbnMgPSB7fSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicHV0XCIsIHRydWUpKS5mb3IodGhpcy5wdXQpO1xuICAgICAgICBsb2cudmVyYm9zZShgUHV0dGluZyBibG9iICR7a2V5fWApO1xuICAgICAgICBjb25zdCBwaHlzaWNhbEtleSA9IHRoaXMucGh5c2ljYWxLZXkoa2V5KTtcbiAgICAgICAgaWYgKG9wdGlvbnMuaWZOb3RFeGlzdHMgJiYgdGhpcy5jbGllbnQuaGFzKHBoeXNpY2FsS2V5KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IoYEJsb2IgYWxyZWFkeSBleGlzdHM6ICR7a2V5fWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IGNvbGxlY3RUb0J1ZmZlcih2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHNoYTI1NiA9IGF3YWl0IGNvbXB1dGVTaGEyNTYoYnVmZmVyKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuZXhwZWN0ZWRTaGEyNTYgJiYgb3B0aW9ucy5leHBlY3RlZFNoYTI1NiAhPT0gc2hhMjU2KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBDaGVja3N1bSBtaXNtYXRjaCBmb3IgJHtrZXl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBjb250ZW50VHlwZTogb3B0aW9ucy5jb250ZW50VHlwZSxcbiAgICAgICAgICAgIGNvbnRlbnRMZW5ndGg6IGJ1ZmZlci5sZW5ndGgsXG4gICAgICAgICAgICBzaGEyNTYsXG4gICAgICAgICAgICBjdXN0b206IG9wdGlvbnMubWV0YWRhdGEsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2xpZW50LnNldChwaHlzaWNhbEtleSwgeyB2YWx1ZTogYnVmZmVyLCBtZXRhZGF0YSB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIHVyaTogdGhpcy51cmkoa2V5LCBcIm1lbW9yeVwiKSxcbiAgICAgICAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgICAgICAgc291cmNlSWQ6IHRoaXMuc291cmNlSWQsXG4gICAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0KGtleSwgb3B0aW9ucyA9IHt9LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJnZXRcIiwgdHJ1ZSkpLmZvcih0aGlzLmdldCk7XG4gICAgICAgIGxvZy52ZXJib3NlKGBHZXR0aW5nIGJsb2IgJHtrZXl9YCk7XG4gICAgICAgIGNvbnN0IHBoeXNpY2FsS2V5ID0gdGhpcy5waHlzaWNhbEtleShrZXkpO1xuICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuY2xpZW50LmdldChwaHlzaWNhbEtleSk7XG4gICAgICAgIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBCbG9iIG5vdCBmb3VuZDogJHtrZXl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHZhbHVlID0gZW50cnkudmFsdWU7XG4gICAgICAgIGlmIChvcHRpb25zLnJhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IG9wdGlvbnMucmFuZ2Uuc3RhcnQ7XG4gICAgICAgICAgICBjb25zdCBlbmQgPSBvcHRpb25zLnJhbmdlLmVuZCA/PyBlbnRyeS52YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICB2YWx1ZSA9IGVudHJ5LnZhbHVlLnN1YmFycmF5KHN0YXJ0LCBlbmQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICB2YWx1ZTogdG9Bc3luY0l0ZXJhYmxlKHZhbHVlKSxcbiAgICAgICAgICAgIHVyaTogdGhpcy51cmkoa2V5LCBcIm1lbW9yeVwiKSxcbiAgICAgICAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgICAgICAgc291cmNlSWQ6IHRoaXMuc291cmNlSWQsXG4gICAgICAgICAgICBtZXRhZGF0YTogZW50cnkubWV0YWRhdGEsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGFzeW5jIGhhcyhrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImhhc1wiLCB0cnVlKSkuZm9yKHRoaXMuaGFzKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYENoZWNraW5nIGJsb2IgJHtrZXl9YCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNsaWVudC5oYXModGhpcy5waHlzaWNhbEtleShrZXkpKTtcbiAgICB9XG4gICAgYXN5bmMgc3RhdChrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInN0YXRcIiwgdHJ1ZSkpLmZvcih0aGlzLnN0YXQpO1xuICAgICAgICBsb2cudmVyYm9zZShgU3RhdHRpbmcgYmxvYiAke2tleX1gKTtcbiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmNsaWVudC5nZXQodGhpcy5waHlzaWNhbEtleShrZXkpKTtcbiAgICAgICAgaWYgKCFlbnRyeSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYEJsb2Igbm90IGZvdW5kOiAke2tleX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW50cnkubWV0YWRhdGE7XG4gICAgfVxuICAgIGFzeW5jIGRlbGV0ZShrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZVwiLCB0cnVlKSkuZm9yKHRoaXMuZGVsZXRlKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYERlbGV0aW5nIGJsb2IgJHtrZXl9YCk7XG4gICAgICAgIHRoaXMuY2xpZW50LmRlbGV0ZSh0aGlzLnBoeXNpY2FsS2V5KGtleSkpO1xuICAgIH1cbiAgICBhc3luYyBjb3B5KGZyb21LZXksIHRvS2V5LCBvcHRpb25zID0ge30sIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNvcHlcIiwgdHJ1ZSkpLmZvcih0aGlzLmNvcHkpO1xuICAgICAgICBsb2cudmVyYm9zZShgQ29weWluZyBibG9iICR7ZnJvbUtleX0gdG8gJHt0b0tleX1gKTtcbiAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5jbGllbnQuZ2V0KHRoaXMucGh5c2ljYWxLZXkoZnJvbUtleSkpO1xuICAgICAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYEJsb2Igbm90IGZvdW5kOiAke2Zyb21LZXl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucHV0KHRvS2V5LCBzb3VyY2UudmFsdWUsIHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogb3B0aW9ucy5jb250ZW50VHlwZSA/PyBzb3VyY2UubWV0YWRhdGEuY29udGVudFR5cGUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBsaXN0KG9wdGlvbnMgPSB7fSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibGlzdFwiLCB0cnVlKSkuZm9yKHRoaXMubGlzdCk7XG4gICAgICAgIGxvZy52ZXJib3NlKFwiTGlzdGluZyBibG9ic1wiKTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gb3B0aW9ucy5wcmVmaXggPyB0aGlzLnBoeXNpY2FsS2V5KG9wdGlvbnMucHJlZml4KSA6IFwiXCI7XG4gICAgICAgIGNvbnN0IGFsbEtleXMgPSBBcnJheS5mcm9tKHRoaXMuY2xpZW50LmtleXMoKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGspID0+IChwcmVmaXggPyBrLnN0YXJ0c1dpdGgocHJlZml4KSA6IHRydWUpKVxuICAgICAgICAgICAgLnNvcnQoKTtcbiAgICAgICAgY29uc3QgbGltaXQgPSBvcHRpb25zLmxpbWl0ID8/IDEwMDA7XG4gICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBvcHRpb25zLmN1cnNvciA/IE51bWJlcihvcHRpb25zLmN1cnNvcikgOiAwO1xuICAgICAgICBjb25zdCBzbGljZSA9IGFsbEtleXMuc2xpY2Uoc3RhcnRJbmRleCwgc3RhcnRJbmRleCArIGxpbWl0KTtcbiAgICAgICAgY29uc3QgbmV4dEN1cnNvciA9IHN0YXJ0SW5kZXggKyBsaW1pdCA8IGFsbEtleXMubGVuZ3RoXG4gICAgICAgICAgICA/IFN0cmluZyhzdGFydEluZGV4ICsgbGltaXQpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiBzbGljZS5tYXAoKGspID0+ICh7XG4gICAgICAgICAgICAgICAga2V5OiBrLFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiB0aGlzLmNsaWVudC5nZXQoayk/Lm1ldGFkYXRhLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgY3Vyc29yOiBuZXh0Q3Vyc29yLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBhc3luYyB1cmwoa2V5LCBvcHRpb25zID0ge30sIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVybFwiLCB0cnVlKSkuZm9yKHRoaXMudXJsKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYEJ1aWxkaW5nIHVybCBmb3IgYmxvYiAke2tleX1gKTtcbiAgICAgICAgaWYgKG9wdGlvbnMub3BlcmF0aW9uICYmIG9wdGlvbnMub3BlcmF0aW9uICE9PSBcImdldFwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcIk1lbW9yeSBibG9iIHN0b3JlIGRvZXMgbm90IHN1cHBvcnQgUFVUIHVybHNcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHVybDogdGhpcy51cmkoa2V5LCBcIm1lbW9yeVwiKSxcbiAgICAgICAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgICAgICAgIGV4cGlyZXNBdDogbmV3IERhdGUoRGF0ZS5ub3coKSArIChvcHRpb25zLmV4cGlyZXNJblNlY29uZHMgPz8gMzAwKSAqIDEwMDApLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBwYXJzZUVycm9yKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IgfHxcbiAgICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgQ29uZmxpY3RFcnJvciB8fFxuICAgICAgICAgICAgZXJyb3IgaW5zdGFuY2VvZiBWYWxpZGF0aW9uRXJyb3IgfHxcbiAgICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgSW50ZXJuYWxFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihgTWVtb3J5IGJsb2IgZXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lUV1Z0YjNKNVFteHZZbE4wYjNKbFUyVnlkbWxqWlM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDNOeVl5OWliRzlpTDIxbGJXOXllUzlOWlcxdmNubENiRzlpVTNSdmNtVlRaWEoyYVdObExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCT3pzN08wZEJTVWM3UVVGRFNDeFBRVUZQTEVWQlFXZEVMR2RDUVVGblFpeEZRVUZGTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGRGFFY3NUMEZCVHl4RlFVTk1MR0ZCUVdFc1JVRkRZaXhoUVVGaExFVkJRMklzWVVGQllTeEZRVU5pTEdWQlFXVXNSMEZEYUVJc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVTnFReXhQUVVGUExFVkJRVVVzWlVGQlpTeEZRVUZGTEdGQlFXRXNSVUZCUlN4bFFVRmxMRVZCUVVVc0swSkJRVEJDTzBGQlEzQkdMRTlCUVU4c1JVRkJSU3huUWtGQlowSXNSVUZCUlN4elEwRkJhVU03UVVGeFFqVkVMRTFCUVUwc1QwRkJUeXh6UWtGQmRVSXNVMEZCVVN4blFrRkhNME03U1VGRFZTeExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVTjJRaXhIUVVGSExFbEJRWGxDTzFGQlN6VkNMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJlVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTjJSU3hKUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXp0UlFVTjBRaXhKUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NSMEZCUnl4RlFVRjFRaXhEUVVGRE8xRkJRemxETEU5QlFVOHNSVUZCUlN4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0SlFVTXhReXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZEVUN4SFFVRlpMRVZCUTFvc1MwRkJaMElzUlVGRGFFSXNWVUZCTUVJc1JVRkJSU3hGUVVNMVFpeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOeVJTeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMR2RDUVVGblFpeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUlc1RExFMUJRVTBzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRk1VTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1YwRkJWeXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmRCUVZjc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGVFUXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXgzUWtGQmQwSXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVONlJDeERRVUZETzFGQlJVUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1RVRkJUU3hsUVVGbExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETlVNc1RVRkJUU3hOUVVGTkxFZEJRVWNzVFVGQlRTeGhRVUZoTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkZNME1zU1VGQlNTeFBRVUZQTEVOQlFVTXNZMEZCWXl4SlFVRkpMRTlCUVU4c1EwRkJReXhqUVVGakxFdEJRVXNzVFVGQlRTeEZRVUZGTEVOQlFVTTdXVUZEYUVVc1RVRkJUU3hKUVVGSkxHVkJRV1VzUTBGQlF5eDVRa0ZCZVVJc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU0xUkN4RFFVRkRPMUZCUlVRc1RVRkJUU3hSUVVGUkxFZEJRV2xDTzFsQlF6ZENMRmRCUVZjc1JVRkJSU3hQUVVGUExFTkJRVU1zVjBGQlZ6dFpRVU5vUXl4aFFVRmhMRVZCUVVVc1RVRkJUU3hEUVVGRExFMUJRVTA3V1VGRE5VSXNUVUZCVFR0WlFVTk9MRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zVVVGQlVUdFRRVU42UWl4RFFVRkRPMUZCUlVZc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNWMEZCVnl4RlFVRkZMRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeFJRVUZSTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUlRGRUxFOUJRVTg3V1VGRFRDeEhRVUZITzFsQlEwZ3NSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEZRVUZGTEZGQlFWRXNRMEZCUXp0WlFVTTFRaXhSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRTdXVUZEZGtJc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTzFsQlEzWkNMRkZCUVZFN1UwRkRWQ3hEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUTFBc1IwRkJXU3hGUVVOYUxGVkJRVEJDTEVWQlFVVXNSVUZETlVJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEY2tVc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eG5Ra0ZCWjBJc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVVZ1UXl4TlFVRk5MRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUXpGRExFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFGQlJUTkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dFpRVU5ZTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc2JVSkJRVzFDTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRjRVFzUTBGQlF6dFJRVVZFTEVsQlFVa3NTMEZCU3l4SFFVRmpMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU03VVVGRGJrTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRGJFSXNUVUZCVFN4TFFVRkxMRWRCUVVjc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTTdXVUZEYkVNc1RVRkJUU3hIUVVGSExFZEJRVWNzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTTdXVUZEY0VRc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU16UXl4RFFVRkRPMUZCUlVRc1QwRkJUenRaUVVOTUxFZEJRVWM3V1VGRFNDeExRVUZMTEVWQlFVVXNaVUZCWlN4RFFVRkRMRXRCUVVzc1EwRkJRenRaUVVNM1FpeEhRVUZITEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzVVVGQlVTeERRVUZETzFsQlF6VkNMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVUdFpRVU4yUWl4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkU3V1VGRGRrSXNVVUZCVVN4RlFVRkZMRXRCUVVzc1EwRkJReXhSUVVGUk8xTkJRM3BDTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGRFVDeEhRVUZaTEVWQlExb3NSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGNrVXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVOd1F5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOb1JDeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkRVaXhIUVVGWkxFVkJRMW9zUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRka1VzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTndReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRja1FzU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMWxCUTFnc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGQlF5eHRRa0ZCYlVJc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU53UkN4RFFVRkRPMUZCUTBRc1QwRkJUeXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETzBsQlEzaENMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVFVGQlRTeERRVU5XTEVkQlFWa3NSVUZEV2l4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU16UlN4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExHbENRVUZwUWl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM0JETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNMVF5eERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkRVaXhQUVVGblFpeEZRVU5vUWl4TFFVRmpMRVZCUTJRc1ZVRkJNRUlzUlVGQlJTeEZRVU0xUWl4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU4yUlN4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExHZENRVUZuUWl4UFFVRlBMRTlCUVU4c1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU51UkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZETVVRc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzFsQlExb3NUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXh0UWtGQmJVSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVONFJDeERRVUZETzFGQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZPMWxCUTI1RExFZEJRVWNzVDBGQlR6dFpRVU5XTEZkQlFWY3NSVUZCUlN4UFFVRlBMRU5CUVVNc1YwRkJWeXhKUVVGSkxFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnp0VFFVTm9SU3hEUVVGRExFTkJRVU03U1VGRFRDeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkRVaXhWUVVFeVFpeEZRVUZGTEVWQlF6ZENMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEzWkZMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTTdVVUZGTjBJc1RVRkJUU3hOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dFJRVU4wUlN4TlFVRk5MRTlCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03WVVGRE0wTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03WVVGRGNrUXNTVUZCU1N4RlFVRkZMRU5CUVVNN1VVRkZWaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNTMEZCU3l4SlFVRkpMRWxCUVVrc1EwRkJRenRSUVVOd1F5eE5RVUZOTEZWQlFWVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZETDBRc1RVRkJUU3hMUVVGTExFZEJRVWNzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRVZCUVVVc1ZVRkJWU3hIUVVGSExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlF6VkVMRTFCUVUwc1ZVRkJWU3hIUVVOa0xGVkJRVlVzUjBGQlJ5eExRVUZMTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwN1dVRkRha01zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRWRCUVVjc1MwRkJTeXhEUVVGRE8xbEJRelZDTEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNN1VVRkZhRUlzVDBGQlR6dFpRVU5NTEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMmRDUVVOMlFpeEhRVUZITEVWQlFVVXNRMEZCUXp0blFrRkRUaXhSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzVVVGQlVUdGhRVU4yUXl4RFFVRkRMRU5CUVVNN1dVRkRTQ3hOUVVGTkxFVkJRVVVzVlVGQlZUdFRRVU51UWl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlExQXNSMEZCV1N4RlFVTmFMRlZCUVRCQ0xFVkJRVVVzUlVGRE5VSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGNrVXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXg1UWtGQmVVSXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVNMVF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4VFFVRlRMRWxCUVVrc1QwRkJUeXhEUVVGRExGTkJRVk1zUzBGQlN5eExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTnlSQ3hOUVVGTkxFbEJRVWtzWjBKQlFXZENMRU5CUVVNc05rTkJRVFpETEVOQlFVTXNRMEZCUXp0UlFVTTFSU3hEUVVGRE8xRkJRMFFzVDBGQlR6dFpRVU5NTEVkQlFVY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeFJRVUZSTEVOQlFVTTdXVUZETlVJc1RVRkJUU3hGUVVGRkxFdEJRVXM3V1VGRFlpeFRRVUZUTEVWQlFVVXNTVUZCU1N4SlFVRkpMRU5CUTJwQ0xFbEJRVWtzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhuUWtGQlowSXNTVUZCU1N4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRM1JFTzFOQlEwWXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZVeXhWUVVGVkxFTkJRVU1zUzBGQll6dFJRVU5xUXl4SlFVTkZMRXRCUVVzc1dVRkJXU3hoUVVGaE8xbEJRemxDTEV0QlFVc3NXVUZCV1N4aFFVRmhPMWxCUXpsQ0xFdEJRVXNzV1VGQldTeGxRVUZsTzFsQlEyaERMRXRCUVVzc1dVRkJXU3hoUVVGaExFVkJRemxDTEVOQlFVTTdXVUZEUkN4UFFVRlBMRXRCUVdNc1EwRkJRenRSUVVONFFpeERRVUZETzFGQlEwUXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkRkRUlzYzBKQlFYVkNMRXRCUVdVc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGRGFrUXNRMEZCUXp0SlFVTktMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUUcxdlpIVnNaU0JwYm5SbFozSmhkR2x2Ym5NdllteHZZaTl0WlcxdmNua3ZjMlZ5ZG1salpWeHVJQ29nUUhOMWJXMWhjbmtnU1c0dGJXVnRiM0o1SUdKc2IySWdjM1J2Y21VZ2MyVnlkbWxqWlM1Y2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCUWNtOWpaWE56TFd4dlkyRnNJRTFoY0MxaVlXTnJaV1FnWW14dllpQnpkRzl5WlNCbWIzSWdkR1Z6ZEhNZ1lXNWtJR1Y0WVcxd2JHVnpMaUJPYnlCVFJFc2daR1Z3Wlc1a1pXNWplUzVjYmlBcUwxeHVhVzF3YjNKMElIc2dkSGx3WlNCRGIyNTBaWGgwZFdGc1FYSm5jeXdnZEhsd1pTQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtY3NJRlZ1YzNWd2NHOXlkR1ZrUlhKeWIzSWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUVOdmJtWnNhV04wUlhKeWIzSXNYRzRnSUVsdWRHVnlibUZzUlhKeWIzSXNYRzRnSUU1dmRFWnZkVzVrUlhKeWIzSXNYRzRnSUZaaGJHbGtZWFJwYjI1RmNuSnZjaXhjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCamIyeHNaV04wVkc5Q2RXWm1aWElzSUdOdmJYQjFkR1ZUYUdFeU5UWXNJSFJ2UVhONWJtTkpkR1Z5WVdKc1pTQjlJR1p5YjIwZ1hDSXVMaTlqYjNKbEwwSnNiMkpXWVd4MVpWd2lPMXh1YVcxd2IzSjBJSHNnUW14dllsTjBiM0psVTJWeWRtbGpaU0I5SUdaeWIyMGdYQ0l1TGk5amIzSmxMMEpzYjJKVGRHOXlaVk5sY25acFkyVmNJanRjYm1sdGNHOXlkQ0IwZVhCbElIdGNiaUFnUW14dllrZGxkRTl3ZEdsdmJuTXNYRzRnSUVKc2IySkhaWFJTWlhOMWJIUXNYRzRnSUVKc2IySkxaWGtzWEc0Z0lFSnNiMkpNYVhOMFQzQjBhVzl1Y3l4Y2JpQWdRbXh2WWt4cGMzUlNaWE4xYkhRc1hHNGdJRUpzYjJKTlpYUmhaR0YwWVN4Y2JpQWdRbXh2WWxCMWRFOXdkR2x2Ym5Nc1hHNGdJRUpzYjJKUWRYUlNaWE4xYkhRc1hHNGdJRUpzYjJKVGRHOXlaVk5sY25acFkyVkRiMjVtYVdjc1hHNGdJRUpzYjJKVmNteFBjSFJwYjI1ekxGeHVJQ0JDYkc5aVZYSnNVbVZ6ZFd4MExGeHVJQ0JDYkc5aVZtRnNkV1VzWEc1OUlHWnliMjBnWENJdUxpOWpiM0psTDBKc2IySlVlWEJsYzF3aU8xeHVYRzVwYm5SbGNtWmhZMlVnVFdWdGIzSjVSVzUwY25rZ2UxeHVJQ0IyWVd4MVpUb2dRblZtWm1WeU8xeHVJQ0J0WlhSaFpHRjBZVG9nUW14dllrMWxkR0ZrWVhSaE8xeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdUV1Z0YjNKNVFteHZZbE4wYjNKbFUyVnlkbWxqWlNCbGVIUmxibVJ6SUVKc2IySlRkRzl5WlZObGNuWnBZMlU4WEc0Z0lFMWhjRHh6ZEhKcGJtY3NJRTFsYlc5eWVVVnVkSEo1UGl4Y2JpQWdRbXh2WWxOMGIzSmxVMlZ5ZG1salpVTnZibVpwWjF4dVBpQjdYRzRnSUc5MlpYSnlhV1JsSUdGemVXNWpJR2x1YVhScFlXeHBlbVVvWEc0Z0lDQWdMaTR1WVhKbmN6b2dRMjl1ZEdWNGRIVmhiRUZ5WjNNOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIdGNiaUFnSUNCamIyNW1hV2M2SUVKc2IySlRkRzl5WlZObGNuWnBZMlZEYjI1bWFXYzdYRzRnSUNBZ1kyeHBaVzUwT2lCTllYQThjM1J5YVc1bkxDQk5aVzF2Y25sRmJuUnllVDQ3WEc0Z0lIMCtJSHRjYmlBZ0lDQmpiMjV6ZENCamIyNW1hV2NnUFNCMGFHbHpMbWRsZEVOdmJtWnBaMFp5YjIxQmNtZHpQRUpzYjJKVGRHOXlaVk5sY25acFkyVkRiMjVtYVdjK0tDNHVMbUZ5WjNNcE8xeHVJQ0FnSUhSb2FYTXVYMk52Ym1acFp5QTlJR052Ym1acFp6dGNiaUFnSUNCMGFHbHpMbDlqYkdsbGJuUWdQU0J1WlhjZ1RXRndQSE4wY21sdVp5d2dUV1Z0YjNKNVJXNTBjbmsrS0NrN1hHNGdJQ0FnY21WMGRYSnVJSHNnWTI5dVptbG5MQ0JqYkdsbGJuUTZJSFJvYVhNdVgyTnNhV1Z1ZENCOU8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2NIVjBLRnh1SUNBZ0lHdGxlVG9nUW14dllrdGxlU3hjYmlBZ0lDQjJZV3gxWlRvZ1FteHZZbFpoYkhWbExGeHVJQ0FnSUc5d2RHbHZibk02SUVKc2IySlFkWFJQY0hScGIyNXpJRDBnZTMwc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4Q2JHOWlVSFYwVW1WemRXeDBQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNnZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0luQjFkRndpTENCMGNuVmxLU2t1Wm05eUtIUm9hWE11Y0hWMEtUdGNiaUFnSUNCc2IyY3VkbVZ5WW05elpTaGdVSFYwZEdsdVp5QmliRzlpSUNSN2EyVjVmV0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjR2g1YzJsallXeExaWGtnUFNCMGFHbHpMbkJvZVhOcFkyRnNTMlY1S0d0bGVTazdYRzVjYmlBZ0lDQnBaaUFvYjNCMGFXOXVjeTVwWms1dmRFVjRhWE4wY3lBbUppQjBhR2x6TG1Oc2FXVnVkQzVvWVhNb2NHaDVjMmxqWVd4TFpYa3BLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUTI5dVpteHBZM1JGY25KdmNpaGdRbXh2WWlCaGJISmxZV1I1SUdWNGFYTjBjem9nSkh0clpYbDlZQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ1luVm1abVZ5SUQwZ1lYZGhhWFFnWTI5c2JHVmpkRlJ2UW5WbVptVnlLSFpoYkhWbEtUdGNiaUFnSUNCamIyNXpkQ0J6YUdFeU5UWWdQU0JoZDJGcGRDQmpiMjF3ZFhSbFUyaGhNalUyS0dKMVptWmxjaWs3WEc1Y2JpQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1bGVIQmxZM1JsWkZOb1lUSTFOaUFtSmlCdmNIUnBiMjV6TG1WNGNHVmpkR1ZrVTJoaE1qVTJJQ0U5UFNCemFHRXlOVFlwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCV1lXeHBaR0YwYVc5dVJYSnliM0lvWUVOb1pXTnJjM1Z0SUcxcGMyMWhkR05vSUdadmNpQWtlMnRsZVgxZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0J0WlhSaFpHRjBZVG9nUW14dllrMWxkR0ZrWVhSaElEMGdlMXh1SUNBZ0lDQWdZMjl1ZEdWdWRGUjVjR1U2SUc5d2RHbHZibk11WTI5dWRHVnVkRlI1Y0dVc1hHNGdJQ0FnSUNCamIyNTBaVzUwVEdWdVozUm9PaUJpZFdabVpYSXViR1Z1WjNSb0xGeHVJQ0FnSUNBZ2MyaGhNalUyTEZ4dUlDQWdJQ0FnWTNWemRHOXRPaUJ2Y0hScGIyNXpMbTFsZEdGa1lYUmhMRnh1SUNBZ0lIMDdYRzVjYmlBZ0lDQjBhR2x6TG1Oc2FXVnVkQzV6WlhRb2NHaDVjMmxqWVd4TFpYa3NJSHNnZG1Gc2RXVTZJR0oxWm1abGNpd2diV1YwWVdSaGRHRWdmU2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdhMlY1TEZ4dUlDQWdJQ0FnZFhKcE9pQjBhR2x6TG5WeWFTaHJaWGtzSUZ3aWJXVnRiM0o1WENJcExGeHVJQ0FnSUNBZ2NISnZkbWxrWlhJNklIUm9hWE11Y0hKdmRtbGtaWElzWEc0Z0lDQWdJQ0J6YjNWeVkyVkpaRG9nZEdocGN5NXpiM1Z5WTJWSlpDeGNiaUFnSUNBZ0lHMWxkR0ZrWVhSaExGeHVJQ0FnSUgwN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCblpYUW9YRzRnSUNBZ2EyVjVPaUJDYkc5aVMyVjVMRnh1SUNBZ0lHOXdkR2x2Ym5NNklFSnNiMkpIWlhSUGNIUnBiMjV6SUQwZ2UzMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeENiRzlpUjJWMFVtVnpkV3gwUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJzYjJjZ2ZTQTlJQ2hoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbWRsZEZ3aUxDQjBjblZsS1NrdVptOXlLSFJvYVhNdVoyVjBLVHRjYmlBZ0lDQnNiMmN1ZG1WeVltOXpaU2hnUjJWMGRHbHVaeUJpYkc5aUlDUjdhMlY1ZldBcE8xeHVYRzRnSUNBZ1kyOXVjM1FnY0doNWMybGpZV3hMWlhrZ1BTQjBhR2x6TG5Cb2VYTnBZMkZzUzJWNUtHdGxlU2s3WEc0Z0lDQWdZMjl1YzNRZ1pXNTBjbmtnUFNCMGFHbHpMbU5zYVdWdWRDNW5aWFFvY0doNWMybGpZV3hMWlhrcE8xeHVYRzRnSUNBZ2FXWWdLQ0ZsYm5SeWVTa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRTV2ZEVadmRXNWtSWEp5YjNJb1lFSnNiMklnYm05MElHWnZkVzVrT2lBa2UydGxlWDFnS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JzWlhRZ2RtRnNkV1U2SUVKc2IySldZV3gxWlNBOUlHVnVkSEo1TG5aaGJIVmxPMXh1SUNBZ0lHbG1JQ2h2Y0hScGIyNXpMbkpoYm1kbEtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCemRHRnlkQ0E5SUc5d2RHbHZibk11Y21GdVoyVXVjM1JoY25RN1hHNGdJQ0FnSUNCamIyNXpkQ0JsYm1RZ1BTQnZjSFJwYjI1ekxuSmhibWRsTG1WdVpDQS9QeUJsYm5SeWVTNTJZV3gxWlM1c1pXNW5kR2c3WEc0Z0lDQWdJQ0IyWVd4MVpTQTlJR1Z1ZEhKNUxuWmhiSFZsTG5OMVltRnljbUY1S0hOMFlYSjBMQ0JsYm1RcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0JyWlhrc1hHNGdJQ0FnSUNCMllXeDFaVG9nZEc5QmMzbHVZMGwwWlhKaFlteGxLSFpoYkhWbEtTeGNiaUFnSUNBZ0lIVnlhVG9nZEdocGN5NTFjbWtvYTJWNUxDQmNJbTFsYlc5eWVWd2lLU3hjYmlBZ0lDQWdJSEJ5YjNacFpHVnlPaUIwYUdsekxuQnliM1pwWkdWeUxGeHVJQ0FnSUNBZ2MyOTFjbU5sU1dRNklIUm9hWE11YzI5MWNtTmxTV1FzWEc0Z0lDQWdJQ0J0WlhSaFpHRjBZVG9nWlc1MGNua3ViV1YwWVdSaGRHRXNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHaGhjeWhjYmlBZ0lDQnJaWGs2SUVKc2IySkxaWGtzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHhpYjI5c1pXRnVQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNnZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltaGhjMXdpTENCMGNuVmxLU2t1Wm05eUtIUm9hWE11YUdGektUdGNiaUFnSUNCc2IyY3VkbVZ5WW05elpTaGdRMmhsWTJ0cGJtY2dZbXh2WWlBa2UydGxlWDFnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1amJHbGxiblF1YUdGektIUm9hWE11Y0doNWMybGpZV3hMWlhrb2EyVjVLU2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJ6ZEdGMEtGeHVJQ0FnSUd0bGVUb2dRbXh2WWt0bGVTeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBFSnNiMkpOWlhSaFpHRjBZVDRnZTF4dUlDQWdJR052Ym5OMElIc2diRzluSUgwZ1BTQW9ZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSnpkR0YwWENJc0lIUnlkV1VwS1M1bWIzSW9kR2hwY3k1emRHRjBLVHRjYmlBZ0lDQnNiMmN1ZG1WeVltOXpaU2hnVTNSaGRIUnBibWNnWW14dllpQWtlMnRsZVgxZ0tUdGNiaUFnSUNCamIyNXpkQ0JsYm5SeWVTQTlJSFJvYVhNdVkyeHBaVzUwTG1kbGRDaDBhR2x6TG5Cb2VYTnBZMkZzUzJWNUtHdGxlU2twTzF4dUlDQWdJR2xtSUNnaFpXNTBjbmtwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCT2IzUkdiM1Z1WkVWeWNtOXlLR0JDYkc5aUlHNXZkQ0JtYjNWdVpEb2dKSHRyWlhsOVlDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJsYm5SeWVTNXRaWFJoWkdGMFlUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHUmxiR1YwWlNoY2JpQWdJQ0JyWlhrNklFSnNiMkpMWlhrc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNnZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltUmxiR1YwWlZ3aUxDQjBjblZsS1NrdVptOXlLSFJvYVhNdVpHVnNaWFJsS1R0Y2JpQWdJQ0JzYjJjdWRtVnlZbTl6WlNoZ1JHVnNaWFJwYm1jZ1lteHZZaUFrZTJ0bGVYMWdLVHRjYmlBZ0lDQjBhR2x6TG1Oc2FXVnVkQzVrWld4bGRHVW9kR2hwY3k1d2FIbHphV05oYkV0bGVTaHJaWGtwS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdOdmNIa29YRzRnSUNBZ1puSnZiVXRsZVRvZ1FteHZZa3RsZVN4Y2JpQWdJQ0IwYjB0bGVUb2dRbXh2WWt0bGVTeGNiaUFnSUNCdmNIUnBiMjV6T2lCQ2JHOWlVSFYwVDNCMGFXOXVjeUE5SUh0OUxGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOFFteHZZbEIxZEZKbGMzVnNkRDRnZTF4dUlDQWdJR052Ym5OMElIc2diRzluSUgwZ1BTQW9ZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSmpiM0I1WENJc0lIUnlkV1VwS1M1bWIzSW9kR2hwY3k1amIzQjVLVHRjYmlBZ0lDQnNiMmN1ZG1WeVltOXpaU2hnUTI5d2VXbHVaeUJpYkc5aUlDUjdabkp2YlV0bGVYMGdkRzhnSkh0MGIwdGxlWDFnS1R0Y2JpQWdJQ0JqYjI1emRDQnpiM1Z5WTJVZ1BTQjBhR2x6TG1Oc2FXVnVkQzVuWlhRb2RHaHBjeTV3YUhsemFXTmhiRXRsZVNobWNtOXRTMlY1S1NrN1hHNGdJQ0FnYVdZZ0tDRnpiM1Z5WTJVcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0dCQ2JHOWlJRzV2ZENCbWIzVnVaRG9nSkh0bWNtOXRTMlY1ZldBcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1d2RYUW9kRzlMWlhrc0lITnZkWEpqWlM1MllXeDFaU3dnZTF4dUlDQWdJQ0FnTGk0dWIzQjBhVzl1Y3l4Y2JpQWdJQ0FnSUdOdmJuUmxiblJVZVhCbE9pQnZjSFJwYjI1ekxtTnZiblJsYm5SVWVYQmxJRDgvSUhOdmRYSmpaUzV0WlhSaFpHRjBZUzVqYjI1MFpXNTBWSGx3WlN4Y2JpQWdJQ0I5S1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUd4cGMzUW9YRzRnSUNBZ2IzQjBhVzl1Y3pvZ1FteHZZa3hwYzNSUGNIUnBiMjV6SUQwZ2UzMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeENiRzlpVEdsemRGSmxjM1ZzZEQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkc5bklIMGdQU0FvWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0pzYVhOMFhDSXNJSFJ5ZFdVcEtTNW1iM0lvZEdocGN5NXNhWE4wS1R0Y2JpQWdJQ0JzYjJjdWRtVnlZbTl6WlNoY0lreHBjM1JwYm1jZ1lteHZZbk5jSWlrN1hHNWNiaUFnSUNCamIyNXpkQ0J3Y21WbWFYZ2dQU0J2Y0hScGIyNXpMbkJ5WldacGVDQS9JSFJvYVhNdWNHaDVjMmxqWVd4TFpYa29iM0IwYVc5dWN5NXdjbVZtYVhncElEb2dYQ0pjSWp0Y2JpQWdJQ0JqYjI1emRDQmhiR3hMWlhseklEMGdRWEp5WVhrdVpuSnZiU2gwYUdsekxtTnNhV1Z1ZEM1clpYbHpLQ2twWEc0Z0lDQWdJQ0F1Wm1sc2RHVnlLQ2hyS1NBOVBpQW9jSEpsWm1sNElEOGdheTV6ZEdGeWRITlhhWFJvS0hCeVpXWnBlQ2tnT2lCMGNuVmxLU2xjYmlBZ0lDQWdJQzV6YjNKMEtDazdYRzVjYmlBZ0lDQmpiMjV6ZENCc2FXMXBkQ0E5SUc5d2RHbHZibk11YkdsdGFYUWdQejhnTVRBd01EdGNiaUFnSUNCamIyNXpkQ0J6ZEdGeWRFbHVaR1Y0SUQwZ2IzQjBhVzl1Y3k1amRYSnpiM0lnUHlCT2RXMWlaWElvYjNCMGFXOXVjeTVqZFhKemIzSXBJRG9nTUR0Y2JpQWdJQ0JqYjI1emRDQnpiR2xqWlNBOUlHRnNiRXRsZVhNdWMyeHBZMlVvYzNSaGNuUkpibVJsZUN3Z2MzUmhjblJKYm1SbGVDQXJJR3hwYldsMEtUdGNiaUFnSUNCamIyNXpkQ0J1WlhoMFEzVnljMjl5SUQxY2JpQWdJQ0FnSUhOMFlYSjBTVzVrWlhnZ0t5QnNhVzFwZENBOElHRnNiRXRsZVhNdWJHVnVaM1JvWEc0Z0lDQWdJQ0FnSUQ4Z1UzUnlhVzVuS0hOMFlYSjBTVzVrWlhnZ0t5QnNhVzFwZENsY2JpQWdJQ0FnSUNBZ09pQjFibVJsWm1sdVpXUTdYRzVjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ2FYUmxiWE02SUhOc2FXTmxMbTFoY0Nnb2F5a2dQVDRnS0h0Y2JpQWdJQ0FnSUNBZ2EyVjVPaUJyTEZ4dUlDQWdJQ0FnSUNCdFpYUmhaR0YwWVRvZ2RHaHBjeTVqYkdsbGJuUXVaMlYwS0dzcFB5NXRaWFJoWkdGMFlTeGNiaUFnSUNBZ0lIMHBLU3hjYmlBZ0lDQWdJR04xY25OdmNqb2dibVY0ZEVOMWNuTnZjaXhjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdkWEpzS0Z4dUlDQWdJR3RsZVRvZ1FteHZZa3RsZVN4Y2JpQWdJQ0J2Y0hScGIyNXpPaUJDYkc5aVZYSnNUM0IwYVc5dWN5QTlJSHQ5TEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4UW14dllsVnliRkpsYzNWc2RENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5JSDBnUFNBb1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKMWNteGNJaXdnZEhKMVpTa3BMbVp2Y2loMGFHbHpMblZ5YkNrN1hHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1lFSjFhV3hrYVc1bklIVnliQ0JtYjNJZ1lteHZZaUFrZTJ0bGVYMWdLVHRjYmlBZ0lDQnBaaUFvYjNCMGFXOXVjeTV2Y0dWeVlYUnBiMjRnSmlZZ2IzQjBhVzl1Y3k1dmNHVnlZWFJwYjI0Z0lUMDlJRndpWjJWMFhDSXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJWYm5OMWNIQnZjblJsWkVWeWNtOXlLRndpVFdWdGIzSjVJR0pzYjJJZ2MzUnZjbVVnWkc5bGN5QnViM1FnYzNWd2NHOXlkQ0JRVlZRZ2RYSnNjMXdpS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lIVnliRG9nZEdocGN5NTFjbWtvYTJWNUxDQmNJbTFsYlc5eWVWd2lLU3hjYmlBZ0lDQWdJRzFsZEdodlpEb2dYQ0pIUlZSY0lpeGNiaUFnSUNBZ0lHVjRjR2x5WlhOQmREb2dibVYzSUVSaGRHVW9YRzRnSUNBZ0lDQWdJRVJoZEdVdWJtOTNLQ2tnS3lBb2IzQjBhVzl1Y3k1bGVIQnBjbVZ6U1c1VFpXTnZibVJ6SUQ4L0lETXdNQ2tnS2lBeE1EQXdYRzRnSUNBZ0lDQXBMRnh1SUNBZ0lIMDdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnY0dGeWMyVkZjbkp2Y2lobGNuSnZjam9nZFc1cmJtOTNiaWs2SUVWeWNtOXlJSHRjYmlBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0JsY25KdmNpQnBibk4wWVc1alpXOW1JRTV2ZEVadmRXNWtSWEp5YjNJZ2ZIeGNiaUFnSUNBZ0lHVnljbTl5SUdsdWMzUmhibU5sYjJZZ1EyOXVabXhwWTNSRmNuSnZjaUI4ZkZ4dUlDQWdJQ0FnWlhKeWIzSWdhVzV6ZEdGdVkyVnZaaUJXWVd4cFpHRjBhVzl1UlhKeWIzSWdmSHhjYmlBZ0lDQWdJR1Z5Y205eUlHbHVjM1JoYm1ObGIyWWdTVzUwWlhKdVlXeEZjbkp2Y2x4dUlDQWdJQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1Z5Y205eUlHRnpJRVZ5Y205eU8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQmdUV1Z0YjNKNUlHSnNiMklnWlhKeWIzSTZJQ1I3S0dWeWNtOXlJR0Z6SUVWeWNtOXlLUzV0WlhOellXZGxmV0JjYmlBZ0lDQXBPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==
|
|
@@ -20,5 +20,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
20
20
|
* @description Re-exports the in-memory blob store service.
|
|
21
21
|
*/
|
|
22
22
|
__exportStar(require("./MemoryBlobStoreService.cjs"), exports);
|
|
23
|
-
//# sourceMappingURL=
|
|
24
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmxvYi9tZW1vcnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILDRDQUF5QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvYmxvYi9tZW1vcnlcbiAqIEBzdW1tYXJ5IEluLW1lbW9yeSBibG9iIHN0b3JlIGV4cG9ydHMuXG4gKiBAZGVzY3JpcHRpb24gUmUtZXhwb3J0cyB0aGUgaW4tbWVtb3J5IGJsb2Igc3RvcmUgc2VydmljZS5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vTWVtb3J5QmxvYlN0b3JlU2VydmljZVwiO1xuIl19
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7R0FJRztBQUNILDhEQUE0QztBQUM1QywwaEJBQTBoQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvYmxvYi9tZW1vcnlcbiAqIEBzdW1tYXJ5IEluLW1lbW9yeSBibG9iIHN0b3JlIGV4cG9ydHMuXG4gKiBAZGVzY3JpcHRpb24gUmUtZXhwb3J0cyB0aGUgaW4tbWVtb3J5IGJsb2Igc3RvcmUgc2VydmljZS5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vTWVtb3J5QmxvYlN0b3JlU2VydmljZS5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12WW14dllpOXRaVzF2Y25rdmFXNWtaWGd1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdPenM3UjBGSlJ6dEJRVU5JTERSRFFVRjVReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUUcxdlpIVnNaU0JwYm5SbFozSmhkR2x2Ym5NdllteHZZaTl0WlcxdmNubGNiaUFxSUVCemRXMXRZWEo1SUVsdUxXMWxiVzl5ZVNCaWJHOWlJSE4wYjNKbElHVjRjRzl5ZEhNdVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1VtVXRaWGh3YjNKMGN5QjBhR1VnYVc0dGJXVnRiM0o1SUdKc2IySWdjM1J2Y21VZ2MyVnlkbWxqWlM1Y2JpQXFMMXh1Wlhod2IzSjBJQ29nWm5KdmJTQmNJaTR2VFdWdGIzSjVRbXh2WWxOMGIzSmxVMlZ5ZG1salpWd2lPMXh1SWwxOSJdfQ==
|
|
@@ -10,5 +10,5 @@ const S3BlobStoreService_js_1 = require("./S3BlobStoreService.cjs");
|
|
|
10
10
|
class MinioBlobStoreService extends S3BlobStoreService_js_1.S3BlobStoreService {
|
|
11
11
|
}
|
|
12
12
|
exports.MinioBlobStoreService = MinioBlobStoreService;
|
|
13
|
-
//# sourceMappingURL=
|
|
14
|
-
//# sourceMappingURL=
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWluaW9CbG9iU3RvcmVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Jsb2IvczMvTWluaW9CbG9iU3RvcmVTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0NBQTZCO0FBRTFELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQkFBa0I7Q0FBRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvYmxvYi9zMy9taW5pb1xuICogQHN1bW1hcnkgTWluSU8gYmxvYiBzdG9yZSBzZXJ2aWNlLlxuICogQGRlc2NyaXB0aW9uIFMzLWNvbXBhdGlibGUgYmxvYiBzdG9yZSBmb3IgTWluSU8uIEV4dGVuZHMgUzNCbG9iU3RvcmVTZXJ2aWNlLlxuICovXG5pbXBvcnQgeyBTM0Jsb2JTdG9yZVNlcnZpY2UgfSBmcm9tIFwiLi9TM0Jsb2JTdG9yZVNlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIE1pbmlvQmxvYlN0b3JlU2VydmljZSBleHRlbmRzIFMzQmxvYlN0b3JlU2VydmljZSB7fVxuIl19
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWluaW9CbG9iU3RvcmVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTWluaW9CbG9iU3RvcmVTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDSCxtRUFBNkQ7QUFDN0QsTUFBYSxxQkFBc0IsU0FBUSwwQ0FBa0I7Q0FDNUQ7QUFERCxzREFDQztBQUNELDB4QkFBMHhCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ibG9iL3MzL21pbmlvXG4gKiBAc3VtbWFyeSBNaW5JTyBibG9iIHN0b3JlIHNlcnZpY2UuXG4gKiBAZGVzY3JpcHRpb24gUzMtY29tcGF0aWJsZSBibG9iIHN0b3JlIGZvciBNaW5JTy4gRXh0ZW5kcyBTM0Jsb2JTdG9yZVNlcnZpY2UuXG4gKi9cbmltcG9ydCB7IFMzQmxvYlN0b3JlU2VydmljZSB9IGZyb20gXCIuL1MzQmxvYlN0b3JlU2VydmljZS5qc1wiO1xuZXhwb3J0IGNsYXNzIE1pbmlvQmxvYlN0b3JlU2VydmljZSBleHRlbmRzIFMzQmxvYlN0b3JlU2VydmljZSB7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lUV2x1YVc5Q2JHOWlVM1J2Y21WVFpYSjJhV05sTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwySnNiMkl2Y3pNdlRXbHVhVzlDYkc5aVUzUnZjbVZUWlhKMmFXTmxMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQk96czdPMGRCU1VjN1FVRkRTQ3hQUVVGUExFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1owTkJRVFpDTzBGQlJURkVMRTFCUVUwc1QwRkJUeXh4UWtGQmMwSXNVMEZCVVN4clFrRkJhMEk3UTBGQlJ5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2x4dUlDb2dRRzF2WkhWc1pTQnBiblJsWjNKaGRHbHZibk12WW14dllpOXpNeTl0YVc1cGIxeHVJQ29nUUhOMWJXMWhjbmtnVFdsdVNVOGdZbXh2WWlCemRHOXlaU0J6WlhKMmFXTmxMbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRk16TFdOdmJYQmhkR2xpYkdVZ1lteHZZaUJ6ZEc5eVpTQm1iM0lnVFdsdVNVOHVJRVY0ZEdWdVpITWdVek5DYkc5aVUzUnZjbVZUWlhKMmFXTmxMbHh1SUNvdlhHNXBiWEJ2Y25RZ2V5QlRNMEpzYjJKVGRHOXlaVk5sY25acFkyVWdmU0JtY205dElGd2lMaTlUTTBKc2IySlRkRzl5WlZObGNuWnBZMlZjSWp0Y2JseHVaWGh3YjNKMElHTnNZWE56SUUxcGJtbHZRbXh2WWxOMGIzSmxVMlZ5ZG1salpTQmxlSFJsYm1SeklGTXpRbXh2WWxOMGIzSmxVMlZ5ZG1salpTQjdmVnh1SWwxOSJdfQ==
|
|
@@ -10,5 +10,5 @@ const S3BlobStoreService_js_1 = require("./S3BlobStoreService.cjs");
|
|
|
10
10
|
class R2BlobStoreService extends S3BlobStoreService_js_1.S3BlobStoreService {
|
|
11
11
|
}
|
|
12
12
|
exports.R2BlobStoreService = R2BlobStoreService;
|
|
13
|
-
//# sourceMappingURL=
|
|
14
|
-
//# sourceMappingURL=
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUjJCbG9iU3RvcmVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Jsb2IvczMvUjJCbG9iU3RvcmVTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0NBQTZCO0FBRTFELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxrQkFBa0I7Q0FBRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvYmxvYi9zMy9yMlxuICogQHN1bW1hcnkgQ2xvdWRmbGFyZSBSMiBibG9iIHN0b3JlIHNlcnZpY2UuXG4gKiBAZGVzY3JpcHRpb24gUzMtY29tcGF0aWJsZSBibG9iIHN0b3JlIGZvciBDbG91ZGZsYXJlIFIyLiBFeHRlbmRzIFMzQmxvYlN0b3JlU2VydmljZS5cbiAqL1xuaW1wb3J0IHsgUzNCbG9iU3RvcmVTZXJ2aWNlIH0gZnJvbSBcIi4vUzNCbG9iU3RvcmVTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBSMkJsb2JTdG9yZVNlcnZpY2UgZXh0ZW5kcyBTM0Jsb2JTdG9yZVNlcnZpY2Uge31cbiJdfQ==
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUjJCbG9iU3RvcmVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiUjJCbG9iU3RvcmVTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDSCxtRUFBNkQ7QUFDN0QsTUFBYSxrQkFBbUIsU0FBUSwwQ0FBa0I7Q0FDekQ7QUFERCxnREFDQztBQUNELGt5QkFBa3lCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ibG9iL3MzL3IyXG4gKiBAc3VtbWFyeSBDbG91ZGZsYXJlIFIyIGJsb2Igc3RvcmUgc2VydmljZS5cbiAqIEBkZXNjcmlwdGlvbiBTMy1jb21wYXRpYmxlIGJsb2Igc3RvcmUgZm9yIENsb3VkZmxhcmUgUjIuIEV4dGVuZHMgUzNCbG9iU3RvcmVTZXJ2aWNlLlxuICovXG5pbXBvcnQgeyBTM0Jsb2JTdG9yZVNlcnZpY2UgfSBmcm9tIFwiLi9TM0Jsb2JTdG9yZVNlcnZpY2UuanNcIjtcbmV4cG9ydCBjbGFzcyBSMkJsb2JTdG9yZVNlcnZpY2UgZXh0ZW5kcyBTM0Jsb2JTdG9yZVNlcnZpY2Uge1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pVWpKQ2JHOWlVM1J2Y21WVFpYSjJhV05sTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwySnNiMkl2Y3pNdlVqSkNiRzlpVTNSdmNtVlRaWEoyYVdObExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCT3pzN08wZEJTVWM3UVVGRFNDeFBRVUZQTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzWjBOQlFUWkNPMEZCUlRGRUxFMUJRVTBzVDBGQlR5eHJRa0ZCYlVJc1UwRkJVU3hyUWtGQmEwSTdRMEZCUnlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1FHMXZaSFZzWlNCcGJuUmxaM0poZEdsdmJuTXZZbXh2WWk5ek15OXlNbHh1SUNvZ1FITjFiVzFoY25rZ1EyeHZkV1JtYkdGeVpTQlNNaUJpYkc5aUlITjBiM0psSUhObGNuWnBZMlV1WEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnVXpNdFkyOXRjR0YwYVdKc1pTQmliRzlpSUhOMGIzSmxJR1p2Y2lCRGJHOTFaR1pzWVhKbElGSXlMaUJGZUhSbGJtUnpJRk16UW14dllsTjBiM0psVTJWeWRtbGpaUzVjYmlBcUwxeHVhVzF3YjNKMElIc2dVek5DYkc5aVUzUnZjbVZUWlhKMmFXTmxJSDBnWm5KdmJTQmNJaTR2VXpOQ2JHOWlVM1J2Y21WVFpYSjJhV05sWENJN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCU01rSnNiMkpUZEc5eVpWTmxjblpwWTJVZ1pYaDBaVzVrY3lCVE0wSnNiMkpUZEc5eVpWTmxjblpwWTJVZ2UzMWNiaUpkZlE9PSJdfQ==
|