@decaf-ts/integrations 0.4.0 → 0.4.1-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -3
- package/dist/integrations.cjs +2087 -2
- package/dist/integrations.js +2356 -2
- package/jest.config.cjs +1 -1
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
- package/lib/cjs/blob/core/BlobKey.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
- package/lib/cjs/blob/core/BlobValue.cjs +2 -2
- package/lib/cjs/blob/core/index.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/gcp/index.cjs +2 -2
- package/lib/cjs/blob/index.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/index.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/local/index.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/memory/index.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/feature-flags/constants.cjs +16 -0
- package/lib/cjs/feature-flags/decorators.cjs +65 -0
- package/lib/cjs/feature-flags/environment.cjs +26 -0
- package/lib/cjs/feature-flags/index.cjs +31 -0
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +81 -0
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +78 -0
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +25 -0
- package/lib/cjs/feature-flags/readers/index.cjs +19 -0
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +259 -0
- package/lib/cjs/feature-flags/types.cjs +4 -0
- package/lib/cjs/feature-flags/utils.cjs +141 -0
- package/lib/cjs/graph/engine/constants.cjs +2 -2
- package/lib/cjs/graph/engine/decorators.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/index.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +2 -2
- package/lib/cjs/graph/engine/events/index.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/index.cjs +2 -2
- package/lib/cjs/graph/engine/index.cjs +2 -2
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/index.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/index.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs +2 -2
- package/lib/cjs/graph/engine/planning/index.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +2 -2
- package/lib/cjs/graph/engine/registry/index.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/index.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/index.cjs +2 -2
- package/lib/cjs/graph/engine/types.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/index.cjs +2 -2
- package/lib/cjs/graph/index.cjs +2 -2
- package/lib/cjs/graph/shared/constants.cjs +2 -2
- package/lib/cjs/graph/shared/index.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/agent.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/base.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/category-styles.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/flow-control.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/index.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/triggers.cjs +2 -2
- package/lib/cjs/graph/shared/types.cjs +2 -2
- package/lib/cjs/index.cjs +6 -5
- package/lib/cjs/keycloak/index.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +329 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +37 -0
- package/lib/cjs/kibana/builders/index.cjs +20 -0
- package/lib/cjs/kibana/helpers.cjs +20 -16
- package/lib/cjs/kibana/index.cjs +3 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs +2 -2
- package/lib/cjs/kibana/types.cjs +11 -2
- package/lib/cjs/loader/ObjectLoader.cjs +154 -0
- package/lib/cjs/loader/families.cjs +78 -0
- package/lib/cjs/loader/index.cjs +28 -0
- package/lib/cjs/loader/types.cjs +4 -0
- package/lib/cjs/namespaces/index.cjs +2 -2
- package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group.model.cjs +2 -2
- package/lib/cjs/namespaces/models/index.cjs +2 -2
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role.model.cjs +2 -2
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/user.model.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group.service.cjs +2 -2
- package/lib/cjs/namespaces/services/index.cjs +2 -2
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
- package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role.service.cjs +2 -2
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
- package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/user.service.cjs +2 -2
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/nest/decorators.cjs +17 -0
- package/lib/cjs/nest/graph/GraphExecutionController.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +2 -2
- package/lib/cjs/nest/graph/GraphResultService.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs +2 -2
- package/lib/cjs/nest/graph/index.cjs +2 -2
- package/lib/cjs/nest/graph/main.cjs +2 -2
- package/lib/cjs/nest/index.cjs +3 -3
- package/lib/cjs/nest/keycloakAuthHandler.cjs +74 -35
- package/lib/cjs/nest/keycloakModule.cjs +7 -10
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/utils.cjs +58 -50
- package/lib/cjs/plugins/contract.cjs +76 -0
- package/lib/cjs/plugins/index.cjs +35 -0
- package/lib/cjs/plugins/kibana/host.cjs +24 -0
- package/lib/cjs/plugins/kibana/index.cjs +38 -0
- package/lib/cjs/plugins/kibana/installer.cjs +180 -0
- package/lib/cjs/plugins/kibana/manifest.cjs +33 -0
- package/lib/cjs/plugins/kibana/templates.cjs +503 -0
- package/lib/cjs/plugins/kibana/types.cjs +33 -0
- package/lib/cjs/plugins/superset/host.cjs +26 -0
- package/lib/cjs/plugins/superset/index.cjs +40 -0
- package/lib/cjs/plugins/superset/installer.cjs +232 -0
- package/lib/cjs/plugins/superset/manifest.cjs +35 -0
- package/lib/cjs/plugins/superset/templates.cjs +844 -0
- package/lib/cjs/plugins/superset/types.cjs +39 -0
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/aws/index.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
- package/lib/cjs/secrets/core/SecretName.cjs +2 -2
- package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
- package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
- package/lib/cjs/secrets/core/SecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
- package/lib/cjs/secrets/core/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/gcp/index.cjs +2 -2
- package/lib/cjs/secrets/index.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/model/Secret.cjs +2 -2
- package/lib/cjs/secrets/model/index.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/onepassword/index.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/vault/index.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/utils.cjs +2 -2
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/core/BlobErrors.js +1 -1
- package/lib/esm/blob/core/BlobKey.js +1 -1
- package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
- package/lib/esm/blob/core/BlobStoreService.js +1 -1
- package/lib/esm/blob/core/BlobTypes.js +1 -1
- package/lib/esm/blob/core/BlobValue.js +1 -1
- package/lib/esm/blob/core/index.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
- package/lib/esm/blob/gcp/index.js +1 -1
- package/lib/esm/blob/index.js +1 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/index.js +1 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
- package/lib/esm/blob/local/index.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
- package/lib/esm/blob/memory/index.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/feature-flags/constants.js +12 -0
- package/lib/esm/feature-flags/decorators.js +49 -0
- package/lib/esm/feature-flags/environment.js +18 -0
- package/lib/esm/feature-flags/index.js +14 -0
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +72 -0
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +69 -0
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js +19 -0
- package/lib/esm/feature-flags/readers/index.js +2 -0
- package/lib/esm/feature-flags/services/FeatureFlag.service.js +250 -0
- package/lib/esm/feature-flags/types.js +2 -0
- package/lib/esm/feature-flags/utils.js +126 -0
- package/lib/esm/graph/engine/constants.js +1 -1
- package/lib/esm/graph/engine/decorators.js +1 -1
- package/lib/esm/graph/engine/errors/GraphCycleError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphExecutionError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphInputError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPinningError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPortError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphStoreError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphTopologyError.js +1 -1
- package/lib/esm/graph/engine/errors/index.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js +1 -1
- package/lib/esm/graph/engine/events/index.js +1 -1
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js +1 -1
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/index.js +1 -1
- package/lib/esm/graph/engine/index.js +1 -1
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +1 -1
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/index.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningService.js +1 -1
- package/lib/esm/graph/engine/pinning/index.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +1 -1
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js +1 -1
- package/lib/esm/graph/engine/planning/GraphTopology.js +1 -1
- package/lib/esm/graph/engine/planning/index.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +1 -1
- package/lib/esm/graph/engine/registry/index.js +1 -1
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +1 -1
- package/lib/esm/graph/engine/snapshots/index.js +1 -1
- package/lib/esm/graph/engine/store/GraphCachedValue.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueKey.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStore.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/index.js +1 -1
- package/lib/esm/graph/engine/types.js +1 -1
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +1 -1
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +1 -1
- package/lib/esm/graph/engine/validation/GraphValueValidator.js +1 -1
- package/lib/esm/graph/engine/validation/index.js +1 -1
- package/lib/esm/graph/index.js +1 -1
- package/lib/esm/graph/shared/constants.js +1 -1
- package/lib/esm/graph/shared/index.js +1 -1
- package/lib/esm/graph/shared/nodes/agent.js +1 -1
- package/lib/esm/graph/shared/nodes/base.js +1 -1
- package/lib/esm/graph/shared/nodes/category-styles.js +1 -1
- package/lib/esm/graph/shared/nodes/flow-control.js +1 -1
- package/lib/esm/graph/shared/nodes/index.js +1 -1
- package/lib/esm/graph/shared/nodes/triggers.js +1 -1
- package/lib/esm/graph/shared/types.js +1 -1
- package/lib/esm/index.js +5 -4
- package/lib/esm/keycloak/index.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/runtime.js +1 -1
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js +319 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +32 -0
- package/lib/esm/kibana/builders/index.js +3 -0
- package/lib/esm/kibana/helpers.js +19 -15
- package/lib/esm/kibana/index.js +2 -1
- package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
- package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
- package/lib/esm/kibana/services/KibanaService.js +1 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
- package/lib/esm/kibana/services/KibanaUserService.js +1 -1
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/runtime.js +1 -1
- package/lib/esm/kibana/types.js +13 -2
- package/lib/esm/loader/ObjectLoader.js +115 -0
- package/lib/esm/loader/families.js +66 -0
- package/lib/esm/loader/index.js +11 -0
- package/lib/esm/loader/types.js +2 -0
- package/lib/esm/namespaces/index.js +1 -1
- package/lib/esm/namespaces/models/authorization-model.js +1 -1
- package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js +1 -1
- package/lib/esm/namespaces/models/group.model.js +1 -1
- package/lib/esm/namespaces/models/index.js +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js +1 -1
- package/lib/esm/namespaces/models/permission.model.js +1 -1
- package/lib/esm/namespaces/models/principal.model.js +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js +1 -1
- package/lib/esm/namespaces/models/role.model.js +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
- package/lib/esm/namespaces/models/tenant.model.js +1 -1
- package/lib/esm/namespaces/models/user.model.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
- package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
- package/lib/esm/namespaces/services/group-membership.service.js +1 -1
- package/lib/esm/namespaces/services/group.service.js +1 -1
- package/lib/esm/namespaces/services/index.js +1 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit.service.js +1 -1
- package/lib/esm/namespaces/services/permission.service.js +1 -1
- package/lib/esm/namespaces/services/principal.service.js +1 -1
- package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
- package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
- package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
- package/lib/esm/namespaces/services/role-permission.service.js +1 -1
- package/lib/esm/namespaces/services/role.service.js +1 -1
- package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
- package/lib/esm/namespaces/services/system-management.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
- package/lib/esm/namespaces/services/tenant.service.js +1 -1
- package/lib/esm/namespaces/services/user.service.js +1 -1
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/nest/decorators.js +12 -0
- package/lib/esm/nest/graph/GraphExecutionController.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionModule.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -1
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +1 -1
- package/lib/esm/nest/graph/GraphResultService.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowModel.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowService.js +1 -1
- package/lib/esm/nest/graph/index.js +1 -1
- package/lib/esm/nest/graph/main.js +1 -1
- package/lib/esm/nest/index.js +2 -2
- package/lib/esm/nest/keycloakAuthHandler.js +67 -35
- package/lib/esm/nest/keycloakModule.js +7 -10
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/utils.js +55 -46
- package/lib/esm/plugins/contract.js +68 -0
- package/lib/esm/plugins/index.js +18 -0
- package/lib/esm/plugins/kibana/host.js +19 -0
- package/lib/esm/plugins/kibana/index.js +14 -0
- package/lib/esm/plugins/kibana/installer.js +140 -0
- package/lib/esm/plugins/kibana/manifest.js +32 -0
- package/lib/esm/plugins/kibana/templates.js +499 -0
- package/lib/esm/plugins/kibana/types.js +10 -0
- package/lib/esm/plugins/superset/host.js +21 -0
- package/lib/esm/plugins/superset/index.js +16 -0
- package/lib/esm/plugins/superset/installer.js +192 -0
- package/lib/esm/plugins/superset/manifest.js +30 -0
- package/lib/esm/plugins/superset/templates.js +840 -0
- package/lib/esm/plugins/superset/types.js +11 -0
- package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/aws/index.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/core/SecretErrors.js +1 -1
- package/lib/esm/secrets/core/SecretName.js +1 -1
- package/lib/esm/secrets/core/SecretReference.js +1 -1
- package/lib/esm/secrets/core/SecretSerialization.js +1 -1
- package/lib/esm/secrets/core/SecretService.js +1 -1
- package/lib/esm/secrets/core/SecretTypes.js +1 -1
- package/lib/esm/secrets/core/index.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
- package/lib/esm/secrets/gcp/index.js +1 -1
- package/lib/esm/secrets/index.js +1 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js +1 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/model/Secret.js +1 -1
- package/lib/esm/secrets/model/index.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/onepassword/index.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/vault/index.js +1 -1
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/types/feature-flags/constants.d.cts +11 -0
- package/lib/types/feature-flags/constants.d.mts +11 -0
- package/lib/types/feature-flags/decorators.d.cts +11 -0
- package/lib/types/feature-flags/decorators.d.mts +11 -0
- package/lib/types/feature-flags/environment.d.cts +11 -0
- package/lib/types/feature-flags/environment.d.mts +11 -0
- package/lib/types/feature-flags/index.d.cts +13 -0
- package/lib/types/feature-flags/index.d.mts +13 -0
- package/lib/types/feature-flags/models/FeatureFlag.model.d.cts +16 -0
- package/lib/types/feature-flags/models/FeatureFlag.model.d.mts +16 -0
- package/lib/types/feature-flags/models/FeatureFlagAccess.model.d.cts +15 -0
- package/lib/types/feature-flags/models/FeatureFlagAccess.model.d.mts +15 -0
- package/lib/types/feature-flags/readers/FeatureFlagReader.d.cts +10 -0
- package/lib/types/feature-flags/readers/FeatureFlagReader.d.mts +10 -0
- package/lib/types/feature-flags/readers/index.d.cts +1 -0
- package/lib/types/feature-flags/readers/index.d.mts +1 -0
- package/lib/types/feature-flags/services/FeatureFlag.service.d.cts +43 -0
- package/lib/types/feature-flags/services/FeatureFlag.service.d.mts +43 -0
- package/lib/types/feature-flags/types.d.cts +39 -0
- package/lib/types/feature-flags/types.d.mts +39 -0
- package/lib/types/feature-flags/utils.d.cts +13 -0
- package/lib/types/feature-flags/utils.d.mts +13 -0
- package/lib/types/index.d.cts +3 -2
- package/lib/types/index.d.mts +3 -2
- package/lib/types/kibana/builders/KibanaIndexBuilder.d.cts +67 -0
- package/lib/types/kibana/builders/KibanaIndexBuilder.d.mts +67 -0
- package/lib/types/kibana/builders/KibanaIndexBuilderCollection.d.cts +17 -0
- package/lib/types/kibana/builders/KibanaIndexBuilderCollection.d.mts +17 -0
- package/lib/types/kibana/builders/index.d.cts +2 -0
- package/lib/types/kibana/builders/index.d.mts +2 -0
- package/lib/types/kibana/index.d.cts +1 -0
- package/lib/types/kibana/index.d.mts +1 -0
- package/lib/types/kibana/types.d.cts +11 -0
- package/lib/types/kibana/types.d.mts +11 -0
- package/lib/types/loader/ObjectLoader.d.cts +27 -0
- package/lib/types/loader/ObjectLoader.d.mts +27 -0
- package/lib/types/loader/families.d.cts +34 -0
- package/lib/types/loader/families.d.mts +34 -0
- package/lib/types/loader/index.d.cts +10 -0
- package/lib/types/loader/index.d.mts +10 -0
- package/lib/types/loader/types.d.cts +24 -0
- package/lib/types/loader/types.d.mts +24 -0
- package/lib/types/nest/decorators.d.cts +8 -0
- package/lib/types/nest/decorators.d.mts +8 -0
- package/lib/types/nest/index.d.cts +1 -1
- package/lib/types/nest/index.d.mts +1 -1
- package/lib/types/nest/keycloakAuthHandler.d.cts +19 -42
- package/lib/types/nest/keycloakAuthHandler.d.mts +19 -42
- package/lib/types/nest/keycloakModule.d.cts +3 -5
- package/lib/types/nest/keycloakModule.d.mts +3 -5
- package/lib/types/nest/types.d.cts +2 -0
- package/lib/types/nest/types.d.mts +2 -0
- package/lib/types/nest/utils.d.cts +3 -4
- package/lib/types/nest/utils.d.mts +3 -4
- package/lib/types/plugins/contract.d.cts +180 -0
- package/lib/types/plugins/contract.d.mts +180 -0
- package/lib/types/plugins/index.d.cts +17 -0
- package/lib/types/plugins/index.d.mts +17 -0
- package/lib/types/plugins/kibana/host.d.cts +18 -0
- package/lib/types/plugins/kibana/host.d.mts +18 -0
- package/lib/types/plugins/kibana/index.d.cts +13 -0
- package/lib/types/plugins/kibana/index.d.mts +13 -0
- package/lib/types/plugins/kibana/installer.d.cts +45 -0
- package/lib/types/plugins/kibana/installer.d.mts +45 -0
- package/lib/types/plugins/kibana/manifest.d.cts +31 -0
- package/lib/types/plugins/kibana/manifest.d.mts +31 -0
- package/lib/types/plugins/kibana/templates.d.cts +12 -0
- package/lib/types/plugins/kibana/templates.d.mts +12 -0
- package/lib/types/plugins/kibana/types.d.cts +9 -0
- package/lib/types/plugins/kibana/types.d.mts +9 -0
- package/lib/types/plugins/superset/host.d.cts +20 -0
- package/lib/types/plugins/superset/host.d.mts +20 -0
- package/lib/types/plugins/superset/index.d.cts +15 -0
- package/lib/types/plugins/superset/index.d.mts +15 -0
- package/lib/types/plugins/superset/installer.d.cts +70 -0
- package/lib/types/plugins/superset/installer.d.mts +70 -0
- package/lib/types/plugins/superset/manifest.d.cts +28 -0
- package/lib/types/plugins/superset/manifest.d.mts +28 -0
- package/lib/types/plugins/superset/templates.d.cts +12 -0
- package/lib/types/plugins/superset/templates.d.mts +12 -0
- package/lib/types/plugins/superset/types.d.cts +10 -0
- package/lib/types/plugins/superset/types.d.mts +10 -0
- package/package.json +62 -3
- package/plugins/kibana/.gitignore +16 -0
- package/plugins/kibana/Dockerfile +19 -0
- package/plugins/kibana/docker-compose.yml +50 -0
- package/plugins/kibana/host/index.html +101 -0
- package/plugins/kibana/setup-dashboards.sh +84 -0
- package/plugins/superset/.gitignore +17 -0
- package/plugins/superset/Dockerfile +79 -0
- package/plugins/superset/docker-compose.yml +62 -0
- package/plugins/superset/host/index.html +168 -0
- package/plugins/superset/setup-dashboards.sh +106 -0
- package/plugins/superset/superset_config.py +49 -0
- package/dist/integrations.cjs.map +0 -1
- package/dist/integrations.js.map +0 -1
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/azure/index.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
- package/lib/cjs/blob/core/index.cjs.map +0 -1
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/gcp/index.cjs.map +0 -1
- package/lib/cjs/blob/index.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/index.cjs.map +0 -1
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/local/index.cjs.map +0 -1
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/memory/index.cjs.map +0 -1
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/index.cjs.map +0 -1
- package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
- package/lib/cjs/docker/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/constants.cjs.map +0 -1
- package/lib/cjs/graph/engine/decorators.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +0 -1
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/registry/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +0 -1
- package/lib/cjs/graph/engine/snapshots/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/types.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/index.cjs.map +0 -1
- package/lib/cjs/graph/index.cjs.map +0 -1
- package/lib/cjs/graph/shared/constants.cjs.map +0 -1
- package/lib/cjs/graph/shared/index.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/agent.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/base.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/index.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/triggers.cjs.map +0 -1
- package/lib/cjs/graph/shared/types.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/keycloak/index.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/index.cjs.map +0 -1
- package/lib/cjs/keycloak/services/runtime.cjs.map +0 -1
- package/lib/cjs/keycloak/types.cjs.map +0 -1
- package/lib/cjs/kibana/helpers.cjs.map +0 -1
- package/lib/cjs/kibana/index.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
- package/lib/cjs/kibana/services/index.cjs.map +0 -1
- package/lib/cjs/kibana/services/runtime.cjs.map +0 -1
- package/lib/cjs/kibana/types.cjs.map +0 -1
- package/lib/cjs/namespaces/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/authorization-model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/principal.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/user.model.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +0 -1
- package/lib/cjs/namespaces/services/authz.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/index.cjs.map +0 -1
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/principal.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/system-management.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/user.service.cjs.map +0 -1
- package/lib/cjs/namespaces/types.cjs.map +0 -1
- package/lib/cjs/namespaces/utils.cjs.map +0 -1
- package/lib/cjs/nest/authService.cjs +0 -91
- package/lib/cjs/nest/authService.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphResultService.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs.map +0 -1
- package/lib/cjs/nest/graph/index.cjs.map +0 -1
- package/lib/cjs/nest/graph/main.cjs.map +0 -1
- package/lib/cjs/nest/index.cjs.map +0 -1
- package/lib/cjs/nest/keycloakAuthHandler.cjs.map +0 -1
- package/lib/cjs/nest/keycloakModule.cjs.map +0 -1
- package/lib/cjs/nest/logging.cjs.map +0 -1
- package/lib/cjs/nest/types.cjs.map +0 -1
- package/lib/cjs/nest/utils.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/aws/index.cjs.map +0 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/azure/index.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretErrors.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretName.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretReference.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretSerialization.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretService.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretTypes.cjs.map +0 -1
- package/lib/cjs/secrets/core/index.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/index.cjs.map +0 -1
- package/lib/cjs/secrets/index.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/model/Secret.cjs.map +0 -1
- package/lib/cjs/secrets/model/index.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/index.cjs.map +0 -1
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/vault/index.cjs.map +0 -1
- package/lib/cjs/shared/runtime.cjs.map +0 -1
- package/lib/cjs/utils.cjs.map +0 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +0 -1
- package/lib/esm/blob/azure/index.js.map +0 -1
- package/lib/esm/blob/core/BlobErrors.js.map +0 -1
- package/lib/esm/blob/core/BlobKey.js.map +0 -1
- package/lib/esm/blob/core/BlobStoreFactory.js.map +0 -1
- package/lib/esm/blob/core/BlobStoreService.js.map +0 -1
- package/lib/esm/blob/core/BlobTypes.js.map +0 -1
- package/lib/esm/blob/core/BlobValue.js.map +0 -1
- package/lib/esm/blob/core/index.js.map +0 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +0 -1
- package/lib/esm/blob/gcp/index.js.map +0 -1
- package/lib/esm/blob/index.js.map +0 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +0 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/index.js.map +0 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js.map +0 -1
- package/lib/esm/blob/local/index.js.map +0 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +0 -1
- package/lib/esm/blob/memory/index.js.map +0 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/index.js.map +0 -1
- package/lib/esm/docker/DockerComposeService.js.map +0 -1
- package/lib/esm/docker/index.js.map +0 -1
- package/lib/esm/graph/engine/constants.js.map +0 -1
- package/lib/esm/graph/engine/decorators.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphCycleError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphInputError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphPinningError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphPortError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphStoreError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +0 -1
- package/lib/esm/graph/engine/errors/index.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +0 -1
- package/lib/esm/graph/engine/events/index.js.map +0 -1
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/index.js.map +0 -1
- package/lib/esm/graph/engine/index.js.map +0 -1
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +0 -1
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/index.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +0 -1
- package/lib/esm/graph/engine/pinning/index.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphTopology.js.map +0 -1
- package/lib/esm/graph/engine/planning/index.js.map +0 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +0 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +0 -1
- package/lib/esm/graph/engine/registry/index.js.map +0 -1
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +0 -1
- package/lib/esm/graph/engine/snapshots/index.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphCachedValue.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphValueKey.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphValueStore.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +0 -1
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +0 -1
- package/lib/esm/graph/engine/store/index.js.map +0 -1
- package/lib/esm/graph/engine/types.js.map +0 -1
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +0 -1
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +0 -1
- package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +0 -1
- package/lib/esm/graph/engine/validation/index.js.map +0 -1
- package/lib/esm/graph/index.js.map +0 -1
- package/lib/esm/graph/shared/constants.js.map +0 -1
- package/lib/esm/graph/shared/index.js.map +0 -1
- package/lib/esm/graph/shared/nodes/agent.js.map +0 -1
- package/lib/esm/graph/shared/nodes/base.js.map +0 -1
- package/lib/esm/graph/shared/nodes/category-styles.js.map +0 -1
- package/lib/esm/graph/shared/nodes/flow-control.js.map +0 -1
- package/lib/esm/graph/shared/nodes/index.js.map +0 -1
- package/lib/esm/graph/shared/nodes/triggers.js.map +0 -1
- package/lib/esm/graph/shared/types.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/keycloak/index.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
- package/lib/esm/keycloak/services/index.js.map +0 -1
- package/lib/esm/keycloak/services/runtime.js.map +0 -1
- package/lib/esm/keycloak/types.js.map +0 -1
- package/lib/esm/kibana/helpers.js.map +0 -1
- package/lib/esm/kibana/index.js.map +0 -1
- package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
- package/lib/esm/kibana/services/index.js.map +0 -1
- package/lib/esm/kibana/services/runtime.js.map +0 -1
- package/lib/esm/kibana/types.js.map +0 -1
- package/lib/esm/namespaces/index.js.map +0 -1
- package/lib/esm/namespaces/models/authorization-model.js.map +0 -1
- package/lib/esm/namespaces/models/effective-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/group-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/group.model.js.map +0 -1
- package/lib/esm/namespaces/models/index.js.map +0 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit.model.js.map +0 -1
- package/lib/esm/namespaces/models/permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/principal.model.js.map +0 -1
- package/lib/esm/namespaces/models/protected-resource.model.js.map +0 -1
- package/lib/esm/namespaces/models/resource-grant.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-assignment.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/role.model.js.map +0 -1
- package/lib/esm/namespaces/models/storage-binding.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant.model.js.map +0 -1
- package/lib/esm/namespaces/models/user.model.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js.map +0 -1
- package/lib/esm/namespaces/services/authz.service.js.map +0 -1
- package/lib/esm/namespaces/services/bootstrap.service.js.map +0 -1
- package/lib/esm/namespaces/services/effective-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/group-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/group.service.js.map +0 -1
- package/lib/esm/namespaces/services/index.js.map +0 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit.service.js.map +0 -1
- package/lib/esm/namespaces/services/permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/principal.service.js.map +0 -1
- package/lib/esm/namespaces/services/protected-resource.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-grant.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-assignment.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/role.service.js.map +0 -1
- package/lib/esm/namespaces/services/storage-binding.service.js.map +0 -1
- package/lib/esm/namespaces/services/system-management.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant.service.js.map +0 -1
- package/lib/esm/namespaces/services/user.service.js.map +0 -1
- package/lib/esm/namespaces/types.js.map +0 -1
- package/lib/esm/namespaces/utils.js.map +0 -1
- package/lib/esm/nest/authService.js +0 -86
- package/lib/esm/nest/authService.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutionController.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutionModule.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +0 -1
- package/lib/esm/nest/graph/GraphResultService.js.map +0 -1
- package/lib/esm/nest/graph/GraphWorkflowModel.js.map +0 -1
- package/lib/esm/nest/graph/GraphWorkflowService.js.map +0 -1
- package/lib/esm/nest/graph/index.js.map +0 -1
- package/lib/esm/nest/graph/main.js.map +0 -1
- package/lib/esm/nest/index.js.map +0 -1
- package/lib/esm/nest/keycloakAuthHandler.js.map +0 -1
- package/lib/esm/nest/keycloakModule.js.map +0 -1
- package/lib/esm/nest/logging.js.map +0 -1
- package/lib/esm/nest/types.js.map +0 -1
- package/lib/esm/nest/utils.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretService.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/aws/index.js.map +0 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +0 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/azure/index.js.map +0 -1
- package/lib/esm/secrets/core/SecretErrors.js.map +0 -1
- package/lib/esm/secrets/core/SecretName.js.map +0 -1
- package/lib/esm/secrets/core/SecretReference.js.map +0 -1
- package/lib/esm/secrets/core/SecretSerialization.js.map +0 -1
- package/lib/esm/secrets/core/SecretService.js.map +0 -1
- package/lib/esm/secrets/core/SecretTypes.js.map +0 -1
- package/lib/esm/secrets/core/index.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +0 -1
- package/lib/esm/secrets/gcp/index.js.map +0 -1
- package/lib/esm/secrets/index.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretService.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/model/Secret.js.map +0 -1
- package/lib/esm/secrets/model/index.js.map +0 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +0 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/onepassword/index.js.map +0 -1
- package/lib/esm/secrets/vault/VaultSecretService.js.map +0 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/vault/index.js.map +0 -1
- package/lib/esm/shared/runtime.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
- package/lib/types/nest/authService.d.cts +0 -63
- package/lib/types/nest/authService.d.mts +0 -63
|
@@ -183,5 +183,5 @@ class KeycloakAuthService extends core_1.ClientBasedService {
|
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
exports.KeycloakAuthService = KeycloakAuthService;
|
|
186
|
-
//# sourceMappingURL=KeycloakAuthService.js.map
|
|
187
|
-
//# sourceMappingURL=KeycloakAuthService.cjs.map
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtBdXRoU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9rZXljbG9hay9zZXJ2aWNlcy9LZXljbG9ha0F1dGhTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBQzdDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxxQkFBa0I7QUFFeEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUd4QztJQUNDLEtBQUssQ0FBQyxVQUFVLENBQ2QsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQzVDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUF3QixDQUFDO1FBQ2pELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUNsQixZQUEwQixFQUMxQixHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUNoRCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUNqQyxNQUFNLEVBQ04sV0FBVyxZQUFZLENBQUMsS0FBSyxnQ0FBZ0MsRUFDN0QsU0FBUyxFQUNULElBQUksZUFBZSxDQUFDO1lBQ2xCLFNBQVMsRUFBRSxZQUFZLENBQUMsV0FBVztZQUNuQyxRQUFRLEVBQUUsWUFBWSxDQUFDLFFBQVE7WUFDL0IsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRO1lBQy9CLFVBQVUsRUFBRSxVQUFVO1NBQ3ZCLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFDYixHQUFHLEVBQ0gsRUFBRSxjQUFjLEVBQUUsbUNBQW1DLEVBQUUsRUFDdkQsR0FBRyxPQUFPLENBQ1gsQ0FBQztRQUVGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FDakMsUUFBUSxDQUFDLElBQUksQ0FDZCxDQUFDO1FBQ0YsSUFBSSxJQUFJLEVBQUUsWUFBWTtZQUFFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUVqRCxNQUFNLElBQUksZUFBZSxDQUN2QixnREFBZ0QsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUN4RSxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FDdEIsWUFBb0IsRUFDcEIsUUFBZ0IsRUFDaEIsWUFBb0IsRUFDcEIsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FDcEQsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFL0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUNqQyxNQUFNLEVBQ04sV0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQWEsQ0FBQyxLQUFLLGdDQUFnQyxFQUMxRSxTQUFTLEVBQ1QsSUFBSSxlQUFlLENBQUM7WUFDbEIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsYUFBYSxFQUFFLFlBQVk7WUFDM0IsVUFBVSxFQUFFLGVBQWU7WUFDM0IsYUFBYSxFQUFFLFlBQVk7U0FDNUIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUNiLEdBQUcsRUFDSCxFQUFFLGNBQWMsRUFBRSxtQ0FBbUMsRUFBRSxFQUN2RCxHQUFHLE9BQU8sQ0FDWCxDQUFDO1FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUNqQyxRQUFRLENBQUMsSUFBSSxDQUNkLENBQUM7UUFDRixJQUFJLElBQUksRUFBRSxZQUFZO1lBQUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRWpELE1BQU0sSUFBSSxlQUFlLENBQUMseUNBQXlDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUN2QixXQUFtQixFQUNuQixHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUNyRCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQ2hCLEtBQUssRUFDTCxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBYSxDQUFDLEtBQUssbUNBQW1DLEVBQzdFLFdBQVcsRUFDWCxTQUFTLEVBQ1QsR0FBRyxFQUNILEVBQUUsRUFDRixHQUFHLE9BQU8sQ0FDWCxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQ1YsWUFBMEIsRUFDMUIsWUFBb0IsRUFDcEIsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQ3hDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVuQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQ2hCLE1BQU0sRUFDTixXQUFXLFlBQVksQ0FBQyxLQUFLLGlDQUFpQyxFQUM5RCxTQUFTLEVBQ1QsSUFBSSxlQUFlLENBQUM7WUFDbEIsU0FBUyxFQUFFLFlBQVksQ0FBQyxXQUFXO1lBQ25DLGFBQWEsRUFBRSxZQUFZO1NBQzVCLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFDYixHQUFHLEVBQ0gsRUFBRSxjQUFjLEVBQUUsbUNBQW1DLEVBQUUsRUFDdkQsR0FBRyxPQUFPLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxNQUEyQjtRQUNsRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbEIsT0FBTyxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQzlDLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRTtZQUMvQyxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUMxQixVQUFVLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUMxQixrQkFBa0IsRUFBRSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxNQUFhLENBQUMsQ0FBQzthQUN0RSxDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPLENBQ25CLE1BQXlDLEVBQ3pDLElBQVksRUFDWixXQUErQixFQUMvQixPQUFnQixFQUNoQixXQUFtQixFQUNuQixPQUErQixFQUMvQixHQUFHLElBQXlCO1FBRTVCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ3pDLE1BQU07WUFDTixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUU7WUFDM0QsSUFBSSxFQUNGLE9BQU8sS0FBSyxTQUFTO2dCQUNuQixDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUTtvQkFDM0IsQ0FBQyxDQUFDLE9BQU87b0JBQ1QsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQy9CLE9BQU8sRUFBRTtnQkFDUCxHQUFHLE9BQU87Z0JBQ1YsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsVUFBVSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xFLEdBQUcsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVE7b0JBQ3RELENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRTtvQkFDeEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNSO1lBQ0QsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDMUIsa0JBQWtCLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsTUFBYSxDQUFDLENBQUM7YUFDdEUsQ0FBQztZQUNGLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1NBQzNCLENBQUMsQ0FBQztRQUNILElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sa0JBQWtCLENBQ3hCLFFBQWEsRUFDYixXQUFtQixFQUNuQixRQUFpQjtRQUVqQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBZ0IsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxRQUFRO1lBQ3RCLENBQUMsQ0FBQyxHQUFHLFFBQVEsY0FBYyxXQUFXLGNBQWMsUUFBUSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsVUFBVSxHQUFHO1lBQzlGLENBQUMsQ0FBQyxZQUFZLFdBQVcsY0FBYyxRQUFRLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuRixJQUFJLE1BQU0sS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2xFLE1BQU0sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksTUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDakUsTUFBTSxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsSUFBSSxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxNQUFNLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFUyxVQUFVLENBQUMsS0FBWTtRQUMvQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksZUFBZSxDQUFDO1FBQy9ELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUzQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pILE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3RyxPQUFPLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFFLE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkUsT0FBTyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsT0FBTyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8saUJBQWlCLENBQUksSUFBYTtRQUN4QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQztnQkFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFNLENBQUM7WUFDL0IsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb250ZXh0dWFsQXJncywgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB0eXBlIHsgS2V5Y2xvYWtTZXR1cENvbmZpZywgS2V5Y2xvYWtVc2VyIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgQXhpb3MsIHsgQXhpb3NJbnN0YW5jZSB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmltcG9ydCB7IHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbiB9IGZyb20gXCIuL3J1bnRpbWVcIjtcblxuZXhwb3J0IGNsYXNzIEtleWNsb2FrQXV0aFNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2U8XG4gIEF4aW9zSW5zdGFuY2UsXG4gIEtleWNsb2FrU2V0dXBDb25maWdcbj4ge1xuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IEtleWNsb2FrU2V0dXBDb25maWc7IGNsaWVudDogQXhpb3NJbnN0YW5jZSB9PiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF0gYXMgS2V5Y2xvYWtTZXR1cENvbmZpZztcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gIH1cblxuICBhc3luYyBnZXRBY2Nlc3NUb2tlbihcbiAgICBrZXljbG9ha1VzZXI6IEtleWNsb2FrVXNlcixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJnZXRBY2Nlc3NUb2tlblwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZ2V0QWNjZXNzVG9rZW4pO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGAvcmVhbG1zLyR7a2V5Y2xvYWtVc2VyLnJlYWxtfS9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbmAsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgY2xpZW50X2lkOiBrZXljbG9ha1VzZXIuYXBpQ2xpZW50SWQsXG4gICAgICAgIHVzZXJuYW1lOiBrZXljbG9ha1VzZXIudXNlcm5hbWUsXG4gICAgICAgIHBhc3N3b3JkOiBrZXljbG9ha1VzZXIucGFzc3dvcmQsXG4gICAgICAgIGdyYW50X3R5cGU6IFwicGFzc3dvcmRcIixcbiAgICAgIH0pLnRvU3RyaW5nKCksXG4gICAgICAyMDAsXG4gICAgICB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgfSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8eyBhY2Nlc3NfdG9rZW4/OiBzdHJpbmcgfT4oXG4gICAgICByZXNwb25zZS5kYXRhXG4gICAgKTtcbiAgICBpZiAoZGF0YT8uYWNjZXNzX3Rva2VuKSByZXR1cm4gZGF0YS5hY2Nlc3NfdG9rZW47XG5cbiAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKFxuICAgICAgYFVuYWJsZSB0byBnZXQgS2V5Y2xvYWsgYWNjZXNzIHRva2VuIGZvciB1c2VyICR7a2V5Y2xvYWtVc2VyLnVzZXJuYW1lfWBcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVmcmVzaEFjY2Vzc1Rva2VuKFxuICAgIHJlZnJlc2hUb2tlbjogc3RyaW5nLFxuICAgIGNsaWVudElkOiBzdHJpbmcsXG4gICAgY2xpZW50U2VjcmV0OiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmVmcmVzaEFjY2Vzc1Rva2VuXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZWZyZXNoQWNjZXNzVG9rZW4pO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGAvcmVhbG1zLyR7dGhpcy5jb25maWcucmVhbG1BcGlVc2VyIS5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgIGNsaWVudF9pZDogY2xpZW50SWQsXG4gICAgICAgIGNsaWVudF9zZWNyZXQ6IGNsaWVudFNlY3JldCxcbiAgICAgICAgZ3JhbnRfdHlwZTogXCJyZWZyZXNoX3Rva2VuXCIsXG4gICAgICAgIHJlZnJlc2hfdG9rZW46IHJlZnJlc2hUb2tlbixcbiAgICAgIH0pLnRvU3RyaW5nKCksXG4gICAgICAyMDAsXG4gICAgICB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgfSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8eyBhY2Nlc3NfdG9rZW4/OiBzdHJpbmcgfT4oXG4gICAgICByZXNwb25zZS5kYXRhXG4gICAgKTtcbiAgICBpZiAoZGF0YT8uYWNjZXNzX3Rva2VuKSByZXR1cm4gZGF0YS5hY2Nlc3NfdG9rZW47XG5cbiAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKFwiVW5hYmxlIHRvIHJlZnJlc2ggS2V5Y2xvYWsgYWNjZXNzIHRva2VuXCIpO1xuICB9XG5cbiAgYXN5bmMgdmFsaWRhdGVBY2Nlc3NUb2tlbihcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ2YWxpZGF0ZUFjY2Vzc1Rva2VuXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy52YWxpZGF0ZUFjY2Vzc1Rva2VuKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICAgIFwiR0VUXCIsXG4gICAgICAgIGAvcmVhbG1zLyR7dGhpcy5jb25maWcucmVhbG1BcGlVc2VyIS5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdXNlcmluZm9gLFxuICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAyMDAsXG4gICAgICAgIHt9LFxuICAgICAgICAuLi5jdHhBcmdzXG4gICAgICApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9nb3V0KFxuICAgIGtleWNsb2FrVXNlcjogS2V5Y2xvYWtVc2VyLFxuICAgIHJlZnJlc2hUb2tlbjogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJsb2dvdXRcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmxvZ291dCk7XG5cbiAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGAvcmVhbG1zLyR7a2V5Y2xvYWtVc2VyLnJlYWxtfS9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC9sb2dvdXRgLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgIGNsaWVudF9pZDoga2V5Y2xvYWtVc2VyLmFwaUNsaWVudElkLFxuICAgICAgICByZWZyZXNoX3Rva2VuOiByZWZyZXNoVG9rZW4sXG4gICAgICB9KS50b1N0cmluZygpLFxuICAgICAgMjAwLFxuICAgICAgeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSHR0cENsaWVudChjb25maWc6IEtleWNsb2FrU2V0dXBDb25maWcpOiBBeGlvc0luc3RhbmNlIHtcbiAgICByZXR1cm4gQXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkw6IGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fWAsXG4gICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbih0aGlzLmNvbmZpZyBhcyBhbnkpKSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXF1ZXN0KFxuICAgIG1ldGhvZDogXCJHRVRcIiB8IFwiUE9TVFwiIHwgXCJQVVRcIiB8IFwiREVMRVRFXCIsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcGF5bG9hZDogdW5rbm93bixcbiAgICBzdWNjZXNzQ29kZTogbnVtYmVyLFxuICAgIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVxdWVzdCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5yZXF1ZXN0KHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIHVybDogYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fSR7cGF0aH1gLFxuICAgICAgZGF0YTpcbiAgICAgICAgcGF5bG9hZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICA6IHR5cGVvZiBwYXlsb2FkID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IHBheWxvYWRcbiAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICAgIC4uLihhY2Nlc3NUb2tlbiA/IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAgfSA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgcGF5bG9hZCAhPT0gXCJzdHJpbmdcIlxuICAgICAgICAgID8geyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9LFxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtleWNsb2FrSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnIGFzIGFueSkpLFxuICAgICAgfSksXG4gICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICB9KTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSBzdWNjZXNzQ29kZSkge1xuICAgICAgdGhpcy5oYW5kbGVIdHRwUmVzcG9uc2UocmVzcG9uc2UsIHN1Y2Nlc3NDb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVIdHRwUmVzcG9uc2UoXG4gICAgcmVzcG9uc2U6IGFueSxcbiAgICBzdWNjZXNzQ29kZTogbnVtYmVyLFxuICAgIGVycm9yTXNnPzogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cyBhcyBudW1iZXI7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yTXNnXG4gICAgICA/IGAke2Vycm9yTXNnfTogRXhwZWN0ZWQgJHtzdWNjZXNzQ29kZX0sIHJlY2VpdmVkICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fS5gXG4gICAgICA6IGBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgICBpZiAoc3RhdHVzID09PSA0MDQgfHwgbWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gNDA5IHx8IG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSA0MDEgfHwgc3RhdHVzID09PSA0MDMpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUVycm9yKGVycm9yOiBFcnJvcik6IEVycm9yIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IubWVzc2FnZSB8fCBlcnJvci5uYW1lIHx8IFwiVW5rbm93biBlcnJvclwiO1xuICAgIGNvbnN0IGxvd2VyTWVzc2FnZSA9IG1lc3NhZ2UudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJub3QgZm91bmRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA0XCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImFscmVhZHkgZXhpc3RzXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwOVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJpbnZhbGlkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImJhZCByZXF1ZXN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcInVuYXV0aG9yaXplZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDFcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiZm9yYmlkZGVuXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwM1wiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VKc29uUmVzcG9uc2U8VD4oZGF0YTogdW5rbm93bik6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSkgYXMgVDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YSBhcyBUO1xuICB9XG59XG4iXX0=
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtBdXRoU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIktleWNsb2FrQXV0aFNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXdHO0FBQ3hHLHlDQUFvRDtBQUNwRCxrREFBMEI7QUFDMUIsa0RBQW9DO0FBQ3BDLDZDQUEyRDtBQUMzRCxNQUFhLG1CQUFvQixTQUFRLHlCQUFrQjtJQUN2RCxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTtRQUNwQixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkYsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxHQUFHLElBQUk7UUFDdEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLFlB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O0FBQ0QsOHVsQkFBOHVsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhZFJlcXVlc3RFcnJvciwgQ29uZmxpY3RFcnJvciwgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciwgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IEF4aW9zIGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmltcG9ydCB7IHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbiB9IGZyb20gXCIuL3J1bnRpbWUuanNcIjtcbmV4cG9ydCBjbGFzcyBLZXljbG9ha0F1dGhTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlIHtcbiAgICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJpbml0aWFsaXplXCIsIHRydWUpKS5mb3IodGhpcy5pbml0aWFsaXplKTtcbiAgICAgICAgY29uc3QgY29uZmlnID0gY3R4QXJnc1swXTtcbiAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgICAgICBjb25zdCBjbGllbnQgPSB0aGlzLmNyZWF0ZUh0dHBDbGllbnQoY29uZmlnKTtcbiAgICAgICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgICAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICAgIH1cbiAgICBhc3luYyBnZXRBY2Nlc3NUb2tlbihrZXljbG9ha1VzZXIsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJnZXRBY2Nlc3NUb2tlblwiLCB0cnVlKSkuZm9yKHRoaXMuZ2V0QWNjZXNzVG9rZW4pO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYCwgdW5kZWZpbmVkLCBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgICAgIGNsaWVudF9pZDoga2V5Y2xvYWtVc2VyLmFwaUNsaWVudElkLFxuICAgICAgICAgICAgdXNlcm5hbWU6IGtleWNsb2FrVXNlci51c2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBrZXljbG9ha1VzZXIucGFzc3dvcmQsXG4gICAgICAgICAgICBncmFudF90eXBlOiBcInBhc3N3b3JkXCIsXG4gICAgICAgIH0pLnRvU3RyaW5nKCksIDIwMCwgeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5wYXJzZUpzb25SZXNwb25zZShyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgaWYgKGRhdGE/LmFjY2Vzc190b2tlbilcbiAgICAgICAgICAgIHJldHVybiBkYXRhLmFjY2Vzc190b2tlbjtcbiAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihgVW5hYmxlIHRvIGdldCBLZXljbG9hayBhY2Nlc3MgdG9rZW4gZm9yIHVzZXIgJHtrZXljbG9ha1VzZXIudXNlcm5hbWV9YCk7XG4gICAgfVxuICAgIGFzeW5jIHJlZnJlc2hBY2Nlc3NUb2tlbihyZWZyZXNoVG9rZW4sIGNsaWVudElkLCBjbGllbnRTZWNyZXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZWZyZXNoQWNjZXNzVG9rZW5cIiwgdHJ1ZSkpLmZvcih0aGlzLnJlZnJlc2hBY2Nlc3NUb2tlbik7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUE9TVFwiLCBgL3JlYWxtcy8ke3RoaXMuY29uZmlnLnJlYWxtQXBpVXNlci5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLCB1bmRlZmluZWQsIG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgICAgY2xpZW50X2lkOiBjbGllbnRJZCxcbiAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IGNsaWVudFNlY3JldCxcbiAgICAgICAgICAgIGdyYW50X3R5cGU6IFwicmVmcmVzaF90b2tlblwiLFxuICAgICAgICAgICAgcmVmcmVzaF90b2tlbjogcmVmcmVzaFRva2VuLFxuICAgICAgICB9KS50b1N0cmluZygpLCAyMDAsIHsgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiB9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgIGlmIChkYXRhPy5hY2Nlc3NfdG9rZW4pXG4gICAgICAgICAgICByZXR1cm4gZGF0YS5hY2Nlc3NfdG9rZW47XG4gICAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IoXCJVbmFibGUgdG8gcmVmcmVzaCBLZXljbG9hayBhY2Nlc3MgdG9rZW5cIik7XG4gICAgfVxuICAgIGFzeW5jIHZhbGlkYXRlQWNjZXNzVG9rZW4oYWNjZXNzVG9rZW4sIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ2YWxpZGF0ZUFjY2Vzc1Rva2VuXCIsIHRydWUpKS5mb3IodGhpcy52YWxpZGF0ZUFjY2Vzc1Rva2VuKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIkdFVFwiLCBgL3JlYWxtcy8ke3RoaXMuY29uZmlnLnJlYWxtQXBpVXNlci5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdXNlcmluZm9gLCBhY2Nlc3NUb2tlbiwgdW5kZWZpbmVkLCAyMDAsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBsb2dvdXQoa2V5Y2xvYWtVc2VyLCByZWZyZXNoVG9rZW4sIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJsb2dvdXRcIiwgdHJ1ZSkpLmZvcih0aGlzLmxvZ291dCk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2xvZ291dGAsIHVuZGVmaW5lZCwgbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgICAgICBjbGllbnRfaWQ6IGtleWNsb2FrVXNlci5hcGlDbGllbnRJZCxcbiAgICAgICAgICAgIHJlZnJlc2hfdG9rZW46IHJlZnJlc2hUb2tlbixcbiAgICAgICAgfSkudG9TdHJpbmcoKSwgMjAwLCB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgfSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnKSB7XG4gICAgICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24odGhpcy5jb25maWcpKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgcmVxdWVzdChtZXRob2QsIHBhdGgsIGFjY2Vzc1Rva2VuLCBwYXlsb2FkLCBzdWNjZXNzQ29kZSwgaGVhZGVycywgLi4uYXJncykge1xuICAgICAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlcXVlc3QpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgdXJsOiBgJHt0aGlzLmNvbmZpZy5wcm90b2NvbH06Ly8ke3RoaXMuY29uZmlnLmhvc3R9JHtwYXRofWAsXG4gICAgICAgICAgICBkYXRhOiBwYXlsb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgPyBwYXlsb2FkXG4gICAgICAgICAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgICAgICAgICAuLi4oYWNjZXNzVG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgLi4uKHBheWxvYWQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgcGF5bG9hZCAhPT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICA/IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfVxuICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbih0aGlzLmNvbmZpZykpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IHN1Y2Nlc3NDb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUh0dHBSZXNwb25zZShyZXNwb25zZSwgc3VjY2Vzc0NvZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG4gICAgaGFuZGxlSHR0cFJlc3BvbnNlKHJlc3BvbnNlLCBzdWNjZXNzQ29kZSwgZXJyb3JNc2cpIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3JNc2dcbiAgICAgICAgICAgID8gYCR7ZXJyb3JNc2d9OiBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9LmBcbiAgICAgICAgICAgIDogYEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDQgfHwgbWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDkgfHwgbWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiY29uZmxpY3RcIikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDEgfHwgc3RhdHVzID09PSA0MDMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBwYXJzZUVycm9yKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlIHx8IGVycm9yLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgICAgIGNvbnN0IGxvd2VyTWVzc2FnZSA9IG1lc3NhZ2UudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImludmFsaWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYmFkIHJlcXVlc3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAwXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJmb3JiaWRkZW5cIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAzXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBwYXJzZUpzb25SZXNwb25zZShkYXRhKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVMyVjVZMnh2WVd0QmRYUm9VMlZ5ZG1salpTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlyWlhsamJHOWhheTl6WlhKMmFXTmxjeTlMWlhsamJHOWhhMEYxZEdoVFpYSjJhV05sTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1JVRkRUQ3hsUVVGbExFVkJRMllzWVVGQllTeEZRVU5pTEdGQlFXRXNSVUZEWWl4aFFVRmhMRWRCUTJRc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVVnFReXhQUVVGUExFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVVndSQ3hQUVVGUExFdEJRWGRDTEUxQlFVMHNUMEZCVHl4RFFVRkRPMEZCUXpkRExFOUJRVThzUzBGQlN5eExRVUZMTEUxQlFVMHNXVUZCV1N4RFFVRkRPMEZCUTNCRExFOUJRVThzUlVGQlJTd3lRa0ZCTWtJc1JVRkJSU3h4UWtGQmEwSTdRVUZGZUVRc1RVRkJUU3hQUVVGUExHMUNRVUZ2UWl4VFFVRlJMR3RDUVVkNFF6dEpRVU5ETEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUTJRc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXpWRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVOMlFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGM1FpeERRVUZETzFGQlEycEVMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETzFGQlEzUkNMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU0zUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF6dFJRVU4wUWl4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRkxFMUJRVTBzUlVGQlJTeERRVUZETzBsQlF6VkNMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zWTBGQll5eERRVU5zUWl4WlFVRXdRaXhGUVVNeFFpeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTm9SQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1VVRkZNMElzVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVOcVF5eE5RVUZOTEVWQlEwNHNWMEZCVnl4WlFVRlpMRU5CUVVNc1MwRkJTeXhuUTBGQlowTXNSVUZETjBRc1UwRkJVeXhGUVVOVUxFbEJRVWtzWlVGQlpTeERRVUZETzFsQlEyeENMRk5CUVZNc1JVRkJSU3haUVVGWkxFTkJRVU1zVjBGQlZ6dFpRVU51UXl4UlFVRlJMRVZCUVVVc1dVRkJXU3hEUVVGRExGRkJRVkU3V1VGREwwSXNVVUZCVVN4RlFVRkZMRmxCUVZrc1EwRkJReXhSUVVGUk8xbEJReTlDTEZWQlFWVXNSVUZCUlN4VlFVRlZPMU5CUTNaQ0xFTkJRVU1zUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZEWWl4SFFVRkhMRVZCUTBnc1JVRkJSU3hqUVVGakxFVkJRVVVzYlVOQlFXMURMRVZCUVVVc1JVRkRka1FzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVVkdMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkRha01zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZEWkN4RFFVRkRPMUZCUTBZc1NVRkJTU3hKUVVGSkxFVkJRVVVzV1VGQldUdFpRVUZGTEU5QlFVOHNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJRenRSUVVWcVJDeE5RVUZOTEVsQlFVa3NaVUZCWlN4RFFVTjJRaXhuUkVGQlowUXNXVUZCV1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVONFJTeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhyUWtGQmEwSXNRMEZEZEVJc1dVRkJiMElzUlVGRGNFSXNVVUZCWjBJc1JVRkRhRUlzV1VGQmIwSXNSVUZEY0VJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeHZRa0ZCYjBJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGNFUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRU5CUVVNN1VVRkZMMElzVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVOcVF5eE5RVUZOTEVWQlEwNHNWMEZCVnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGbEJRV0VzUTBGQlF5eExRVUZMTEdkRFFVRm5ReXhGUVVNeFJTeFRRVUZUTEVWQlExUXNTVUZCU1N4bFFVRmxMRU5CUVVNN1dVRkRiRUlzVTBGQlV5eEZRVUZGTEZGQlFWRTdXVUZEYmtJc1lVRkJZU3hGUVVGRkxGbEJRVms3V1VGRE0wSXNWVUZCVlN4RlFVRkZMR1ZCUVdVN1dVRkRNMElzWVVGQllTeEZRVUZGTEZsQlFWazdVMEZETlVJc1EwRkJReXhEUVVGRExGRkJRVkVzUlVGQlJTeEZRVU5pTEVkQlFVY3NSVUZEU0N4RlFVRkZMR05CUVdNc1JVRkJSU3h0UTBGQmJVTXNSVUZCUlN4RlFVTjJSQ3hIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFGQlJVWXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVTnFReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVU5rTEVOQlFVTTdVVUZEUml4SlFVRkpMRWxCUVVrc1JVRkJSU3haUVVGWk8xbEJRVVVzVDBGQlR5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRPMUZCUldwRUxFMUJRVTBzU1VGQlNTeGxRVUZsTEVOQlFVTXNlVU5CUVhsRExFTkJRVU1zUTBGQlF6dEpRVU4yUlN4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4RFFVTjJRaXhYUVVGdFFpeEZRVU51UWl4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOc1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxIRkNRVUZ4UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVOeVJDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0UlFVVm9ReXhKUVVGSkxFTkJRVU03V1VGRFNDeE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJoQ0xFdEJRVXNzUlVGRFRDeFhRVUZYTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1dVRkJZU3hEUVVGRExFdEJRVXNzYlVOQlFXMURMRVZCUXpkRkxGZEJRVmNzUlVGRFdDeFRRVUZUTEVWQlExUXNSMEZCUnl4RlFVTklMRVZCUVVVc1JVRkRSaXhIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFsQlEwWXNUMEZCVHl4SlFVRkpMRU5CUVVNN1VVRkRaQ3hEUVVGRE8xRkJRVU1zVFVGQlRTeERRVUZETzFsQlExQXNUMEZCVHl4TFFVRkxMRU5CUVVNN1VVRkRaaXhEUVVGRE8wbEJRMGdzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUTFZc1dVRkJNRUlzUlVGRE1VSXNXVUZCYjBJc1JVRkRjRUlzUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRM2hETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVVZ1UWl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRMmhDTEUxQlFVMHNSVUZEVGl4WFFVRlhMRmxCUVZrc1EwRkJReXhMUVVGTExHbERRVUZwUXl4RlFVTTVSQ3hUUVVGVExFVkJRMVFzU1VGQlNTeGxRVUZsTEVOQlFVTTdXVUZEYkVJc1UwRkJVeXhGUVVGRkxGbEJRVmtzUTBGQlF5eFhRVUZYTzFsQlEyNURMR0ZCUVdFc1JVRkJSU3haUVVGWk8xTkJRelZDTEVOQlFVTXNRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkRZaXhIUVVGSExFVkJRMGdzUlVGQlJTeGpRVUZqTEVWQlFVVXNiVU5CUVcxRExFVkJRVVVzUlVGRGRrUXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlR5eG5Ra0ZCWjBJc1EwRkJReXhOUVVFeVFqdFJRVU5zUkN4UFFVRlBMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU03V1VGRGJFSXNUMEZCVHl4RlFVRkZMRWRCUVVjc1RVRkJUU3hEUVVGRExGRkJRVkVzVFVGQlRTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZPMWxCUXpsRExFOUJRVThzUlVGQlJTeEZRVUZGTEdOQlFXTXNSVUZCUlN4clFrRkJhMElzUlVGQlJUdFpRVU12UXl4alFVRmpMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zU1VGQlNUdFpRVU14UWl4VlFVRlZMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETzJkQ1FVTXhRaXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRMREpDUVVFeVFpeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRmhMRU5CUVVNc1EwRkJRenRoUVVOMFJTeERRVUZETzFOQlEwZ3NRMEZCUXl4RFFVRkRPMGxCUTB3c1EwRkJRenRKUVVWUExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlEyNUNMRTFCUVhsRExFVkJRM3BETEVsQlFWa3NSVUZEV2l4WFFVRXJRaXhGUVVNdlFpeFBRVUZuUWl4RlFVTm9RaXhYUVVGdFFpeEZRVU51UWl4UFFVRXJRaXhGUVVNdlFpeEhRVUZITEVsQlFYbENPMUZCUlRWQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU5vUXl4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRPMWxCUTNwRExFMUJRVTA3V1VGRFRpeEhRVUZITEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFVkJRVVU3V1VGRE0wUXNTVUZCU1N4RlFVTkdMRTlCUVU4c1MwRkJTeXhUUVVGVE8yZENRVU51UWl4RFFVRkRMRU5CUVVNc1UwRkJVenRuUWtGRFdDeERRVUZETEVOQlFVTXNUMEZCVHl4UFFVRlBMRXRCUVVzc1VVRkJVVHR2UWtGRE0wSXNRMEZCUXl4RFFVRkRMRTlCUVU4N2IwSkJRMVFzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRE8xbEJReTlDTEU5QlFVOHNSVUZCUlR0blFrRkRVQ3hIUVVGSExFOUJRVTg3WjBKQlExWXNSMEZCUnl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeGhRVUZoTEVWQlFVVXNWVUZCVlN4WFFVRlhMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdaMEpCUTJ4RkxFZEJRVWNzUTBGQlF5eFBRVUZQTEV0QlFVc3NVMEZCVXl4SlFVRkpMRTlCUVU4c1QwRkJUeXhMUVVGTExGRkJRVkU3YjBKQlEzUkVMRU5CUVVNc1EwRkJReXhGUVVGRkxHTkJRV01zUlVGQlJTeHJRa0ZCYTBJc1JVRkJSVHR2UWtGRGVFTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRoUVVOU08xbEJRMFFzVlVGQlZTeEZRVUZGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJRenRuUWtGRE1VSXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQllTeERRVUZETEVOQlFVTTdZVUZEZEVVc1EwRkJRenRaUVVOR0xHTkJRV01zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMU5CUXpOQ0xFTkJRVU1zUTBGQlF6dFJRVU5JTEVsQlFVa3NVVUZCVVN4RFFVRkRMRTFCUVUwc1MwRkJTeXhYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU53UXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNVVUZCVVN4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRE8xRkJRMnBFTEVOQlFVTTdVVUZEUkN4UFFVRlBMRkZCUVZFc1EwRkJRenRKUVVOc1FpeERRVUZETzBsQlJVOHNhMEpCUVd0Q0xFTkJRM2hDTEZGQlFXRXNSVUZEWWl4WFFVRnRRaXhGUVVOdVFpeFJRVUZwUWp0UlFVVnFRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCWjBJc1EwRkJRenRSUVVONlF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4UlFVRlJPMWxCUTNSQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEZGQlFWRXNZMEZCWXl4WFFVRlhMR05CUVdNc1VVRkJVU3hEUVVGRExFMUJRVTBzUzBGQlN5eFJRVUZSTEVOQlFVTXNWVUZCVlN4SFFVRkhPMWxCUXpsR0xFTkJRVU1zUTBGQlF5eFpRVUZaTEZkQlFWY3NZMEZCWXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hMUVVGTExGRkJRVkVzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXp0UlFVTnVSaXhKUVVGSkxFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NUMEZCVHl4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTJ4RkxFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRia01zUTBGQlF6dFJRVU5FTEVsQlFVa3NUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hQUVVGUExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGFrVXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU51UXl4RFFVRkRPMUZCUTBRc1NVRkJTU3hOUVVGTkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEYmtJc1RVRkJUU3hKUVVGSkxHVkJRV1VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnlReXhEUVVGRE8xRkJRMFFzU1VGQlNTeE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRTFCUVUwc1MwRkJTeXhIUVVGSExFVkJRVVVzUTBGQlF6dFpRVU55UXl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEyNURMRU5CUVVNN1VVRkRSQ3hOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTI1RExFTkJRVU03U1VGRlV5eFZRVUZWTEVOQlFVTXNTMEZCV1R0UlFVTXZRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eExRVUZMTEVOQlFVTXNUMEZCVHl4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFbEJRVWtzWlVGQlpTeERRVUZETzFGQlF5OUVMRTFCUVUwc1dVRkJXU3hIUVVGSExFOUJRVThzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVVXpReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTNaRkxFOUJRVThzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF6dFJRVVZFTEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEycElMRTlCUVU4c1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VNc1EwRkJRenRSUVVWRUxFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEdGQlFXRXNRMEZCUXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTTNSeXhQUVVGUExFbEJRVWtzWlVGQlpTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNSRExFTkJRVU03VVVGRlJDeEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1kwRkJZeXhEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRekZGTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFTXNRMEZCUXp0UlFVVkVMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEZGtVc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndReXhEUVVGRE8xRkJSVVFzVDBGQlR5eEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOd1F5eERRVUZETzBsQlJVOHNhVUpCUVdsQ0xFTkJRVWtzU1VGQllUdFJRVU40UXl4SlFVRkpMRTlCUVU4c1NVRkJTU3hMUVVGTExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlF6ZENMRWxCUVVrc1EwRkJRenRuUWtGRFNDeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGTkxFTkJRVU03V1VGREwwSXNRMEZCUXp0WlFVRkRMRTFCUVUwc1EwRkJRenRuUWtGRFVDeFBRVUZQTEZOQlFWTXNRMEZCUXp0WlFVTnVRaXhEUVVGRE8xRkJRMGdzUTBGQlF6dFJRVU5FTEU5QlFVOHNTVUZCVXl4RFFVRkRPMGxCUTI1Q0xFTkJRVU03UTBGRFJpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdYRzRnSUVKaFpGSmxjWFZsYzNSRmNuSnZjaXhjYmlBZ1EyOXVabXhwWTNSRmNuSnZjaXhjYmlBZ1NXNTBaWEp1WVd4RmNuSnZjaXhjYmlBZ1RtOTBSbTkxYm1SRmNuSnZjaXhjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCRGIyNTBaWGgwZFdGc1FYSm5jeXdnVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCRGJHbGxiblJDWVhObFpGTmxjblpwWTJVZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCMGVYQmxJSHNnUzJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnl3Z1MyVjVZMnh2WVd0VmMyVnlJSDBnWm5KdmJTQmNJaTR1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnUVhocGIzTXNJSHNnUVhocGIzTkpibk4wWVc1alpTQjlJR1p5YjIwZ1hDSmhlR2x2YzF3aU8xeHVhVzF3YjNKMElDb2dZWE1nYUhSMGNITWdabkp2YlNCY0ltNXZaR1U2YUhSMGNITmNJanRjYm1sdGNHOXlkQ0I3SUhKbGMyOXNkbVZMWlhsamJHOWhhMGx6VUhKdlpIVmpkR2x2YmlCOUlHWnliMjBnWENJdUwzSjFiblJwYldWY0lqdGNibHh1Wlhod2IzSjBJR05zWVhOeklFdGxlV05zYjJGclFYVjBhRk5sY25acFkyVWdaWGgwWlc1a2N5QkRiR2xsYm5SQ1lYTmxaRk5sY25acFkyVThYRzRnSUVGNGFXOXpTVzV6ZEdGdVkyVXNYRzRnSUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdkY2JqNGdlMXh1SUNCaGMzbHVZeUJwYm1sMGFXRnNhWHBsS0Z4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZXlCamIyNW1hV2M2SUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjN0lHTnNhV1Z1ZERvZ1FYaHBiM05KYm5OMFlXNWpaU0I5UGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW1sdWFYUnBZV3hwZW1WY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1sdWFYUnBZV3hwZW1VcE8xeHVJQ0FnSUdOdmJuTjBJR052Ym1acFp5QTlJR04wZUVGeVozTmJNRjBnWVhNZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp6dGNiaUFnSUNCMGFHbHpMbDlqYjI1bWFXY2dQU0JqYjI1bWFXYzdYRzRnSUNBZ1kyOXVjM1FnWTJ4cFpXNTBJRDBnZEdocGN5NWpjbVZoZEdWSWRIUndRMnhwWlc1MEtHTnZibVpwWnlrN1hHNGdJQ0FnZEdocGN5NWZZMnhwWlc1MElEMGdZMnhwWlc1ME8xeHVJQ0FnSUhKbGRIVnliaUI3SUdOdmJtWnBaeXdnWTJ4cFpXNTBJSDA3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJuWlhSQlkyTmxjM05VYjJ0bGJpaGNiaUFnSUNCclpYbGpiRzloYTFWelpYSTZJRXRsZVdOc2IyRnJWWE5sY2l4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhOMGNtbHVaejRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0puWlhSQlkyTmxjM05VYjJ0bGJsd2lMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVoyVjBRV05qWlhOelZHOXJaVzRwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjbVZ6Y0c5dWMyVWdQU0JoZDJGcGRDQjBhR2x6TG5KbGNYVmxjM1FvWEc0Z0lDQWdJQ0JjSWxCUFUxUmNJaXhjYmlBZ0lDQWdJR0F2Y21WaGJHMXpMeVI3YTJWNVkyeHZZV3RWYzJWeUxuSmxZV3h0ZlM5d2NtOTBiMk52YkM5dmNHVnVhV1F0WTI5dWJtVmpkQzkwYjJ0bGJtQXNYRzRnSUNBZ0lDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0lDQnVaWGNnVlZKTVUyVmhjbU5vVUdGeVlXMXpLSHRjYmlBZ0lDQWdJQ0FnWTJ4cFpXNTBYMmxrT2lCclpYbGpiRzloYTFWelpYSXVZWEJwUTJ4cFpXNTBTV1FzWEc0Z0lDQWdJQ0FnSUhWelpYSnVZVzFsT2lCclpYbGpiRzloYTFWelpYSXVkWE5sY201aGJXVXNYRzRnSUNBZ0lDQWdJSEJoYzNOM2IzSmtPaUJyWlhsamJHOWhhMVZ6WlhJdWNHRnpjM2R2Y21Rc1hHNGdJQ0FnSUNBZ0lHZHlZVzUwWDNSNWNHVTZJRndpY0dGemMzZHZjbVJjSWl4Y2JpQWdJQ0FnSUgwcExuUnZVM1J5YVc1bktDa3NYRzRnSUNBZ0lDQXlNREFzWEc0Z0lDQWdJQ0I3SUZ3aVkyOXVkR1Z1ZEMxMGVYQmxYQ0k2SUZ3aVlYQndiR2xqWVhScGIyNHZlQzEzZDNjdFptOXliUzExY214bGJtTnZaR1ZrWENJZ2ZTeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVYRzRnSUNBZ1kyOXVjM1FnWkdGMFlTQTlJSFJvYVhNdWNHRnljMlZLYzI5dVVtVnpjRzl1YzJVOGV5QmhZMk5sYzNOZmRHOXJaVzQvT2lCemRISnBibWNnZlQ0b1hHNGdJQ0FnSUNCeVpYTndiMjV6WlM1a1lYUmhYRzRnSUNBZ0tUdGNiaUFnSUNCcFppQW9aR0YwWVQ4dVlXTmpaWE56WDNSdmEyVnVLU0J5WlhSMWNtNGdaR0YwWVM1aFkyTmxjM05mZEc5clpXNDdYRzVjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dRbUZrVW1WeGRXVnpkRVZ5Y205eUtGeHVJQ0FnSUNBZ1lGVnVZV0pzWlNCMGJ5Qm5aWFFnUzJWNVkyeHZZV3NnWVdOalpYTnpJSFJ2YTJWdUlHWnZjaUIxYzJWeUlDUjdhMlY1WTJ4dllXdFZjMlZ5TG5WelpYSnVZVzFsZldCY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nY21WbWNtVnphRUZqWTJWemMxUnZhMlZ1S0Z4dUlDQWdJSEpsWm5KbGMyaFViMnRsYmpvZ2MzUnlhVzVuTEZ4dUlDQWdJR05zYVdWdWRFbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ1kyeHBaVzUwVTJWamNtVjBPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeHpkSEpwYm1jK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWNtVm1jbVZ6YUVGalkyVnpjMVJ2YTJWdVhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1eVpXWnlaWE5vUVdOalpYTnpWRzlyWlc0cE8xeHVYRzRnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxuSmxjWFZsYzNRb1hHNGdJQ0FnSUNCY0lsQlBVMVJjSWl4Y2JpQWdJQ0FnSUdBdmNtVmhiRzF6THlSN2RHaHBjeTVqYjI1bWFXY3VjbVZoYkcxQmNHbFZjMlZ5SVM1eVpXRnNiWDB2Y0hKdmRHOWpiMnd2YjNCbGJtbGtMV052Ym01bFkzUXZkRzlyWlc1Z0xGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ2JtVjNJRlZTVEZObFlYSmphRkJoY21GdGN5aDdYRzRnSUNBZ0lDQWdJR05zYVdWdWRGOXBaRG9nWTJ4cFpXNTBTV1FzWEc0Z0lDQWdJQ0FnSUdOc2FXVnVkRjl6WldOeVpYUTZJR05zYVdWdWRGTmxZM0psZEN4Y2JpQWdJQ0FnSUNBZ1ozSmhiblJmZEhsd1pUb2dYQ0p5WldaeVpYTm9YM1J2YTJWdVhDSXNYRzRnSUNBZ0lDQWdJSEpsWm5KbGMyaGZkRzlyWlc0NklISmxabkpsYzJoVWIydGxiaXhjYmlBZ0lDQWdJSDBwTG5SdlUzUnlhVzVuS0Nrc1hHNGdJQ0FnSUNBeU1EQXNYRzRnSUNBZ0lDQjdJRndpWTI5dWRHVnVkQzEwZVhCbFhDSTZJRndpWVhCd2JHbGpZWFJwYjI0dmVDMTNkM2N0Wm05eWJTMTFjbXhsYm1OdlpHVmtYQ0lnZlN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdaR0YwWVNBOUlIUm9hWE11Y0dGeWMyVktjMjl1VW1WemNHOXVjMlU4ZXlCaFkyTmxjM05mZEc5clpXNC9PaUJ6ZEhKcGJtY2dmVDRvWEc0Z0lDQWdJQ0J5WlhOd2IyNXpaUzVrWVhSaFhHNGdJQ0FnS1R0Y2JpQWdJQ0JwWmlBb1pHRjBZVDh1WVdOalpYTnpYM1J2YTJWdUtTQnlaWFIxY200Z1pHRjBZUzVoWTJObGMzTmZkRzlyWlc0N1hHNWNiaUFnSUNCMGFISnZkeUJ1WlhjZ1FtRmtVbVZ4ZFdWemRFVnljbTl5S0Z3aVZXNWhZbXhsSUhSdklISmxabkpsYzJnZ1MyVjVZMnh2WVdzZ1lXTmpaWE56SUhSdmEyVnVYQ0lwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nZG1Gc2FXUmhkR1ZCWTJObGMzTlViMnRsYmloY2JpQWdJQ0JoWTJObGMzTlViMnRsYmpvZ2MzUnlhVzVuTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4WW05dmJHVmhiajRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0oyWVd4cFpHRjBaVUZqWTJWemMxUnZhMlZ1WENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTUyWVd4cFpHRjBaVUZqWTJWemMxUnZhMlZ1S1R0Y2JseHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQWdJRndpUjBWVVhDSXNYRzRnSUNBZ0lDQWdJR0F2Y21WaGJHMXpMeVI3ZEdocGN5NWpiMjVtYVdjdWNtVmhiRzFCY0dsVmMyVnlJUzV5WldGc2JYMHZjSEp2ZEc5amIyd3ZiM0JsYm1sa0xXTnZibTVsWTNRdmRYTmxjbWx1Wm05Z0xGeHVJQ0FnSUNBZ0lDQmhZMk5sYzNOVWIydGxiaXhjYmlBZ0lDQWdJQ0FnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnSUNBeU1EQXNYRzRnSUNBZ0lDQWdJSHQ5TEZ4dUlDQWdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ2ZTQmpZWFJqYUNCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2JHOW5iM1YwS0Z4dUlDQWdJR3RsZVdOc2IyRnJWWE5sY2pvZ1MyVjVZMnh2WVd0VmMyVnlMRnh1SUNBZ0lISmxabkpsYzJoVWIydGxiam9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKc2IyZHZkWFJjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbXh2WjI5MWRDazdYRzVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJbEJQVTFSY0lpeGNiaUFnSUNBZ0lHQXZjbVZoYkcxekx5UjdhMlY1WTJ4dllXdFZjMlZ5TG5KbFlXeHRmUzl3Y205MGIyTnZiQzl2Y0dWdWFXUXRZMjl1Ym1WamRDOXNiMmR2ZFhSZ0xGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ2JtVjNJRlZTVEZObFlYSmphRkJoY21GdGN5aDdYRzRnSUNBZ0lDQWdJR05zYVdWdWRGOXBaRG9nYTJWNVkyeHZZV3RWYzJWeUxtRndhVU5zYVdWdWRFbGtMRnh1SUNBZ0lDQWdJQ0J5WldaeVpYTm9YM1J2YTJWdU9pQnlaV1p5WlhOb1ZHOXJaVzRzWEc0Z0lDQWdJQ0I5S1M1MGIxTjBjbWx1WnlncExGeHVJQ0FnSUNBZ01qQXdMRnh1SUNBZ0lDQWdleUJjSW1OdmJuUmxiblF0ZEhsd1pWd2lPaUJjSW1Gd2NHeHBZMkYwYVc5dUwzZ3RkM2QzTFdadmNtMHRkWEpzWlc1amIyUmxaRndpSUgwc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1kzSmxZWFJsU0hSMGNFTnNhV1Z1ZENoamIyNW1hV2M2SUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjcE9pQkJlR2x2YzBsdWMzUmhibU5sSUh0Y2JpQWdJQ0J5WlhSMWNtNGdRWGhwYjNNdVkzSmxZWFJsS0h0Y2JpQWdJQ0FnSUdKaGMyVlZVa3c2SUdBa2UyTnZibVpwWnk1d2NtOTBiMk52YkgwNkx5OGtlMk52Ym1acFp5NW9iM04wZldBc1hHNGdJQ0FnSUNCb1pXRmtaWEp6T2lCN0lGd2lRMjl1ZEdWdWRDMVVlWEJsWENJNklGd2lZWEJ3YkdsallYUnBiMjR2YW5OdmJsd2lJSDBzWEc0Z0lDQWdJQ0IyWVd4cFpHRjBaVk4wWVhSMWN6b2dLQ2tnUFQ0Z2RISjFaU3hjYmlBZ0lDQWdJR2gwZEhCelFXZGxiblE2SUc1bGR5Qm9kSFJ3Y3k1QloyVnVkQ2g3WEc0Z0lDQWdJQ0FnSUhKbGFtVmpkRlZ1WVhWMGFHOXlhWHBsWkRvZ0tISmxjMjlzZG1WTFpYbGpiRzloYTBselVISnZaSFZqZEdsdmJpaDBhR2x6TG1OdmJtWnBaeUJoY3lCaGJua3BLU3hjYmlBZ0lDQWdJSDBwTEZ4dUlDQWdJSDBwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJ5WlhGMVpYTjBLRnh1SUNBZ0lHMWxkR2h2WkRvZ1hDSkhSVlJjSWlCOElGd2lVRTlUVkZ3aUlId2dYQ0pRVlZSY0lpQjhJRndpUkVWTVJWUkZYQ0lzWEc0Z0lDQWdjR0YwYURvZ2MzUnlhVzVuTEZ4dUlDQWdJR0ZqWTJWemMxUnZhMlZ1T2lCemRISnBibWNnZkNCMWJtUmxabWx1WldRc1hHNGdJQ0FnY0dGNWJHOWhaRG9nZFc1cmJtOTNiaXhjYmlBZ0lDQnpkV05qWlhOelEyOWtaVG9nYm5WdFltVnlMRnh1SUNBZ0lHaGxZV1JsY25NNklGSmxZMjl5WkR4emRISnBibWNzSUhOMGNtbHVaejRzWEc0Z0lDQWdMaTR1WVhKbmN6b2dRMjl1ZEdWNGRIVmhiRUZ5WjNNOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBHRnVlVDRnZTF4dUlDQWdJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdWNtVnhkV1Z6ZENrN1hHNGdJQ0FnWTI5dWMzUWdjbVZ6Y0c5dWMyVWdQU0JoZDJGcGRDQjBhR2x6TG1Oc2FXVnVkQzV5WlhGMVpYTjBLSHRjYmlBZ0lDQWdJRzFsZEdodlpDeGNiaUFnSUNBZ0lIVnliRG9nWUNSN2RHaHBjeTVqYjI1bWFXY3VjSEp2ZEc5amIyeDlPaTh2Skh0MGFHbHpMbU52Ym1acFp5NW9iM04wZlNSN2NHRjBhSDFnTEZ4dUlDQWdJQ0FnWkdGMFlUcGNiaUFnSUNBZ0lDQWdjR0Y1Ykc5aFpDQTlQVDBnZFc1a1pXWnBibVZrWEc0Z0lDQWdJQ0FnSUNBZ1B5QjFibVJsWm1sdVpXUmNiaUFnSUNBZ0lDQWdJQ0E2SUhSNWNHVnZaaUJ3WVhsc2IyRmtJRDA5UFNCY0luTjBjbWx1WjF3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUhCaGVXeHZZV1JjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dTbE5QVGk1emRISnBibWRwWm5rb2NHRjViRzloWkNrc1hHNGdJQ0FnSUNCb1pXRmtaWEp6T2lCN1hHNGdJQ0FnSUNBZ0lDNHVMbWhsWVdSbGNuTXNYRzRnSUNBZ0lDQWdJQzR1TGloaFkyTmxjM05VYjJ0bGJpQS9JSHNnUVhWMGFHOXlhWHBoZEdsdmJqb2dZRUpsWVhKbGNpQWtlMkZqWTJWemMxUnZhMlZ1ZldBZ2ZTQTZJSHQ5S1N4Y2JpQWdJQ0FnSUNBZ0xpNHVLSEJoZVd4dllXUWdJVDA5SUhWdVpHVm1hVzVsWkNBbUppQjBlWEJsYjJZZ2NHRjViRzloWkNBaFBUMGdYQ0p6ZEhKcGJtZGNJbHh1SUNBZ0lDQWdJQ0FnSUQ4Z2V5QmNJa052Ym5SbGJuUXRWSGx3WlZ3aU9pQmNJbUZ3Y0d4cFkyRjBhVzl1TDJwemIyNWNJaUI5WEc0Z0lDQWdJQ0FnSUNBZ09pQjdmU2tzWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnYUhSMGNITkJaMlZ1ZERvZ2JtVjNJR2gwZEhCekxrRm5aVzUwS0h0Y2JpQWdJQ0FnSUNBZ2NtVnFaV04wVlc1aGRYUm9iM0pwZW1Wa09pQW9jbVZ6YjJ4MlpVdGxlV05zYjJGclNYTlFjbTlrZFdOMGFXOXVLSFJvYVhNdVkyOXVabWxuSUdGeklHRnVlU2twTEZ4dUlDQWdJQ0FnZlNrc1hHNGdJQ0FnSUNCMllXeHBaR0YwWlZOMFlYUjFjem9nS0NrZ1BUNGdkSEoxWlN4Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0JwWmlBb2NtVnpjRzl1YzJVdWMzUmhkSFZ6SUNFOVBTQnpkV05qWlhOelEyOWtaU2tnZTF4dUlDQWdJQ0FnZEdocGN5NW9ZVzVrYkdWSWRIUndVbVZ6Y0c5dWMyVW9jbVZ6Y0c5dWMyVXNJSE4xWTJObGMzTkRiMlJsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlISmxjM0J2Ym5ObE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQm9ZVzVrYkdWSWRIUndVbVZ6Y0c5dWMyVW9YRzRnSUNBZ2NtVnpjRzl1YzJVNklHRnVlU3hjYmlBZ0lDQnpkV05qWlhOelEyOWtaVG9nYm5WdFltVnlMRnh1SUNBZ0lHVnljbTl5VFhOblB6b2djM1J5YVc1blhHNGdJQ2s2SUhadmFXUWdlMXh1SUNBZ0lHTnZibk4wSUhOMFlYUjFjeUE5SUhKbGMzQnZibk5sTG5OMFlYUjFjeUJoY3lCdWRXMWlaWEk3WEc0Z0lDQWdZMjl1YzNRZ2JXVnpjMkZuWlNBOUlHVnljbTl5VFhOblhHNGdJQ0FnSUNBL0lHQWtlMlZ5Y205eVRYTm5mVG9nUlhod1pXTjBaV1FnSkh0emRXTmpaWE56UTI5a1pYMHNJSEpsWTJWcGRtVmtJQ1I3Y21WemNHOXVjMlV1YzNSaGRIVnpmVG9nSkh0eVpYTndiMjV6WlM1emRHRjBkWE5VWlhoMGZTNWdYRzRnSUNBZ0lDQTZJR0JGZUhCbFkzUmxaQ0FrZTNOMVkyTmxjM05EYjJSbGZTd2djbVZqWldsMlpXUWdKSHR5WlhOd2IyNXpaUzV6ZEdGMGRYTjlPaUFrZTNKbGMzQnZibk5sTG5OMFlYUjFjMVJsZUhSOVlEdGNiaUFnSUNCcFppQW9jM1JoZEhWeklEMDlQU0EwTURRZ2ZId2diV1Z6YzJGblpTNTBiMHh2ZDJWeVEyRnpaU2dwTG1sdVkyeDFaR1Z6S0Z3aWJtOTBJR1p2ZFc1a1hDSXBLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tITjBZWFIxY3lBOVBUMGdOREE1SUh4OElHMWxjM05oWjJVdWRHOU1iM2RsY2tOaGMyVW9LUzVwYm1Oc2RXUmxjeWhjSW1OdmJtWnNhV04wWENJcEtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dRMjl1Wm14cFkzUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0hOMFlYUjFjeUE5UFQwZ05EQXdLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUW1Ga1VtVnhkV1Z6ZEVWeWNtOXlLRzFsYzNOaFoyVXBPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9jM1JoZEhWeklEMDlQU0EwTURFZ2ZId2djM1JoZEhWeklEMDlQU0EwTURNcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdmVnh1WEc0Z0lIQnliM1JsWTNSbFpDQndZWEp6WlVWeWNtOXlLR1Z5Y205eU9pQkZjbkp2Y2lrNklFVnljbTl5SUh0Y2JpQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdaWEp5YjNJdWJXVnpjMkZuWlNCOGZDQmxjbkp2Y2k1dVlXMWxJSHg4SUZ3aVZXNXJibTkzYmlCbGNuSnZjbHdpTzF4dUlDQWdJR052Ym5OMElHeHZkMlZ5VFdWemMyRm5aU0E5SUcxbGMzTmhaMlV1ZEc5TWIzZGxja05oYzJVb0tUdGNibHh1SUNBZ0lHbG1JQ2hzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSnViM1FnWm05MWJtUmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpTkRBMFhDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUU1dmRFWnZkVzVrUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltRnNjbVZoWkhrZ1pYaHBjM1J6WENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltTnZibVpzYVdOMFhDSXBJSHg4SUd4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJalF3T1Z3aUtTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJEYjI1bWJHbGpkRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKcGJuWmhiR2xrWENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltSmhaQ0J5WlhGMVpYTjBYQ0lwSUh4OElHeHZkMlZ5VFdWemMyRm5aUzVwYm1Oc2RXUmxjeWhjSWpRd01Gd2lLU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZHlCQ1lXUlNaWEYxWlhOMFJYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0d4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJblZ1WVhWMGFHOXlhWHBsWkZ3aUtTQjhmQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSTBNREZjSWlrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dUbTkwUm05MWJtUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpWm05eVltbGtaR1Z1WENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0lqUXdNMXdpS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjR0Z5YzJWS2MyOXVVbVZ6Y0c5dWMyVThWRDRvWkdGMFlUb2dkVzVyYm05M2JpazZJRlFnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ1pHRjBZU0E5UFQwZ1hDSnpkSEpwYm1kY0lpa2dlMXh1SUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUVwVFQwNHVjR0Z5YzJVb1pHRjBZU2tnWVhNZ1ZEdGNiaUFnSUNBZ0lIMGdZMkYwWTJnZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdaR0YwWVNCaGN5QlVPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==
|
|
@@ -239,5 +239,5 @@ class KeycloakClientService extends core_1.ClientBasedService {
|
|
|
239
239
|
}
|
|
240
240
|
}
|
|
241
241
|
exports.KeycloakClientService = KeycloakClientService;
|
|
242
|
-
//# sourceMappingURL=KeycloakClientService.js.map
|
|
243
|
-
//# sourceMappingURL=KeycloakClientService.cjs.map
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtDbGllbnRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2tleWNsb2FrL3NlcnZpY2VzL0tleWNsb2FrQ2xpZW50U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixhQUFhLEVBQ2IsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPcEQsT0FBTyxLQUF3QixNQUFNLE9BQU8sQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUscUJBQWtCO0FBRXhELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQkFHMUM7SUFDQyxLQUFLLENBQUMsVUFBVSxDQUNkLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUM1QyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBd0IsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FDaEIsbUJBQXdDLEVBQ3hDLFNBQW9ELEVBQ3BELEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8s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QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTyxpQkFBaUIsQ0FBSSxJQUFhO1FBQ3hDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDO2dCQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQU0sQ0FBQztZQUMvQixDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFkUmVxdWVzdEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBJbnRlcm5hbEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvbnRleHR1YWxBcmdzLCBNYXliZUNvbnRleHR1YWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHR5cGUge1xuICBLZXljbG9ha0NsaWVudENvbmZpZyxcbiAgS2V5Y2xvYWtDbGllbnRSb2xlQ29uZmlnLFxuICBLZXljbG9ha1NldHVwQ29uZmlnLFxuICBLZXljbG9ha1VzZXIsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IEF4aW9zLCB7IEF4aW9zSW5zdGFuY2UgfSBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5pbXBvcnQgeyByZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24gfSBmcm9tIFwiLi9ydW50aW1lXCI7XG5cbmV4cG9ydCBjbGFzcyBLZXljbG9ha0NsaWVudFNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2U8XG4gIEF4aW9zSW5zdGFuY2UsXG4gIEtleWNsb2FrU2V0dXBDb25maWdcbj4ge1xuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IEtleWNsb2FrU2V0dXBDb25maWc7IGNsaWVudDogQXhpb3NJbnN0YW5jZSB9PiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF0gYXMgS2V5Y2xvYWtTZXR1cENvbmZpZztcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gIH1cblxuICBhc3luYyBjcmVhdGVDbGllbnQoXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICBvdmVycmlkZXM6IFBhcnRpYWw8S2V5Y2xvYWtDbGllbnRDb25maWc+IHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZUNsaWVudFwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlQ2xpZW50KTtcbiAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMubm9ybWFsaXplQ2xpZW50Q29uZmlnKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZy5jbGllbnQsXG4gICAgICBvdmVycmlkZXMgPz8ge31cbiAgICApO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke2tleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyPy5yZWFsbX0vY2xpZW50c2AsXG4gICAgICByZWFsbUFjY2Vzc1Rva2VuLFxuICAgICAgdGhpcy5idWlsZENsaWVudFBheWxvYWQoY2xpZW50KSxcbiAgICAgIDIwMSxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuZXh0cmFjdFVVSURmcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlQ2xpZW50KFxuICAgIGtleWNsb2FrU2V0dXBDb25maWc6IEtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPEtleWNsb2FrQ2xpZW50Q29uZmlnPiB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlQ2xpZW50XCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy51cGRhdGVDbGllbnQpO1xuICAgIGNvbnN0IHJlYWxtQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4oXG4gICAgICBrZXljbG9ha1NldHVwQ29uZmlnLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5ub3JtYWxpemVDbGllbnRDb25maWcoXG4gICAgICBrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudCxcbiAgICAgIG92ZXJyaWRlcyA/PyB7fVxuICAgICk7XG4gICAgY29uc3QgY2xpZW50VVVJRCA9XG4gICAgICBjbGllbnQuY2xpZW50VVVJRCA/P1xuICAgICAgKGF3YWl0IHRoaXMuZ2V0Q2xpZW50VVVJRChcbiAgICAgICAgcmVhbG1BY2Nlc3NUb2tlbixcbiAgICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXIhLnJlYWxtLFxuICAgICAgICBjbGllbnQuY2xpZW50SWQsXG4gICAgICAgIC4uLmN0eEFyZ3NcbiAgICAgICkpO1xuICAgIGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUFVUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke2tleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyPy5yZWFsbX0vY2xpZW50cy8ke2VuY29kZVVSSUNvbXBvbmVudChjbGllbnRVVUlEKX1gLFxuICAgICAgcmVhbG1BY2Nlc3NUb2tlbixcbiAgICAgIHRoaXMuYnVpbGRDbGllbnRQYXlsb2FkKGNsaWVudCksXG4gICAgICAyMDQsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q2xpZW50VVVJRChcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nLFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIGNsaWVudElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZ2V0Q2xpZW50VVVJRFwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZ2V0Q2xpZW50VVVJRCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L2NsaWVudHM/Y2xpZW50SWQ9JHtlbmNvZGVVUklDb21wb25lbnQoY2xpZW50SWQpfWAsXG4gICAgICBhY2Nlc3NUb2tlbixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIwMCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8QXJyYXk8eyBpZD86IHN0cmluZyB9Pj4ocmVzcG9uc2UuZGF0YSk7XG4gICAgY29uc3QgY2xpZW50VVVJRCA9IGRhdGE/LlswXT8uaWQ7XG4gICAgaWYgKGNsaWVudFVVSUQpIHJldHVybiBjbGllbnRVVUlEO1xuICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBVbmFibGUgdG8gZ2V0IEtleWNsb2FrIENsaWVudCBVVUlEOiAke2NsaWVudElkfWApO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQ2xpZW50Um9sZXMoXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICByb2xlQ29uZmlnczogS2V5Y2xvYWtDbGllbnRSb2xlQ29uZmlnW10gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZUNsaWVudFJvbGVzXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVDbGllbnRSb2xlcyk7XG4gICAgY29uc3Qgcm9sZXMgPSByb2xlQ29uZmlncyA/PyBrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5yb2xlcyA/PyBbXTtcbiAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGZvciAoY29uc3Qgcm9sZSBvZiByb2xlcykge1xuICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgICBcIlBPU1RcIixcbiAgICAgICAgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2NsaWVudHMvJHtrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5jbGllbnRVVUlEfS9yb2xlc2AsXG4gICAgICAgIHJlYWxtQWNjZXNzVG9rZW4sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiByb2xlLnJvbGVOYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uID8/IGBBdXRvLWNyZWF0ZWQgcm9sZSAke3JvbGUucm9sZU5hbWV9YCxcbiAgICAgICAgICBjb21wb3NpdGU6IGZhbHNlLFxuICAgICAgICAgIGNsaWVudFJvbGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIDIwMSxcbiAgICAgICAge30sXG4gICAgICAgIC4uLmN0eEFyZ3NcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyk6IEF4aW9zSW5zdGFuY2Uge1xuICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtleWNsb2FrSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnIGFzIGFueSkpLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFJlYWxtQWNjZXNzVG9rZW4oXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyISwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEFjY2Vzc1Rva2VuKFxuICAgIGtleWNsb2FrVXNlcjogS2V5Y2xvYWtVc2VyLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZ2V0QWNjZXNzVG9rZW4pO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBgL3JlYWxtcy8ke2tleWNsb2FrVXNlci5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgIGNsaWVudF9pZDoga2V5Y2xvYWtVc2VyLmFwaUNsaWVudElkLFxuICAgICAgICB1c2VybmFtZToga2V5Y2xvYWtVc2VyLnVzZXJuYW1lLFxuICAgICAgICBwYXNzd29yZDoga2V5Y2xvYWtVc2VyLnBhc3N3b3JkLFxuICAgICAgICBncmFudF90eXBlOiBcInBhc3N3b3JkXCIsXG4gICAgICB9KS50b1N0cmluZygpLFxuICAgICAgMjAwLFxuICAgICAgeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5wYXJzZUpzb25SZXNwb25zZTx7IGFjY2Vzc190b2tlbj86IHN0cmluZyB9PihcbiAgICAgIHJlc3BvbnNlLmRhdGFcbiAgICApO1xuICAgIGlmIChkYXRhPy5hY2Nlc3NfdG9rZW4pIHJldHVybiBkYXRhLmFjY2Vzc190b2tlbjtcbiAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKFxuICAgICAgYFVuYWJsZSB0byBnZXQgS2V5Y2xvYWsgYWNjZXNzIHRva2VuIGZvciB1c2VyICR7a2V5Y2xvYWtVc2VyLnVzZXJuYW1lfWBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVDbGllbnRDb25maWcoXG4gICAgYmFzZTogS2V5Y2xvYWtDbGllbnRDb25maWcsXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPEtleWNsb2FrQ2xpZW50Q29uZmlnPlxuICApOiBLZXljbG9ha0NsaWVudENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmJhc2UsXG4gICAgICAuLi5vdmVycmlkZXMsXG4gICAgICByZWRpcmVjdFVyaXM6IG92ZXJyaWRlcy5yZWRpcmVjdFVyaXMgPz8gYmFzZS5yZWRpcmVjdFVyaXMsXG4gICAgICB3ZWJPcmlnaW5zOiBvdmVycmlkZXMud2ViT3JpZ2lucyA/PyBiYXNlLndlYk9yaWdpbnMsXG4gICAgICByb2xlczogb3ZlcnJpZGVzLnJvbGVzID8/IGJhc2Uucm9sZXMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDbGllbnRQYXlsb2FkKFxuICAgIGNsaWVudDogS2V5Y2xvYWtDbGllbnRDb25maWdcbiAgKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB7XG4gICAgICBjbGllbnRJZDogY2xpZW50LmNsaWVudElkLFxuICAgICAgbmFtZTogY2xpZW50LmNsaWVudE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogY2xpZW50LmRlc2NyaXB0aW9uLFxuICAgICAgcm9vdFVybDogY2xpZW50LnJvb3RVcmwsXG4gICAgICBhZG1pblVybDogY2xpZW50LmFkbWluVXJsLFxuICAgICAgYmFzZVVybDogY2xpZW50LmJhc2VVcmwsXG4gICAgICBzdXJyb2dhdGVBdXRoUmVxdWlyZWQ6IGNsaWVudC5zdXJyb2dhdGVBdXRoUmVxdWlyZWQgPz8gZmFsc2UsXG4gICAgICBlbmFibGVkOiBjbGllbnQuZW5hYmxlZCA/PyB0cnVlLFxuICAgICAgYWx3YXlzRGlzcGxheUluQ29uc29sZTogY2xpZW50LmFsd2F5c0Rpc3BsYXlJbkNvbnNvbGUgPz8gZmFsc2UsXG4gICAgICBjbGllbnRBdXRoZW50aWNhdG9yVHlwZTogXCJjbGllbnQtc2VjcmV0XCIsXG4gICAgICBzZWNyZXQ6IGNsaWVudC5zZWNyZXQsXG4gICAgICByZWRpcmVjdFVyaXM6IGNsaWVudC5yZWRpcmVjdFVyaXMsXG4gICAgICB3ZWJPcmlnaW5zOiBjbGllbnQud2ViT3JpZ2lucyxcbiAgICAgIG5vdEJlZm9yZTogY2xpZW50Lm5vdEJlZm9yZSA/PyAwLFxuICAgICAgYmVhcmVyT25seTogY2xpZW50LmJlYXJlck9ubHkgPz8gZmFsc2UsXG4gICAgICBjb25zZW50UmVxdWlyZWQ6IGNsaWVudC5jb25zZW50UmVxdWlyZWQgPz8gZmFsc2UsXG4gICAgICBzdGFuZGFyZEZsb3dFbmFibGVkOiBjbGllbnQuc3RhbmRhcmRGbG93RW5hYmxlZCA/PyB0cnVlLFxuICAgICAgaW1wbGljaXRGbG93RW5hYmxlZDogY2xpZW50LmltcGxpY2l0Rmxvd0VuYWJsZWQgPz8gZmFsc2UsXG4gICAgICBkaXJlY3RBY2Nlc3NHcmFudHNFbmFibGVkOiBjbGllbnQuZGlyZWN0QWNjZXNzR3JhbnRzRW5hYmxlZCA/PyB0cnVlLFxuICAgICAgc2VydmljZUFjY291bnRzRW5hYmxlZDogY2xpZW50LnNlcnZpY2VBY2NvdW50c0VuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgIGF1dGhvcml6YXRpb25TZXJ2aWNlc0VuYWJsZWQ6IGNsaWVudC5hdXRob3JpemF0aW9uU2VydmljZXNFbmFibGVkID8/IHRydWUsXG4gICAgICBwdWJsaWNDbGllbnQ6IGNsaWVudC5wdWJsaWNDbGllbnQgPz8gZmFsc2UsXG4gICAgICBmcm9udGNoYW5uZWxMb2dvdXQ6IGNsaWVudC5mcm9udGNoYW5uZWxMb2dvdXQgPz8gdHJ1ZSxcbiAgICAgIHByb3RvY29sOiBjbGllbnQucHJvdG9jb2wgPz8gXCJvcGVuaWQtY29ubmVjdFwiLFxuICAgICAgYXR0cmlidXRlczogY2xpZW50LmF0dHJpYnV0ZXMgPz8geyBcImFjY2Vzcy50b2tlbi5saWZlc3BhblwiOiBcIjMwMFwiIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVxdWVzdChcbiAgICBtZXRob2Q6IFwiR0VUXCIgfCBcIlBPU1RcIiB8IFwiUFVUXCIgfCBcIkRFTEVURVwiLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHBheWxvYWQ6IHVua25vd24sXG4gICAgc3VjY2Vzc0NvZGU6IG51bWJlcixcbiAgICBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPGFueT5cbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlcXVlc3QpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucmVxdWVzdCh7XG4gICAgICBtZXRob2QsXG4gICAgICB1cmw6IGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0ke3BhdGh9YCxcbiAgICAgIGRhdGE6XG4gICAgICAgIHBheWxvYWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiB0eXBlb2YgcGF5bG9hZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyBwYXlsb2FkXG4gICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAuLi4oYWNjZXNzVG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHBheWxvYWQgIT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbih0aGlzLmNvbmZpZyBhcyBhbnkpKSxcbiAgICAgIH0pLFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgfSk7XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gc3VjY2Vzc0NvZGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlSHR0cFJlc3BvbnNlKHJlc3BvbnNlLCBzdWNjZXNzQ29kZSk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSHR0cFJlc3BvbnNlKFxuICAgIHJlc3BvbnNlOiBhbnksXG4gICAgc3VjY2Vzc0NvZGU6IG51bWJlcixcbiAgICBlcnJvck1zZz86IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3JNc2dcbiAgICAgID8gYCR7ZXJyb3JNc2d9OiBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9LmBcbiAgICAgIDogYEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cyBhcyBudW1iZXI7XG4gICAgaWYgKHN0YXR1cyA9PT0gNDA0IHx8IG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSkge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09IDQwOSB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJjb25mbGljdFwiKSkge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09IDQwMCkge1xuICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gNDAxIHx8IHN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VFcnJvcihlcnJvcjogRXJyb3IpOiBFcnJvciB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RVVUlEZnJvbVJlc3BvbnNlKHJlc3BvbnNlOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxvY2F0aW9uID0gcmVzcG9uc2UuaGVhZGVycy5sb2NhdGlvbiBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCFsb2NhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiS2V5Y2xvYWsgcmVzcG9uc2UgZGlkIG5vdCBpbmNsdWRlIGEgbG9jYXRpb24gaGVhZGVyXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBsb2NhdGlvbi5zcGxpdChcIi9cIikucG9wKCkgPz8gXCJcIjtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VKc29uUmVzcG9uc2U8VD4oZGF0YTogdW5rbm93bik6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSkgYXMgVDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YSBhcyBUO1xuICB9XG59XG4iXX0=
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtDbGllbnRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiS2V5Y2xvYWtDbGllbnRTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUF3RztBQUN4Ryx5Q0FBb0Q7QUFDcEQsa0RBQTBCO0FBQzFCLGtEQUFvQztBQUNwQyw2Q0FBMkQ7QUFDM0QsTUFBYSxxQkFBc0IsU0FBUSx5QkFBa0I7SUFDekQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUk7UUFDcEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJO1FBQ3RELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRixNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFD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T0FBTyxTQUFTLENBQUM7WUFDckIsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0o7QUFuTUQsc0RBbU1DO0FBQ0QsczgyQkFBczgyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhZFJlcXVlc3RFcnJvciwgQ29uZmxpY3RFcnJvciwgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciwgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IEF4aW9zIGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmltcG9ydCB7IHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbiB9IGZyb20gXCIuL3J1bnRpbWUuanNcIjtcbmV4cG9ydCBjbGFzcyBLZXljbG9ha0NsaWVudFNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2Uge1xuICAgIGFzeW5jIGluaXRpYWxpemUoLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSkpLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgICAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdO1xuICAgICAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChjb25maWcpO1xuICAgICAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZUNsaWVudChrZXljbG9ha1NldHVwQ29uZmlnLCBvdmVycmlkZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVDbGllbnRcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZUNsaWVudCk7XG4gICAgICAgIGNvbnN0IHJlYWxtQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4oa2V5Y2xvYWtTZXR1cENvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMubm9ybWFsaXplQ2xpZW50Q29uZmlnKGtleWNsb2FrU2V0dXBDb25maWcuY2xpZW50LCBvdmVycmlkZXMgPz8ge30pO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2NsaWVudHNgLCByZWFsbUFjY2Vzc1Rva2VuLCB0aGlzLmJ1aWxkQ2xpZW50UGF5bG9hZChjbGllbnQpLCAyMDEsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdFVVSURmcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGVDbGllbnQoa2V5Y2xvYWtTZXR1cENvbmZpZywgb3ZlcnJpZGVzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlQ2xpZW50XCIsIHRydWUpKS5mb3IodGhpcy51cGRhdGVDbGllbnQpO1xuICAgICAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBjbGllbnQgPSB0aGlzLm5vcm1hbGl6ZUNsaWVudENvbmZpZyhrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudCwgb3ZlcnJpZGVzID8/IHt9KTtcbiAgICAgICAgY29uc3QgY2xpZW50VVVJRCA9IGNsaWVudC5jbGllbnRVVUlEID8/XG4gICAgICAgICAgICAoYXdhaXQgdGhpcy5nZXRDbGllbnRVVUlEKHJlYWxtQWNjZXNzVG9rZW4sIGtleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyLnJlYWxtLCBjbGllbnQuY2xpZW50SWQsIC4uLmN0eEFyZ3MpKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUFVUXCIsIGAvYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXI/LnJlYWxtfS9jbGllbnRzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGNsaWVudFVVSUQpfWAsIHJlYWxtQWNjZXNzVG9rZW4sIHRoaXMuYnVpbGRDbGllbnRQYXlsb2FkKGNsaWVudCksIDIwNCwge30sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBnZXRDbGllbnRVVUlEKGFjY2Vzc1Rva2VuLCByZWFsbU5hbWUsIGNsaWVudElkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZ2V0Q2xpZW50VVVJRFwiLCB0cnVlKSkuZm9yKHRoaXMuZ2V0Q2xpZW50VVVJRCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiR0VUXCIsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS9jbGllbnRzP2NsaWVudElkPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGNsaWVudElkKX1gLCBhY2Nlc3NUb2tlbiwgdW5kZWZpbmVkLCAyMDAsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgIGNvbnN0IGNsaWVudFVVSUQgPSBkYXRhPy5bMF0/LmlkO1xuICAgICAgICBpZiAoY2xpZW50VVVJRClcbiAgICAgICAgICAgIHJldHVybiBjbGllbnRVVUlEO1xuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgVW5hYmxlIHRvIGdldCBLZXljbG9hayBDbGllbnQgVVVJRDogJHtjbGllbnRJZH1gKTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlQ2xpZW50Um9sZXMoa2V5Y2xvYWtTZXR1cENvbmZpZywgcm9sZUNvbmZpZ3MsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVDbGllbnRSb2xlc1wiLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlQ2xpZW50Um9sZXMpO1xuICAgICAgICBjb25zdCByb2xlcyA9IHJvbGVDb25maWdzID8/IGtleWNsb2FrU2V0dXBDb25maWcuY2xpZW50LnJvbGVzID8/IFtdO1xuICAgICAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBmb3IgKGNvbnN0IHJvbGUgb2Ygcm9sZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2NsaWVudHMvJHtrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5jbGllbnRVVUlEfS9yb2xlc2AsIHJlYWxtQWNjZXNzVG9rZW4sIHtcbiAgICAgICAgICAgICAgICBuYW1lOiByb2xlLnJvbGVOYW1lLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uID8/IGBBdXRvLWNyZWF0ZWQgcm9sZSAke3JvbGUucm9sZU5hbWV9YCxcbiAgICAgICAgICAgICAgICBjb21wb3NpdGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNsaWVudFJvbGU6IHRydWUsXG4gICAgICAgICAgICB9LCAyMDEsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZykge1xuICAgICAgICByZXR1cm4gQXhpb3MuY3JlYXRlKHtcbiAgICAgICAgICAgIGJhc2VVUkw6IGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fWAsXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtleWNsb2FrSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnKSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIGdldFJlYWxtQWNjZXNzVG9rZW4oa2V5Y2xvYWtTZXR1cENvbmZpZywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZ2V0UmVhbG1BY2Nlc3NUb2tlbik7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0QWNjZXNzVG9rZW4oa2V5Y2xvYWtVc2VyLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5nZXRBY2Nlc3NUb2tlbik7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUE9TVFwiLCBgL3JlYWxtcy8ke2tleWNsb2FrVXNlci5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLCB1bmRlZmluZWQsIG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgICAgY2xpZW50X2lkOiBrZXljbG9ha1VzZXIuYXBpQ2xpZW50SWQsXG4gICAgICAgICAgICB1c2VybmFtZToga2V5Y2xvYWtVc2VyLnVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGtleWNsb2FrVXNlci5wYXNzd29yZCxcbiAgICAgICAgICAgIGdyYW50X3R5cGU6IFwicGFzc3dvcmRcIixcbiAgICAgICAgfSkudG9TdHJpbmcoKSwgMjAwLCB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgfSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICBpZiAoZGF0YT8uYWNjZXNzX3Rva2VuKVxuICAgICAgICAgICAgcmV0dXJuIGRhdGEuYWNjZXNzX3Rva2VuO1xuICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKGBVbmFibGUgdG8gZ2V0IEtleWNsb2FrIGFjY2VzcyB0b2tlbiBmb3IgdXNlciAke2tleWNsb2FrVXNlci51c2VybmFtZX1gKTtcbiAgICB9XG4gICAgbm9ybWFsaXplQ2xpZW50Q29uZmlnKGJhc2UsIG92ZXJyaWRlcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICAgIC4uLm92ZXJyaWRlcyxcbiAgICAgICAgICAgIHJlZGlyZWN0VXJpczogb3ZlcnJpZGVzLnJlZGlyZWN0VXJpcyA/PyBiYXNlLnJlZGlyZWN0VXJpcyxcbiAgICAgICAgICAgIHdlYk9yaWdpbnM6IG92ZXJyaWRlcy53ZWJPcmlnaW5zID8/IGJhc2Uud2ViT3JpZ2lucyxcbiAgICAgICAgICAgIHJvbGVzOiBvdmVycmlkZXMucm9sZXMgPz8gYmFzZS5yb2xlcyxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYnVpbGRDbGllbnRQYXlsb2FkKGNsaWVudCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2xpZW50SWQ6IGNsaWVudC5jbGllbnRJZCxcbiAgICAgICAgICAgIG5hbWU6IGNsaWVudC5jbGllbnROYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGNsaWVudC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHJvb3RVcmw6IGNsaWVudC5yb290VXJsLFxuICAgICAgICAgICAgYWRtaW5Vcmw6IGNsaWVudC5hZG1pblVybCxcbiAgICAgICAgICAgIGJhc2VVcmw6IGNsaWVudC5iYXNlVXJsLFxuICAgICAgICAgICAgc3Vycm9nYXRlQXV0aFJlcXVpcmVkOiBjbGllbnQuc3Vycm9nYXRlQXV0aFJlcXVpcmVkID8/IGZhbHNlLFxuICAgICAgICAgICAgZW5hYmxlZDogY2xpZW50LmVuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGFsd2F5c0Rpc3BsYXlJbkNvbnNvbGU6IGNsaWVudC5hbHdheXNEaXNwbGF5SW5Db25zb2xlID8/IGZhbHNlLFxuICAgICAgICAgICAgY2xpZW50QXV0aGVudGljYXRvclR5cGU6IFwiY2xpZW50LXNlY3JldFwiLFxuICAgICAgICAgICAgc2VjcmV0OiBjbGllbnQuc2VjcmV0LFxuICAgICAgICAgICAgcmVkaXJlY3RVcmlzOiBjbGllbnQucmVkaXJlY3RVcmlzLFxuICAgICAgICAgICAgd2ViT3JpZ2luczogY2xpZW50LndlYk9yaWdpbnMsXG4gICAgICAgICAgICBub3RCZWZvcmU6IGNsaWVudC5ub3RCZWZvcmUgPz8gMCxcbiAgICAgICAgICAgIGJlYXJlck9ubHk6IGNsaWVudC5iZWFyZXJPbmx5ID8/IGZhbHNlLFxuICAgICAgICAgICAgY29uc2VudFJlcXVpcmVkOiBjbGllbnQuY29uc2VudFJlcXVpcmVkID8/IGZhbHNlLFxuICAgICAgICAgICAgc3RhbmRhcmRGbG93RW5hYmxlZDogY2xpZW50LnN0YW5kYXJkRmxvd0VuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGltcGxpY2l0Rmxvd0VuYWJsZWQ6IGNsaWVudC5pbXBsaWNpdEZsb3dFbmFibGVkID8/IGZhbHNlLFxuICAgICAgICAgICAgZGlyZWN0QWNjZXNzR3JhbnRzRW5hYmxlZDogY2xpZW50LmRpcmVjdEFjY2Vzc0dyYW50c0VuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgICAgICAgIHNlcnZpY2VBY2NvdW50c0VuYWJsZWQ6IGNsaWVudC5zZXJ2aWNlQWNjb3VudHNFbmFibGVkID8/IHRydWUsXG4gICAgICAgICAgICBhdXRob3JpemF0aW9uU2VydmljZXNFbmFibGVkOiBjbGllbnQuYXV0aG9yaXphdGlvblNlcnZpY2VzRW5hYmxlZCA/PyB0cnVlLFxuICAgICAgICAgICAgcHVibGljQ2xpZW50OiBjbGllbnQucHVibGljQ2xpZW50ID8/IGZhbHNlLFxuICAgICAgICAgICAgZnJvbnRjaGFubmVsTG9nb3V0OiBjbGllbnQuZnJvbnRjaGFubmVsTG9nb3V0ID8/IHRydWUsXG4gICAgICAgICAgICBwcm90b2NvbDogY2xpZW50LnByb3RvY29sID8/IFwib3BlbmlkLWNvbm5lY3RcIixcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGNsaWVudC5hdHRyaWJ1dGVzID8/IHsgXCJhY2Nlc3MudG9rZW4ubGlmZXNwYW5cIjogXCIzMDBcIiB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBhc3luYyByZXF1ZXN0KG1ldGhvZCwgcGF0aCwgYWNjZXNzVG9rZW4sIHBheWxvYWQsIHN1Y2Nlc3NDb2RlLCBoZWFkZXJzLCAuLi5hcmdzKSB7XG4gICAgICAgIHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVxdWVzdCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICB1cmw6IGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0ke3BhdGh9YCxcbiAgICAgICAgICAgIGRhdGE6IHBheWxvYWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgOiB0eXBlb2YgcGF5bG9hZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICA/IHBheWxvYWRcbiAgICAgICAgICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIC4uLihhY2Nlc3NUb2tlbiA/IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAgfSA6IHt9KSxcbiAgICAgICAgICAgICAgICAuLi4ocGF5bG9hZCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBwYXlsb2FkICE9PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgICAgID8geyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9XG4gICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtleWNsb2FrSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnKSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gc3VjY2Vzc0NvZGUpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlSHR0cFJlc3BvbnNlKHJlc3BvbnNlLCBzdWNjZXNzQ29kZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbiAgICBoYW5kbGVIdHRwUmVzcG9uc2UocmVzcG9uc2UsIHN1Y2Nlc3NDb2RlLCBlcnJvck1zZykge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3JNc2dcbiAgICAgICAgICAgID8gYCR7ZXJyb3JNc2d9OiBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9LmBcbiAgICAgICAgICAgIDogYEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgICAgICBjb25zdCBzdGF0dXMgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwNCB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJub3QgZm91bmRcIikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwOSB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJjb25mbGljdFwiKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwMSB8fCBzdGF0dXMgPT09IDQwMykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHBhcnNlRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICAgICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGV4dHJhY3RVVUlEZnJvbVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gcmVzcG9uc2UuaGVhZGVycy5sb2NhdGlvbjtcbiAgICAgICAgaWYgKCFsb2NhdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJLZXljbG9hayByZXNwb25zZSBkaWQgbm90IGluY2x1ZGUgYSBsb2NhdGlvbiBoZWFkZXJcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvY2F0aW9uLnNwbGl0KFwiL1wiKS5wb3AoKSA/PyBcIlwiO1xuICAgIH1cbiAgICBwYXJzZUpzb25SZXNwb25zZShkYXRhKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVMyVjVZMnh2WVd0RGJHbGxiblJUWlhKMmFXTmxMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDJ0bGVXTnNiMkZyTDNObGNuWnBZMlZ6TDB0bGVXTnNiMkZyUTJ4cFpXNTBVMlZ5ZG1salpTNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUTB3c1pVRkJaU3hGUVVObUxHRkJRV0VzUlVGRFlpeGhRVUZoTEVWQlEySXNZVUZCWVN4SFFVTmtMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZGYWtNc1QwRkJUeXhGUVVGRkxHdENRVUZyUWl4RlFVRkZMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZQY0VRc1QwRkJUeXhMUVVGM1FpeE5RVUZOTEU5QlFVOHNRMEZCUXp0QlFVTTNReXhQUVVGUExFdEJRVXNzUzBGQlN5eE5RVUZOTEZsQlFWa3NRMEZCUXp0QlFVTndReXhQUVVGUExFVkJRVVVzTWtKQlFUSkNMRVZCUVVVc2NVSkJRV3RDTzBGQlJYaEVMRTFCUVUwc1QwRkJUeXh4UWtGQmMwSXNVMEZCVVN4clFrRkhNVU03U1VGRFF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVTmtMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTFReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRka0lzVFVGQlRTeE5RVUZOTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJkMElzUTBGQlF6dFJRVU5xUkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF6dFJRVU4wUWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRE4wTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU03VVVGRGRFSXNUMEZCVHl4RlFVRkZMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF6dEpRVU0xUWl4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExGbEJRVmtzUTBGRGFFSXNiVUpCUVhkRExFVkJRM2hETEZOQlFXOUVMRVZCUTNCRUxFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEyeENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNZMEZCWXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNNVF5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRGVrSXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGRGNrUXNiVUpCUVcxQ0xFVkJRMjVDTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRM1pETEcxQ1FVRnRRaXhEUVVGRExFMUJRVTBzUlVGRE1VSXNVMEZCVXl4SlFVRkpMRVZCUVVVc1EwRkRhRUlzUTBGQlF6dFJRVU5HTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFrTXNUVUZCVFN4RlFVTk9MR2xDUVVGcFFpeHRRa0ZCYlVJc1EwRkJReXhaUVVGWkxFVkJRVVVzUzBGQlN5eFZRVUZWTEVWQlEyeEZMR2RDUVVGblFpeEZRVU5vUWl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUXk5Q0xFZEJRVWNzUlVGRFNDeEZRVUZGTEVWQlEwWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xFOUJRVThzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBsQlEyaEVMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zV1VGQldTeERRVU5vUWl4dFFrRkJkME1zUlVGRGVFTXNVMEZCYjBRc1JVRkRjRVFzUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4alFVRmpMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRemxETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU42UWl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVU55UkN4dFFrRkJiVUlzUlVGRGJrSXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGRGRrTXNiVUpCUVcxQ0xFTkJRVU1zVFVGQlRTeEZRVU14UWl4VFFVRlRMRWxCUVVrc1JVRkJSU3hEUVVOb1FpeERRVUZETzFGQlEwWXNUVUZCVFN4VlFVRlZMRWRCUTJRc1RVRkJUU3hEUVVGRExGVkJRVlU3V1VGRGFrSXNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRM1pDTEdkQ1FVRm5RaXhGUVVOb1FpeHRRa0ZCYlVJc1EwRkJReXhaUVVGaExFTkJRVU1zUzBGQlN5eEZRVU4yUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hGUVVObUxFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTXNRMEZCUXp0UlFVTk1MRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFFSXNTMEZCU3l4RlFVTk1MR2xDUVVGcFFpeHRRa0ZCYlVJc1EwRkJReXhaUVVGWkxFVkJRVVVzUzBGQlN5eFpRVUZaTEd0Q1FVRnJRaXhEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTEVWQlEzQkhMR2RDUVVGblFpeEZRVU5vUWl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUXk5Q0xFZEJRVWNzUlVGRFNDeEZRVUZGTEVWQlEwWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVTnFRaXhYUVVGdFFpeEZRVU51UWl4VFFVRnBRaXhGUVVOcVFpeFJRVUZuUWl4RlFVTm9RaXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEdWQlFXVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRMME1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8xRkJRekZDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFrTXNTMEZCU3l4RlFVTk1MR2xDUVVGcFFpeFRRVUZUTEhGQ1FVRnhRaXhyUWtGQmEwSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSU3hGUVVNM1JTeFhRVUZYTEVWQlExZ3NVMEZCVXl4RlFVTlVMRWRCUVVjc1JVRkRTQ3hGUVVGRkxFVkJRMFlzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVTkdMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJlVUlzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUXpORkxFMUJRVTBzVlVGQlZTeEhRVUZITEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF6dFJRVU5xUXl4SlFVRkpMRlZCUVZVN1dVRkJSU3hQUVVGUExGVkJRVlVzUTBGQlF6dFJRVU5zUXl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExIVkRRVUYxUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRemRGTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlEzSkNMRzFDUVVGM1F5eEZRVU40UXl4WFFVRnRSQ3hGUVVOdVJDeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRzFDUVVGdFFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTnVSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dFJRVU01UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhYUVVGWExFbEJRVWtzYlVKQlFXMUNMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzU1VGQlNTeEZRVUZGTEVOQlFVTTdVVUZEY0VVc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZEY2tRc2JVSkJRVzFDTEVWQlEyNUNMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFJpeExRVUZMTEUxQlFVMHNTVUZCU1N4SlFVRkpMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRM3BDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkRhRUlzVFVGQlRTeEZRVU5PTEdsQ1FVRnBRaXh0UWtGQmJVSXNRMEZCUXl4WlFVRlpMRVZCUVVVc1MwRkJTeXhaUVVGWkxHMUNRVUZ0UWl4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxGRkJRVkVzUlVGRGFrZ3NaMEpCUVdkQ0xFVkJRMmhDTzJkQ1FVTkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVUdG5Ra0ZEYmtJc1YwRkJWeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVsQlFVa3NjVUpCUVhGQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVTdaMEpCUTNKRkxGTkJRVk1zUlVGQlJTeExRVUZMTzJkQ1FVTm9RaXhWUVVGVkxFVkJRVVVzU1VGQlNUdGhRVU5xUWl4RlFVTkVMRWRCUVVjc1JVRkRTQ3hGUVVGRkxFVkJRMFlzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVTktMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wbEJSVThzWjBKQlFXZENMRU5CUVVNc1RVRkJNa0k3VVVGRGJFUXNUMEZCVHl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRE8xbEJRMnhDTEU5QlFVOHNSVUZCUlN4SFFVRkhMRTFCUVUwc1EwRkJReXhSUVVGUkxFMUJRVTBzVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlR0WlFVTTVReXhQUVVGUExFVkJRVVVzUlVGQlJTeGpRVUZqTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVU3V1VGREwwTXNZMEZCWXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWs3V1VGRE1VSXNWVUZCVlN4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF6dG5Ra0ZETVVJc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXl3eVFrRkJNa0lzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCWVN4RFFVRkRMRU5CUVVNN1lVRkRkRVVzUTBGQlF6dFRRVU5JTEVOQlFVTXNRMEZCUXp0SlFVTk1MRU5CUVVNN1NVRkZUeXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUXk5Q0xHMUNRVUYzUXl4RlFVTjRReXhIUVVGSExFbEJRWGxDTzFGQlJUVkNMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenRSUVVOb1JTeFBRVUZQTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNXVUZCWVN4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRE5VVXNRMEZCUXp0SlFVVlBMRXRCUVVzc1EwRkJReXhqUVVGakxFTkJRekZDTEZsQlFUQkNMRVZCUXpGQ0xFZEJRVWNzU1VGQmVVSTdVVUZGTlVJc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXp0UlFVTXpSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJwRExFMUJRVTBzUlVGRFRpeFhRVUZYTEZsQlFWa3NRMEZCUXl4TFFVRkxMR2REUVVGblF5eEZRVU0zUkN4VFFVRlRMRVZCUTFRc1NVRkJTU3hsUVVGbExFTkJRVU03V1VGRGJFSXNVMEZCVXl4RlFVRkZMRmxCUVZrc1EwRkJReXhYUVVGWE8xbEJRMjVETEZGQlFWRXNSVUZCUlN4WlFVRlpMRU5CUVVNc1VVRkJVVHRaUVVNdlFpeFJRVUZSTEVWQlFVVXNXVUZCV1N4RFFVRkRMRkZCUVZFN1dVRkRMMElzVlVGQlZTeEZRVUZGTEZWQlFWVTdVMEZEZGtJc1EwRkJReXhEUVVGRExGRkJRVkVzUlVGQlJTeEZRVU5pTEVkQlFVY3NSVUZEU0N4RlFVRkZMR05CUVdNc1JVRkJSU3h0UTBGQmJVTXNSVUZCUlN4RlFVTjJSQ3hIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFGQlEwWXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVTnFReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVU5rTEVOQlFVTTdVVUZEUml4SlFVRkpMRWxCUVVrc1JVRkJSU3haUVVGWk8xbEJRVVVzVDBGQlR5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRPMUZCUTJwRUxFMUJRVTBzU1VGQlNTeGxRVUZsTEVOQlEzWkNMR2RFUVVGblJDeFpRVUZaTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUTNoRkxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVOHNjVUpCUVhGQ0xFTkJRek5DTEVsQlFUQkNMRVZCUXpGQ0xGTkJRWGRETzFGQlJYaERMRTlCUVU4N1dVRkRUQ3hIUVVGSExFbEJRVWs3V1VGRFVDeEhRVUZITEZOQlFWTTdXVUZEV2l4WlFVRlpMRVZCUVVVc1UwRkJVeXhEUVVGRExGbEJRVmtzU1VGQlNTeEpRVUZKTEVOQlFVTXNXVUZCV1R0WlFVTjZSQ3hWUVVGVkxFVkJRVVVzVTBGQlV5eERRVUZETEZWQlFWVXNTVUZCU1N4SlFVRkpMRU5CUVVNc1ZVRkJWVHRaUVVOdVJDeExRVUZMTEVWQlFVVXNVMEZCVXl4RFFVRkRMRXRCUVVzc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN6dFRRVU55UXl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWUExHdENRVUZyUWl4RFFVTjRRaXhOUVVFMFFqdFJRVVUxUWl4UFFVRlBPMWxCUTB3c1VVRkJVU3hGUVVGRkxFMUJRVTBzUTBGQlF5eFJRVUZSTzFsQlEzcENMRWxCUVVrc1JVRkJSU3hOUVVGTkxFTkJRVU1zVlVGQlZUdFpRVU4yUWl4WFFVRlhMRVZCUVVVc1RVRkJUU3hEUVVGRExGZEJRVmM3V1VGREwwSXNUMEZCVHl4RlFVRkZMRTFCUVUwc1EwRkJReXhQUVVGUE8xbEJRM1pDTEZGQlFWRXNSVUZCUlN4TlFVRk5MRU5CUVVNc1VVRkJVVHRaUVVONlFpeFBRVUZQTEVWQlFVVXNUVUZCVFN4RFFVRkRMRTlCUVU4N1dVRkRka0lzY1VKQlFYRkNMRVZCUVVVc1RVRkJUU3hEUVVGRExIRkNRVUZ4UWl4SlFVRkpMRXRCUVVzN1dVRkROVVFzVDBGQlR5eEZRVUZGTEUxQlFVMHNRMEZCUXl4UFFVRlBMRWxCUVVrc1NVRkJTVHRaUVVNdlFpeHpRa0ZCYzBJc1JVRkJSU3hOUVVGTkxFTkJRVU1zYzBKQlFYTkNMRWxCUVVrc1MwRkJTenRaUVVNNVJDeDFRa0ZCZFVJc1JVRkJSU3hsUVVGbE8xbEJRM2hETEUxQlFVMHNSVUZCUlN4TlFVRk5MRU5CUVVNc1RVRkJUVHRaUVVOeVFpeFpRVUZaTEVWQlFVVXNUVUZCVFN4RFFVRkRMRmxCUVZrN1dVRkRha01zVlVGQlZTeEZRVUZGTEUxQlFVMHNRMEZCUXl4VlFVRlZPMWxCUXpkQ0xGTkJRVk1zUlVGQlJTeE5RVUZOTEVOQlFVTXNVMEZCVXl4SlFVRkpMRU5CUVVNN1dVRkRhRU1zVlVGQlZTeEZRVUZGTEUxQlFVMHNRMEZCUXl4VlFVRlZMRWxCUVVrc1MwRkJTenRaUVVOMFF5eGxRVUZsTEVWQlFVVXNUVUZCVFN4RFFVRkRMR1ZCUVdVc1NVRkJTU3hMUVVGTE8xbEJRMmhFTEcxQ1FVRnRRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eHRRa0ZCYlVJc1NVRkJTU3hKUVVGSk8xbEJRM1pFTEcxQ1FVRnRRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eHRRa0ZCYlVJc1NVRkJTU3hMUVVGTE8xbEJRM2hFTEhsQ1FVRjVRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eDVRa0ZCZVVJc1NVRkJTU3hKUVVGSk8xbEJRMjVGTEhOQ1FVRnpRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eHpRa0ZCYzBJc1NVRkJTU3hKUVVGSk8xbEJRemRFTERSQ1FVRTBRaXhGUVVGRkxFMUJRVTBzUTBGQlF5dzBRa0ZCTkVJc1NVRkJTU3hKUVVGSk8xbEJRM3BGTEZsQlFWa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1dVRkJXU3hKUVVGSkxFdEJRVXM3V1VGRE1VTXNhMEpCUVd0Q0xFVkJRVVVzVFVGQlRTeERRVUZETEd0Q1FVRnJRaXhKUVVGSkxFbEJRVWs3V1VGRGNrUXNVVUZCVVN4RlFVRkZMRTFCUVUwc1EwRkJReXhSUVVGUkxFbEJRVWtzWjBKQlFXZENPMWxCUXpkRExGVkJRVlVzUlVGQlJTeE5RVUZOTEVOQlFVTXNWVUZCVlN4SlFVRkpMRVZCUVVVc2RVSkJRWFZDTEVWQlFVVXNTMEZCU3l4RlFVRkZPMU5CUTNCRkxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVOHNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkRia0lzVFVGQmVVTXNSVUZEZWtNc1NVRkJXU3hGUVVOYUxGZEJRU3RDTEVWQlF5OUNMRTlCUVdkQ0xFVkJRMmhDTEZkQlFXMUNMRVZCUTI1Q0xFOUJRU3RDTEVWQlF5OUNMRWRCUVVjc1NVRkJlVUk3VVVGRk5VSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTJoRExFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU03V1VGRGVrTXNUVUZCVFR0WlFVTk9MRWRCUVVjc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEhRVUZITEVsQlFVa3NSVUZCUlR0WlFVTXpSQ3hKUVVGSkxFVkJRMFlzVDBGQlR5eExRVUZMTEZOQlFWTTdaMEpCUTI1Q0xFTkJRVU1zUTBGQlF5eFRRVUZUTzJkQ1FVTllMRU5CUVVNc1EwRkJReXhQUVVGUExFOUJRVThzUzBGQlN5eFJRVUZSTzI5Q1FVTXpRaXhEUVVGRExFTkJRVU1zVDBGQlR6dHZRa0ZEVkN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTTdXVUZETDBJc1QwRkJUeXhGUVVGRk8yZENRVU5RTEVkQlFVY3NUMEZCVHp0blFrRkRWaXhIUVVGSExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMR0ZCUVdFc1JVRkJSU3hWUVVGVkxGZEJRVmNzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRuUWtGRGJFVXNSMEZCUnl4RFFVRkRMRTlCUVU4c1MwRkJTeXhUUVVGVExFbEJRVWtzVDBGQlR5eFBRVUZQTEV0QlFVc3NVVUZCVVR0dlFrRkRkRVFzUTBGQlF5eERRVUZETEVWQlFVVXNZMEZCWXl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTzI5Q1FVTjRReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzJGQlExSTdXVUZEUkN4VlFVRlZMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETzJkQ1FVTXhRaXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRMREpDUVVFeVFpeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRmhMRU5CUVVNc1EwRkJRenRoUVVOMFJTeERRVUZETzFsQlEwWXNZMEZCWXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWs3VTBGRE0wSXNRMEZCUXl4RFFVRkRPMUZCUTBnc1NVRkJTU3hSUVVGUkxFTkJRVU1zVFVGQlRTeExRVUZMTEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUTNCRExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhSUVVGUkxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdVVUZEYWtRc1EwRkJRenRSUVVORUxFOUJRVThzVVVGQlVTeERRVUZETzBsQlEyeENMRU5CUVVNN1NVRkZUeXhyUWtGQmEwSXNRMEZEZUVJc1VVRkJZU3hGUVVOaUxGZEJRVzFDTEVWQlEyNUNMRkZCUVdsQ08xRkJSV3BDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRkZCUVZFN1dVRkRkRUlzUTBGQlF5eERRVUZETEVkQlFVY3NVVUZCVVN4alFVRmpMRmRCUVZjc1kwRkJZeXhSUVVGUkxFTkJRVU1zVFVGQlRTeExRVUZMTEZGQlFWRXNRMEZCUXl4VlFVRlZMRWRCUVVjN1dVRkRPVVlzUTBGQlF5eERRVUZETEZsQlFWa3NWMEZCVnl4alFVRmpMRkZCUVZFc1EwRkJReXhOUVVGTkxFdEJRVXNzVVVGQlVTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMUZCUTI1R0xFMUJRVTBzVFVGQlRTeEhRVUZITEZGQlFWRXNRMEZCUXl4TlFVRm5RaXhEUVVGRE8xRkJRM3BETEVsQlFVa3NUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hQUVVGUExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGJFVXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU51UXl4RFFVRkRPMUZCUTBRc1NVRkJTU3hOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEU5QlFVOHNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTnFSU3hOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTI1RExFTkJRVU03VVVGRFJDeEpRVUZKTEUxQlFVMHNTMEZCU3l4SFFVRkhMRVZCUVVVc1EwRkJRenRaUVVOdVFpeE5RVUZOTEVsQlFVa3NaVUZCWlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0pETEVOQlFVTTdVVUZEUkN4SlFVRkpMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzVFVGQlRTeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMWxCUTNKRExFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRia01zUTBGQlF6dFJRVU5FTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGJrTXNRMEZCUXp0SlFVVlRMRlZCUVZVc1EwRkJReXhMUVVGWk8xRkJReTlDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhQUVVGUExFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NTVUZCU1N4bFFVRmxMRU5CUVVNN1VVRkRMMFFzVFVGQlRTeFpRVUZaTEVkQlFVY3NUMEZCVHl4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJSVE5ETEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGRrVXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU53UXl4RFFVRkRPMUZCUlVRc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRha2dzVDBGQlR5eEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOd1F5eERRVUZETzFGQlJVUXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRemRITEU5QlFVOHNTVUZCU1N4bFFVRmxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGRFTXNRMEZCUXp0UlFVVkVMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZETVVVc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndReXhEUVVGRE8xRkJSVVFzU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOMlJTeFBRVUZQTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JETEVOQlFVTTdVVUZGUkN4UFFVRlBMRWxCUVVrc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzQkRMRU5CUVVNN1NVRkZUeXgxUWtGQmRVSXNRMEZCUXl4UlFVRmhPMUZCUXpORExFMUJRVTBzVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1VVRkJPRUlzUTBGQlF6dFJRVU5xUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU03V1VGRFpDeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVTnlRaXh4UkVGQmNVUXNRMEZEZEVRc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRFJDeFBRVUZQTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRPMGxCUTNwRExFTkJRVU03U1VGRlR5eHBRa0ZCYVVJc1EwRkJTU3hKUVVGaE8xRkJRM2hETEVsQlFVa3NUMEZCVHl4SlFVRkpMRXRCUVVzc1VVRkJVU3hGUVVGRkxFTkJRVU03V1VGRE4wSXNTVUZCU1N4RFFVRkRPMmRDUVVOSUxFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVUwc1EwRkJRenRaUVVNdlFpeERRVUZETzFsQlFVTXNUVUZCVFN4RFFVRkRPMmRDUVVOUUxFOUJRVThzVTBGQlV5eERRVUZETzFsQlEyNUNMRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJRMFFzVDBGQlR5eEpRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenREUVVOR0lpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdGNiaUFnUW1Ga1VtVnhkV1Z6ZEVWeWNtOXlMRnh1SUNCRGIyNW1iR2xqZEVWeWNtOXlMRnh1SUNCSmJuUmxjbTVoYkVWeWNtOXlMRnh1SUNCT2IzUkdiM1Z1WkVWeWNtOXlMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSaUxXUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0I3SUVOdmJuUmxlSFIxWVd4QmNtZHpMQ0JOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWNnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3SUVOc2FXVnVkRUpoYzJWa1UyVnlkbWxqWlNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhSNWNHVWdlMXh1SUNCTFpYbGpiRzloYTBOc2FXVnVkRU52Ym1acFp5eGNiaUFnUzJWNVkyeHZZV3REYkdsbGJuUlNiMnhsUTI5dVptbG5MRnh1SUNCTFpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxGeHVJQ0JMWlhsamJHOWhhMVZ6WlhJc1hHNTlJR1p5YjIwZ1hDSXVMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJRUY0YVc5ekxDQjdJRUY0YVc5elNXNXpkR0Z1WTJVZ2ZTQm1jbTl0SUZ3aVlYaHBiM05jSWp0Y2JtbHRjRzl5ZENBcUlHRnpJR2gwZEhCeklHWnliMjBnWENKdWIyUmxPbWgwZEhCelhDSTdYRzVwYlhCdmNuUWdleUJ5WlhOdmJIWmxTMlY1WTJ4dllXdEpjMUJ5YjJSMVkzUnBiMjRnZlNCbWNtOXRJRndpTGk5eWRXNTBhVzFsWENJN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCTFpYbGpiRzloYTBOc2FXVnVkRk5sY25acFkyVWdaWGgwWlc1a2N5QkRiR2xsYm5SQ1lYTmxaRk5sY25acFkyVThYRzRnSUVGNGFXOXpTVzV6ZEdGdVkyVXNYRzRnSUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdkY2JqNGdlMXh1SUNCaGMzbHVZeUJwYm1sMGFXRnNhWHBsS0Z4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZXlCamIyNW1hV2M2SUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjN0lHTnNhV1Z1ZERvZ1FYaHBiM05KYm5OMFlXNWpaU0I5UGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW1sdWFYUnBZV3hwZW1WY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1sdWFYUnBZV3hwZW1VcE8xeHVJQ0FnSUdOdmJuTjBJR052Ym1acFp5QTlJR04wZUVGeVozTmJNRjBnWVhNZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp6dGNiaUFnSUNCMGFHbHpMbDlqYjI1bWFXY2dQU0JqYjI1bWFXYzdYRzRnSUNBZ1kyOXVjM1FnWTJ4cFpXNTBJRDBnZEdocGN5NWpjbVZoZEdWSWRIUndRMnhwWlc1MEtHTnZibVpwWnlrN1hHNGdJQ0FnZEdocGN5NWZZMnhwWlc1MElEMGdZMnhwWlc1ME8xeHVJQ0FnSUhKbGRIVnliaUI3SUdOdmJtWnBaeXdnWTJ4cFpXNTBJSDA3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJqY21WaGRHVkRiR2xsYm5Rb1hHNGdJQ0FnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnpvZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5eGNiaUFnSUNCdmRtVnljbWxrWlhNNklGQmhjblJwWVd3OFMyVjVZMnh2WVd0RGJHbGxiblJEYjI1bWFXYytJSHdnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4YzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbU55WldGMFpVTnNhV1Z1ZEZ3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11WTNKbFlYUmxRMnhwWlc1MEtUdGNiaUFnSUNCamIyNXpkQ0J5WldGc2JVRmpZMlZ6YzFSdmEyVnVJRDBnWVhkaGFYUWdkR2hwY3k1blpYUlNaV0ZzYlVGalkyVnpjMVJ2YTJWdUtGeHVJQ0FnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5eGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUdOdmJuTjBJR05zYVdWdWRDQTlJSFJvYVhNdWJtOXliV0ZzYVhwbFEyeHBaVzUwUTI5dVptbG5LRnh1SUNBZ0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeTVqYkdsbGJuUXNYRzRnSUNBZ0lDQnZkbVZ5Y21sa1pYTWdQejhnZTMxY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElISmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTV5WlhGMVpYTjBLRnh1SUNBZ0lDQWdYQ0pRVDFOVVhDSXNYRzRnSUNBZ0lDQmdMMkZrYldsdUwzSmxZV3h0Y3k4a2UydGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3VjbVZoYkcxQmNHbFZjMlZ5UHk1eVpXRnNiWDB2WTJ4cFpXNTBjMkFzWEc0Z0lDQWdJQ0J5WldGc2JVRmpZMlZ6YzFSdmEyVnVMRnh1SUNBZ0lDQWdkR2hwY3k1aWRXbHNaRU5zYVdWdWRGQmhlV3h2WVdRb1kyeHBaVzUwS1N4Y2JpQWdJQ0FnSURJd01TeGNiaUFnSUNBZ0lIdDlMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaWGgwY21GamRGVlZTVVJtY205dFVtVnpjRzl1YzJVb2NtVnpjRzl1YzJVcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2RYQmtZWFJsUTJ4cFpXNTBLRnh1SUNBZ0lHdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXYzZJRXRsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2NzWEc0Z0lDQWdiM1psY25KcFpHVnpPaUJRWVhKMGFXRnNQRXRsZVdOc2IyRnJRMnhwWlc1MFEyOXVabWxuUGlCOElIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpZFhCa1lYUmxRMnhwWlc1MFhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1MWNHUmhkR1ZEYkdsbGJuUXBPMXh1SUNBZ0lHTnZibk4wSUhKbFlXeHRRV05qWlhOelZHOXJaVzRnUFNCaGQyRnBkQ0IwYUdsekxtZGxkRkpsWVd4dFFXTmpaWE56Vkc5clpXNG9YRzRnSUNBZ0lDQnJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5MRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnWTJ4cFpXNTBJRDBnZEdocGN5NXViM0p0WVd4cGVtVkRiR2xsYm5SRGIyNW1hV2NvWEc0Z0lDQWdJQ0JyWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTG1Oc2FXVnVkQ3hjYmlBZ0lDQWdJRzkyWlhKeWFXUmxjeUEvUHlCN2ZWeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdZMnhwWlc1MFZWVkpSQ0E5WEc0Z0lDQWdJQ0JqYkdsbGJuUXVZMnhwWlc1MFZWVkpSQ0EvUDF4dUlDQWdJQ0FnS0dGM1lXbDBJSFJvYVhNdVoyVjBRMnhwWlc1MFZWVkpSQ2hjYmlBZ0lDQWdJQ0FnY21WaGJHMUJZMk5sYzNOVWIydGxiaXhjYmlBZ0lDQWdJQ0FnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnk1eVpXRnNiVUZ3YVZWelpYSWhMbkpsWVd4dExGeHVJQ0FnSUNBZ0lDQmpiR2xsYm5RdVkyeHBaVzUwU1dRc1hHNGdJQ0FnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBZ0lDa3BPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVjbVZ4ZFdWemRDaGNiaUFnSUNBZ0lGd2lVRlZVWENJc1hHNGdJQ0FnSUNCZ0wyRmtiV2x1TDNKbFlXeHRjeThrZTJ0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdWNtVmhiRzFCY0dsVmMyVnlQeTV5WldGc2JYMHZZMnhwWlc1MGN5OGtlMlZ1WTI5a1pWVlNTVU52YlhCdmJtVnVkQ2hqYkdsbGJuUlZWVWxFS1gxZ0xGeHVJQ0FnSUNBZ2NtVmhiRzFCWTJObGMzTlViMnRsYml4Y2JpQWdJQ0FnSUhSb2FYTXVZblZwYkdSRGJHbGxiblJRWVhsc2IyRmtLR05zYVdWdWRDa3NYRzRnSUNBZ0lDQXlNRFFzWEc0Z0lDQWdJQ0I3ZlN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWjJWMFEyeHBaVzUwVlZWSlJDaGNiaUFnSUNCaFkyTmxjM05VYjJ0bGJqb2djM1J5YVc1bkxGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJR05zYVdWdWRFbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeHpkSEpwYm1jK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aVoyVjBRMnhwWlc1MFZWVkpSRndpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVaMlYwUTJ4cFpXNTBWVlZKUkNrN1hHNGdJQ0FnWTI5dWMzUWdjbVZ6Y0c5dWMyVWdQU0JoZDJGcGRDQjBhR2x6TG5KbGNYVmxjM1FvWEc0Z0lDQWdJQ0JjSWtkRlZGd2lMRnh1SUNBZ0lDQWdZQzloWkcxcGJpOXlaV0ZzYlhNdkpIdHlaV0ZzYlU1aGJXVjlMMk5zYVdWdWRITS9ZMnhwWlc1MFNXUTlKSHRsYm1OdlpHVlZVa2xEYjIxd2IyNWxiblFvWTJ4cFpXNTBTV1FwZldBc1hHNGdJQ0FnSUNCaFkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lESXdNQ3hjYmlBZ0lDQWdJSHQ5TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1pHRjBZU0E5SUhSb2FYTXVjR0Z5YzJWS2MyOXVVbVZ6Y0c5dWMyVThRWEp5WVhrOGV5QnBaRDg2SUhOMGNtbHVaeUI5UGo0b2NtVnpjRzl1YzJVdVpHRjBZU2s3WEc0Z0lDQWdZMjl1YzNRZ1kyeHBaVzUwVlZWSlJDQTlJR1JoZEdFL0xsc3dYVDh1YVdRN1hHNGdJQ0FnYVdZZ0tHTnNhV1Z1ZEZWVlNVUXBJSEpsZEhWeWJpQmpiR2xsYm5SVlZVbEVPMXh1SUNBZ0lIUm9jbTkzSUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0dCVmJtRmliR1VnZEc4Z1oyVjBJRXRsZVdOc2IyRnJJRU5zYVdWdWRDQlZWVWxFT2lBa2UyTnNhV1Z1ZEVsa2ZXQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdZM0psWVhSbFEyeHBaVzUwVW05c1pYTW9YRzRnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp6b2dTMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeXhjYmlBZ0lDQnliMnhsUTI5dVptbG5jem9nUzJWNVkyeHZZV3REYkdsbGJuUlNiMnhsUTI5dVptbG5XMTBnZkNCMWJtUmxabWx1WldRc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbU55WldGMFpVTnNhV1Z1ZEZKdmJHVnpYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NWpjbVZoZEdWRGJHbGxiblJTYjJ4bGN5azdYRzRnSUNBZ1kyOXVjM1FnY205c1pYTWdQU0J5YjJ4bFEyOXVabWxuY3lBL1B5QnJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5MbU5zYVdWdWRDNXliMnhsY3lBL1B5QmJYVHRjYmlBZ0lDQmpiMjV6ZENCeVpXRnNiVUZqWTJWemMxUnZhMlZ1SUQwZ1lYZGhhWFFnZEdocGN5NW5aWFJTWldGc2JVRmpZMlZ6YzFSdmEyVnVLRnh1SUNBZ0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeXhjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdjbTlzWlNCdlppQnliMnhsY3lrZ2UxeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXlaWEYxWlhOMEtGeHVJQ0FnSUNBZ0lDQmNJbEJQVTFSY0lpeGNiaUFnSUNBZ0lDQWdZQzloWkcxcGJpOXlaV0ZzYlhNdkpIdHJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5MbkpsWVd4dFFYQnBWWE5sY2o4dWNtVmhiRzE5TDJOc2FXVnVkSE12Skh0clpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxtTnNhV1Z1ZEM1amJHbGxiblJWVlVsRWZTOXliMnhsYzJBc1hHNGdJQ0FnSUNBZ0lISmxZV3h0UVdOalpYTnpWRzlyWlc0c1hHNGdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0J1WVcxbE9pQnliMnhsTG5KdmJHVk9ZVzFsTEZ4dUlDQWdJQ0FnSUNBZ0lHUmxjMk55YVhCMGFXOXVPaUJ5YjJ4bExtUmxjMk55YVhCMGFXOXVJRDgvSUdCQmRYUnZMV055WldGMFpXUWdjbTlzWlNBa2UzSnZiR1V1Y205c1pVNWhiV1Y5WUN4Y2JpQWdJQ0FnSUNBZ0lDQmpiMjF3YjNOcGRHVTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQWdJR05zYVdWdWRGSnZiR1U2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSURJd01TeGNiaUFnSUNBZ0lDQWdlMzBzWEc0Z0lDQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCamNtVmhkR1ZJZEhSd1EyeHBaVzUwS0dOdmJtWnBaem9nUzJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnlrNklFRjRhVzl6U1c1emRHRnVZMlVnZTF4dUlDQWdJSEpsZEhWeWJpQkJlR2x2Y3k1amNtVmhkR1VvZTF4dUlDQWdJQ0FnWW1GelpWVlNURG9nWUNSN1kyOXVabWxuTG5CeWIzUnZZMjlzZlRvdkx5UjdZMjl1Wm1sbkxtaHZjM1I5WUN4Y2JpQWdJQ0FnSUdobFlXUmxjbk02SUhzZ1hDSkRiMjUwWlc1MExWUjVjR1ZjSWpvZ1hDSmhjSEJzYVdOaGRHbHZiaTlxYzI5dVhDSWdmU3hjYmlBZ0lDQWdJSFpoYkdsa1lYUmxVM1JoZEhWek9pQW9LU0E5UGlCMGNuVmxMRnh1SUNBZ0lDQWdhSFIwY0hOQloyVnVkRG9nYm1WM0lHaDBkSEJ6TGtGblpXNTBLSHRjYmlBZ0lDQWdJQ0FnY21WcVpXTjBWVzVoZFhSb2IzSnBlbVZrT2lBb2NtVnpiMngyWlV0bGVXTnNiMkZyU1hOUWNtOWtkV04wYVc5dUtIUm9hWE11WTI5dVptbG5JR0Z6SUdGdWVTa3BMRnh1SUNBZ0lDQWdmU2tzWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGemVXNWpJR2RsZEZKbFlXeHRRV05qWlhOelZHOXJaVzRvWEc0Z0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaem9nUzJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThjM1J5YVc1blBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQjBhR2x6TG1kbGRGSmxZV3h0UVdOalpYTnpWRzlyWlc0cE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtZGxkRUZqWTJWemMxUnZhMlZ1S0d0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdWNtVmhiRzFCY0dsVmMyVnlJU3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHRnplVzVqSUdkbGRFRmpZMlZ6YzFSdmEyVnVLRnh1SUNBZ0lHdGxlV05zYjJGclZYTmxjam9nUzJWNVkyeHZZV3RWYzJWeUxGeHVJQ0FnSUM0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHh6ZEhKcGJtYytJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdVoyVjBRV05qWlhOelZHOXJaVzRwTzF4dUlDQWdJR052Ym5OMElISmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTV5WlhGMVpYTjBLRnh1SUNBZ0lDQWdYQ0pRVDFOVVhDSXNYRzRnSUNBZ0lDQmdMM0psWVd4dGN5OGtlMnRsZVdOc2IyRnJWWE5sY2k1eVpXRnNiWDB2Y0hKdmRHOWpiMnd2YjNCbGJtbGtMV052Ym01bFkzUXZkRzlyWlc1Z0xGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ2JtVjNJRlZTVEZObFlYSmphRkJoY21GdGN5aDdYRzRnSUNBZ0lDQWdJR05zYVdWdWRGOXBaRG9nYTJWNVkyeHZZV3RWYzJWeUxtRndhVU5zYVdWdWRFbGtMRnh1SUNBZ0lDQWdJQ0IxYzJWeWJtRnRaVG9nYTJWNVkyeHZZV3RWYzJWeUxuVnpaWEp1WVcxbExGeHVJQ0FnSUNBZ0lDQndZWE56ZDI5eVpEb2dhMlY1WTJ4dllXdFZjMlZ5TG5CaGMzTjNiM0prTEZ4dUlDQWdJQ0FnSUNCbmNtRnVkRjkwZVhCbE9pQmNJbkJoYzNOM2IzSmtYQ0lzWEc0Z0lDQWdJQ0I5S1M1MGIxTjBjbWx1WnlncExGeHVJQ0FnSUNBZ01qQXdMRnh1SUNBZ0lDQWdleUJjSW1OdmJuUmxiblF0ZEhsd1pWd2lPaUJjSW1Gd2NHeHBZMkYwYVc5dUwzZ3RkM2QzTFdadmNtMHRkWEpzWlc1amIyUmxaRndpSUgwc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdJQ0JqYjI1emRDQmtZWFJoSUQwZ2RHaHBjeTV3WVhKelpVcHpiMjVTWlhOd2IyNXpaVHg3SUdGalkyVnpjMTkwYjJ0bGJqODZJSE4wY21sdVp5QjlQaWhjYmlBZ0lDQWdJSEpsYzNCdmJuTmxMbVJoZEdGY2JpQWdJQ0FwTzF4dUlDQWdJR2xtSUNoa1lYUmhQeTVoWTJObGMzTmZkRzlyWlc0cElISmxkSFZ5YmlCa1lYUmhMbUZqWTJWemMxOTBiMnRsYmp0Y2JpQWdJQ0IwYUhKdmR5QnVaWGNnUW1Ga1VtVnhkV1Z6ZEVWeWNtOXlLRnh1SUNBZ0lDQWdZRlZ1WVdKc1pTQjBieUJuWlhRZ1MyVjVZMnh2WVdzZ1lXTmpaWE56SUhSdmEyVnVJR1p2Y2lCMWMyVnlJQ1I3YTJWNVkyeHZZV3RWYzJWeUxuVnpaWEp1WVcxbGZXQmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQnViM0p0WVd4cGVtVkRiR2xsYm5SRGIyNW1hV2NvWEc0Z0lDQWdZbUZ6WlRvZ1MyVjVZMnh2WVd0RGJHbGxiblJEYjI1bWFXY3NYRzRnSUNBZ2IzWmxjbkpwWkdWek9pQlFZWEowYVdGc1BFdGxlV05zYjJGclEyeHBaVzUwUTI5dVptbG5QbHh1SUNBcE9pQkxaWGxqYkc5aGEwTnNhV1Z1ZEVOdmJtWnBaeUI3WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDNHVMbUpoYzJVc1hHNGdJQ0FnSUNBdUxpNXZkbVZ5Y21sa1pYTXNYRzRnSUNBZ0lDQnlaV1JwY21WamRGVnlhWE02SUc5MlpYSnlhV1JsY3k1eVpXUnBjbVZqZEZWeWFYTWdQejhnWW1GelpTNXlaV1JwY21WamRGVnlhWE1zWEc0Z0lDQWdJQ0IzWldKUGNtbG5hVzV6T2lCdmRtVnljbWxrWlhNdWQyVmlUM0pwWjJsdWN5QS9QeUJpWVhObExuZGxZazl5YVdkcGJuTXNYRzRnSUNBZ0lDQnliMnhsY3pvZ2IzWmxjbkpwWkdWekxuSnZiR1Z6SUQ4L0lHSmhjMlV1Y205c1pYTXNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZblZwYkdSRGJHbGxiblJRWVhsc2IyRmtLRnh1SUNBZ0lHTnNhV1Z1ZERvZ1MyVjVZMnh2WVd0RGJHbGxiblJEYjI1bWFXZGNiaUFnS1RvZ1VtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajRnZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQmpiR2xsYm5SSlpEb2dZMnhwWlc1MExtTnNhV1Z1ZEVsa0xGeHVJQ0FnSUNBZ2JtRnRaVG9nWTJ4cFpXNTBMbU5zYVdWdWRFNWhiV1VzWEc0Z0lDQWdJQ0JrWlhOamNtbHdkR2x2YmpvZ1kyeHBaVzUwTG1SbGMyTnlhWEIwYVc5dUxGeHVJQ0FnSUNBZ2NtOXZkRlZ5YkRvZ1kyeHBaVzUwTG5KdmIzUlZjbXdzWEc0Z0lDQWdJQ0JoWkcxcGJsVnliRG9nWTJ4cFpXNTBMbUZrYldsdVZYSnNMRnh1SUNBZ0lDQWdZbUZ6WlZWeWJEb2dZMnhwWlc1MExtSmhjMlZWY213c1hHNGdJQ0FnSUNCemRYSnliMmRoZEdWQmRYUm9VbVZ4ZFdseVpXUTZJR05zYVdWdWRDNXpkWEp5YjJkaGRHVkJkWFJvVW1WeGRXbHlaV1FnUHo4Z1ptRnNjMlVzWEc0Z0lDQWdJQ0JsYm1GaWJHVmtPaUJqYkdsbGJuUXVaVzVoWW14bFpDQS9QeUIwY25WbExGeHVJQ0FnSUNBZ1lXeDNZWGx6UkdsemNHeGhlVWx1UTI5dWMyOXNaVG9nWTJ4cFpXNTBMbUZzZDJGNWMwUnBjM0JzWVhsSmJrTnZibk52YkdVZ1B6OGdabUZzYzJVc1hHNGdJQ0FnSUNCamJHbGxiblJCZFhSb1pXNTBhV05oZEc5eVZIbHdaVG9nWENKamJHbGxiblF0YzJWamNtVjBYQ0lzWEc0Z0lDQWdJQ0J6WldOeVpYUTZJR05zYVdWdWRDNXpaV055WlhRc1hHNGdJQ0FnSUNCeVpXUnBjbVZqZEZWeWFYTTZJR05zYVdWdWRDNXlaV1JwY21WamRGVnlhWE1zWEc0Z0lDQWdJQ0IzWldKUGNtbG5hVzV6T2lCamJHbGxiblF1ZDJWaVQzSnBaMmx1Y3l4Y2JpQWdJQ0FnSUc1dmRFSmxabTl5WlRvZ1kyeHBaVzUwTG01dmRFSmxabTl5WlNBL1B5QXdMRnh1SUNBZ0lDQWdZbVZoY21WeVQyNXNlVG9nWTJ4cFpXNTBMbUpsWVhKbGNrOXViSGtnUHo4Z1ptRnNjMlVzWEc0Z0lDQWdJQ0JqYjI1elpXNTBVbVZ4ZFdseVpXUTZJR05zYVdWdWRDNWpiMjV6Wlc1MFVtVnhkV2x5WldRZ1B6OGdabUZzYzJVc1hHNGdJQ0FnSUNCemRHRnVaR0Z5WkVac2IzZEZibUZpYkdWa09pQmpiR2xsYm5RdWMzUmhibVJoY21SR2JHOTNSVzVoWW14bFpDQS9QeUIwY25WbExGeHVJQ0FnSUNBZ2FXMXdiR2xqYVhSR2JHOTNSVzVoWW14bFpEb2dZMnhwWlc1MExtbHRjR3hwWTJsMFJteHZkMFZ1WVdKc1pXUWdQejhnWm1Gc2MyVXNYRzRnSUNBZ0lDQmthWEpsWTNSQlkyTmxjM05IY21GdWRITkZibUZpYkdWa09pQmpiR2xsYm5RdVpHbHlaV04wUVdOalpYTnpSM0poYm5SelJXNWhZbXhsWkNBL1B5QjBjblZsTEZ4dUlDQWdJQ0FnYzJWeWRtbGpaVUZqWTI5MWJuUnpSVzVoWW14bFpEb2dZMnhwWlc1MExuTmxjblpwWTJWQlkyTnZkVzUwYzBWdVlXSnNaV1FnUHo4Z2RISjFaU3hjYmlBZ0lDQWdJR0YxZEdodmNtbDZZWFJwYjI1VFpYSjJhV05sYzBWdVlXSnNaV1E2SUdOc2FXVnVkQzVoZFhSb2IzSnBlbUYwYVc5dVUyVnlkbWxqWlhORmJtRmliR1ZrSUQ4L0lIUnlkV1VzWEc0Z0lDQWdJQ0J3ZFdKc2FXTkRiR2xsYm5RNklHTnNhV1Z1ZEM1d2RXSnNhV05EYkdsbGJuUWdQejhnWm1Gc2MyVXNYRzRnSUNBZ0lDQm1jbTl1ZEdOb1lXNXVaV3hNYjJkdmRYUTZJR05zYVdWdWRDNW1jbTl1ZEdOb1lXNXVaV3hNYjJkdmRYUWdQejhnZEhKMVpTeGNiaUFnSUNBZ0lIQnliM1J2WTI5c09pQmpiR2xsYm5RdWNISnZkRzlqYjJ3Z1B6OGdYQ0p2Y0dWdWFXUXRZMjl1Ym1WamRGd2lMRnh1SUNBZ0lDQWdZWFIwY21saWRYUmxjem9nWTJ4cFpXNTBMbUYwZEhKcFluVjBaWE1nUHo4Z2V5QmNJbUZqWTJWemN5NTBiMnRsYmk1c2FXWmxjM0JoYmx3aU9pQmNJak13TUZ3aUlIMHNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZWE41Ym1NZ2NtVnhkV1Z6ZENoY2JpQWdJQ0J0WlhSb2IyUTZJRndpUjBWVVhDSWdmQ0JjSWxCUFUxUmNJaUI4SUZ3aVVGVlVYQ0lnZkNCY0lrUkZURVZVUlZ3aUxGeHVJQ0FnSUhCaGRHZzZJSE4wY21sdVp5eGNiaUFnSUNCaFkyTmxjM05VYjJ0bGJqb2djM1J5YVc1bklId2dkVzVrWldacGJtVmtMRnh1SUNBZ0lIQmhlV3h2WVdRNklIVnVhMjV2ZDI0c1hHNGdJQ0FnYzNWalkyVnpjME52WkdVNklHNTFiV0psY2l4Y2JpQWdJQ0JvWldGa1pYSnpPaUJTWldOdmNtUThjM1J5YVc1bkxDQnpkSEpwYm1jK0xGeHVJQ0FnSUM0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHhoYm5rK0lIdGNiaUFnSUNCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCMGFHbHpMbkpsY1hWbGMzUXBPMXh1SUNBZ0lHTnZibk4wSUhKbGMzQnZibk5sSUQwZ1lYZGhhWFFnZEdocGN5NWpiR2xsYm5RdWNtVnhkV1Z6ZENoN1hHNGdJQ0FnSUNCdFpYUm9iMlFzWEc0Z0lDQWdJQ0IxY213NklHQWtlM1JvYVhNdVkyOXVabWxuTG5CeWIzUnZZMjlzZlRvdkx5UjdkR2hwY3k1amIyNW1hV2N1YUc5emRIMGtlM0JoZEdoOVlDeGNiaUFnSUNBZ0lHUmhkR0U2WEc0Z0lDQWdJQ0FnSUhCaGVXeHZZV1FnUFQwOUlIVnVaR1ZtYVc1bFpGeHVJQ0FnSUNBZ0lDQWdJRDhnZFc1a1pXWnBibVZrWEc0Z0lDQWdJQ0FnSUNBZ09pQjBlWEJsYjJZZ2NHRjViRzloWkNBOVBUMGdYQ0p6ZEhKcGJtZGNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QndZWGxzYjJGa1hHNGdJQ0FnSUNBZ0lDQWdJQ0E2SUVwVFQwNHVjM1J5YVc1bmFXWjVLSEJoZVd4dllXUXBMRnh1SUNBZ0lDQWdhR1ZoWkdWeWN6b2dlMXh1SUNBZ0lDQWdJQ0F1TGk1b1pXRmtaWEp6TEZ4dUlDQWdJQ0FnSUNBdUxpNG9ZV05qWlhOelZHOXJaVzRnUHlCN0lFRjFkR2h2Y21sNllYUnBiMjQ2SUdCQ1pXRnlaWElnSkh0aFkyTmxjM05VYjJ0bGJuMWdJSDBnT2lCN2ZTa3NYRzRnSUNBZ0lDQWdJQzR1TGlod1lYbHNiMkZrSUNFOVBTQjFibVJsWm1sdVpXUWdKaVlnZEhsd1pXOW1JSEJoZVd4dllXUWdJVDA5SUZ3aWMzUnlhVzVuWENKY2JpQWdJQ0FnSUNBZ0lDQS9JSHNnWENKRGIyNTBaVzUwTFZSNWNHVmNJam9nWENKaGNIQnNhV05oZEdsdmJpOXFjMjl1WENJZ2ZWeHVJQ0FnSUNBZ0lDQWdJRG9nZTMwcExGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lHaDBkSEJ6UVdkbGJuUTZJRzVsZHlCb2RIUndjeTVCWjJWdWRDaDdYRzRnSUNBZ0lDQWdJSEpsYW1WamRGVnVZWFYwYUc5eWFYcGxaRG9nS0hKbGMyOXNkbVZMWlhsamJHOWhhMGx6VUhKdlpIVmpkR2x2YmloMGFHbHpMbU52Ym1acFp5QmhjeUJoYm5rcEtTeGNiaUFnSUNBZ0lIMHBMRnh1SUNBZ0lDQWdkbUZzYVdSaGRHVlRkR0YwZFhNNklDZ3BJRDArSUhSeWRXVXNYRzRnSUNBZ2ZTazdYRzRnSUNBZ2FXWWdLSEpsYzNCdmJuTmxMbk4wWVhSMWN5QWhQVDBnYzNWalkyVnpjME52WkdVcElIdGNiaUFnSUNBZ0lIUm9hWE11YUdGdVpHeGxTSFIwY0ZKbGMzQnZibk5sS0hKbGMzQnZibk5sTENCemRXTmpaWE56UTI5a1pTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ5WlhOd2IyNXpaVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYUdGdVpHeGxTSFIwY0ZKbGMzQnZibk5sS0Z4dUlDQWdJSEpsYzNCdmJuTmxPaUJoYm5rc1hHNGdJQ0FnYzNWalkyVnpjME52WkdVNklHNTFiV0psY2l4Y2JpQWdJQ0JsY25KdmNrMXpaejg2SUhOMGNtbHVaMXh1SUNBcE9pQjJiMmxrSUh0Y2JpQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdaWEp5YjNKTmMyZGNiaUFnSUNBZ0lEOGdZQ1I3WlhKeWIzSk5jMmQ5T2lCRmVIQmxZM1JsWkNBa2UzTjFZMk5sYzNORGIyUmxmU3dnY21WalpXbDJaV1FnSkh0eVpYTndiMjV6WlM1emRHRjBkWE45T2lBa2UzSmxjM0J2Ym5ObExuTjBZWFIxYzFSbGVIUjlMbUJjYmlBZ0lDQWdJRG9nWUVWNGNHVmpkR1ZrSUNSN2MzVmpZMlZ6YzBOdlpHVjlMQ0J5WldObGFYWmxaQ0FrZTNKbGMzQnZibk5sTG5OMFlYUjFjMzA2SUNSN2NtVnpjRzl1YzJVdWMzUmhkSFZ6VkdWNGRIMWdPMXh1SUNBZ0lHTnZibk4wSUhOMFlYUjFjeUE5SUhKbGMzQnZibk5sTG5OMFlYUjFjeUJoY3lCdWRXMWlaWEk3WEc0Z0lDQWdhV1lnS0hOMFlYUjFjeUE5UFQwZ05EQTBJSHg4SUcxbGMzTmhaMlV1ZEc5TWIzZGxja05oYzJVb0tTNXBibU5zZFdSbGN5aGNJbTV2ZENCbWIzVnVaRndpS1NrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2h6ZEdGMGRYTWdQVDA5SURRd09TQjhmQ0J0WlhOellXZGxMblJ2VEc5M1pYSkRZWE5sS0NrdWFXNWpiSFZrWlhNb1hDSmpiMjVtYkdsamRGd2lLU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVOdmJtWnNhV04wUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHpkR0YwZFhNZ1BUMDlJRFF3TUNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0hOMFlYUjFjeUE5UFQwZ05EQXhJSHg4SUhOMFlYUjFjeUE5UFQwZ05EQXpLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNGdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnY0dGeWMyVkZjbkp2Y2lobGNuSnZjam9nUlhKeWIzSXBPaUJGY25KdmNpQjdYRzRnSUNBZ1kyOXVjM1FnYldWemMyRm5aU0E5SUdWeWNtOXlMbTFsYzNOaFoyVWdmSHdnWlhKeWIzSXVibUZ0WlNCOGZDQmNJbFZ1YTI1dmQyNGdaWEp5YjNKY0lqdGNiaUFnSUNCamIyNXpkQ0JzYjNkbGNrMWxjM05oWjJVZ1BTQnRaWE56WVdkbExuUnZURzkzWlhKRFlYTmxLQ2s3WEc1Y2JpQWdJQ0JwWmlBb2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpYm05MElHWnZkVzVrWENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0lqUXdORndpS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0poYkhKbFlXUjVJR1Y0YVhOMGMxd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0pqYjI1bWJHbGpkRndpS1NCOGZDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENJME1EbGNJaWtwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1EyOXVabXhwWTNSRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lhVzUyWVd4cFpGd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0ppWVdRZ2NtVnhkV1Z6ZEZ3aUtTQjhmQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSTBNREJjSWlrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dRbUZrVW1WeGRXVnpkRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKMWJtRjFkR2h2Y21sNlpXUmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpTkRBeFhDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUU1dmRFWnZkVzVrUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltWnZjbUpwWkdSbGJsd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0kwTUROY0lpa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdWNGRISmhZM1JWVlVsRVpuSnZiVkpsYzNCdmJuTmxLSEpsYzNCdmJuTmxPaUJoYm5rcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdOdmJuTjBJR3h2WTJGMGFXOXVJRDBnY21WemNHOXVjMlV1YUdWaFpHVnljeTVzYjJOaGRHbHZiaUJoY3lCemRISnBibWNnZkNCMWJtUmxabWx1WldRN1hHNGdJQ0FnYVdZZ0tDRnNiMk5oZEdsdmJpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lGd2lTMlY1WTJ4dllXc2djbVZ6Y0c5dWMyVWdaR2xrSUc1dmRDQnBibU5zZFdSbElHRWdiRzlqWVhScGIyNGdhR1ZoWkdWeVhDSmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJzYjJOaGRHbHZiaTV6Y0d4cGRDaGNJaTljSWlrdWNHOXdLQ2tnUHo4Z1hDSmNJanRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnY0dGeWMyVktjMjl1VW1WemNHOXVjMlU4VkQ0b1pHRjBZVG9nZFc1cmJtOTNiaWs2SUZRZ2ZDQjFibVJsWm1sdVpXUWdlMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdaR0YwWVNBOVBUMGdYQ0p6ZEhKcGJtZGNJaWtnZTF4dUlDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlFcFRUMDR1Y0dGeWMyVW9aR0YwWVNrZ1lYTWdWRHRjYmlBZ0lDQWdJSDBnWTJGMFkyZ2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWkdGMFlTQmhjeUJVTzF4dUlDQjlYRzU5WEc0aVhYMD0iXX0=
|
|
@@ -228,5 +228,5 @@ class KeycloakIdentityProviderService extends core_1.ClientBasedService {
|
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
exports.KeycloakIdentityProviderService = KeycloakIdentityProviderService;
|
|
231
|
-
//# sourceMappingURL=KeycloakIdentityProviderService.js.map
|
|
232
|
-
//# sourceMappingURL=KeycloakIdentityProviderService.cjs.map
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9rZXljbG9hay9zZXJ2aWNlcy9LZXljbG9ha0lkZW50aXR5UHJvdmlkZXJTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU1wRCxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBQzdDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxxQkFBa0I7QUFFeEQsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGtCQUdwRDtJQUNDLEtBQUssQ0FBQyxVQUFVLENBQ2QsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQzVDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUF3QixDQUFDO1FBQ2pELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQzFCLG1CQUF3QyxFQUN4QyxTQUE4RCxFQUM5RCxHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFLElBQUksQ0FBQyxDQUN4RCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNuQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUNyRCxtQkFBbUIsRUFDbkIsR0FBRyxPQUFPLENBQ1gsQ0FBQztRQUNGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUMzRCxtQkFBbUIsQ0FBQyxnQkFBaUIsRUFDckMsU0FBUyxJQUFJLEVBQUUsQ0FDaEIsQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FDaEIsTUFBTSxFQUNOLGlCQUFpQixtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyw4QkFBOEIsRUFDdEYsZ0JBQWdCLEVBQ2hCLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNuRCxHQUFHLEVBQ0gsRUFBRSxFQUNGLEdBQUcsT0FBTyxDQUNYLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLHNCQUFzQixDQUMxQixtQkFBd0MsRUFDeEMsU0FBOEQsRUFDOUQsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRSxJQUFJLENBQUMsQ0FDeEQsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbkMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FDckQsbUJBQW1CLEVBQ25CLEdBQUcsT0FBTyxDQUNYLENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FDM0QsbUJBQW1CLENBQUMsZ0JBQWlCLEVBQ3JDLFNBQVMsSUFBSSxFQUFFLENBQ2hCLENBQUM7UUFDRixNQUFNLElBQUksQ0FBQyxPQUFPLENBQ2hCLEtBQUssRUFDTCxpQkFBaUIsbUJBQW1CLENBQUMsWUFBWSxFQUFFLEtBQUssZ0NBQWdDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQ3BJLGdCQUFnQixFQUNoQixJQUFJLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLENBQUMsRUFDbkQsR0FBRyxFQUNILEVBQUUsRUFDRixHQUFHLE9BQU8sQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyw2QkFBNkIsQ0FDakMsbUJBQXdDLEVBQ3hDLFdBQThCLEVBQzlCLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsK0JBQStCLEVBQUUsSUFBSSxDQUFDLENBQy9ELENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sS0FBSyxHQUFHLFdBQVcsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwRSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUNyRCxtQkFBbUIsRUFDbkIsR0FBRyxPQUFPLENBQ1gsQ0FBQztRQUNGLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWlCLENBQUM7UUFDL0QsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksQ0FBQyxPQUFPLENBQ2hCLE1BQU0sRUFDTixpQkFBaUIsbUJBQW1CLENBQUMsWUFBWSxFQUFFLEtBQUssZ0NBQWdDLGdCQUFnQixDQUFDLEtBQUssVUFBVSxFQUN4SCxnQkFBZ0IsRUFDaEI7Z0JBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUNuQixxQkFBcUIsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO2dCQUM3QyxzQkFBc0IsRUFBRSxzQkFBc0I7Z0JBQzlDLE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsY0FBYyxJQUFJLE9BQU87b0JBQ3BELEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlLElBQUksUUFBUTtvQkFDbkQsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVO29CQUM5QixJQUFJLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7aUJBQ2hFO2FBQ0YsRUFDRCxHQUFHLEVBQ0gsRUFBRSxFQUNGLEdBQUcsT0FBTyxDQUNYLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQTJCO1FBQ2xELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNsQixPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxNQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDOUMsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFO1lBQy9DLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1lBQzFCLFVBQVUsRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLGtCQUFrQixFQUFFLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE1BQWEsQ0FBQyxDQUFDO2FBQ3RFLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLG1CQUFtQixDQUMvQixtQkFBd0MsRUFDeEMsR0FBRyxJQUF5QjtRQUU1QixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLFlBQWEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTyxLQUFLLENBQUMsY0FBYyxDQUMxQixZQUEwQixFQUMxQixHQUFHLElBQXlCO1FBRTVCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUNqQyxNQUFNLEVBQ04sV0FBVyxZQUFZLENBQUMsS0FBSyxnQ0FBZ0MsRUFDN0QsU0FBUyxFQUNULElBQUksZUFBZSxDQUFDO1lBQ2xCLFNBQVMsRUFBRSxZQUFZLENBQUMsV0FBVztZQUNuQyxRQUFRLEVBQUUsWUFBWSxDQUFDLFFBQVE7WUFDL0IsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRO1lBQy9CLFVBQVUsRUFBRSxVQUFVO1NBQ3ZCLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFDYixHQUFHLEVBQ0gsRUFBRSxjQUFjLEVBQUUsbUNBQW1DLEVBQUUsRUFDdkQsR0FBRyxPQUFPLENBQ1gsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FDakMsUUFBUSxDQUFDLElBQUksQ0FDZCxDQUFDO1FBQ0YsSUFBSSxJQUFJLEVBQUUsWUFBWTtZQUFFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNqRCxNQUFNLElBQUksZUFBZSxDQUN2QixnREFBZ0QsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUN4RSxDQUFDO0lBQ0osQ0FBQztJQUVPLCtCQUErQixDQUNyQyxJQUFvQyxFQUNwQyxTQUFrRDtRQUVsRCxPQUFPO1lBQ0wsR0FBRyxJQUFJO1lBQ1AsR0FBRyxTQUFTO1lBQ1osTUFBTSxFQUFFO2dCQUNOLEdBQUcsSUFBSSxDQUFDLE1BQU07Z0JBQ2QsR0FBRyxTQUFTLENBQUMsTUFBTTthQUNwQjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sNEJBQTRCLENBQ2xDLGdCQUFnRDtRQUVoRCxPQUFPO1lBQ0wsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDN0IsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7WUFDekMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFVBQVUsSUFBSSxNQUFNO1lBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLElBQUksSUFBSTtZQUN6QywyQkFBMkIsRUFDekIsZ0JBQWdCLENBQUMsMkJBQTJCLElBQUksSUFBSTtZQUN0RCxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsVUFBVSxJQUFJLEtBQUs7WUFDaEQsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFVBQVUsSUFBSSxLQUFLO1lBQ2hELHdCQUF3QixFQUFFLEtBQUs7WUFDL0IscUJBQXFCLEVBQUUsS0FBSztZQUM1QixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxJQUFJLEtBQUs7WUFDNUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVcsSUFBSSxLQUFLO1lBQ2xELE1BQU0sRUFBRTtnQkFDTixXQUFXLEVBQUUsMkNBQTJDO2dCQUN4RCxpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixRQUFRLEVBQUUscUNBQXFDLGdCQUFnQixDQUFDLFFBQVEsb0JBQW9CO2dCQUM1RixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtnQkFDbkMsT0FBTyxFQUFFLHFDQUFxQyxnQkFBZ0IsQ0FBQyxRQUFRLHNCQUFzQjtnQkFDN0YsTUFBTSxFQUFFLHFDQUFxQyxnQkFBZ0IsQ0FBQyxRQUFRLE9BQU87Z0JBQzdFLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixXQUFXLEVBQUUsS0FBSztnQkFDbEIscUJBQXFCLEVBQUUscUNBQXFDLGdCQUFnQixDQUFDLFFBQVEsd0NBQXdDO2dCQUM3SCxnQkFBZ0IsRUFBRSxxQ0FBcUMsZ0JBQWdCLENBQUMsUUFBUSx3QkFBd0I7Z0JBQ3hHLGdCQUFnQixFQUFFLG9CQUFvQjtnQkFDdEMsU0FBUyxFQUFFLHFDQUFxQyxnQkFBZ0IsQ0FBQyxRQUFRLHFCQUFxQjtnQkFDOUYsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsSUFBSSxRQUFRO2dCQUMvQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsWUFBWTtnQkFDM0MsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNO2FBQzNCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBTyxDQUNuQixNQUF5QyxFQUN6QyxJQUFZLEVBQ1osV0FBK0IsRUFDL0IsT0FBZ0IsRUFDaEIsV0FBbUIsRUFDbkIsT0FBK0IsRUFDL0IsR0FBRyxJQUF5QjtRQUU1QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUN6QyxNQUFNO1lBQ04sR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFO1lBQzNELElBQUksRUFDRixPQUFPLEtBQUssU0FBUztnQkFDbkIsQ0FBQyxDQUFDLFNBQVM7Z0JBQ1gsQ0FBQyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVE7b0JBQzNCLENBQUMsQ0FBQyxPQUFPO29CQUNULENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUMvQixPQUFPLEVBQUU7Z0JBQ1AsR0FBRyxPQUFPO2dCQUNWLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLFVBQVUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNsRSxHQUFHLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRO29CQUN0RCxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUU7b0JBQ3hDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDUjtZQUNELFVBQVUsRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLGtCQUFrQixFQUFFLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE1BQWEsQ0FBQyxDQUFDO2FBQ3RFLENBQUM7WUFDRixjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtTQUMzQixDQUFDLENBQUM7UUFDSCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFFBQWEsRUFBRSxXQUFtQjtRQUMzRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBZ0IsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxZQUFZLFdBQVcsY0FBYyxRQUFRLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvRixJQUFJLE1BQU0sS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2xFLE1BQU0sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksTUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDakUsTUFBTSxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsSUFBSSxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxNQUFNLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFUyxVQUFVLENBQUMsS0FBWTtRQUMvQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksZUFBZSxDQUFDO1FBQy9ELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUzQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pILE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3RyxPQUFPLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFFLE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkUsT0FBTyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsT0FBTyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8saUJBQWlCLENBQUksSUFBYTtRQUN4QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQztnQkFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFNLENBQUM7WUFDL0IsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb250ZXh0dWFsQXJncywgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB0eXBlIHtcbiAgS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyQ29uZmlnLFxuICBLZXljbG9ha1NldHVwQ29uZmlnLFxuICBLZXljbG9ha1VzZXIsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IEF4aW9zLCB7IEF4aW9zSW5zdGFuY2UgfSBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5pbXBvcnQgeyByZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24gfSBmcm9tIFwiLi9ydW50aW1lXCI7XG5cbmV4cG9ydCBjbGFzcyBLZXljbG9ha0lkZW50aXR5UHJvdmlkZXJTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlPFxuICBBeGlvc0luc3RhbmNlLFxuICBLZXljbG9ha1NldHVwQ29uZmlnXG4+IHtcbiAgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHsgY29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnOyBjbGllbnQ6IEF4aW9zSW5zdGFuY2UgfT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJpbml0aWFsaXplXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5pbml0aWFsaXplKTtcbiAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdIGFzIEtleWNsb2FrU2V0dXBDb25maWc7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChjb25maWcpO1xuICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlSWRlbnRpdHlQcm92aWRlcihcbiAgICBrZXljbG9ha1NldHVwQ29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnLFxuICAgIG92ZXJyaWRlczogUGFydGlhbDxLZXljbG9ha0lkZW50aXR5UHJvdmlkZXJDb25maWc+IHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVJZGVudGl0eVByb3ZpZGVyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVJZGVudGl0eVByb3ZpZGVyKTtcbiAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGlkZW50aXR5UHJvdmlkZXIgPSB0aGlzLm5vcm1hbGl6ZUlkZW50aXR5UHJvdmlkZXJDb25maWcoXG4gICAgICBrZXljbG9ha1NldHVwQ29uZmlnLmlkZW50aXR5UHJvdmlkZXIhLFxuICAgICAgb3ZlcnJpZGVzID8/IHt9XG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGAvYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXI/LnJlYWxtfS9pZGVudGl0eS1wcm92aWRlci9pbnN0YW5jZXNgLFxuICAgICAgcmVhbG1BY2Nlc3NUb2tlbixcbiAgICAgIHRoaXMuYnVpbGRJZGVudGl0eVByb3ZpZGVyUGF5bG9hZChpZGVudGl0eVByb3ZpZGVyKSxcbiAgICAgIDIwMSxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVJZGVudGl0eVByb3ZpZGVyKFxuICAgIGtleWNsb2FrU2V0dXBDb25maWc6IEtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPEtleWNsb2FrSWRlbnRpdHlQcm92aWRlckNvbmZpZz4gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZUlkZW50aXR5UHJvdmlkZXJcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnVwZGF0ZUlkZW50aXR5UHJvdmlkZXIpO1xuICAgIGNvbnN0IHJlYWxtQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4oXG4gICAgICBrZXljbG9ha1NldHVwQ29uZmlnLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgaWRlbnRpdHlQcm92aWRlciA9IHRoaXMubm9ybWFsaXplSWRlbnRpdHlQcm92aWRlckNvbmZpZyhcbiAgICAgIGtleWNsb2FrU2V0dXBDb25maWcuaWRlbnRpdHlQcm92aWRlciEsXG4gICAgICBvdmVycmlkZXMgPz8ge31cbiAgICApO1xuICAgIGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUFVUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke2tleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyPy5yZWFsbX0vaWRlbnRpdHktcHJvdmlkZXIvaW5zdGFuY2VzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGlkZW50aXR5UHJvdmlkZXIuYWxpYXMpfWAsXG4gICAgICByZWFsbUFjY2Vzc1Rva2VuLFxuICAgICAgdGhpcy5idWlsZElkZW50aXR5UHJvdmlkZXJQYXlsb2FkKGlkZW50aXR5UHJvdmlkZXIpLFxuICAgICAgMjA0LFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUlkZW50aXR5UHJvdmlkZXJNYXBwZXJzKFxuICAgIGtleWNsb2FrU2V0dXBDb25maWc6IEtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgcm9sZUNvbmZpZ3M6IGFueVtdIHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVJZGVudGl0eVByb3ZpZGVyTWFwcGVyc1wiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlSWRlbnRpdHlQcm92aWRlck1hcHBlcnMpO1xuICAgIGNvbnN0IHJvbGVzID0gcm9sZUNvbmZpZ3MgPz8ga2V5Y2xvYWtTZXR1cENvbmZpZy5jbGllbnQucm9sZXMgPz8gW107XG4gICAgY29uc3QgcmVhbG1BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0UmVhbG1BY2Nlc3NUb2tlbihcbiAgICAgIGtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBjb25zdCBpZGVudGl0eVByb3ZpZGVyID0ga2V5Y2xvYWtTZXR1cENvbmZpZy5pZGVudGl0eVByb3ZpZGVyITtcbiAgICBmb3IgKGNvbnN0IHJvbGUgb2Ygcm9sZXMpIHtcbiAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgICAgXCJQT1NUXCIsXG4gICAgICAgIGAvYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXI/LnJlYWxtfS9pZGVudGl0eS1wcm92aWRlci9pbnN0YW5jZXMvJHtpZGVudGl0eVByb3ZpZGVyLmFsaWFzfS9tYXBwZXJzYCxcbiAgICAgICAgcmVhbG1BY2Nlc3NUb2tlbixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IHJvbGUucm9sZU5hbWUsXG4gICAgICAgICAgaWRlbnRpdHlQcm92aWRlckFsaWFzOiBpZGVudGl0eVByb3ZpZGVyLmFsaWFzLFxuICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJNYXBwZXI6IFwib2lkYy1yb2xlLWlkcC1tYXBwZXJcIixcbiAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgIHN5bmNNb2RlOiBpZGVudGl0eVByb3ZpZGVyLm1hcHBlclN5bmNNb2RlID8/IFwiRk9SQ0VcIixcbiAgICAgICAgICAgIGNsYWltOiBpZGVudGl0eVByb3ZpZGVyLm1hcHBlckNsYWltTmFtZSA/PyBcImdyb3Vwc1wiLFxuICAgICAgICAgICAgXCJjbGFpbS52YWx1ZVwiOiByb2xlLmNsYWltVmFsdWUsXG4gICAgICAgICAgICByb2xlOiBgJHtrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5jbGllbnRJZH0uJHtyb2xlLnJvbGVOYW1lfWAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgMjAxLFxuICAgICAgICB7fSxcbiAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnKTogQXhpb3NJbnN0YW5jZSB7XG4gICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24odGhpcy5jb25maWcgYXMgYW55KSksXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0UmVhbG1BY2Nlc3NUb2tlbihcbiAgICBrZXljbG9ha1NldHVwQ29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZ2V0UmVhbG1BY2Nlc3NUb2tlbik7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWNjZXNzVG9rZW4oa2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXIhLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWNjZXNzVG9rZW4oXG4gICAga2V5Y2xvYWtVc2VyOiBLZXljbG9ha1VzZXIsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5nZXRBY2Nlc3NUb2tlbik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGAvcmVhbG1zLyR7a2V5Y2xvYWtVc2VyLnJlYWxtfS9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbmAsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgY2xpZW50X2lkOiBrZXljbG9ha1VzZXIuYXBpQ2xpZW50SWQsXG4gICAgICAgIHVzZXJuYW1lOiBrZXljbG9ha1VzZXIudXNlcm5hbWUsXG4gICAgICAgIHBhc3N3b3JkOiBrZXljbG9ha1VzZXIucGFzc3dvcmQsXG4gICAgICAgIGdyYW50X3R5cGU6IFwicGFzc3dvcmRcIixcbiAgICAgIH0pLnRvU3RyaW5nKCksXG4gICAgICAyMDAsXG4gICAgICB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgfSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlPHsgYWNjZXNzX3Rva2VuPzogc3RyaW5nIH0+KFxuICAgICAgcmVzcG9uc2UuZGF0YVxuICAgICk7XG4gICAgaWYgKGRhdGE/LmFjY2Vzc190b2tlbikgcmV0dXJuIGRhdGEuYWNjZXNzX3Rva2VuO1xuICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IoXG4gICAgICBgVW5hYmxlIHRvIGdldCBLZXljbG9hayBhY2Nlc3MgdG9rZW4gZm9yIHVzZXIgJHtrZXljbG9ha1VzZXIudXNlcm5hbWV9YFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZUlkZW50aXR5UHJvdmlkZXJDb25maWcoXG4gICAgYmFzZTogS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyQ29uZmlnLFxuICAgIG92ZXJyaWRlczogUGFydGlhbDxLZXljbG9ha0lkZW50aXR5UHJvdmlkZXJDb25maWc+XG4gICk6IEtleWNsb2FrSWRlbnRpdHlQcm92aWRlckNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmJhc2UsXG4gICAgICAuLi5vdmVycmlkZXMsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgLi4uYmFzZS5jb25maWcsXG4gICAgICAgIC4uLm92ZXJyaWRlcy5jb25maWcsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkSWRlbnRpdHlQcm92aWRlclBheWxvYWQoXG4gICAgaWRlbnRpdHlQcm92aWRlcjogS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyQ29uZmlnXG4gICk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICByZXR1cm4ge1xuICAgICAgYWxpYXM6IGlkZW50aXR5UHJvdmlkZXIuYWxpYXMsXG4gICAgICBkaXNwbGF5TmFtZTogaWRlbnRpdHlQcm92aWRlci5kaXNwbGF5TmFtZSxcbiAgICAgIHByb3ZpZGVySWQ6IGlkZW50aXR5UHJvdmlkZXIucHJvdmlkZXJJZCA/PyBcIm9pZGNcIixcbiAgICAgIGVuYWJsZWQ6IGlkZW50aXR5UHJvdmlkZXIuZW5hYmxlZCA/PyB0cnVlLFxuICAgICAgdXBkYXRlUHJvZmlsZUZpcnN0TG9naW5Nb2RlOlxuICAgICAgICBpZGVudGl0eVByb3ZpZGVyLnVwZGF0ZVByb2ZpbGVGaXJzdExvZ2luTW9kZSA/PyBcIm9uXCIsXG4gICAgICB0cnVzdEVtYWlsOiBpZGVudGl0eVByb3ZpZGVyLnRydXN0RW1haWwgPz8gZmFsc2UsXG4gICAgICBzdG9yZVRva2VuOiBpZGVudGl0eVByb3ZpZGVyLnN0b3JlVG9rZW4gPz8gZmFsc2UsXG4gICAgICBhZGRSZWFkVG9rZW5Sb2xlT25DcmVhdGU6IGZhbHNlLFxuICAgICAgYXV0aGVudGljYXRlQnlEZWZhdWx0OiBmYWxzZSxcbiAgICAgIGxpbmtPbmx5OiBpZGVudGl0eVByb3ZpZGVyLmxpbmtPbmx5ID8/IGZhbHNlLFxuICAgICAgaGlkZU9uTG9naW46IGlkZW50aXR5UHJvdmlkZXIuaGlkZU9uTG9naW4gPz8gZmFsc2UsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgdXNlckluZm9Vcmw6IFwiaHR0cHM6Ly9ncmFwaC5taWNyb3NvZnQuY29tL29pZGMvdXNlcmluZm9cIixcbiAgICAgICAgdmFsaWRhdGVTaWduYXR1cmU6IHRydWUsXG4gICAgICAgIHRva2VuVXJsOiBgaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tLyR7aWRlbnRpdHlQcm92aWRlci50ZW5hbnRJZH0vb2F1dGgyL3YyLjAvdG9rZW5gLFxuICAgICAgICBjbGllbnRJZDogaWRlbnRpdHlQcm92aWRlci5jbGllbnRJZCxcbiAgICAgICAgandrc1VybDogYGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS8ke2lkZW50aXR5UHJvdmlkZXIudGVuYW50SWR9L2Rpc2NvdmVyeS92Mi4wL2tleXNgLFxuICAgICAgICBpc3N1ZXI6IGBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vJHtpZGVudGl0eVByb3ZpZGVyLnRlbmFudElkfS92Mi4wYCxcbiAgICAgICAgdXNlSndrc1VybDogdHJ1ZSxcbiAgICAgICAgcGtjZUVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICBtZXRhZGF0YURlc2NyaXB0b3JVcmw6IGBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vJHtpZGVudGl0eVByb3ZpZGVyLnRlbmFudElkfS92Mi4wLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uYCxcbiAgICAgICAgYXV0aG9yaXphdGlvblVybDogYGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS8ke2lkZW50aXR5UHJvdmlkZXIudGVuYW50SWR9L29hdXRoMi92Mi4wL2F1dGhvcml6ZWAsXG4gICAgICAgIGNsaWVudEF1dGhNZXRob2Q6IFwiY2xpZW50X3NlY3JldF9wb3N0XCIsXG4gICAgICAgIGxvZ291dFVybDogYGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS8ke2lkZW50aXR5UHJvdmlkZXIudGVuYW50SWR9L29hdXRoMi92Mi4wL2xvZ291dGAsXG4gICAgICAgIHN5bmNNb2RlOiBpZGVudGl0eVByb3ZpZGVyLnN5bmNNb2RlID8/IFwiTEVHQUNZXCIsXG4gICAgICAgIGNsaWVudFNlY3JldDogaWRlbnRpdHlQcm92aWRlci5jbGllbnRTZWNyZXQsXG4gICAgICAgIC4uLmlkZW50aXR5UHJvdmlkZXIuY29uZmlnLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXF1ZXN0KFxuICAgIG1ldGhvZDogXCJHRVRcIiB8IFwiUE9TVFwiIHwgXCJQVVRcIiB8IFwiREVMRVRFXCIsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcGF5bG9hZDogdW5rbm93bixcbiAgICBzdWNjZXNzQ29kZTogbnVtYmVyLFxuICAgIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVxdWVzdCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5yZXF1ZXN0KHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIHVybDogYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fSR7cGF0aH1gLFxuICAgICAgZGF0YTpcbiAgICAgICAgcGF5bG9hZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICA6IHR5cGVvZiBwYXlsb2FkID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IHBheWxvYWRcbiAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICAgIC4uLihhY2Nlc3NUb2tlbiA/IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAgfSA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgcGF5bG9hZCAhPT0gXCJzdHJpbmdcIlxuICAgICAgICAgID8geyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9LFxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtleWNsb2FrSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnIGFzIGFueSkpLFxuICAgICAgfSksXG4gICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICB9KTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSBzdWNjZXNzQ29kZSkge1xuICAgICAgdGhpcy5oYW5kbGVIdHRwUmVzcG9uc2UocmVzcG9uc2UsIHN1Y2Nlc3NDb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVIdHRwUmVzcG9uc2UocmVzcG9uc2U6IGFueSwgc3VjY2Vzc0NvZGU6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cyBhcyBudW1iZXI7XG4gICAgY29uc3QgbWVzc2FnZSA9IGBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgICBpZiAoc3RhdHVzID09PSA0MDQgfHwgbWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gNDA5IHx8IG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSA0MDEgfHwgc3RhdHVzID09PSA0MDMpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUVycm9yKGVycm9yOiBFcnJvcik6IEVycm9yIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IubWVzc2FnZSB8fCBlcnJvci5uYW1lIHx8IFwiVW5rbm93biBlcnJvclwiO1xuICAgIGNvbnN0IGxvd2VyTWVzc2FnZSA9IG1lc3NhZ2UudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJub3QgZm91bmRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA0XCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImFscmVhZHkgZXhpc3RzXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwOVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJpbnZhbGlkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImJhZCByZXF1ZXN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcInVuYXV0aG9yaXplZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDFcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiZm9yYmlkZGVuXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwM1wiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VKc29uUmVzcG9uc2U8VD4oZGF0YTogdW5rbm93bik6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSkgYXMgVDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YSBhcyBUO1xuICB9XG59XG4iXX0=
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIktleWNsb2FrSWRlbnRpdHlQcm92aWRlclNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXdHO0FBQ3hHLHlDQUFvRDtBQUNwRCxrREFBMEI7QUFDMUIsa0RBQW9DO0FBQ3BDLDZDQUEyRDtBQUMzRCxNQUFhLCtCQUFnQyxTQUFRLHlCQUFrQjtJQUNuRSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTtRQUNwQixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkYsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSTtRQUNoRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQy9HLE1BQU0sZ0JBQWdCLEdBQUcs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Q0o7QUF4TEQsMEVBd0xDO0FBQ0Qsczd5QkFBczd5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhZFJlcXVlc3RFcnJvciwgQ29uZmxpY3RFcnJvciwgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciwgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IEF4aW9zIGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmltcG9ydCB7IHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbiB9IGZyb20gXCIuL3J1bnRpbWUuanNcIjtcbmV4cG9ydCBjbGFzcyBLZXljbG9ha0lkZW50aXR5UHJvdmlkZXJTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlIHtcbiAgICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJpbml0aWFsaXplXCIsIHRydWUpKS5mb3IodGhpcy5pbml0aWFsaXplKTtcbiAgICAgICAgY29uc3QgY29uZmlnID0gY3R4QXJnc1swXTtcbiAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgICAgICBjb25zdCBjbGllbnQgPSB0aGlzLmNyZWF0ZUh0dHBDbGllbnQoY29uZmlnKTtcbiAgICAgICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgICAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICAgIH1cbiAgICBhc3luYyBjcmVhdGVJZGVudGl0eVByb3ZpZGVyKGtleWNsb2FrU2V0dXBDb25maWcsIG92ZXJyaWRlcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZUlkZW50aXR5UHJvdmlkZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZUlkZW50aXR5UHJvdmlkZXIpO1xuICAgICAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBpZGVudGl0eVByb3ZpZGVyID0gdGhpcy5ub3JtYWxpemVJZGVudGl0eVByb3ZpZGVyQ29uZmlnKGtleWNsb2FrU2V0dXBDb25maWcuaWRlbnRpdHlQcm92aWRlciwgb3ZlcnJpZGVzID8/IHt9KTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUE9TVFwiLCBgL2FkbWluL3JlYWxtcy8ke2tleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyPy5yZWFsbX0vaWRlbnRpdHktcHJvdmlkZXIvaW5zdGFuY2VzYCwgcmVhbG1BY2Nlc3NUb2tlbiwgdGhpcy5idWlsZElkZW50aXR5UHJvdmlkZXJQYXlsb2FkKGlkZW50aXR5UHJvdmlkZXIpLCAyMDEsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgdXBkYXRlSWRlbnRpdHlQcm92aWRlcihrZXljbG9ha1NldHVwQ29uZmlnLCBvdmVycmlkZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ1cGRhdGVJZGVudGl0eVByb3ZpZGVyXCIsIHRydWUpKS5mb3IodGhpcy51cGRhdGVJZGVudGl0eVByb3ZpZGVyKTtcbiAgICAgICAgY29uc3QgcmVhbG1BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0UmVhbG1BY2Nlc3NUb2tlbihrZXljbG9ha1NldHVwQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgaWRlbnRpdHlQcm92aWRlciA9IHRoaXMubm9ybWFsaXplSWRlbnRpdHlQcm92aWRlckNvbmZpZyhrZXljbG9ha1NldHVwQ29uZmlnLmlkZW50aXR5UHJvdmlkZXIsIG92ZXJyaWRlcyA/PyB7fSk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIlBVVFwiLCBgL2FkbWluL3JlYWxtcy8ke2tleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyPy5yZWFsbX0vaWRlbnRpdHktcHJvdmlkZXIvaW5zdGFuY2VzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGlkZW50aXR5UHJvdmlkZXIuYWxpYXMpfWAsIHJlYWxtQWNjZXNzVG9rZW4sIHRoaXMuYnVpbGRJZGVudGl0eVByb3ZpZGVyUGF5bG9hZChpZGVudGl0eVByb3ZpZGVyKSwgMjA0LCB7fSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZUlkZW50aXR5UHJvdmlkZXJNYXBwZXJzKGtleWNsb2FrU2V0dXBDb25maWcsIHJvbGVDb25maWdzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlSWRlbnRpdHlQcm92aWRlck1hcHBlcnNcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZUlkZW50aXR5UHJvdmlkZXJNYXBwZXJzKTtcbiAgICAgICAgY29uc3Qgcm9sZXMgPSByb2xlQ29uZmlncyA/PyBrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5yb2xlcyA/PyBbXTtcbiAgICAgICAgY29uc3QgcmVhbG1BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0UmVhbG1BY2Nlc3NUb2tlbihrZXljbG9ha1NldHVwQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgaWRlbnRpdHlQcm92aWRlciA9IGtleWNsb2FrU2V0dXBDb25maWcuaWRlbnRpdHlQcm92aWRlcjtcbiAgICAgICAgZm9yIChjb25zdCByb2xlIG9mIHJvbGVzKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXCJQT1NUXCIsIGAvYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXI/LnJlYWxtfS9pZGVudGl0eS1wcm92aWRlci9pbnN0YW5jZXMvJHtpZGVudGl0eVByb3ZpZGVyLmFsaWFzfS9tYXBwZXJzYCwgcmVhbG1BY2Nlc3NUb2tlbiwge1xuICAgICAgICAgICAgICAgIG5hbWU6IHJvbGUucm9sZU5hbWUsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlckFsaWFzOiBpZGVudGl0eVByb3ZpZGVyLmFsaWFzLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJNYXBwZXI6IFwib2lkYy1yb2xlLWlkcC1tYXBwZXJcIixcbiAgICAgICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgc3luY01vZGU6IGlkZW50aXR5UHJvdmlkZXIubWFwcGVyU3luY01vZGUgPz8gXCJGT1JDRVwiLFxuICAgICAgICAgICAgICAgICAgICBjbGFpbTogaWRlbnRpdHlQcm92aWRlci5tYXBwZXJDbGFpbU5hbWUgPz8gXCJncm91cHNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJjbGFpbS52YWx1ZVwiOiByb2xlLmNsYWltVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHJvbGU6IGAke2tleWNsb2FrU2V0dXBDb25maWcuY2xpZW50LmNsaWVudElkfS4ke3JvbGUucm9sZU5hbWV9YCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSwgMjAxLCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY3JlYXRlSHR0cENsaWVudChjb25maWcpIHtcbiAgICAgICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICAgICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICAgICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbih0aGlzLmNvbmZpZykpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBnZXRSZWFsbUFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4pO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBY2Nlc3NUb2tlbihrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlciwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGdldEFjY2Vzc1Rva2VuKGtleWNsb2FrVXNlciwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZ2V0QWNjZXNzVG9rZW4pO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYCwgdW5kZWZpbmVkLCBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgICAgIGNsaWVudF9pZDoga2V5Y2xvYWtVc2VyLmFwaUNsaWVudElkLFxuICAgICAgICAgICAgdXNlcm5hbWU6IGtleWNsb2FrVXNlci51c2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBrZXljbG9ha1VzZXIucGFzc3dvcmQsXG4gICAgICAgICAgICBncmFudF90eXBlOiBcInBhc3N3b3JkXCIsXG4gICAgICAgIH0pLnRvU3RyaW5nKCksIDIwMCwgeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5wYXJzZUpzb25SZXNwb25zZShyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgaWYgKGRhdGE/LmFjY2Vzc190b2tlbilcbiAgICAgICAgICAgIHJldHVybiBkYXRhLmFjY2Vzc190b2tlbjtcbiAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihgVW5hYmxlIHRvIGdldCBLZXljbG9hayBhY2Nlc3MgdG9rZW4gZm9yIHVzZXIgJHtrZXljbG9ha1VzZXIudXNlcm5hbWV9YCk7XG4gICAgfVxuICAgIG5vcm1hbGl6ZUlkZW50aXR5UHJvdmlkZXJDb25maWcoYmFzZSwgb3ZlcnJpZGVzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgICAgLi4ub3ZlcnJpZGVzLFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgICAgLi4uYmFzZS5jb25maWcsXG4gICAgICAgICAgICAgICAgLi4ub3ZlcnJpZGVzLmNvbmZpZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIGJ1aWxkSWRlbnRpdHlQcm92aWRlclBheWxvYWQoaWRlbnRpdHlQcm92aWRlcikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWxpYXM6IGlkZW50aXR5UHJvdmlkZXIuYWxpYXMsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogaWRlbnRpdHlQcm92aWRlci5kaXNwbGF5TmFtZSxcbiAgICAgICAgICAgIHByb3ZpZGVySWQ6IGlkZW50aXR5UHJvdmlkZXIucHJvdmlkZXJJZCA/PyBcIm9pZGNcIixcbiAgICAgICAgICAgIGVuYWJsZWQ6IGlkZW50aXR5UHJvdmlkZXIuZW5hYmxlZCA/PyB0cnVlLFxuICAgICAgICAgICAgdXBkYXRlUHJvZmlsZUZpcnN0TG9naW5Nb2RlOiBpZGVudGl0eVByb3ZpZGVyLnVwZGF0ZVByb2ZpbGVGaXJzdExvZ2luTW9kZSA/PyBcIm9uXCIsXG4gICAgICAgICAgICB0cnVzdEVtYWlsOiBpZGVudGl0eVByb3ZpZGVyLnRydXN0RW1haWwgPz8gZmFsc2UsXG4gICAgICAgICAgICBzdG9yZVRva2VuOiBpZGVudGl0eVByb3ZpZGVyLnN0b3JlVG9rZW4gPz8gZmFsc2UsXG4gICAgICAgICAgICBhZGRSZWFkVG9rZW5Sb2xlT25DcmVhdGU6IGZhbHNlLFxuICAgICAgICAgICAgYXV0aGVudGljYXRlQnlEZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICAgIGxpbmtPbmx5OiBpZGVudGl0eVByb3ZpZGVyLmxpbmtPbmx5ID8/IGZhbHNlLFxuICAgICAgICAgICAgaGlkZU9uTG9naW46IGlkZW50aXR5UHJvdmlkZXIuaGlkZU9uTG9naW4gPz8gZmFsc2UsXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICB1c2VySW5mb1VybDogXCJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vb2lkYy91c2VyaW5mb1wiLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlU2lnbmF0dXJlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHRva2VuVXJsOiBgaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tLyR7aWRlbnRpdHlQcm92aWRlci50ZW5hbnRJZH0vb2F1dGgyL3YyLjAvdG9rZW5gLFxuICAgICAgICAgICAgICAgIGNsaWVudElkOiBpZGVudGl0eVByb3ZpZGVyLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGp3a3NVcmw6IGBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vJHtpZGVudGl0eVByb3ZpZGVyLnRlbmFudElkfS9kaXNjb3ZlcnkvdjIuMC9rZXlzYCxcbiAgICAgICAgICAgICAgICBpc3N1ZXI6IGBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vJHtpZGVudGl0eVByb3ZpZGVyLnRlbmFudElkfS92Mi4wYCxcbiAgICAgICAgICAgICAgICB1c2VKd2tzVXJsOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBrY2VFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtZXRhZGF0YURlc2NyaXB0b3JVcmw6IGBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vJHtpZGVudGl0eVByb3ZpZGVyLnRlbmFudElkfS92Mi4wLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uYCxcbiAgICAgICAgICAgICAgICBhdXRob3JpemF0aW9uVXJsOiBgaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tLyR7aWRlbnRpdHlQcm92aWRlci50ZW5hbnRJZH0vb2F1dGgyL3YyLjAvYXV0aG9yaXplYCxcbiAgICAgICAgICAgICAgICBjbGllbnRBdXRoTWV0aG9kOiBcImNsaWVudF9zZWNyZXRfcG9zdFwiLFxuICAgICAgICAgICAgICAgIGxvZ291dFVybDogYGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS8ke2lkZW50aXR5UHJvdmlkZXIudGVuYW50SWR9L29hdXRoMi92Mi4wL2xvZ291dGAsXG4gICAgICAgICAgICAgICAgc3luY01vZGU6IGlkZW50aXR5UHJvdmlkZXIuc3luY01vZGUgPz8gXCJMRUdBQ1lcIixcbiAgICAgICAgICAgICAgICBjbGllbnRTZWNyZXQ6IGlkZW50aXR5UHJvdmlkZXIuY2xpZW50U2VjcmV0LFxuICAgICAgICAgICAgICAgIC4uLmlkZW50aXR5UHJvdmlkZXIuY29uZmlnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYXN5bmMgcmVxdWVzdChtZXRob2QsIHBhdGgsIGFjY2Vzc1Rva2VuLCBwYXlsb2FkLCBzdWNjZXNzQ29kZSwgaGVhZGVycywgLi4uYXJncykge1xuICAgICAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlcXVlc3QpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgdXJsOiBgJHt0aGlzLmNvbmZpZy5wcm90b2NvbH06Ly8ke3RoaXMuY29uZmlnLmhvc3R9JHtwYXRofWAsXG4gICAgICAgICAgICBkYXRhOiBwYXlsb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgPyBwYXlsb2FkXG4gICAgICAgICAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgICAgICAgICAuLi4oYWNjZXNzVG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgLi4uKHBheWxvYWQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgcGF5bG9hZCAhPT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICA/IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfVxuICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbih0aGlzLmNvbmZpZykpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IHN1Y2Nlc3NDb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUh0dHBSZXNwb25zZShyZXNwb25zZSwgc3VjY2Vzc0NvZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG4gICAgaGFuZGxlSHR0cFJlc3BvbnNlKHJlc3BvbnNlLCBzdWNjZXNzQ29kZSkge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgRXhwZWN0ZWQgJHtzdWNjZXNzQ29kZX0sIHJlY2VpdmVkICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwNCB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJub3QgZm91bmRcIikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwOSB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJjb25mbGljdFwiKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwMSB8fCBzdGF0dXMgPT09IDQwMykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHBhcnNlRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICAgICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHBhcnNlSnNvblJlc3BvbnNlKGRhdGEpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUzJWNVkyeHZZV3RKWkdWdWRHbDBlVkJ5YjNacFpHVnlVMlZ5ZG1salpTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlyWlhsamJHOWhheTl6WlhKMmFXTmxjeTlMWlhsamJHOWhhMGxrWlc1MGFYUjVVSEp2ZG1sa1pYSlRaWEoyYVdObExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZEVEN4bFFVRmxMRVZCUTJZc1lVRkJZU3hGUVVOaUxHRkJRV0VzUlVGRFlpeGhRVUZoTEVkQlEyUXNUVUZCVFN4NVFrRkJlVUlzUTBGQlF6dEJRVVZxUXl4UFFVRlBMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVTF3UkN4UFFVRlBMRXRCUVhkQ0xFMUJRVTBzVDBGQlR5eERRVUZETzBGQlF6ZERMRTlCUVU4c1MwRkJTeXhMUVVGTExFMUJRVTBzV1VGQldTeERRVUZETzBGQlEzQkRMRTlCUVU4c1JVRkJSU3d5UWtGQk1rSXNSVUZCUlN4eFFrRkJhMEk3UVVGRmVFUXNUVUZCVFN4UFFVRlBMQ3RDUVVGblF5eFRRVUZSTEd0Q1FVZHdSRHRKUVVORExFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlEyUXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3haUVVGWkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF6VkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTjJRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRjNRaXhEUVVGRE8xRkJRMnBFTEVsQlFVa3NRMEZCUXl4UFFVRlBMRWRCUVVjc1RVRkJUU3hEUVVGRE8xRkJRM1JDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVNM1F5eEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVOMFFpeFBRVUZQTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hEUVVGRE8wbEJRelZDTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2MwSkJRWE5DTEVOQlF6RkNMRzFDUVVGM1F5eEZRVU40UXl4VFFVRTRSQ3hGUVVNNVJDeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMSGRDUVVGM1FpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTjRSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUTBGQlF6dFJRVU51UXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVU55UkN4dFFrRkJiVUlzUlVGRGJrSXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1NVRkJTU3hEUVVGRExDdENRVUVyUWl4RFFVTXpSQ3h0UWtGQmJVSXNRMEZCUXl4blFrRkJhVUlzUlVGRGNrTXNVMEZCVXl4SlFVRkpMRVZCUVVVc1EwRkRhRUlzUTBGQlF6dFJRVU5HTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkRhRUlzVFVGQlRTeEZRVU5PTEdsQ1FVRnBRaXh0UWtGQmJVSXNRMEZCUXl4WlFVRlpMRVZCUVVVc1MwRkJTeXc0UWtGQk9FSXNSVUZEZEVZc1owSkJRV2RDTEVWQlEyaENMRWxCUVVrc1EwRkJReXcwUWtGQk5FSXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eEZRVU51UkN4SFFVRkhMRVZCUTBnc1JVRkJSU3hGUVVOR0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExITkNRVUZ6UWl4RFFVTXhRaXh0UWtGQmQwTXNSVUZEZUVNc1UwRkJPRVFzUlVGRE9VUXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3gzUWtGQmQwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRlRVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEVOQlFVTTdVVUZEYmtNc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZEY2tRc2JVSkJRVzFDTEVWQlEyNUNMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFJpeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFbEJRVWtzUTBGQlF5d3JRa0ZCSzBJc1EwRkRNMFFzYlVKQlFXMUNMRU5CUVVNc1owSkJRV2xDTEVWQlEzSkRMRk5CUVZNc1NVRkJTU3hGUVVGRkxFTkJRMmhDTEVOQlFVTTdVVUZEUml4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRMmhDTEV0QlFVc3NSVUZEVEN4cFFrRkJhVUlzYlVKQlFXMUNMRU5CUVVNc1dVRkJXU3hGUVVGRkxFdEJRVXNzWjBOQlFXZERMR3RDUVVGclFpeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVWQlEzQkpMR2RDUVVGblFpeEZRVU5vUWl4SlFVRkpMRU5CUVVNc05FSkJRVFJDTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUlVGRGJrUXNSMEZCUnl4RlFVTklMRVZCUVVVc1JVRkRSaXhIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXcyUWtGQk5rSXNRMEZEYWtNc2JVSkJRWGRETEVWQlEzaERMRmRCUVRoQ0xFVkJRemxDTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTJ4Q0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc0swSkJRU3RDTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXk5RUxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl3MlFrRkJOa0lzUTBGQlF5eERRVUZETzFGQlF6RkRMRTFCUVUwc1MwRkJTeXhIUVVGSExGZEJRVmNzU1VGQlNTeHRRa0ZCYlVJc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEpRVUZKTEVWQlFVVXNRMEZCUXp0UlFVTndSU3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVTnlSQ3h0UWtGQmJVSXNSVUZEYmtJc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFJRVU5HTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1owSkJRV2xDTEVOQlFVTTdVVUZETDBRc1MwRkJTeXhOUVVGTkxFbEJRVWtzU1VGQlNTeExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTjZRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlEyaENMRTFCUVUwc1JVRkRUaXhwUWtGQmFVSXNiVUpCUVcxQ0xFTkJRVU1zV1VGQldTeEZRVUZGTEV0QlFVc3NaME5CUVdkRExHZENRVUZuUWl4RFFVRkRMRXRCUVVzc1ZVRkJWU3hGUVVONFNDeG5Ra0ZCWjBJc1JVRkRhRUk3WjBKQlEwVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUk8yZENRVU51UWl4eFFrRkJjVUlzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJReXhMUVVGTE8yZENRVU0zUXl4elFrRkJjMElzUlVGQlJTeHpRa0ZCYzBJN1owSkJRemxETEUxQlFVMHNSVUZCUlR0dlFrRkRUaXhSUVVGUkxFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1kwRkJZeXhKUVVGSkxFOUJRVTg3YjBKQlEzQkVMRXRCUVVzc1JVRkJSU3huUWtGQlowSXNRMEZCUXl4bFFVRmxMRWxCUVVrc1VVRkJVVHR2UWtGRGJrUXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhWUVVGVk8yOUNRVU01UWl4SlFVRkpMRVZCUVVVc1IwRkJSeXh0UWtGQmJVSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVTdhVUpCUTJoRk8yRkJRMFlzUlVGRFJDeEhRVUZITEVWQlEwZ3NSVUZCUlN4RlFVTkdMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFNpeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVlBMR2RDUVVGblFpeERRVUZETEUxQlFUSkNPMUZCUTJ4RUxFOUJRVThzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0WlFVTnNRaXhQUVVGUExFVkJRVVVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNVVUZCVVN4TlFVRk5MRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVU3V1VGRE9VTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1kwRkJZeXhGUVVGRkxHdENRVUZyUWl4RlFVRkZPMWxCUXk5RExHTkJRV01zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMWxCUXpGQ0xGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJRekZDTEd0Q1FVRnJRaXhGUVVGRkxFTkJRVU1zTWtKQlFUSkNMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRV0VzUTBGQlF5eERRVUZETzJGQlEzUkZMRU5CUVVNN1UwRkRTQ3hEUVVGRExFTkJRVU03U1VGRFRDeERRVUZETzBsQlJVOHNTMEZCU3l4RFFVRkRMRzFDUVVGdFFpeERRVU12UWl4dFFrRkJkME1zUlVGRGVFTXNSMEZCUnl4SlFVRjVRanRSUVVVMVFpeE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVOQlFVTTdVVUZEYUVVc1QwRkJUeXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExGbEJRV0VzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpWRkxFTkJRVU03U1VGRlR5eExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVTXhRaXhaUVVFd1FpeEZRVU14UWl4SFFVRkhMRWxCUVhsQ08xRkJSVFZDTEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU03VVVGRE0wUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVU5xUXl4TlFVRk5MRVZCUTA0c1YwRkJWeXhaUVVGWkxFTkJRVU1zUzBGQlN5eG5RMEZCWjBNc1JVRkROMFFzVTBGQlV5eEZRVU5VTEVsQlFVa3NaVUZCWlN4RFFVRkRPMWxCUTJ4Q0xGTkJRVk1zUlVGQlJTeFpRVUZaTEVOQlFVTXNWMEZCVnp0WlFVTnVReXhSUVVGUkxFVkJRVVVzV1VGQldTeERRVUZETEZGQlFWRTdXVUZETDBJc1VVRkJVU3hGUVVGRkxGbEJRVmtzUTBGQlF5eFJRVUZSTzFsQlF5OUNMRlZCUVZVc1JVRkJSU3hWUVVGVk8xTkJRM1pDTEVOQlFVTXNRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkRZaXhIUVVGSExFVkJRMGdzUlVGQlJTeGpRVUZqTEVWQlFVVXNiVU5CUVcxRExFVkJRVVVzUlVGRGRrUXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGRGFrTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkRaQ3hEUVVGRE8xRkJRMFlzU1VGQlNTeEpRVUZKTEVWQlFVVXNXVUZCV1R0WlFVRkZMRTlCUVU4c1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dFJRVU5xUkN4TlFVRk5MRWxCUVVrc1pVRkJaU3hEUVVOMlFpeG5SRUZCWjBRc1dVRkJXU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVU40UlN4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWUExDdENRVUVyUWl4RFFVTnlReXhKUVVGdlF5eEZRVU53UXl4VFFVRnJSRHRSUVVWc1JDeFBRVUZQTzFsQlEwd3NSMEZCUnl4SlFVRkpPMWxCUTFBc1IwRkJSeXhUUVVGVE8xbEJRMW9zVFVGQlRTeEZRVUZGTzJkQ1FVTk9MRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTA3WjBKQlEyUXNSMEZCUnl4VFFVRlRMRU5CUVVNc1RVRkJUVHRoUVVOd1FqdFRRVU5HTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlU4c05FSkJRVFJDTEVOQlEyeERMR2RDUVVGblJEdFJRVVZvUkN4UFFVRlBPMWxCUTB3c1MwRkJTeXhGUVVGRkxHZENRVUZuUWl4RFFVRkRMRXRCUVVzN1dVRkROMElzVjBGQlZ5eEZRVUZGTEdkQ1FVRm5RaXhEUVVGRExGZEJRVmM3V1VGRGVrTXNWVUZCVlN4RlFVRkZMR2RDUVVGblFpeERRVUZETEZWQlFWVXNTVUZCU1N4TlFVRk5PMWxCUTJwRUxFOUJRVThzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJReXhQUVVGUExFbEJRVWtzU1VGQlNUdFpRVU42UXl3eVFrRkJNa0lzUlVGRGVrSXNaMEpCUVdkQ0xFTkJRVU1zTWtKQlFUSkNMRWxCUVVrc1NVRkJTVHRaUVVOMFJDeFZRVUZWTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU1zVlVGQlZTeEpRVUZKTEV0QlFVczdXVUZEYUVRc1ZVRkJWU3hGUVVGRkxHZENRVUZuUWl4RFFVRkRMRlZCUVZVc1NVRkJTU3hMUVVGTE8xbEJRMmhFTEhkQ1FVRjNRaXhGUVVGRkxFdEJRVXM3V1VGREwwSXNjVUpCUVhGQ0xFVkJRVVVzUzBGQlN6dFpRVU0xUWl4UlFVRlJMRVZCUVVVc1owSkJRV2RDTEVOQlFVTXNVVUZCVVN4SlFVRkpMRXRCUVVzN1dVRkROVU1zVjBGQlZ5eEZRVUZGTEdkQ1FVRm5RaXhEUVVGRExGZEJRVmNzU1VGQlNTeExRVUZMTzFsQlEyeEVMRTFCUVUwc1JVRkJSVHRuUWtGRFRpeFhRVUZYTEVWQlFVVXNNa05CUVRKRE8yZENRVU40UkN4cFFrRkJhVUlzUlVGQlJTeEpRVUZKTzJkQ1FVTjJRaXhSUVVGUkxFVkJRVVVzY1VOQlFYRkRMR2RDUVVGblFpeERRVUZETEZGQlFWRXNiMEpCUVc5Q08yZENRVU0xUml4UlFVRlJMRVZCUVVVc1owSkJRV2RDTEVOQlFVTXNVVUZCVVR0blFrRkRia01zVDBGQlR5eEZRVUZGTEhGRFFVRnhReXhuUWtGQlowSXNRMEZCUXl4UlFVRlJMSE5DUVVGelFqdG5Ra0ZETjBZc1RVRkJUU3hGUVVGRkxIRkRRVUZ4UXl4blFrRkJaMElzUTBGQlF5eFJRVUZSTEU5QlFVODdaMEpCUXpkRkxGVkJRVlVzUlVGQlJTeEpRVUZKTzJkQ1FVTm9RaXhYUVVGWExFVkJRVVVzUzBGQlN6dG5Ra0ZEYkVJc2NVSkJRWEZDTEVWQlFVVXNjVU5CUVhGRExHZENRVUZuUWl4RFFVRkRMRkZCUVZFc2QwTkJRWGRETzJkQ1FVTTNTQ3huUWtGQlowSXNSVUZCUlN4eFEwRkJjVU1zWjBKQlFXZENMRU5CUVVNc1VVRkJVU3gzUWtGQmQwSTdaMEpCUTNoSExHZENRVUZuUWl4RlFVRkZMRzlDUVVGdlFqdG5Ra0ZEZEVNc1UwRkJVeXhGUVVGRkxIRkRRVUZ4UXl4blFrRkJaMElzUTBGQlF5eFJRVUZSTEhGQ1FVRnhRanRuUWtGRE9VWXNVVUZCVVN4RlFVRkZMR2RDUVVGblFpeERRVUZETEZGQlFWRXNTVUZCU1N4UlFVRlJPMmRDUVVNdlF5eFpRVUZaTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU1zV1VGQldUdG5Ra0ZETTBNc1IwRkJSeXhuUWtGQlowSXNRMEZCUXl4TlFVRk5PMkZCUXpOQ08xTkJRMFlzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGVHl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVOdVFpeE5RVUY1UXl4RlFVTjZReXhKUVVGWkxFVkJRMW9zVjBGQkswSXNSVUZETDBJc1QwRkJaMElzUlVGRGFFSXNWMEZCYlVJc1JVRkRia0lzVDBGQkswSXNSVUZETDBJc1IwRkJSeXhKUVVGNVFqdFJRVVUxUWl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRhRU1zVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF6dFpRVU42UXl4TlFVRk5PMWxCUTA0c1IwRkJSeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RlFVRkZPMWxCUXpORUxFbEJRVWtzUlVGRFJpeFBRVUZQTEV0QlFVc3NVMEZCVXp0blFrRkRia0lzUTBGQlF5eERRVUZETEZOQlFWTTdaMEpCUTFnc1EwRkJReXhEUVVGRExFOUJRVThzVDBGQlR5eExRVUZMTEZGQlFWRTdiMEpCUXpOQ0xFTkJRVU1zUTBGQlF5eFBRVUZQTzI5Q1FVTlVMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXp0WlFVTXZRaXhQUVVGUExFVkJRVVU3WjBKQlExQXNSMEZCUnl4UFFVRlBPMmRDUVVOV0xFZEJRVWNzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1lVRkJZU3hGUVVGRkxGVkJRVlVzVjBGQlZ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8yZENRVU5zUlN4SFFVRkhMRU5CUVVNc1QwRkJUeXhMUVVGTExGTkJRVk1zU1VGQlNTeFBRVUZQTEU5QlFVOHNTMEZCU3l4UlFVRlJPMjlDUVVOMFJDeERRVUZETEVOQlFVTXNSVUZCUlN4alFVRmpMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVTdiMEpCUTNoRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdZVUZEVWp0WlFVTkVMRlZCUVZVc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTTdaMEpCUXpGQ0xHdENRVUZyUWl4RlFVRkZMRU5CUVVNc01rSkJRVEpDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVdFc1EwRkJReXhEUVVGRE8yRkJRM1JGTEVOQlFVTTdXVUZEUml4alFVRmpMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zU1VGQlNUdFRRVU16UWl4RFFVRkRMRU5CUVVNN1VVRkRTQ3hKUVVGSkxGRkJRVkVzUTBGQlF5eE5RVUZOTEV0QlFVc3NWMEZCVnl4RlFVRkZMRU5CUVVNN1dVRkRjRU1zU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExGRkJRVkVzUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXp0UlFVTnFSQ3hEUVVGRE8xRkJRMFFzVDBGQlR5eFJRVUZSTEVOQlFVTTdTVUZEYkVJc1EwRkJRenRKUVVWUExHdENRVUZyUWl4RFFVRkRMRkZCUVdFc1JVRkJSU3hYUVVGdFFqdFJRVU16UkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlowSXNRMEZCUXp0UlFVTjZReXhOUVVGTkxFOUJRVThzUjBGQlJ5eFpRVUZaTEZkQlFWY3NZMEZCWXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hMUVVGTExGRkJRVkVzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXp0UlFVTXZSaXhKUVVGSkxFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NUMEZCVHl4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTJ4RkxFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRia01zUTBGQlF6dFJRVU5FTEVsQlFVa3NUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hQUVVGUExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGFrVXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU51UXl4RFFVRkRPMUZCUTBRc1NVRkJTU3hOUVVGTkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEYmtJc1RVRkJUU3hKUVVGSkxHVkJRV1VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnlReXhEUVVGRE8xRkJRMFFzU1VGQlNTeE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRTFCUVUwc1MwRkJTeXhIUVVGSExFVkJRVVVzUTBGQlF6dFpRVU55UXl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEyNURMRU5CUVVNN1VVRkRSQ3hOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTI1RExFTkJRVU03U1VGRlV5eFZRVUZWTEVOQlFVTXNTMEZCV1R0UlFVTXZRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eExRVUZMTEVOQlFVTXNUMEZCVHl4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFbEJRVWtzWlVGQlpTeERRVUZETzFGQlF5OUVMRTFCUVUwc1dVRkJXU3hIUVVGSExFOUJRVThzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVVXpReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTNaRkxFOUJRVThzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF6dFJRVVZFTEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEycElMRTlCUVU4c1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VNc1EwRkJRenRSUVVWRUxFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEdGQlFXRXNRMEZCUXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTTNSeXhQUVVGUExFbEJRVWtzWlVGQlpTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNSRExFTkJRVU03VVVGRlJDeEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1kwRkJZeXhEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRekZGTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFTXNRMEZCUXp0UlFVVkVMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEZGtVc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndReXhEUVVGRE8xRkJSVVFzVDBGQlR5eEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOd1F5eERRVUZETzBsQlJVOHNhVUpCUVdsQ0xFTkJRVWtzU1VGQllUdFJRVU40UXl4SlFVRkpMRTlCUVU4c1NVRkJTU3hMUVVGTExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlF6ZENMRWxCUVVrc1EwRkJRenRuUWtGRFNDeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGTkxFTkJRVU03V1VGREwwSXNRMEZCUXp0WlFVRkRMRTFCUVUwc1EwRkJRenRuUWtGRFVDeFBRVUZQTEZOQlFWTXNRMEZCUXp0WlFVTnVRaXhEUVVGRE8xRkJRMGdzUTBGQlF6dFJRVU5FTEU5QlFVOHNTVUZCVXl4RFFVRkRPMGxCUTI1Q0xFTkJRVU03UTBGRFJpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdYRzRnSUVKaFpGSmxjWFZsYzNSRmNuSnZjaXhjYmlBZ1EyOXVabXhwWTNSRmNuSnZjaXhjYmlBZ1NXNTBaWEp1WVd4RmNuSnZjaXhjYmlBZ1RtOTBSbTkxYm1SRmNuSnZjaXhjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCRGIyNTBaWGgwZFdGc1FYSm5jeXdnVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCRGJHbGxiblJDWVhObFpGTmxjblpwWTJVZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCMGVYQmxJSHRjYmlBZ1MyVjVZMnh2WVd0SlpHVnVkR2wwZVZCeWIzWnBaR1Z5UTI5dVptbG5MRnh1SUNCTFpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxGeHVJQ0JMWlhsamJHOWhhMVZ6WlhJc1hHNTlJR1p5YjIwZ1hDSXVMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJRUY0YVc5ekxDQjdJRUY0YVc5elNXNXpkR0Z1WTJVZ2ZTQm1jbTl0SUZ3aVlYaHBiM05jSWp0Y2JtbHRjRzl5ZENBcUlHRnpJR2gwZEhCeklHWnliMjBnWENKdWIyUmxPbWgwZEhCelhDSTdYRzVwYlhCdmNuUWdleUJ5WlhOdmJIWmxTMlY1WTJ4dllXdEpjMUJ5YjJSMVkzUnBiMjRnZlNCbWNtOXRJRndpTGk5eWRXNTBhVzFsWENJN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCTFpYbGpiRzloYTBsa1pXNTBhWFI1VUhKdmRtbGtaWEpUWlhKMmFXTmxJR1Y0ZEdWdVpITWdRMnhwWlc1MFFtRnpaV1JUWlhKMmFXTmxQRnh1SUNCQmVHbHZjMGx1YzNSaGJtTmxMRnh1SUNCTFpYbGpiRzloYTFObGRIVndRMjl1Wm1sblhHNCtJSHRjYmlBZ1lYTjVibU1nYVc1cGRHbGhiR2w2WlNoY2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhzZ1kyOXVabWxuT2lCTFpYbGpiRzloYTFObGRIVndRMjl1Wm1sbk95QmpiR2xsYm5RNklFRjRhVzl6U1c1emRHRnVZMlVnZlQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKcGJtbDBhV0ZzYVhwbFhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1cGJtbDBhV0ZzYVhwbEtUdGNiaUFnSUNCamIyNXpkQ0JqYjI1bWFXY2dQU0JqZEhoQmNtZHpXekJkSUdGeklFdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXYzdYRzRnSUNBZ2RHaHBjeTVmWTI5dVptbG5JRDBnWTI5dVptbG5PMXh1SUNBZ0lHTnZibk4wSUdOc2FXVnVkQ0E5SUhSb2FYTXVZM0psWVhSbFNIUjBjRU5zYVdWdWRDaGpiMjVtYVdjcE8xeHVJQ0FnSUhSb2FYTXVYMk5zYVdWdWRDQTlJR05zYVdWdWREdGNiaUFnSUNCeVpYUjFjbTRnZXlCamIyNW1hV2NzSUdOc2FXVnVkQ0I5TzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWTNKbFlYUmxTV1JsYm5ScGRIbFFjbTkyYVdSbGNpaGNiaUFnSUNCclpYbGpiRzloYTFObGRIVndRMjl1Wm1sbk9pQkxaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5MRnh1SUNBZ0lHOTJaWEp5YVdSbGN6b2dVR0Z5ZEdsaGJEeExaWGxqYkc5aGEwbGtaVzUwYVhSNVVISnZkbWxrWlhKRGIyNW1hV2MrSUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0pqY21WaGRHVkpaR1Z1ZEdsMGVWQnliM1pwWkdWeVhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1amNtVmhkR1ZKWkdWdWRHbDBlVkJ5YjNacFpHVnlLVHRjYmlBZ0lDQmpiMjV6ZENCeVpXRnNiVUZqWTJWemMxUnZhMlZ1SUQwZ1lYZGhhWFFnZEdocGN5NW5aWFJTWldGc2JVRmpZMlZ6YzFSdmEyVnVLRnh1SUNBZ0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeXhjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUdsa1pXNTBhWFI1VUhKdmRtbGtaWElnUFNCMGFHbHpMbTV2Y20xaGJHbDZaVWxrWlc1MGFYUjVVSEp2ZG1sa1pYSkRiMjVtYVdjb1hHNGdJQ0FnSUNCclpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxtbGtaVzUwYVhSNVVISnZkbWxrWlhJaExGeHVJQ0FnSUNBZ2IzWmxjbkpwWkdWeklEOC9JSHQ5WEc0Z0lDQWdLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJbEJQVTFSY0lpeGNiaUFnSUNBZ0lHQXZZV1J0YVc0dmNtVmhiRzF6THlSN2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5NXlaV0ZzYlVGd2FWVnpaWEkvTG5KbFlXeHRmUzlwWkdWdWRHbDBlUzF3Y205MmFXUmxjaTlwYm5OMFlXNWpaWE5nTEZ4dUlDQWdJQ0FnY21WaGJHMUJZMk5sYzNOVWIydGxiaXhjYmlBZ0lDQWdJSFJvYVhNdVluVnBiR1JKWkdWdWRHbDBlVkJ5YjNacFpHVnlVR0Y1Ykc5aFpDaHBaR1Z1ZEdsMGVWQnliM1pwWkdWeUtTeGNiaUFnSUNBZ0lESXdNU3hjYmlBZ0lDQWdJSHQ5TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUIxY0dSaGRHVkpaR1Z1ZEdsMGVWQnliM1pwWkdWeUtGeHVJQ0FnSUd0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjNklFdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3NYRzRnSUNBZ2IzWmxjbkpwWkdWek9pQlFZWEowYVdGc1BFdGxlV05zYjJGclNXUmxiblJwZEhsUWNtOTJhV1JsY2tOdmJtWnBaejRnZkNCMWJtUmxabWx1WldRc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJblZ3WkdGMFpVbGtaVzUwYVhSNVVISnZkbWxrWlhKY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG5Wd1pHRjBaVWxrWlc1MGFYUjVVSEp2ZG1sa1pYSXBPMXh1SUNBZ0lHTnZibk4wSUhKbFlXeHRRV05qWlhOelZHOXJaVzRnUFNCaGQyRnBkQ0IwYUdsekxtZGxkRkpsWVd4dFFXTmpaWE56Vkc5clpXNG9YRzRnSUNBZ0lDQnJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5MRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnYVdSbGJuUnBkSGxRY205MmFXUmxjaUE5SUhSb2FYTXVibTl5YldGc2FYcGxTV1JsYm5ScGRIbFFjbTkyYVdSbGNrTnZibVpwWnloY2JpQWdJQ0FnSUd0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdWFXUmxiblJwZEhsUWNtOTJhV1JsY2lFc1hHNGdJQ0FnSUNCdmRtVnljbWxrWlhNZ1B6OGdlMzFjYmlBZ0lDQXBPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVjbVZ4ZFdWemRDaGNiaUFnSUNBZ0lGd2lVRlZVWENJc1hHNGdJQ0FnSUNCZ0wyRmtiV2x1TDNKbFlXeHRjeThrZTJ0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdWNtVmhiRzFCY0dsVmMyVnlQeTV5WldGc2JYMHZhV1JsYm5ScGRIa3RjSEp2ZG1sa1pYSXZhVzV6ZEdGdVkyVnpMeVI3Wlc1amIyUmxWVkpKUTI5dGNHOXVaVzUwS0dsa1pXNTBhWFI1VUhKdmRtbGtaWEl1WVd4cFlYTXBmV0FzWEc0Z0lDQWdJQ0J5WldGc2JVRmpZMlZ6YzFSdmEyVnVMRnh1SUNBZ0lDQWdkR2hwY3k1aWRXbHNaRWxrWlc1MGFYUjVVSEp2ZG1sa1pYSlFZWGxzYjJGa0tHbGtaVzUwYVhSNVVISnZkbWxrWlhJcExGeHVJQ0FnSUNBZ01qQTBMRnh1SUNBZ0lDQWdlMzBzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR055WldGMFpVbGtaVzUwYVhSNVVISnZkbWxrWlhKTllYQndaWEp6S0Z4dUlDQWdJR3RsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2M2SUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjc1hHNGdJQ0FnY205c1pVTnZibVpwWjNNNklHRnVlVnRkSUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0pqY21WaGRHVkpaR1Z1ZEdsMGVWQnliM1pwWkdWeVRXRndjR1Z5YzF3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11WTNKbFlYUmxTV1JsYm5ScGRIbFFjbTkyYVdSbGNrMWhjSEJsY25NcE8xeHVJQ0FnSUdOdmJuTjBJSEp2YkdWeklEMGdjbTlzWlVOdmJtWnBaM01nUHo4Z2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5NWpiR2xsYm5RdWNtOXNaWE1nUHo4Z1cxMDdYRzRnSUNBZ1kyOXVjM1FnY21WaGJHMUJZMk5sYzNOVWIydGxiaUE5SUdGM1lXbDBJSFJvYVhNdVoyVjBVbVZoYkcxQlkyTmxjM05VYjJ0bGJpaGNiaUFnSUNBZ0lHdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3NYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0JwWkdWdWRHbDBlVkJ5YjNacFpHVnlJRDBnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnk1cFpHVnVkR2wwZVZCeWIzWnBaR1Z5SVR0Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUhKdmJHVWdiMllnY205c1pYTXBJSHRjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Y21WeGRXVnpkQ2hjYmlBZ0lDQWdJQ0FnWENKUVQxTlVYQ0lzWEc0Z0lDQWdJQ0FnSUdBdllXUnRhVzR2Y21WaGJHMXpMeVI3YTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnk1eVpXRnNiVUZ3YVZWelpYSS9MbkpsWVd4dGZTOXBaR1Z1ZEdsMGVTMXdjbTkyYVdSbGNpOXBibk4wWVc1alpYTXZKSHRwWkdWdWRHbDBlVkJ5YjNacFpHVnlMbUZzYVdGemZTOXRZWEJ3WlhKellDeGNiaUFnSUNBZ0lDQWdjbVZoYkcxQlkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUc1aGJXVTZJSEp2YkdVdWNtOXNaVTVoYldVc1hHNGdJQ0FnSUNBZ0lDQWdhV1JsYm5ScGRIbFFjbTkyYVdSbGNrRnNhV0Z6T2lCcFpHVnVkR2wwZVZCeWIzWnBaR1Z5TG1Gc2FXRnpMRnh1SUNBZ0lDQWdJQ0FnSUdsa1pXNTBhWFI1VUhKdmRtbGtaWEpOWVhCd1pYSTZJRndpYjJsa1l5MXliMnhsTFdsa2NDMXRZWEJ3WlhKY0lpeGNiaUFnSUNBZ0lDQWdJQ0JqYjI1bWFXYzZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lITjVibU5OYjJSbE9pQnBaR1Z1ZEdsMGVWQnliM1pwWkdWeUxtMWhjSEJsY2xONWJtTk5iMlJsSUQ4L0lGd2lSazlTUTBWY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUdOc1lXbHRPaUJwWkdWdWRHbDBlVkJ5YjNacFpHVnlMbTFoY0hCbGNrTnNZV2x0VG1GdFpTQS9QeUJjSW1keWIzVndjMXdpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdYQ0pqYkdGcGJTNTJZV3gxWlZ3aU9pQnliMnhsTG1Oc1lXbHRWbUZzZFdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5YjJ4bE9pQmdKSHRyWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTG1Oc2FXVnVkQzVqYkdsbGJuUkpaSDB1Skh0eWIyeGxMbkp2YkdWT1lXMWxmV0FzWEc0Z0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnTWpBeExGeHVJQ0FnSUNBZ0lDQjdmU3hjYmlBZ0lDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdOeVpXRjBaVWgwZEhCRGJHbGxiblFvWTI5dVptbG5PaUJMWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuS1RvZ1FYaHBiM05KYm5OMFlXNWpaU0I3WEc0Z0lDQWdjbVYwZFhKdUlFRjRhVzl6TG1OeVpXRjBaU2g3WEc0Z0lDQWdJQ0JpWVhObFZWSk1PaUJnSkh0amIyNW1hV2N1Y0hKdmRHOWpiMng5T2k4dkpIdGpiMjVtYVdjdWFHOXpkSDFnTEZ4dUlDQWdJQ0FnYUdWaFpHVnljem9nZXlCY0lrTnZiblJsYm5RdFZIbHdaVndpT2lCY0ltRndjR3hwWTJGMGFXOXVMMnB6YjI1Y0lpQjlMRnh1SUNBZ0lDQWdkbUZzYVdSaGRHVlRkR0YwZFhNNklDZ3BJRDArSUhSeWRXVXNYRzRnSUNBZ0lDQm9kSFJ3YzBGblpXNTBPaUJ1WlhjZ2FIUjBjSE11UVdkbGJuUW9lMXh1SUNBZ0lDQWdJQ0J5WldwbFkzUlZibUYxZEdodmNtbDZaV1E2SUNoeVpYTnZiSFpsUzJWNVkyeHZZV3RKYzFCeWIyUjFZM1JwYjI0b2RHaHBjeTVqYjI1bWFXY2dZWE1nWVc1NUtTa3NYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdaMlYwVW1WaGJHMUJZMk5sYzNOVWIydGxiaWhjYmlBZ0lDQnJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5PaUJMWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTEZ4dUlDQWdJQzR1TG1GeVozTTZJRU52Ym5SbGVIUjFZV3hCY21kelBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeHpkSEpwYm1jK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lIUm9hWE11WjJWMFVtVmhiRzFCWTJObGMzTlViMnRsYmlrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVoyVjBRV05qWlhOelZHOXJaVzRvYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnk1eVpXRnNiVUZ3YVZWelpYSWhMQ0F1TGk1amRIaEJjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nWjJWMFFXTmpaWE56Vkc5clpXNG9YRzRnSUNBZ2EyVjVZMnh2WVd0VmMyVnlPaUJMWlhsamJHOWhhMVZ6WlhJc1hHNGdJQ0FnTGk0dVlYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSE4wY21sdVp6NGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dkR2hwY3k1blpYUkJZMk5sYzNOVWIydGxiaWs3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJbEJQVTFSY0lpeGNiaUFnSUNBZ0lHQXZjbVZoYkcxekx5UjdhMlY1WTJ4dllXdFZjMlZ5TG5KbFlXeHRmUzl3Y205MGIyTnZiQzl2Y0dWdWFXUXRZMjl1Ym1WamRDOTBiMnRsYm1Bc1hHNGdJQ0FnSUNCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNCdVpYY2dWVkpNVTJWaGNtTm9VR0Z5WVcxektIdGNiaUFnSUNBZ0lDQWdZMnhwWlc1MFgybGtPaUJyWlhsamJHOWhhMVZ6WlhJdVlYQnBRMnhwWlc1MFNXUXNYRzRnSUNBZ0lDQWdJSFZ6WlhKdVlXMWxPaUJyWlhsamJHOWhhMVZ6WlhJdWRYTmxjbTVoYldVc1hHNGdJQ0FnSUNBZ0lIQmhjM04zYjNKa09pQnJaWGxqYkc5aGExVnpaWEl1Y0dGemMzZHZjbVFzWEc0Z0lDQWdJQ0FnSUdkeVlXNTBYM1I1Y0dVNklGd2ljR0Z6YzNkdmNtUmNJaXhjYmlBZ0lDQWdJSDBwTG5SdlUzUnlhVzVuS0Nrc1hHNGdJQ0FnSUNBeU1EQXNYRzRnSUNBZ0lDQjdJRndpWTI5dWRHVnVkQzEwZVhCbFhDSTZJRndpWVhCd2JHbGpZWFJwYjI0dmVDMTNkM2N0Wm05eWJTMTFjbXhsYm1OdlpHVmtYQ0lnZlN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElHUmhkR0VnUFNCMGFHbHpMbkJoY25ObFNuTnZibEpsYzNCdmJuTmxQSHNnWVdOalpYTnpYM1J2YTJWdVB6b2djM1J5YVc1bklIMCtLRnh1SUNBZ0lDQWdjbVZ6Y0c5dWMyVXVaR0YwWVZ4dUlDQWdJQ2s3WEc0Z0lDQWdhV1lnS0dSaGRHRS9MbUZqWTJWemMxOTBiMnRsYmlrZ2NtVjBkWEp1SUdSaGRHRXVZV05qWlhOelgzUnZhMlZ1TzF4dUlDQWdJSFJvY205M0lHNWxkeUJDWVdSU1pYRjFaWE4wUlhKeWIzSW9YRzRnSUNBZ0lDQmdWVzVoWW14bElIUnZJR2RsZENCTFpYbGpiRzloYXlCaFkyTmxjM01nZEc5clpXNGdabTl5SUhWelpYSWdKSHRyWlhsamJHOWhhMVZ6WlhJdWRYTmxjbTVoYldWOVlGeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHNXZjbTFoYkdsNlpVbGtaVzUwYVhSNVVISnZkbWxrWlhKRGIyNW1hV2NvWEc0Z0lDQWdZbUZ6WlRvZ1MyVjVZMnh2WVd0SlpHVnVkR2wwZVZCeWIzWnBaR1Z5UTI5dVptbG5MRnh1SUNBZ0lHOTJaWEp5YVdSbGN6b2dVR0Z5ZEdsaGJEeExaWGxqYkc5aGEwbGtaVzUwYVhSNVVISnZkbWxrWlhKRGIyNW1hV2MrWEc0Z0lDazZJRXRsZVdOc2IyRnJTV1JsYm5ScGRIbFFjbTkyYVdSbGNrTnZibVpwWnlCN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQzR1TG1KaGMyVXNYRzRnSUNBZ0lDQXVMaTV2ZG1WeWNtbGtaWE1zWEc0Z0lDQWdJQ0JqYjI1bWFXYzZJSHRjYmlBZ0lDQWdJQ0FnTGk0dVltRnpaUzVqYjI1bWFXY3NYRzRnSUNBZ0lDQWdJQzR1TG05MlpYSnlhV1JsY3k1amIyNW1hV2NzWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJSDA3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdKMWFXeGtTV1JsYm5ScGRIbFFjbTkyYVdSbGNsQmhlV3h2WVdRb1hHNGdJQ0FnYVdSbGJuUnBkSGxRY205MmFXUmxjam9nUzJWNVkyeHZZV3RKWkdWdWRHbDBlVkJ5YjNacFpHVnlRMjl1Wm1sblhHNGdJQ2s2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJSFZ1YTI1dmQyNCtJSHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ1lXeHBZWE02SUdsa1pXNTBhWFI1VUhKdmRtbGtaWEl1WVd4cFlYTXNYRzRnSUNBZ0lDQmthWE53YkdGNVRtRnRaVG9nYVdSbGJuUnBkSGxRY205MmFXUmxjaTVrYVhOd2JHRjVUbUZ0WlN4Y2JpQWdJQ0FnSUhCeWIzWnBaR1Z5U1dRNklHbGtaVzUwYVhSNVVISnZkbWxrWlhJdWNISnZkbWxrWlhKSlpDQS9QeUJjSW05cFpHTmNJaXhjYmlBZ0lDQWdJR1Z1WVdKc1pXUTZJR2xrWlc1MGFYUjVVSEp2ZG1sa1pYSXVaVzVoWW14bFpDQS9QeUIwY25WbExGeHVJQ0FnSUNBZ2RYQmtZWFJsVUhKdlptbHNaVVpwY25OMFRHOW5hVzVOYjJSbE9seHVJQ0FnSUNBZ0lDQnBaR1Z1ZEdsMGVWQnliM1pwWkdWeUxuVndaR0YwWlZCeWIyWnBiR1ZHYVhKemRFeHZaMmx1VFc5a1pTQS9QeUJjSW05dVhDSXNYRzRnSUNBZ0lDQjBjblZ6ZEVWdFlXbHNPaUJwWkdWdWRHbDBlVkJ5YjNacFpHVnlMblJ5ZFhOMFJXMWhhV3dnUHo4Z1ptRnNjMlVzWEc0Z0lDQWdJQ0J6ZEc5eVpWUnZhMlZ1T2lCcFpHVnVkR2wwZVZCeWIzWnBaR1Z5TG5OMGIzSmxWRzlyWlc0Z1B6OGdabUZzYzJVc1hHNGdJQ0FnSUNCaFpHUlNaV0ZrVkc5clpXNVNiMnhsVDI1RGNtVmhkR1U2SUdaaGJITmxMRnh1SUNBZ0lDQWdZWFYwYUdWdWRHbGpZWFJsUW5sRVpXWmhkV3gwT2lCbVlXeHpaU3hjYmlBZ0lDQWdJR3hwYm10UGJteDVPaUJwWkdWdWRHbDBlVkJ5YjNacFpHVnlMbXhwYm10UGJteDVJRDgvSUdaaGJITmxMRnh1SUNBZ0lDQWdhR2xrWlU5dVRHOW5hVzQ2SUdsa1pXNTBhWFI1VUhKdmRtbGtaWEl1YUdsa1pVOXVURzluYVc0Z1B6OGdabUZzYzJVc1hHNGdJQ0FnSUNCamIyNW1hV2M2SUh0Y2JpQWdJQ0FnSUNBZ2RYTmxja2x1Wm05VmNtdzZJRndpYUhSMGNITTZMeTluY21Gd2FDNXRhV055YjNOdlpuUXVZMjl0TDI5cFpHTXZkWE5sY21sdVptOWNJaXhjYmlBZ0lDQWdJQ0FnZG1Gc2FXUmhkR1ZUYVdkdVlYUjFjbVU2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJSFJ2YTJWdVZYSnNPaUJnYUhSMGNITTZMeTlzYjJkcGJpNXRhV055YjNOdlpuUnZibXhwYm1VdVkyOXRMeVI3YVdSbGJuUnBkSGxRY205MmFXUmxjaTUwWlc1aGJuUkpaSDB2YjJGMWRHZ3lMM1l5TGpBdmRHOXJaVzVnTEZ4dUlDQWdJQ0FnSUNCamJHbGxiblJKWkRvZ2FXUmxiblJwZEhsUWNtOTJhV1JsY2k1amJHbGxiblJKWkN4Y2JpQWdJQ0FnSUNBZ2FuZHJjMVZ5YkRvZ1lHaDBkSEJ6T2k4dmJHOW5hVzR1YldsamNtOXpiMlowYjI1c2FXNWxMbU52YlM4a2UybGtaVzUwYVhSNVVISnZkbWxrWlhJdWRHVnVZVzUwU1dSOUwyUnBjMk52ZG1WeWVTOTJNaTR3TDJ0bGVYTmdMRnh1SUNBZ0lDQWdJQ0JwYzNOMVpYSTZJR0JvZEhSd2N6b3ZMMnh2WjJsdUxtMXBZM0p2YzI5bWRHOXViR2x1WlM1amIyMHZKSHRwWkdWdWRHbDBlVkJ5YjNacFpHVnlMblJsYm1GdWRFbGtmUzkyTWk0d1lDeGNiaUFnSUNBZ0lDQWdkWE5sU25kcmMxVnliRG9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdjR3RqWlVWdVlXSnNaV1E2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0J0WlhSaFpHRjBZVVJsYzJOeWFYQjBiM0pWY213NklHQm9kSFJ3Y3pvdkwyeHZaMmx1TG0xcFkzSnZjMjltZEc5dWJHbHVaUzVqYjIwdkpIdHBaR1Z1ZEdsMGVWQnliM1pwWkdWeUxuUmxibUZ1ZEVsa2ZTOTJNaTR3THk1M1pXeHNMV3R1YjNkdUwyOXdaVzVwWkMxamIyNW1hV2QxY21GMGFXOXVZQ3hjYmlBZ0lDQWdJQ0FnWVhWMGFHOXlhWHBoZEdsdmJsVnliRG9nWUdoMGRIQnpPaTh2Ykc5bmFXNHViV2xqY205emIyWjBiMjVzYVc1bExtTnZiUzhrZTJsa1pXNTBhWFI1VUhKdmRtbGtaWEl1ZEdWdVlXNTBTV1I5TDI5aGRYUm9NaTkyTWk0d0wyRjFkR2h2Y21sNlpXQXNYRzRnSUNBZ0lDQWdJR05zYVdWdWRFRjFkR2hOWlhSb2IyUTZJRndpWTJ4cFpXNTBYM05sWTNKbGRGOXdiM04wWENJc1hHNGdJQ0FnSUNBZ0lHeHZaMjkxZEZWeWJEb2dZR2gwZEhCek9pOHZiRzluYVc0dWJXbGpjbTl6YjJaMGIyNXNhVzVsTG1OdmJTOGtlMmxrWlc1MGFYUjVVSEp2ZG1sa1pYSXVkR1Z1WVc1MFNXUjlMMjloZFhSb01pOTJNaTR3TDJ4dloyOTFkR0FzWEc0Z0lDQWdJQ0FnSUhONWJtTk5iMlJsT2lCcFpHVnVkR2wwZVZCeWIzWnBaR1Z5TG5ONWJtTk5iMlJsSUQ4L0lGd2lURVZIUVVOWlhDSXNYRzRnSUNBZ0lDQWdJR05zYVdWdWRGTmxZM0psZERvZ2FXUmxiblJwZEhsUWNtOTJhV1JsY2k1amJHbGxiblJUWldOeVpYUXNYRzRnSUNBZ0lDQWdJQzR1TG1sa1pXNTBhWFI1VUhKdmRtbGtaWEl1WTI5dVptbG5MRnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5QnlaWEYxWlhOMEtGeHVJQ0FnSUcxbGRHaHZaRG9nWENKSFJWUmNJaUI4SUZ3aVVFOVRWRndpSUh3Z1hDSlFWVlJjSWlCOElGd2lSRVZNUlZSRlhDSXNYRzRnSUNBZ2NHRjBhRG9nYzNSeWFXNW5MRnh1SUNBZ0lHRmpZMlZ6YzFSdmEyVnVPaUJ6ZEhKcGJtY2dmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdjR0Y1Ykc5aFpEb2dkVzVyYm05M2JpeGNiaUFnSUNCemRXTmpaWE56UTI5a1pUb2diblZ0WW1WeUxGeHVJQ0FnSUdobFlXUmxjbk02SUZKbFkyOXlaRHh6ZEhKcGJtY3NJSE4wY21sdVp6NHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1EyOXVkR1Y0ZEhWaGJFRnlaM004WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEdGdWVUNGdlMXh1SUNBZ0lIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lIUm9hWE11Y21WeGRXVnpkQ2s3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbU5zYVdWdWRDNXlaWEYxWlhOMEtIdGNiaUFnSUNBZ0lHMWxkR2h2WkN4Y2JpQWdJQ0FnSUhWeWJEb2dZQ1I3ZEdocGN5NWpiMjVtYVdjdWNISnZkRzlqYjJ4OU9pOHZKSHQwYUdsekxtTnZibVpwWnk1b2IzTjBmU1I3Y0dGMGFIMWdMRnh1SUNBZ0lDQWdaR0YwWVRwY2JpQWdJQ0FnSUNBZ2NHRjViRzloWkNBOVBUMGdkVzVrWldacGJtVmtYRzRnSUNBZ0lDQWdJQ0FnUHlCMWJtUmxabWx1WldSY2JpQWdJQ0FnSUNBZ0lDQTZJSFI1Y0dWdlppQndZWGxzYjJGa0lEMDlQU0JjSW5OMGNtbHVaMXdpWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JSEJoZVd4dllXUmNiaUFnSUNBZ0lDQWdJQ0FnSURvZ1NsTlBUaTV6ZEhKcGJtZHBabmtvY0dGNWJHOWhaQ2tzWEc0Z0lDQWdJQ0JvWldGa1pYSnpPaUI3WEc0Z0lDQWdJQ0FnSUM0dUxtaGxZV1JsY25Nc1hHNGdJQ0FnSUNBZ0lDNHVMaWhoWTJObGMzTlViMnRsYmlBL0lIc2dRWFYwYUc5eWFYcGhkR2x2YmpvZ1lFSmxZWEpsY2lBa2UyRmpZMlZ6YzFSdmEyVnVmV0FnZlNBNklIdDlLU3hjYmlBZ0lDQWdJQ0FnTGk0dUtIQmhlV3h2WVdRZ0lUMDlJSFZ1WkdWbWFXNWxaQ0FtSmlCMGVYQmxiMllnY0dGNWJHOWhaQ0FoUFQwZ1hDSnpkSEpwYm1kY0lseHVJQ0FnSUNBZ0lDQWdJRDhnZXlCY0lrTnZiblJsYm5RdFZIbHdaVndpT2lCY0ltRndjR3hwWTJGMGFXOXVMMnB6YjI1Y0lpQjlYRzRnSUNBZ0lDQWdJQ0FnT2lCN2ZTa3NYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdhSFIwY0hOQloyVnVkRG9nYm1WM0lHaDBkSEJ6TGtGblpXNTBLSHRjYmlBZ0lDQWdJQ0FnY21WcVpXTjBWVzVoZFhSb2IzSnBlbVZrT2lBb2NtVnpiMngyWlV0bGVXTnNiMkZyU1hOUWNtOWtkV04wYVc5dUtIUm9hWE11WTI5dVptbG5JR0Z6SUdGdWVTa3BMRnh1SUNBZ0lDQWdmU2tzWEc0Z0lDQWdJQ0IyWVd4cFpHRjBaVk4wWVhSMWN6b2dLQ2tnUFQ0Z2RISjFaU3hjYmlBZ0lDQjlLVHRjYmlBZ0lDQnBaaUFvY21WemNHOXVjMlV1YzNSaGRIVnpJQ0U5UFNCemRXTmpaWE56UTI5a1pTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1b1lXNWtiR1ZJZEhSd1VtVnpjRzl1YzJVb2NtVnpjRzl1YzJVc0lITjFZMk5sYzNORGIyUmxLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhKbGMzQnZibk5sTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCb1lXNWtiR1ZJZEhSd1VtVnpjRzl1YzJVb2NtVnpjRzl1YzJVNklHRnVlU3dnYzNWalkyVnpjME52WkdVNklHNTFiV0psY2lrNklIWnZhV1FnZTF4dUlDQWdJR052Ym5OMElITjBZWFIxY3lBOUlISmxjM0J2Ym5ObExuTjBZWFIxY3lCaGN5QnVkVzFpWlhJN1hHNGdJQ0FnWTI5dWMzUWdiV1Z6YzJGblpTQTlJR0JGZUhCbFkzUmxaQ0FrZTNOMVkyTmxjM05EYjJSbGZTd2djbVZqWldsMlpXUWdKSHR5WlhOd2IyNXpaUzV6ZEdGMGRYTjlPaUFrZTNKbGMzQnZibk5sTG5OMFlYUjFjMVJsZUhSOVlEdGNiaUFnSUNCcFppQW9jM1JoZEhWeklEMDlQU0EwTURRZ2ZId2diV1Z6YzJGblpTNTBiMHh2ZDJWeVEyRnpaU2dwTG1sdVkyeDFaR1Z6S0Z3aWJtOTBJR1p2ZFc1a1hDSXBLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tITjBZWFIxY3lBOVBUMGdOREE1SUh4OElHMWxjM05oWjJVdWRHOU1iM2RsY2tOaGMyVW9LUzVwYm1Oc2RXUmxjeWhjSW1OdmJtWnNhV04wWENJcEtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dRMjl1Wm14cFkzUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0hOMFlYUjFjeUE5UFQwZ05EQXdLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUW1Ga1VtVnhkV1Z6ZEVWeWNtOXlLRzFsYzNOaFoyVXBPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9jM1JoZEhWeklEMDlQU0EwTURFZ2ZId2djM1JoZEhWeklEMDlQU0EwTURNcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdmVnh1WEc0Z0lIQnliM1JsWTNSbFpDQndZWEp6WlVWeWNtOXlLR1Z5Y205eU9pQkZjbkp2Y2lrNklFVnljbTl5SUh0Y2JpQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdaWEp5YjNJdWJXVnpjMkZuWlNCOGZDQmxjbkp2Y2k1dVlXMWxJSHg4SUZ3aVZXNXJibTkzYmlCbGNuSnZjbHdpTzF4dUlDQWdJR052Ym5OMElHeHZkMlZ5VFdWemMyRm5aU0E5SUcxbGMzTmhaMlV1ZEc5TWIzZGxja05oYzJVb0tUdGNibHh1SUNBZ0lHbG1JQ2hzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSnViM1FnWm05MWJtUmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpTkRBMFhDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUU1dmRFWnZkVzVrUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltRnNjbVZoWkhrZ1pYaHBjM1J6WENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltTnZibVpzYVdOMFhDSXBJSHg4SUd4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJalF3T1Z3aUtTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJEYjI1bWJHbGpkRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKcGJuWmhiR2xrWENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltSmhaQ0J5WlhGMVpYTjBYQ0lwSUh4OElHeHZkMlZ5VFdWemMyRm5aUzVwYm1Oc2RXUmxjeWhjSWpRd01Gd2lLU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZHlCQ1lXUlNaWEYxWlhOMFJYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0d4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJblZ1WVhWMGFHOXlhWHBsWkZ3aUtTQjhmQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSTBNREZjSWlrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dUbTkwUm05MWJtUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpWm05eVltbGtaR1Z1WENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0lqUXdNMXdpS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjR0Z5YzJWS2MyOXVVbVZ6Y0c5dWMyVThWRDRvWkdGMFlUb2dkVzVyYm05M2JpazZJRlFnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ1pHRjBZU0E5UFQwZ1hDSnpkSEpwYm1kY0lpa2dlMXh1SUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUVwVFQwNHVjR0Z5YzJVb1pHRjBZU2tnWVhNZ1ZEdGNiaUFnSUNBZ0lIMGdZMkYwWTJnZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdaR0YwWVNCaGN5QlVPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==
|