@decaf-ts/integrations 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/integrations.cjs +48 -2
- package/dist/integrations.js +49 -2
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
- package/lib/cjs/blob/core/BlobKey.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
- package/lib/cjs/blob/core/BlobValue.cjs +2 -2
- package/lib/cjs/blob/core/index.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/gcp/index.cjs +2 -2
- package/lib/cjs/blob/index.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/index.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/local/index.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/memory/index.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/graph/constants.cjs +2 -2
- package/lib/cjs/graph/decorators.cjs +2 -2
- package/lib/cjs/graph/errors/GraphCycleError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphExecutionError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphInputError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphLoopLimitError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphPinningError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphPortError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphStoreError.cjs +2 -2
- package/lib/cjs/graph/errors/GraphTopologyError.cjs +2 -2
- package/lib/cjs/graph/errors/index.cjs +2 -2
- package/lib/cjs/graph/events/GraphExecutionEvent.cjs +2 -2
- package/lib/cjs/graph/events/GraphExecutionEventEmitter.cjs +2 -2
- package/lib/cjs/graph/events/GraphExecutionEventFactory.cjs +2 -2
- package/lib/cjs/graph/events/GraphExecutionObserver.cjs +2 -2
- package/lib/cjs/graph/events/index.cjs +2 -2
- package/lib/cjs/graph/execution/GraphExecutionContext.cjs +2 -2
- package/lib/cjs/graph/execution/GraphExecutionEngine.cjs +3 -2
- package/lib/cjs/graph/execution/GraphExecutionFrame.cjs +2 -2
- package/lib/cjs/graph/execution/GraphExecutionResult.cjs +2 -2
- package/lib/cjs/graph/execution/GraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/execution/index.cjs +2 -2
- package/lib/cjs/graph/index.cjs +2 -2
- package/lib/cjs/graph/loops/ForeachGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs +2 -2
- package/lib/cjs/graph/loops/GraphLoopExecutionContext.cjs +2 -2
- package/lib/cjs/graph/loops/UntilGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/loops/WhileGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/loops/index.cjs +2 -2
- package/lib/cjs/graph/pinning/GraphPinningDependencyResolver.cjs +2 -2
- package/lib/cjs/graph/pinning/GraphPinningMetadata.cjs +2 -2
- package/lib/cjs/graph/pinning/GraphPinningPolicy.cjs +2 -2
- package/lib/cjs/graph/pinning/GraphPinningService.cjs +2 -2
- package/lib/cjs/graph/pinning/index.cjs +2 -2
- package/lib/cjs/graph/planning/GraphExecutionPlan.cjs +2 -2
- package/lib/cjs/graph/planning/GraphExecutionPlanEdge.cjs +2 -2
- package/lib/cjs/graph/planning/GraphExecutionPlanLayer.cjs +2 -2
- package/lib/cjs/graph/planning/GraphExecutionPlanNode.cjs +2 -2
- package/lib/cjs/graph/planning/GraphExecutionPlanner.cjs +2 -2
- package/lib/cjs/graph/planning/GraphRelationResolver.cjs +2 -2
- package/lib/cjs/graph/planning/GraphTopology.cjs +2 -2
- package/lib/cjs/graph/planning/index.cjs +2 -2
- package/lib/cjs/graph/registry/GraphNodeExecutorRegistry.cjs +2 -2
- package/lib/cjs/graph/registry/GraphNodeExecutorResolver.cjs +2 -2
- package/lib/cjs/graph/registry/index.cjs +2 -2
- package/lib/cjs/graph/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
- package/lib/cjs/graph/snapshots/index.cjs +2 -2
- package/lib/cjs/graph/store/GraphCachedValue.cjs +2 -2
- package/lib/cjs/graph/store/GraphValueKey.cjs +2 -2
- package/lib/cjs/graph/store/GraphValueStore.cjs +2 -2
- package/lib/cjs/graph/store/GraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/store/index.cjs +2 -2
- package/lib/cjs/graph/types.cjs +2 -2
- package/lib/cjs/graph/validation/GraphDefinitionValidator.cjs +2 -2
- package/lib/cjs/graph/validation/GraphPortSchemaResolver.cjs +2 -2
- package/lib/cjs/graph/validation/GraphValueValidator.cjs +2 -2
- package/lib/cjs/graph/validation/index.cjs +2 -2
- package/lib/cjs/index.cjs +5 -5
- package/lib/cjs/keycloak/index.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +4 -4
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +4 -4
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +4 -4
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +4 -4
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +4 -4
- package/lib/cjs/keycloak/services/KeycloakService.cjs +30 -22
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +4 -4
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/kibana/helpers.cjs +2 -2
- package/lib/cjs/kibana/index.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +5 -5
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +5 -5
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +4 -4
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +4 -4
- package/lib/cjs/kibana/services/KibanaService.cjs +27 -19
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +4 -4
- package/lib/cjs/kibana/services/KibanaUserService.cjs +4 -4
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/types.cjs +2 -2
- package/lib/cjs/nest/authService.cjs +2 -2
- package/lib/cjs/nest/index.cjs +2 -2
- package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
- package/lib/cjs/nest/keycloakModule.cjs +2 -2
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/utils.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/aws/index.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
- package/lib/cjs/secrets/core/SecretName.cjs +2 -2
- package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
- package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
- package/lib/cjs/secrets/core/SecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
- package/lib/cjs/secrets/core/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/gcp/index.cjs +2 -2
- package/lib/cjs/secrets/index.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/model/Secret.cjs +2 -2
- package/lib/cjs/secrets/model/index.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/onepassword/index.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/vault/index.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/utils.cjs +2 -2
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/core/BlobErrors.js +1 -1
- package/lib/esm/blob/core/BlobKey.js +1 -1
- package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
- package/lib/esm/blob/core/BlobStoreService.js +1 -1
- package/lib/esm/blob/core/BlobTypes.js +1 -1
- package/lib/esm/blob/core/BlobValue.js +1 -1
- package/lib/esm/blob/core/index.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
- package/lib/esm/blob/gcp/index.js +1 -1
- package/lib/esm/blob/index.js +1 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/index.js +1 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
- package/lib/esm/blob/local/index.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
- package/lib/esm/blob/memory/index.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/graph/constants.js +1 -1
- package/lib/esm/graph/decorators.js +1 -1
- package/lib/esm/graph/errors/GraphCycleError.js +1 -1
- package/lib/esm/graph/errors/GraphExecutionError.js +1 -1
- package/lib/esm/graph/errors/GraphInputError.js +1 -1
- package/lib/esm/graph/errors/GraphLoopLimitError.js +1 -1
- package/lib/esm/graph/errors/GraphPinningError.js +1 -1
- package/lib/esm/graph/errors/GraphPortError.js +1 -1
- package/lib/esm/graph/errors/GraphStoreError.js +1 -1
- package/lib/esm/graph/errors/GraphTopologyError.js +1 -1
- package/lib/esm/graph/errors/index.js +1 -1
- package/lib/esm/graph/events/GraphExecutionEvent.js +1 -1
- package/lib/esm/graph/events/GraphExecutionEventEmitter.js +1 -1
- package/lib/esm/graph/events/GraphExecutionEventFactory.js +1 -1
- package/lib/esm/graph/events/GraphExecutionObserver.js +1 -1
- package/lib/esm/graph/events/index.js +1 -1
- package/lib/esm/graph/execution/GraphExecutionContext.js +1 -1
- package/lib/esm/graph/execution/GraphExecutionEngine.js +2 -1
- package/lib/esm/graph/execution/GraphExecutionFrame.js +1 -1
- package/lib/esm/graph/execution/GraphExecutionResult.js +1 -1
- package/lib/esm/graph/execution/GraphNodeExecutor.js +1 -1
- package/lib/esm/graph/execution/index.js +1 -1
- package/lib/esm/graph/index.js +1 -1
- package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/loops/GraphConditionEvaluator.js +1 -1
- package/lib/esm/graph/loops/GraphLoopExecutionContext.js +1 -1
- package/lib/esm/graph/loops/UntilGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/loops/WhileGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/loops/index.js +1 -1
- package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js +1 -1
- package/lib/esm/graph/pinning/GraphPinningMetadata.js +1 -1
- package/lib/esm/graph/pinning/GraphPinningPolicy.js +1 -1
- package/lib/esm/graph/pinning/GraphPinningService.js +1 -1
- package/lib/esm/graph/pinning/index.js +1 -1
- package/lib/esm/graph/planning/GraphExecutionPlan.js +1 -1
- package/lib/esm/graph/planning/GraphExecutionPlanEdge.js +1 -1
- package/lib/esm/graph/planning/GraphExecutionPlanLayer.js +1 -1
- package/lib/esm/graph/planning/GraphExecutionPlanNode.js +1 -1
- package/lib/esm/graph/planning/GraphExecutionPlanner.js +1 -1
- package/lib/esm/graph/planning/GraphRelationResolver.js +1 -1
- package/lib/esm/graph/planning/GraphTopology.js +1 -1
- package/lib/esm/graph/planning/index.js +1 -1
- package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js +1 -1
- package/lib/esm/graph/registry/GraphNodeExecutorResolver.js +1 -1
- package/lib/esm/graph/registry/index.js +1 -1
- package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js +1 -1
- package/lib/esm/graph/snapshots/index.js +1 -1
- package/lib/esm/graph/store/GraphCachedValue.js +1 -1
- package/lib/esm/graph/store/GraphValueKey.js +1 -1
- package/lib/esm/graph/store/GraphValueStore.js +1 -1
- package/lib/esm/graph/store/GraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/store/index.js +1 -1
- package/lib/esm/graph/types.js +1 -1
- package/lib/esm/graph/validation/GraphDefinitionValidator.js +1 -1
- package/lib/esm/graph/validation/GraphPortSchemaResolver.js +1 -1
- package/lib/esm/graph/validation/GraphValueValidator.js +1 -1
- package/lib/esm/graph/validation/index.js +1 -1
- package/lib/esm/index.js +4 -4
- package/lib/esm/keycloak/index.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js +3 -3
- package/lib/esm/keycloak/services/KeycloakClientService.js +3 -3
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +3 -3
- package/lib/esm/keycloak/services/KeycloakRealmService.js +3 -3
- package/lib/esm/keycloak/services/KeycloakRoleService.js +3 -3
- package/lib/esm/keycloak/services/KeycloakService.js +29 -21
- package/lib/esm/keycloak/services/KeycloakUserService.js +3 -3
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/kibana/helpers.js +1 -1
- package/lib/esm/kibana/index.js +1 -1
- package/lib/esm/kibana/services/KibanaAuthService.js +4 -4
- package/lib/esm/kibana/services/KibanaDashboardService.js +4 -4
- package/lib/esm/kibana/services/KibanaDataViewService.js +3 -3
- package/lib/esm/kibana/services/KibanaRoleService.js +3 -3
- package/lib/esm/kibana/services/KibanaService.js +26 -18
- package/lib/esm/kibana/services/KibanaSpaceService.js +3 -3
- package/lib/esm/kibana/services/KibanaUserService.js +3 -3
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/types.js +1 -1
- package/lib/esm/nest/authService.js +1 -1
- package/lib/esm/nest/index.js +1 -1
- package/lib/esm/nest/keycloakAuthHandler.js +1 -1
- package/lib/esm/nest/keycloakModule.js +1 -1
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/utils.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/aws/index.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/core/SecretErrors.js +1 -1
- package/lib/esm/secrets/core/SecretName.js +1 -1
- package/lib/esm/secrets/core/SecretReference.js +1 -1
- package/lib/esm/secrets/core/SecretSerialization.js +1 -1
- package/lib/esm/secrets/core/SecretService.js +1 -1
- package/lib/esm/secrets/core/SecretTypes.js +1 -1
- package/lib/esm/secrets/core/index.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
- package/lib/esm/secrets/gcp/index.js +1 -1
- package/lib/esm/secrets/index.js +1 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js +1 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/model/Secret.js +1 -1
- package/lib/esm/secrets/model/index.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/onepassword/index.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/vault/index.js +1 -1
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/types/graph/execution/GraphExecutionEngine.d.cts +7 -0
- package/lib/types/graph/execution/GraphExecutionEngine.d.mts +7 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/keycloak/services/KeycloakService.d.cts +2 -1
- package/lib/types/keycloak/services/KeycloakService.d.mts +2 -1
- package/lib/types/keycloak/types.d.cts +1 -4
- package/lib/types/keycloak/types.d.mts +1 -4
- package/lib/types/kibana/services/KibanaService.d.cts +2 -1
- package/lib/types/kibana/services/KibanaService.d.mts +2 -1
- package/lib/types/kibana/types.d.cts +1 -4
- package/lib/types/kibana/types.d.mts +1 -4
- package/package.json +1 -1
- package/dist/integrations.cjs.map +0 -1
- package/dist/integrations.js.map +0 -1
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/azure/index.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
- package/lib/cjs/blob/core/index.cjs.map +0 -1
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/gcp/index.cjs.map +0 -1
- package/lib/cjs/blob/index.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/index.cjs.map +0 -1
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/local/index.cjs.map +0 -1
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/memory/index.cjs.map +0 -1
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/index.cjs.map +0 -1
- package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
- package/lib/cjs/docker/index.cjs.map +0 -1
- package/lib/cjs/graph/constants.cjs.map +0 -1
- package/lib/cjs/graph/decorators.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphCycleError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphExecutionError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphInputError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphLoopLimitError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphPinningError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphPortError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphStoreError.cjs.map +0 -1
- package/lib/cjs/graph/errors/GraphTopologyError.cjs.map +0 -1
- package/lib/cjs/graph/errors/index.cjs.map +0 -1
- package/lib/cjs/graph/events/GraphExecutionEvent.cjs.map +0 -1
- package/lib/cjs/graph/events/GraphExecutionEventEmitter.cjs.map +0 -1
- package/lib/cjs/graph/events/GraphExecutionEventFactory.cjs.map +0 -1
- package/lib/cjs/graph/events/GraphExecutionObserver.cjs.map +0 -1
- package/lib/cjs/graph/events/index.cjs.map +0 -1
- package/lib/cjs/graph/execution/GraphExecutionContext.cjs.map +0 -1
- package/lib/cjs/graph/execution/GraphExecutionEngine.cjs.map +0 -1
- package/lib/cjs/graph/execution/GraphExecutionFrame.cjs.map +0 -1
- package/lib/cjs/graph/execution/GraphExecutionResult.cjs.map +0 -1
- package/lib/cjs/graph/execution/GraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/execution/index.cjs.map +0 -1
- package/lib/cjs/graph/index.cjs.map +0 -1
- package/lib/cjs/graph/loops/ForeachGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/loops/GraphLoopExecutionContext.cjs.map +0 -1
- package/lib/cjs/graph/loops/UntilGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/loops/WhileGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/loops/index.cjs.map +0 -1
- package/lib/cjs/graph/pinning/GraphPinningDependencyResolver.cjs.map +0 -1
- package/lib/cjs/graph/pinning/GraphPinningMetadata.cjs.map +0 -1
- package/lib/cjs/graph/pinning/GraphPinningPolicy.cjs.map +0 -1
- package/lib/cjs/graph/pinning/GraphPinningService.cjs.map +0 -1
- package/lib/cjs/graph/pinning/index.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphExecutionPlan.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphExecutionPlanEdge.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphExecutionPlanLayer.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphExecutionPlanNode.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphExecutionPlanner.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphRelationResolver.cjs.map +0 -1
- package/lib/cjs/graph/planning/GraphTopology.cjs.map +0 -1
- package/lib/cjs/graph/planning/index.cjs.map +0 -1
- package/lib/cjs/graph/registry/GraphNodeExecutorRegistry.cjs.map +0 -1
- package/lib/cjs/graph/registry/GraphNodeExecutorResolver.cjs.map +0 -1
- package/lib/cjs/graph/registry/index.cjs.map +0 -1
- package/lib/cjs/graph/snapshots/GraphExecutionSnapshotMapper.cjs.map +0 -1
- package/lib/cjs/graph/snapshots/index.cjs.map +0 -1
- package/lib/cjs/graph/store/GraphCachedValue.cjs.map +0 -1
- package/lib/cjs/graph/store/GraphValueKey.cjs.map +0 -1
- package/lib/cjs/graph/store/GraphValueStore.cjs.map +0 -1
- package/lib/cjs/graph/store/GraphValueStoreAdapter.cjs.map +0 -1
- package/lib/cjs/graph/store/InMemoryGraphValueStoreAdapter.cjs.map +0 -1
- package/lib/cjs/graph/store/index.cjs.map +0 -1
- package/lib/cjs/graph/types.cjs.map +0 -1
- package/lib/cjs/graph/validation/GraphDefinitionValidator.cjs.map +0 -1
- package/lib/cjs/graph/validation/GraphPortSchemaResolver.cjs.map +0 -1
- package/lib/cjs/graph/validation/GraphValueValidator.cjs.map +0 -1
- package/lib/cjs/graph/validation/index.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/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/types.cjs.map +0 -1
- package/lib/cjs/nest/authService.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/constants.js.map +0 -1
- package/lib/esm/graph/decorators.js.map +0 -1
- package/lib/esm/graph/errors/GraphCycleError.js.map +0 -1
- package/lib/esm/graph/errors/GraphExecutionError.js.map +0 -1
- package/lib/esm/graph/errors/GraphInputError.js.map +0 -1
- package/lib/esm/graph/errors/GraphLoopLimitError.js.map +0 -1
- package/lib/esm/graph/errors/GraphPinningError.js.map +0 -1
- package/lib/esm/graph/errors/GraphPortError.js.map +0 -1
- package/lib/esm/graph/errors/GraphStoreError.js.map +0 -1
- package/lib/esm/graph/errors/GraphTopologyError.js.map +0 -1
- package/lib/esm/graph/errors/index.js.map +0 -1
- package/lib/esm/graph/events/GraphExecutionEvent.js.map +0 -1
- package/lib/esm/graph/events/GraphExecutionEventEmitter.js.map +0 -1
- package/lib/esm/graph/events/GraphExecutionEventFactory.js.map +0 -1
- package/lib/esm/graph/events/GraphExecutionObserver.js.map +0 -1
- package/lib/esm/graph/events/index.js.map +0 -1
- package/lib/esm/graph/execution/GraphExecutionContext.js.map +0 -1
- package/lib/esm/graph/execution/GraphExecutionEngine.js.map +0 -1
- package/lib/esm/graph/execution/GraphExecutionFrame.js.map +0 -1
- package/lib/esm/graph/execution/GraphExecutionResult.js.map +0 -1
- package/lib/esm/graph/execution/GraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/execution/index.js.map +0 -1
- package/lib/esm/graph/index.js.map +0 -1
- package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/loops/GraphConditionEvaluator.js.map +0 -1
- package/lib/esm/graph/loops/GraphLoopExecutionContext.js.map +0 -1
- package/lib/esm/graph/loops/UntilGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/loops/WhileGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/loops/index.js.map +0 -1
- package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js.map +0 -1
- package/lib/esm/graph/pinning/GraphPinningMetadata.js.map +0 -1
- package/lib/esm/graph/pinning/GraphPinningPolicy.js.map +0 -1
- package/lib/esm/graph/pinning/GraphPinningService.js.map +0 -1
- package/lib/esm/graph/pinning/index.js.map +0 -1
- package/lib/esm/graph/planning/GraphExecutionPlan.js.map +0 -1
- package/lib/esm/graph/planning/GraphExecutionPlanEdge.js.map +0 -1
- package/lib/esm/graph/planning/GraphExecutionPlanLayer.js.map +0 -1
- package/lib/esm/graph/planning/GraphExecutionPlanNode.js.map +0 -1
- package/lib/esm/graph/planning/GraphExecutionPlanner.js.map +0 -1
- package/lib/esm/graph/planning/GraphRelationResolver.js.map +0 -1
- package/lib/esm/graph/planning/GraphTopology.js.map +0 -1
- package/lib/esm/graph/planning/index.js.map +0 -1
- package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js.map +0 -1
- package/lib/esm/graph/registry/GraphNodeExecutorResolver.js.map +0 -1
- package/lib/esm/graph/registry/index.js.map +0 -1
- package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js.map +0 -1
- package/lib/esm/graph/snapshots/index.js.map +0 -1
- package/lib/esm/graph/store/GraphCachedValue.js.map +0 -1
- package/lib/esm/graph/store/GraphValueKey.js.map +0 -1
- package/lib/esm/graph/store/GraphValueStore.js.map +0 -1
- package/lib/esm/graph/store/GraphValueStoreAdapter.js.map +0 -1
- package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js.map +0 -1
- package/lib/esm/graph/store/index.js.map +0 -1
- package/lib/esm/graph/types.js.map +0 -1
- package/lib/esm/graph/validation/GraphDefinitionValidator.js.map +0 -1
- package/lib/esm/graph/validation/GraphPortSchemaResolver.js.map +0 -1
- package/lib/esm/graph/validation/GraphValueValidator.js.map +0 -1
- package/lib/esm/graph/validation/index.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/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/types.js.map +0 -1
- package/lib/esm/nest/authService.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
|
@@ -99,7 +99,7 @@ class KeycloakAuthService extends core_1.ClientBasedService {
|
|
|
99
99
|
headers: { "Content-Type": "application/json" },
|
|
100
100
|
validateStatus: () => true,
|
|
101
101
|
httpsAgent: new https.Agent({
|
|
102
|
-
rejectUnauthorized: config.isProduction(),
|
|
102
|
+
rejectUnauthorized: (this.config.isProduction()),
|
|
103
103
|
}),
|
|
104
104
|
});
|
|
105
105
|
}
|
|
@@ -121,7 +121,7 @@ class KeycloakAuthService extends core_1.ClientBasedService {
|
|
|
121
121
|
: {}),
|
|
122
122
|
},
|
|
123
123
|
httpsAgent: new https.Agent({
|
|
124
|
-
rejectUnauthorized: this.config.isProduction(),
|
|
124
|
+
rejectUnauthorized: (this.config.isProduction()),
|
|
125
125
|
}),
|
|
126
126
|
validateStatus: () => true,
|
|
127
127
|
});
|
|
@@ -182,5 +182,5 @@ class KeycloakAuthService extends core_1.ClientBasedService {
|
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
exports.KeycloakAuthService = KeycloakAuthService;
|
|
185
|
-
//# sourceMappingURL=KeycloakAuthService.js.map
|
|
186
|
-
//# sourceMappingURL=KeycloakAuthService.cjs.map
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtBdXRoU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9rZXljbG9hay9zZXJ2aWNlcy9LZXljbG9ha0F1dGhTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBQzdDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFHeEM7SUFDQyxLQUFLLENBQUMsVUFBVSxDQUNkLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUM1QyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBd0IsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FDbEIsWUFBMEIsRUFDMUIsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxn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QUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFNLENBQUM7WUFDL0IsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb250ZXh0dWFsQXJncywgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB0eXBlIHsgS2V5Y2xvYWtTZXR1cENvbmZpZywgS2V5Y2xvYWtVc2VyIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgQXhpb3MsIHsgQXhpb3NJbnN0YW5jZSB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcblxuZXhwb3J0IGNsYXNzIEtleWNsb2FrQXV0aFNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2U8XG4gIEF4aW9zSW5zdGFuY2UsXG4gIEtleWNsb2FrU2V0dXBDb25maWdcbj4ge1xuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IEtleWNsb2FrU2V0dXBDb25maWc7IGNsaWVudDogQXhpb3NJbnN0YW5jZSB9PiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF0gYXMgS2V5Y2xvYWtTZXR1cENvbmZpZztcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gIH1cblxuICBhc3luYyBnZXRBY2Nlc3NUb2tlbihcbiAgICBrZXljbG9ha1VzZXI6IEtleWNsb2FrVXNlcixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJnZXRBY2Nlc3NUb2tlblwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZ2V0QWNjZXNzVG9rZW4pO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGAvcmVhbG1zLyR7a2V5Y2xvYWtVc2VyLnJlYWxtfS9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbmAsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgY2xpZW50X2lkOiBrZXljbG9ha1VzZXIuYXBpQ2xpZW50SWQsXG4gICAgICAgIHVzZXJuYW1lOiBrZXljbG9ha1VzZXIudXNlcm5hbWUsXG4gICAgICAgIHBhc3N3b3JkOiBrZXljbG9ha1VzZXIucGFzc3dvcmQsXG4gICAgICAgIGdyYW50X3R5cGU6IFwicGFzc3dvcmRcIixcbiAgICAgIH0pLnRvU3RyaW5nKCksXG4gICAgICAyMDAsXG4gICAgICB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgfSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8eyBhY2Nlc3NfdG9rZW4/OiBzdHJpbmcgfT4oXG4gICAgICByZXNwb25zZS5kYXRhXG4gICAgKTtcbiAgICBpZiAoZGF0YT8uYWNjZXNzX3Rva2VuKSByZXR1cm4gZGF0YS5hY2Nlc3NfdG9rZW47XG5cbiAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKFxuICAgICAgYFVuYWJsZSB0byBnZXQgS2V5Y2xvYWsgYWNjZXNzIHRva2VuIGZvciB1c2VyICR7a2V5Y2xvYWtVc2VyLnVzZXJuYW1lfWBcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVmcmVzaEFjY2Vzc1Rva2VuKFxuICAgIHJlZnJlc2hUb2tlbjogc3RyaW5nLFxuICAgIGNsaWVudElkOiBzdHJpbmcsXG4gICAgY2xpZW50U2VjcmV0OiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmVmcmVzaEFjY2Vzc1Rva2VuXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZWZyZXNoQWNjZXNzVG9rZW4pO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGAvcmVhbG1zLyR7dGhpcy5jb25maWcucmVhbG1BcGlVc2VyIS5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgIGNsaWVudF9pZDogY2xpZW50SWQsXG4gICAgICAgIGNsaWVudF9zZWNyZXQ6IGNsaWVudFNlY3JldCxcbiAgICAgICAgZ3JhbnRfdHlwZTogXCJyZWZyZXNoX3Rva2VuXCIsXG4gICAgICAgIHJlZnJlc2hfdG9rZW46IHJlZnJlc2hUb2tlbixcbiAgICAgIH0pLnRvU3RyaW5nKCksXG4gICAgICAyMDAsXG4gICAgICB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgfSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8eyBhY2Nlc3NfdG9rZW4/OiBzdHJpbmcgfT4oXG4gICAgICByZXNwb25zZS5kYXRhXG4gICAgKTtcbiAgICBpZiAoZGF0YT8uYWNjZXNzX3Rva2VuKSByZXR1cm4gZGF0YS5hY2Nlc3NfdG9rZW47XG5cbiAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKFwiVW5hYmxlIHRvIHJlZnJlc2ggS2V5Y2xvYWsgYWNjZXNzIHRva2VuXCIpO1xuICB9XG5cbiAgYXN5bmMgdmFsaWRhdGVBY2Nlc3NUb2tlbihcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ2YWxpZGF0ZUFjY2Vzc1Rva2VuXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy52YWxpZGF0ZUFjY2Vzc1Rva2VuKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICAgIFwiR0VUXCIsXG4gICAgICAgIGAvcmVhbG1zLyR7dGhpcy5jb25maWcucmVhbG1BcGlVc2VyIS5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdXNlcmluZm9gLFxuICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAyMDAsXG4gICAgICAgIHt9LFxuICAgICAgICAuLi5jdHhBcmdzXG4gICAgICApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9nb3V0KFxuICAgIGtleWNsb2FrVXNlcjogS2V5Y2xvYWtVc2VyLFxuICAgIHJlZnJlc2hUb2tlbjogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJsb2dvdXRcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmxvZ291dCk7XG5cbiAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGAvcmVhbG1zLyR7a2V5Y2xvYWtVc2VyLnJlYWxtfS9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC9sb2dvdXRgLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgIGNsaWVudF9pZDoga2V5Y2xvYWtVc2VyLmFwaUNsaWVudElkLFxuICAgICAgICByZWZyZXNoX3Rva2VuOiByZWZyZXNoVG9rZW4sXG4gICAgICB9KS50b1N0cmluZygpLFxuICAgICAgMjAwLFxuICAgICAgeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSHR0cENsaWVudChjb25maWc6IEtleWNsb2FrU2V0dXBDb25maWcpOiBBeGlvc0luc3RhbmNlIHtcbiAgICByZXR1cm4gQXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkw6IGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fWAsXG4gICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKCh0aGlzLmNvbmZpZyBhcyBhbnkpLmlzUHJvZHVjdGlvbigpKSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXF1ZXN0KFxuICAgIG1ldGhvZDogXCJHRVRcIiB8IFwiUE9TVFwiIHwgXCJQVVRcIiB8IFwiREVMRVRFXCIsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcGF5bG9hZDogdW5rbm93bixcbiAgICBzdWNjZXNzQ29kZTogbnVtYmVyLFxuICAgIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVxdWVzdCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5yZXF1ZXN0KHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIHVybDogYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fSR7cGF0aH1gLFxuICAgICAgZGF0YTpcbiAgICAgICAgcGF5bG9hZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICA6IHR5cGVvZiBwYXlsb2FkID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IHBheWxvYWRcbiAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICAgIC4uLihhY2Nlc3NUb2tlbiA/IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAgfSA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgcGF5bG9hZCAhPT0gXCJzdHJpbmdcIlxuICAgICAgICAgID8geyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9LFxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAoKHRoaXMuY29uZmlnIGFzIGFueSkuaXNQcm9kdWN0aW9uKCkpLFxuICAgICAgfSksXG4gICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICB9KTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSBzdWNjZXNzQ29kZSkge1xuICAgICAgdGhpcy5oYW5kbGVIdHRwUmVzcG9uc2UocmVzcG9uc2UsIHN1Y2Nlc3NDb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVIdHRwUmVzcG9uc2UoXG4gICAgcmVzcG9uc2U6IGFueSxcbiAgICBzdWNjZXNzQ29kZTogbnVtYmVyLFxuICAgIGVycm9yTXNnPzogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cyBhcyBudW1iZXI7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yTXNnXG4gICAgICA/IGAke2Vycm9yTXNnfTogRXhwZWN0ZWQgJHtzdWNjZXNzQ29kZX0sIHJlY2VpdmVkICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fS5gXG4gICAgICA6IGBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgICBpZiAoc3RhdHVzID09PSA0MDQgfHwgbWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gNDA5IHx8IG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSA0MDEgfHwgc3RhdHVzID09PSA0MDMpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUVycm9yKGVycm9yOiBFcnJvcik6IEVycm9yIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IubWVzc2FnZSB8fCBlcnJvci5uYW1lIHx8IFwiVW5rbm93biBlcnJvclwiO1xuICAgIGNvbnN0IGxvd2VyTWVzc2FnZSA9IG1lc3NhZ2UudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJub3QgZm91bmRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA0XCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImFscmVhZHkgZXhpc3RzXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwOVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJpbnZhbGlkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImJhZCByZXF1ZXN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcInVuYXV0aG9yaXplZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDFcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiZm9yYmlkZGVuXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwM1wiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VKc29uUmVzcG9uc2U8VD4oZGF0YTogdW5rbm93bik6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSkgYXMgVDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YSBhcyBUO1xuICB9XG59XG4iXX0=
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtBdXRoU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIktleWNsb2FrQXV0aFNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXdHO0FBQ3hHLHlDQUFvRDtBQUNwRCxrREFBMEI7QUFDMUIsa0RBQW9DO0FBQ3BDLE1BQWEsbUJBQW9CLFNBQVEseUJBQWtCO0lBQ3ZELEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLEdBQUcsSUFBSTtRQUN0QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsWUFBWSxDQUFDLEtBQUss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b250ZW50IjpbImltcG9ydCB7IEJhZFJlcXVlc3RFcnJvciwgQ29uZmxpY3RFcnJvciwgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciwgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IEF4aW9zIGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmV4cG9ydCBjbGFzcyBLZXljbG9ha0F1dGhTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlIHtcbiAgICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJpbml0aWFsaXplXCIsIHRydWUpKS5mb3IodGhpcy5pbml0aWFsaXplKTtcbiAgICAgICAgY29uc3QgY29uZmlnID0gY3R4QXJnc1swXTtcbiAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgICAgICBjb25zdCBjbGllbnQgPSB0aGlzLmNyZWF0ZUh0dHBDbGllbnQoY29uZmlnKTtcbiAgICAgICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgICAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICAgIH1cbiAgICBhc3luYyBnZXRBY2Nlc3NUb2tlbihrZXljbG9ha1VzZXIsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJnZXRBY2Nlc3NUb2tlblwiLCB0cnVlKSkuZm9yKHRoaXMuZ2V0QWNjZXNzVG9rZW4pO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYCwgdW5kZWZpbmVkLCBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgICAgIGNsaWVudF9pZDoga2V5Y2xvYWtVc2VyLmFwaUNsaWVudElkLFxuICAgICAgICAgICAgdXNlcm5hbWU6IGtleWNsb2FrVXNlci51c2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBrZXljbG9ha1VzZXIucGFzc3dvcmQsXG4gICAgICAgICAgICBncmFudF90eXBlOiBcInBhc3N3b3JkXCIsXG4gICAgICAgIH0pLnRvU3RyaW5nKCksIDIwMCwgeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5wYXJzZUpzb25SZXNwb25zZShyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgaWYgKGRhdGE/LmFjY2Vzc190b2tlbilcbiAgICAgICAgICAgIHJldHVybiBkYXRhLmFjY2Vzc190b2tlbjtcbiAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihgVW5hYmxlIHRvIGdldCBLZXljbG9hayBhY2Nlc3MgdG9rZW4gZm9yIHVzZXIgJHtrZXljbG9ha1VzZXIudXNlcm5hbWV9YCk7XG4gICAgfVxuICAgIGFzeW5jIHJlZnJlc2hBY2Nlc3NUb2tlbihyZWZyZXNoVG9rZW4sIGNsaWVudElkLCBjbGllbnRTZWNyZXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZWZyZXNoQWNjZXNzVG9rZW5cIiwgdHJ1ZSkpLmZvcih0aGlzLnJlZnJlc2hBY2Nlc3NUb2tlbik7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUE9TVFwiLCBgL3JlYWxtcy8ke3RoaXMuY29uZmlnLnJlYWxtQXBpVXNlci5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLCB1bmRlZmluZWQsIG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgICAgY2xpZW50X2lkOiBjbGllbnRJZCxcbiAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IGNsaWVudFNlY3JldCxcbiAgICAgICAgICAgIGdyYW50X3R5cGU6IFwicmVmcmVzaF90b2tlblwiLFxuICAgICAgICAgICAgcmVmcmVzaF90b2tlbjogcmVmcmVzaFRva2VuLFxuICAgICAgICB9KS50b1N0cmluZygpLCAyMDAsIHsgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiB9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgIGlmIChkYXRhPy5hY2Nlc3NfdG9rZW4pXG4gICAgICAgICAgICByZXR1cm4gZGF0YS5hY2Nlc3NfdG9rZW47XG4gICAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IoXCJVbmFibGUgdG8gcmVmcmVzaCBLZXljbG9hayBhY2Nlc3MgdG9rZW5cIik7XG4gICAgfVxuICAgIGFzeW5jIHZhbGlkYXRlQWNjZXNzVG9rZW4oYWNjZXNzVG9rZW4sIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ2YWxpZGF0ZUFjY2Vzc1Rva2VuXCIsIHRydWUpKS5mb3IodGhpcy52YWxpZGF0ZUFjY2Vzc1Rva2VuKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIkdFVFwiLCBgL3JlYWxtcy8ke3RoaXMuY29uZmlnLnJlYWxtQXBpVXNlci5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdXNlcmluZm9gLCBhY2Nlc3NUb2tlbiwgdW5kZWZpbmVkLCAyMDAsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBsb2dvdXQoa2V5Y2xvYWtVc2VyLCByZWZyZXNoVG9rZW4sIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJsb2dvdXRcIiwgdHJ1ZSkpLmZvcih0aGlzLmxvZ291dCk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2xvZ291dGAsIHVuZGVmaW5lZCwgbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgICAgICBjbGllbnRfaWQ6IGtleWNsb2FrVXNlci5hcGlDbGllbnRJZCxcbiAgICAgICAgICAgIHJlZnJlc2hfdG9rZW46IHJlZnJlc2hUb2tlbixcbiAgICAgICAgfSkudG9TdHJpbmcoKSwgMjAwLCB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgfSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnKSB7XG4gICAgICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6ICh0aGlzLmNvbmZpZy5pc1Byb2R1Y3Rpb24oKSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIHJlcXVlc3QobWV0aG9kLCBwYXRoLCBhY2Nlc3NUb2tlbiwgcGF5bG9hZCwgc3VjY2Vzc0NvZGUsIGhlYWRlcnMsIC4uLmFyZ3MpIHtcbiAgICAgICAgdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXF1ZXN0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5yZXF1ZXN0KHtcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIHVybDogYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fSR7cGF0aH1gLFxuICAgICAgICAgICAgZGF0YTogcGF5bG9hZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA6IHR5cGVvZiBwYXlsb2FkID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgICAgID8gcGF5bG9hZFxuICAgICAgICAgICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgLi4uKGFjY2Vzc1Rva2VuID8geyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCB9IDoge30pLFxuICAgICAgICAgICAgICAgIC4uLihwYXlsb2FkICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHBheWxvYWQgIT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgPyB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH1cbiAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6ICh0aGlzLmNvbmZpZy5pc1Byb2R1Y3Rpb24oKSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gc3VjY2Vzc0NvZGUpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlSHR0cFJlc3BvbnNlKHJlc3BvbnNlLCBzdWNjZXNzQ29kZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbiAgICBoYW5kbGVIdHRwUmVzcG9uc2UocmVzcG9uc2UsIHN1Y2Nlc3NDb2RlLCBlcnJvck1zZykge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvck1zZ1xuICAgICAgICAgICAgPyBgJHtlcnJvck1zZ306IEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH0uYFxuICAgICAgICAgICAgOiBgRXhwZWN0ZWQgJHtzdWNjZXNzQ29kZX0sIHJlY2VpdmVkICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwNCB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJub3QgZm91bmRcIikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwOSB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJjb25mbGljdFwiKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwMSB8fCBzdGF0dXMgPT09IDQwMykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHBhcnNlRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICAgICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHBhcnNlSnNvblJlc3BvbnNlKGRhdGEpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUzJWNVkyeHZZV3RCZFhSb1UyVnlkbWxqWlM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDNOeVl5OXJaWGxqYkc5aGF5OXpaWEoyYVdObGN5OUxaWGxqYkc5aGEwRjFkR2hUWlhKMmFXTmxMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzUlVGRFRDeGxRVUZsTEVWQlEyWXNZVUZCWVN4RlFVTmlMR0ZCUVdFc1JVRkRZaXhoUVVGaExFZEJRMlFzVFVGQlRTeDVRa0ZCZVVJc1EwRkJRenRCUVVWcVF5eFBRVUZQTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVWd1JDeFBRVUZQTEV0QlFYZENMRTFCUVUwc1QwRkJUeXhEUVVGRE8wRkJRemRETEU5QlFVOHNTMEZCU3l4TFFVRkxMRTFCUVUwc1dVRkJXU3hEUVVGRE8wRkJSWEJETEUxQlFVMHNUMEZCVHl4dFFrRkJiMElzVTBGQlVTeHJRa0ZIZUVNN1NVRkRReXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVU5rTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTJ4Q0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1dVRkJXU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU0xUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEZGtJc1RVRkJUU3hOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCZDBJc1EwRkJRenRSUVVOcVJDeEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVOMFFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkROME1zU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNN1VVRkRkRUlzVDBGQlR5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJRenRKUVVNMVFpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkRiRUlzV1VGQk1FSXNSVUZETVVJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGFFUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzFGQlJUTkNMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZEYWtNc1RVRkJUU3hGUVVOT0xGZEJRVmNzV1VGQldTeERRVUZETEV0QlFVc3NaME5CUVdkRExFVkJRemRFTEZOQlFWTXNSVUZEVkN4SlFVRkpMR1ZCUVdVc1EwRkJRenRaUVVOc1FpeFRRVUZUTEVWQlFVVXNXVUZCV1N4RFFVRkRMRmRCUVZjN1dVRkRia01zVVVGQlVTeEZRVUZGTEZsQlFWa3NRMEZCUXl4UlFVRlJPMWxCUXk5Q0xGRkJRVkVzUlVGQlJTeFpRVUZaTEVOQlFVTXNVVUZCVVR0WlFVTXZRaXhWUVVGVkxFVkJRVVVzVlVGQlZUdFRRVU4yUWl4RFFVRkRMRU5CUVVNc1VVRkJVU3hGUVVGRkxFVkJRMklzUjBGQlJ5eEZRVU5JTEVWQlFVVXNZMEZCWXl4RlFVRkZMRzFEUVVGdFF5eEZRVUZGTEVWQlEzWkVMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRlJpeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlEycERMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRMlFzUTBGQlF6dFJRVU5HTEVsQlFVa3NTVUZCU1N4RlFVRkZMRmxCUVZrN1dVRkJSU3hQUVVGUExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTTdVVUZGYWtRc1RVRkJUU3hKUVVGSkxHVkJRV1VzUTBGRGRrSXNaMFJCUVdkRUxGbEJRVmtzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZEZUVVc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNhMEpCUVd0Q0xFTkJRM1JDTEZsQlFXOUNMRVZCUTNCQ0xGRkJRV2RDTEVWQlEyaENMRmxCUVc5Q0xFVkJRM0JDTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTJ4Q0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc2IwSkJRVzlDTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUTNCRUxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eERRVUZETzFGQlJTOUNMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZEYWtNc1RVRkJUU3hGUVVOT0xGZEJRVmNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRmhMRU5CUVVNc1MwRkJTeXhuUTBGQlowTXNSVUZETVVVc1UwRkJVeXhGUVVOVUxFbEJRVWtzWlVGQlpTeERRVUZETzFsQlEyeENMRk5CUVZNc1JVRkJSU3hSUVVGUk8xbEJRMjVDTEdGQlFXRXNSVUZCUlN4WlFVRlpPMWxCUXpOQ0xGVkJRVlVzUlVGQlJTeGxRVUZsTzFsQlF6TkNMR0ZCUVdFc1JVRkJSU3haUVVGWk8xTkJRelZDTEVOQlFVTXNRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkRZaXhIUVVGSExFVkJRMGdzUlVGQlJTeGpRVUZqTEVWQlFVVXNiVU5CUVcxRExFVkJRVVVzUlVGRGRrUXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVWR0xFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGRGFrTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkRaQ3hEUVVGRE8xRkJRMFlzU1VGQlNTeEpRVUZKTEVWQlFVVXNXVUZCV1R0WlFVRkZMRTlCUVU4c1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dFJRVVZxUkN4TlFVRk5MRWxCUVVrc1pVRkJaU3hEUVVGRExIbERRVUY1UXl4RFFVRkRMRU5CUVVNN1NVRkRka1VzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4dFFrRkJiVUlzUTBGRGRrSXNWMEZCYlVJc1JVRkRia0lzUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4eFFrRkJjVUlzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZEY2tRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03VVVGRmFFTXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVU5vUWl4TFFVRkxMRVZCUTB3c1YwRkJWeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZsQlFXRXNRMEZCUXl4TFFVRkxMRzFEUVVGdFF5eEZRVU0zUlN4WFFVRlhMRVZCUTFnc1UwRkJVeXhGUVVOVUxFZEJRVWNzUlVGRFNDeEZRVUZGTEVWQlEwWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRaUVVOR0xFOUJRVThzU1VGQlNTeERRVUZETzFGQlEyUXNRMEZCUXp0UlFVRkRMRTFCUVUwc1EwRkJRenRaUVVOUUxFOUJRVThzUzBGQlN5eERRVUZETzFGQlEyWXNRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVFVGQlRTeERRVU5XTEZsQlFUQkNMRVZCUXpGQ0xGbEJRVzlDTEVWQlEzQkNMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTjRReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkZia0lzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTm9RaXhOUVVGTkxFVkJRMDRzVjBGQlZ5eFpRVUZaTEVOQlFVTXNTMEZCU3l4cFEwRkJhVU1zUlVGRE9VUXNVMEZCVXl4RlFVTlVMRWxCUVVrc1pVRkJaU3hEUVVGRE8xbEJRMnhDTEZOQlFWTXNSVUZCUlN4WlFVRlpMRU5CUVVNc1YwRkJWenRaUVVOdVF5eGhRVUZoTEVWQlFVVXNXVUZCV1R0VFFVTTFRaXhEUVVGRExFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlEySXNSMEZCUnl4RlFVTklMRVZCUVVVc1kwRkJZeXhGUVVGRkxHMURRVUZ0UXl4RlFVRkZMRVZCUTNaRUxFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlU4c1owSkJRV2RDTEVOQlFVTXNUVUZCTWtJN1VVRkRiRVFzVDBGQlR5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRPMWxCUTJ4Q0xFOUJRVThzUlVGQlJTeEhRVUZITEUxQlFVMHNRMEZCUXl4UlFVRlJMRTFCUVUwc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJUdFpRVU01UXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hqUVVGakxFVkJRVVVzYTBKQlFXdENMRVZCUVVVN1dVRkRMME1zWTBGQll5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrN1dVRkRNVUlzVlVGQlZTeEZRVUZGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJRenRuUWtGRE1VSXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlJTeEpRVUZKTEVOQlFVTXNUVUZCWXl4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8yRkJRekZFTEVOQlFVTTdVMEZEU0N4RFFVRkRMRU5CUVVNN1NVRkRUQ3hEUVVGRE8wbEJSVThzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZEYmtJc1RVRkJlVU1zUlVGRGVrTXNTVUZCV1N4RlFVTmFMRmRCUVN0Q0xFVkJReTlDTEU5QlFXZENMRVZCUTJoQ0xGZEJRVzFDTEVWQlEyNUNMRTlCUVN0Q0xFVkJReTlDTEVkQlFVY3NTVUZCZVVJN1VVRkZOVUlzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEyaERMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNN1dVRkRla01zVFVGQlRUdFpRVU5PTEVkQlFVY3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hIUVVGSExFbEJRVWtzUlVGQlJUdFpRVU16UkN4SlFVRkpMRVZCUTBZc1QwRkJUeXhMUVVGTExGTkJRVk03WjBKQlEyNUNMRU5CUVVNc1EwRkJReXhUUVVGVE8yZENRVU5ZTEVOQlFVTXNRMEZCUXl4UFFVRlBMRTlCUVU4c1MwRkJTeXhSUVVGUk8yOUNRVU16UWl4RFFVRkRMRU5CUVVNc1QwRkJUenR2UWtGRFZDeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU03V1VGREwwSXNUMEZCVHl4RlFVRkZPMmRDUVVOUUxFZEJRVWNzVDBGQlR6dG5Ra0ZEVml4SFFVRkhMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEdGQlFXRXNSVUZCUlN4VlFVRlZMRmRCUVZjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXp0blFrRkRiRVVzUjBGQlJ5eERRVUZETEU5QlFVOHNTMEZCU3l4VFFVRlRMRWxCUVVrc1QwRkJUeXhQUVVGUExFdEJRVXNzVVVGQlVUdHZRa0ZEZEVRc1EwRkJReXhEUVVGRExFVkJRVVVzWTBGQll5eEZRVUZGTEd0Q1FVRnJRaXhGUVVGRk8yOUNRVU40UXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8yRkJRMUk3V1VGRFJDeFZRVUZWTEVWQlFVVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRE8yZENRVU14UWl4clFrRkJhMElzUlVGQlJTeERRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRmpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRVU03WVVGRE1VUXNRMEZCUXp0WlFVTkdMR05CUVdNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFOQlF6TkNMRU5CUVVNc1EwRkJRenRSUVVOSUxFbEJRVWtzVVVGQlVTeERRVUZETEUxQlFVMHNTMEZCU3l4WFFVRlhMRVZCUVVVc1EwRkJRenRaUVVOd1F5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVVVGQlVTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTJwRUxFTkJRVU03VVVGRFJDeFBRVUZQTEZGQlFWRXNRMEZCUXp0SlFVTnNRaXhEUVVGRE8wbEJSVThzYTBKQlFXdENMRU5CUTNoQ0xGRkJRV0VzUlVGRFlpeFhRVUZ0UWl4RlFVTnVRaXhSUVVGcFFqdFJRVVZxUWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlowSXNRMEZCUXp0UlFVTjZReXhOUVVGTkxFOUJRVThzUjBGQlJ5eFJRVUZSTzFsQlEzUkNMRU5CUVVNc1EwRkJReXhIUVVGSExGRkJRVkVzWTBGQll5eFhRVUZYTEdOQlFXTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1MwRkJTeXhSUVVGUkxFTkJRVU1zVlVGQlZTeEhRVUZITzFsQlF6bEdMRU5CUVVNc1EwRkJReXhaUVVGWkxGZEJRVmNzWTBGQll5eFJRVUZSTEVOQlFVTXNUVUZCVFN4TFFVRkxMRkZCUVZFc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dFJRVU51Uml4SlFVRkpMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzVDBGQlR5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEyeEZMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEYmtNc1EwRkJRenRSUVVORUxFbEJRVWtzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4UFFVRlBMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRha1VzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOdVF5eERRVUZETzFGQlEwUXNTVUZCU1N4TlFVRk5MRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03V1VGRGJrSXNUVUZCVFN4SlFVRkpMR1ZCUVdVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU55UXl4RFFVRkRPMUZCUTBRc1NVRkJTU3hOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEUxQlFVMHNTMEZCU3l4SFFVRkhMRVZCUVVVc1EwRkJRenRaUVVOeVF5eE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRMjVETEVOQlFVTTdVVUZEUkN4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEyNURMRU5CUVVNN1NVRkZVeXhWUVVGVkxFTkJRVU1zUzBGQldUdFJRVU12UWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU1zVDBGQlR5eEpRVUZKTEV0QlFVc3NRMEZCUXl4SlFVRkpMRWxCUVVrc1pVRkJaU3hEUVVGRE8xRkJReTlFTEUxQlFVMHNXVUZCV1N4SFFVRkhMRTlCUVU4c1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFJRVVV6UXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEzWkZMRTlCUVU4c1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VNc1EwRkJRenRSUVVWRUxFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRMnBJTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFTXNRMEZCUXp0UlFVVkVMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU0zUnl4UFFVRlBMRWxCUVVrc1pVRkJaU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzUkRMRU5CUVVNN1VVRkZSQ3hKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUXpGRkxFOUJRVThzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF6dFJRVVZFTEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGRrVXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU53UXl4RFFVRkRPMUZCUlVRc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTndReXhEUVVGRE8wbEJSVThzYVVKQlFXbENMRU5CUVVrc1NVRkJZVHRSUVVONFF5eEpRVUZKTEU5QlFVOHNTVUZCU1N4TFFVRkxMRkZCUVZFc1JVRkJSU3hEUVVGRE8xbEJRemRDTEVsQlFVa3NRMEZCUXp0blFrRkRTQ3hQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRk5MRU5CUVVNN1dVRkRMMElzUTBGQlF6dFpRVUZETEUxQlFVMHNRMEZCUXp0blFrRkRVQ3hQUVVGUExGTkJRVk1zUTBGQlF6dFpRVU51UWl4RFFVRkRPMUZCUTBnc1EwRkJRenRSUVVORUxFOUJRVThzU1VGQlV5eERRVUZETzBsQlEyNUNMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3WEc0Z0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2l4Y2JpQWdRMjl1Wm14cFkzUkZjbkp2Y2l4Y2JpQWdTVzUwWlhKdVlXeEZjbkp2Y2l4Y2JpQWdUbTkwUm05MWJtUkZjbkp2Y2l4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2V5QkRiMjUwWlhoMGRXRnNRWEpuY3l3Z1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKbklIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QkRiR2xsYm5SQ1lYTmxaRk5sY25acFkyVWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5d2dTMlY1WTJ4dllXdFZjMlZ5SUgwZ1puSnZiU0JjSWk0dUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ1FYaHBiM01zSUhzZ1FYaHBiM05KYm5OMFlXNWpaU0I5SUdaeWIyMGdYQ0poZUdsdmMxd2lPMXh1YVcxd2IzSjBJQ29nWVhNZ2FIUjBjSE1nWm5KdmJTQmNJbTV2WkdVNmFIUjBjSE5jSWp0Y2JseHVaWGh3YjNKMElHTnNZWE56SUV0bGVXTnNiMkZyUVhWMGFGTmxjblpwWTJVZ1pYaDBaVzVrY3lCRGJHbGxiblJDWVhObFpGTmxjblpwWTJVOFhHNGdJRUY0YVc5elNXNXpkR0Z1WTJVc1hHNGdJRXRsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2RjYmo0Z2UxeHVJQ0JoYzNsdVl5QnBibWwwYVdGc2FYcGxLRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThleUJqYjI1bWFXYzZJRXRsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2M3SUdOc2FXVnVkRG9nUVhocGIzTkpibk4wWVc1alpTQjlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbWx1YVhScFlXeHBlbVZjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbWx1YVhScFlXeHBlbVVwTzF4dUlDQWdJR052Ym5OMElHTnZibVpwWnlBOUlHTjBlRUZ5WjNOYk1GMGdZWE1nUzJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnp0Y2JpQWdJQ0IwYUdsekxsOWpiMjVtYVdjZ1BTQmpiMjVtYVdjN1hHNGdJQ0FnWTI5dWMzUWdZMnhwWlc1MElEMGdkR2hwY3k1amNtVmhkR1ZJZEhSd1EyeHBaVzUwS0dOdmJtWnBaeWs3WEc0Z0lDQWdkR2hwY3k1ZlkyeHBaVzUwSUQwZ1kyeHBaVzUwTzF4dUlDQWdJSEpsZEhWeWJpQjdJR052Ym1acFp5d2dZMnhwWlc1MElIMDdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5Qm5aWFJCWTJObGMzTlViMnRsYmloY2JpQWdJQ0JyWlhsamJHOWhhMVZ6WlhJNklFdGxlV05zYjJGclZYTmxjaXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSE4wY21sdVp6NGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSm5aWFJCWTJObGMzTlViMnRsYmx3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11WjJWMFFXTmpaWE56Vkc5clpXNHBPMXh1WEc0Z0lDQWdZMjl1YzNRZ2NtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJbEJQVTFSY0lpeGNiaUFnSUNBZ0lHQXZjbVZoYkcxekx5UjdhMlY1WTJ4dllXdFZjMlZ5TG5KbFlXeHRmUzl3Y205MGIyTnZiQzl2Y0dWdWFXUXRZMjl1Ym1WamRDOTBiMnRsYm1Bc1hHNGdJQ0FnSUNCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNCdVpYY2dWVkpNVTJWaGNtTm9VR0Z5WVcxektIdGNiaUFnSUNBZ0lDQWdZMnhwWlc1MFgybGtPaUJyWlhsamJHOWhhMVZ6WlhJdVlYQnBRMnhwWlc1MFNXUXNYRzRnSUNBZ0lDQWdJSFZ6WlhKdVlXMWxPaUJyWlhsamJHOWhhMVZ6WlhJdWRYTmxjbTVoYldVc1hHNGdJQ0FnSUNBZ0lIQmhjM04zYjNKa09pQnJaWGxqYkc5aGExVnpaWEl1Y0dGemMzZHZjbVFzWEc0Z0lDQWdJQ0FnSUdkeVlXNTBYM1I1Y0dVNklGd2ljR0Z6YzNkdmNtUmNJaXhjYmlBZ0lDQWdJSDBwTG5SdlUzUnlhVzVuS0Nrc1hHNGdJQ0FnSUNBeU1EQXNYRzRnSUNBZ0lDQjdJRndpWTI5dWRHVnVkQzEwZVhCbFhDSTZJRndpWVhCd2JHbGpZWFJwYjI0dmVDMTNkM2N0Wm05eWJTMTFjbXhsYm1OdlpHVmtYQ0lnZlN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdaR0YwWVNBOUlIUm9hWE11Y0dGeWMyVktjMjl1VW1WemNHOXVjMlU4ZXlCaFkyTmxjM05mZEc5clpXNC9PaUJ6ZEhKcGJtY2dmVDRvWEc0Z0lDQWdJQ0J5WlhOd2IyNXpaUzVrWVhSaFhHNGdJQ0FnS1R0Y2JpQWdJQ0JwWmlBb1pHRjBZVDh1WVdOalpYTnpYM1J2YTJWdUtTQnlaWFIxY200Z1pHRjBZUzVoWTJObGMzTmZkRzlyWlc0N1hHNWNiaUFnSUNCMGFISnZkeUJ1WlhjZ1FtRmtVbVZ4ZFdWemRFVnljbTl5S0Z4dUlDQWdJQ0FnWUZWdVlXSnNaU0IwYnlCblpYUWdTMlY1WTJ4dllXc2dZV05qWlhOeklIUnZhMlZ1SUdadmNpQjFjMlZ5SUNSN2EyVjVZMnh2WVd0VmMyVnlMblZ6WlhKdVlXMWxmV0JjYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdjbVZtY21WemFFRmpZMlZ6YzFSdmEyVnVLRnh1SUNBZ0lISmxabkpsYzJoVWIydGxiam9nYzNSeWFXNW5MRnh1SUNBZ0lHTnNhV1Z1ZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnWTJ4cFpXNTBVMlZqY21WME9pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4emRISnBibWMrSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpY21WbWNtVnphRUZqWTJWemMxUnZhMlZ1WENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTV5WldaeVpYTm9RV05qWlhOelZHOXJaVzRwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjbVZ6Y0c5dWMyVWdQU0JoZDJGcGRDQjBhR2x6TG5KbGNYVmxjM1FvWEc0Z0lDQWdJQ0JjSWxCUFUxUmNJaXhjYmlBZ0lDQWdJR0F2Y21WaGJHMXpMeVI3ZEdocGN5NWpiMjVtYVdjdWNtVmhiRzFCY0dsVmMyVnlJUzV5WldGc2JYMHZjSEp2ZEc5amIyd3ZiM0JsYm1sa0xXTnZibTVsWTNRdmRHOXJaVzVnTEZ4dUlDQWdJQ0FnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnYm1WM0lGVlNURk5sWVhKamFGQmhjbUZ0Y3loN1hHNGdJQ0FnSUNBZ0lHTnNhV1Z1ZEY5cFpEb2dZMnhwWlc1MFNXUXNYRzRnSUNBZ0lDQWdJR05zYVdWdWRGOXpaV055WlhRNklHTnNhV1Z1ZEZObFkzSmxkQ3hjYmlBZ0lDQWdJQ0FnWjNKaGJuUmZkSGx3WlRvZ1hDSnlaV1p5WlhOb1gzUnZhMlZ1WENJc1hHNGdJQ0FnSUNBZ0lISmxabkpsYzJoZmRHOXJaVzQ2SUhKbFpuSmxjMmhVYjJ0bGJpeGNiaUFnSUNBZ0lIMHBMblJ2VTNSeWFXNW5LQ2tzWEc0Z0lDQWdJQ0F5TURBc1hHNGdJQ0FnSUNCN0lGd2lZMjl1ZEdWdWRDMTBlWEJsWENJNklGd2lZWEJ3YkdsallYUnBiMjR2ZUMxM2QzY3RabTl5YlMxMWNteGxibU52WkdWa1hDSWdmU3hjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ1pHRjBZU0E5SUhSb2FYTXVjR0Z5YzJWS2MyOXVVbVZ6Y0c5dWMyVThleUJoWTJObGMzTmZkRzlyWlc0L09pQnpkSEpwYm1jZ2ZUNG9YRzRnSUNBZ0lDQnlaWE53YjI1elpTNWtZWFJoWEc0Z0lDQWdLVHRjYmlBZ0lDQnBaaUFvWkdGMFlUOHVZV05qWlhOelgzUnZhMlZ1S1NCeVpYUjFjbTRnWkdGMFlTNWhZMk5sYzNOZmRHOXJaVzQ3WEc1Y2JpQWdJQ0IwYUhKdmR5QnVaWGNnUW1Ga1VtVnhkV1Z6ZEVWeWNtOXlLRndpVlc1aFlteGxJSFJ2SUhKbFpuSmxjMmdnUzJWNVkyeHZZV3NnWVdOalpYTnpJSFJ2YTJWdVhDSXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdkbUZzYVdSaGRHVkJZMk5sYzNOVWIydGxiaWhjYmlBZ0lDQmhZMk5sYzNOVWIydGxiam9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThZbTl2YkdWaGJqNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSjJZV3hwWkdGMFpVRmpZMlZ6YzFSdmEyVnVYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NTJZV3hwWkdGMFpVRmpZMlZ6YzFSdmEyVnVLVHRjYmx4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxuSmxjWFZsYzNRb1hHNGdJQ0FnSUNBZ0lGd2lSMFZVWENJc1hHNGdJQ0FnSUNBZ0lHQXZjbVZoYkcxekx5UjdkR2hwY3k1amIyNW1hV2N1Y21WaGJHMUJjR2xWYzJWeUlTNXlaV0ZzYlgwdmNISnZkRzlqYjJ3dmIzQmxibWxrTFdOdmJtNWxZM1F2ZFhObGNtbHVabTlnTEZ4dUlDQWdJQ0FnSUNCaFkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lDQWdkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdJQ0F5TURBc1hHNGdJQ0FnSUNBZ0lIdDlMRnh1SUNBZ0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJQ0FnZlNCallYUmphQ0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ1lYTjVibU1nYkc5bmIzVjBLRnh1SUNBZ0lHdGxlV05zYjJGclZYTmxjam9nUzJWNVkyeHZZV3RWYzJWeUxGeHVJQ0FnSUhKbFpuSmxjMmhVYjJ0bGJqb2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0pzYjJkdmRYUmNJaXdnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxteHZaMjkxZENrN1hHNWNiaUFnSUNCaGQyRnBkQ0IwYUdsekxuSmxjWFZsYzNRb1hHNGdJQ0FnSUNCY0lsQlBVMVJjSWl4Y2JpQWdJQ0FnSUdBdmNtVmhiRzF6THlSN2EyVjVZMnh2WVd0VmMyVnlMbkpsWVd4dGZTOXdjbTkwYjJOdmJDOXZjR1Z1YVdRdFkyOXVibVZqZEM5c2IyZHZkWFJnTEZ4dUlDQWdJQ0FnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnYm1WM0lGVlNURk5sWVhKamFGQmhjbUZ0Y3loN1hHNGdJQ0FnSUNBZ0lHTnNhV1Z1ZEY5cFpEb2dhMlY1WTJ4dllXdFZjMlZ5TG1Gd2FVTnNhV1Z1ZEVsa0xGeHVJQ0FnSUNBZ0lDQnlaV1p5WlhOb1gzUnZhMlZ1T2lCeVpXWnlaWE5vVkc5clpXNHNYRzRnSUNBZ0lDQjlLUzUwYjFOMGNtbHVaeWdwTEZ4dUlDQWdJQ0FnTWpBd0xGeHVJQ0FnSUNBZ2V5QmNJbU52Ym5SbGJuUXRkSGx3WlZ3aU9pQmNJbUZ3Y0d4cFkyRjBhVzl1TDNndGQzZDNMV1p2Y20wdGRYSnNaVzVqYjJSbFpGd2lJSDBzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWTNKbFlYUmxTSFIwY0VOc2FXVnVkQ2hqYjI1bWFXYzZJRXRsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2NwT2lCQmVHbHZjMGx1YzNSaGJtTmxJSHRjYmlBZ0lDQnlaWFIxY200Z1FYaHBiM011WTNKbFlYUmxLSHRjYmlBZ0lDQWdJR0poYzJWVlVrdzZJR0FrZTJOdmJtWnBaeTV3Y205MGIyTnZiSDA2THk4a2UyTnZibVpwWnk1b2IzTjBmV0FzWEc0Z0lDQWdJQ0JvWldGa1pYSnpPaUI3SUZ3aVEyOXVkR1Z1ZEMxVWVYQmxYQ0k2SUZ3aVlYQndiR2xqWVhScGIyNHZhbk52Ymx3aUlIMHNYRzRnSUNBZ0lDQjJZV3hwWkdGMFpWTjBZWFIxY3pvZ0tDa2dQVDRnZEhKMVpTeGNiaUFnSUNBZ0lHaDBkSEJ6UVdkbGJuUTZJRzVsZHlCb2RIUndjeTVCWjJWdWRDaDdYRzRnSUNBZ0lDQWdJSEpsYW1WamRGVnVZWFYwYUc5eWFYcGxaRG9nS0NoMGFHbHpMbU52Ym1acFp5QmhjeUJoYm5rcExtbHpVSEp2WkhWamRHbHZiaWdwS1N4Y2JpQWdJQ0FnSUgwcExGeHVJQ0FnSUgwcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCeVpYRjFaWE4wS0Z4dUlDQWdJRzFsZEdodlpEb2dYQ0pIUlZSY0lpQjhJRndpVUU5VFZGd2lJSHdnWENKUVZWUmNJaUI4SUZ3aVJFVk1SVlJGWENJc1hHNGdJQ0FnY0dGMGFEb2djM1J5YVc1bkxGeHVJQ0FnSUdGalkyVnpjMVJ2YTJWdU9pQnpkSEpwYm1jZ2ZDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ2NHRjViRzloWkRvZ2RXNXJibTkzYml4Y2JpQWdJQ0J6ZFdOalpYTnpRMjlrWlRvZ2JuVnRZbVZ5TEZ4dUlDQWdJR2hsWVdSbGNuTTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lITjBjbWx1Wno0c1hHNGdJQ0FnTGk0dVlYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQR0Z1ZVQ0Z2UxeHVJQ0FnSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVjbVZ4ZFdWemRDazdYRzRnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxtTnNhV1Z1ZEM1eVpYRjFaWE4wS0h0Y2JpQWdJQ0FnSUcxbGRHaHZaQ3hjYmlBZ0lDQWdJSFZ5YkRvZ1lDUjdkR2hwY3k1amIyNW1hV2N1Y0hKdmRHOWpiMng5T2k4dkpIdDBhR2x6TG1OdmJtWnBaeTVvYjNOMGZTUjdjR0YwYUgxZ0xGeHVJQ0FnSUNBZ1pHRjBZVHBjYmlBZ0lDQWdJQ0FnY0dGNWJHOWhaQ0E5UFQwZ2RXNWtaV1pwYm1Wa1hHNGdJQ0FnSUNBZ0lDQWdQeUIxYm1SbFptbHVaV1JjYmlBZ0lDQWdJQ0FnSUNBNklIUjVjR1Z2WmlCd1lYbHNiMkZrSUQwOVBTQmNJbk4wY21sdVoxd2lYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lIQmhlV3h2WVdSY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nU2xOUFRpNXpkSEpwYm1kcFpua29jR0Y1Ykc5aFpDa3NYRzRnSUNBZ0lDQm9aV0ZrWlhKek9pQjdYRzRnSUNBZ0lDQWdJQzR1TG1obFlXUmxjbk1zWEc0Z0lDQWdJQ0FnSUM0dUxpaGhZMk5sYzNOVWIydGxiaUEvSUhzZ1FYVjBhRzl5YVhwaGRHbHZiam9nWUVKbFlYSmxjaUFrZTJGalkyVnpjMVJ2YTJWdWZXQWdmU0E2SUh0OUtTeGNiaUFnSUNBZ0lDQWdMaTR1S0hCaGVXeHZZV1FnSVQwOUlIVnVaR1ZtYVc1bFpDQW1KaUIwZVhCbGIyWWdjR0Y1Ykc5aFpDQWhQVDBnWENKemRISnBibWRjSWx4dUlDQWdJQ0FnSUNBZ0lEOGdleUJjSWtOdmJuUmxiblF0Vkhsd1pWd2lPaUJjSW1Gd2NHeHBZMkYwYVc5dUwycHpiMjVjSWlCOVhHNGdJQ0FnSUNBZ0lDQWdPaUI3ZlNrc1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2FIUjBjSE5CWjJWdWREb2dibVYzSUdoMGRIQnpMa0ZuWlc1MEtIdGNiaUFnSUNBZ0lDQWdjbVZxWldOMFZXNWhkWFJvYjNKcGVtVmtPaUFvS0hSb2FYTXVZMjl1Wm1sbklHRnpJR0Z1ZVNrdWFYTlFjbTlrZFdOMGFXOXVLQ2twTEZ4dUlDQWdJQ0FnZlNrc1hHNGdJQ0FnSUNCMllXeHBaR0YwWlZOMFlYUjFjem9nS0NrZ1BUNGdkSEoxWlN4Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0JwWmlBb2NtVnpjRzl1YzJVdWMzUmhkSFZ6SUNFOVBTQnpkV05qWlhOelEyOWtaU2tnZTF4dUlDQWdJQ0FnZEdocGN5NW9ZVzVrYkdWSWRIUndVbVZ6Y0c5dWMyVW9jbVZ6Y0c5dWMyVXNJSE4xWTJObGMzTkRiMlJsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlISmxjM0J2Ym5ObE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQm9ZVzVrYkdWSWRIUndVbVZ6Y0c5dWMyVW9YRzRnSUNBZ2NtVnpjRzl1YzJVNklHRnVlU3hjYmlBZ0lDQnpkV05qWlhOelEyOWtaVG9nYm5WdFltVnlMRnh1SUNBZ0lHVnljbTl5VFhOblB6b2djM1J5YVc1blhHNGdJQ2s2SUhadmFXUWdlMXh1SUNBZ0lHTnZibk4wSUhOMFlYUjFjeUE5SUhKbGMzQnZibk5sTG5OMFlYUjFjeUJoY3lCdWRXMWlaWEk3WEc0Z0lDQWdZMjl1YzNRZ2JXVnpjMkZuWlNBOUlHVnljbTl5VFhOblhHNGdJQ0FnSUNBL0lHQWtlMlZ5Y205eVRYTm5mVG9nUlhod1pXTjBaV1FnSkh0emRXTmpaWE56UTI5a1pYMHNJSEpsWTJWcGRtVmtJQ1I3Y21WemNHOXVjMlV1YzNSaGRIVnpmVG9nSkh0eVpYTndiMjV6WlM1emRHRjBkWE5VWlhoMGZTNWdYRzRnSUNBZ0lDQTZJR0JGZUhCbFkzUmxaQ0FrZTNOMVkyTmxjM05EYjJSbGZTd2djbVZqWldsMlpXUWdKSHR5WlhOd2IyNXpaUzV6ZEdGMGRYTjlPaUFrZTNKbGMzQnZibk5sTG5OMFlYUjFjMVJsZUhSOVlEdGNiaUFnSUNCcFppQW9jM1JoZEhWeklEMDlQU0EwTURRZ2ZId2diV1Z6YzJGblpTNTBiMHh2ZDJWeVEyRnpaU2dwTG1sdVkyeDFaR1Z6S0Z3aWJtOTBJR1p2ZFc1a1hDSXBLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tITjBZWFIxY3lBOVBUMGdOREE1SUh4OElHMWxjM05oWjJVdWRHOU1iM2RsY2tOaGMyVW9LUzVwYm1Oc2RXUmxjeWhjSW1OdmJtWnNhV04wWENJcEtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dRMjl1Wm14cFkzUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0hOMFlYUjFjeUE5UFQwZ05EQXdLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUW1Ga1VtVnhkV1Z6ZEVWeWNtOXlLRzFsYzNOaFoyVXBPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9jM1JoZEhWeklEMDlQU0EwTURFZ2ZId2djM1JoZEhWeklEMDlQU0EwTURNcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdmVnh1WEc0Z0lIQnliM1JsWTNSbFpDQndZWEp6WlVWeWNtOXlLR1Z5Y205eU9pQkZjbkp2Y2lrNklFVnljbTl5SUh0Y2JpQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdaWEp5YjNJdWJXVnpjMkZuWlNCOGZDQmxjbkp2Y2k1dVlXMWxJSHg4SUZ3aVZXNXJibTkzYmlCbGNuSnZjbHdpTzF4dUlDQWdJR052Ym5OMElHeHZkMlZ5VFdWemMyRm5aU0E5SUcxbGMzTmhaMlV1ZEc5TWIzZGxja05oYzJVb0tUdGNibHh1SUNBZ0lHbG1JQ2hzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSnViM1FnWm05MWJtUmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpTkRBMFhDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUU1dmRFWnZkVzVrUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltRnNjbVZoWkhrZ1pYaHBjM1J6WENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltTnZibVpzYVdOMFhDSXBJSHg4SUd4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJalF3T1Z3aUtTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJEYjI1bWJHbGpkRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKcGJuWmhiR2xrWENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltSmhaQ0J5WlhGMVpYTjBYQ0lwSUh4OElHeHZkMlZ5VFdWemMyRm5aUzVwYm1Oc2RXUmxjeWhjSWpRd01Gd2lLU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZHlCQ1lXUlNaWEYxWlhOMFJYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0d4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJblZ1WVhWMGFHOXlhWHBsWkZ3aUtTQjhmQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSTBNREZjSWlrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dUbTkwUm05MWJtUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpWm05eVltbGtaR1Z1WENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0lqUXdNMXdpS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjR0Z5YzJWS2MyOXVVbVZ6Y0c5dWMyVThWRDRvWkdGMFlUb2dkVzVyYm05M2JpazZJRlFnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ1pHRjBZU0E5UFQwZ1hDSnpkSEpwYm1kY0lpa2dlMXh1SUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUVwVFQwNHVjR0Z5YzJVb1pHRjBZU2tnWVhNZ1ZEdGNiaUFnSUNBZ0lIMGdZMkYwWTJnZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdaR0YwWVNCaGN5QlVPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==
|
|
@@ -93,7 +93,7 @@ class KeycloakClientService extends core_1.ClientBasedService {
|
|
|
93
93
|
headers: { "Content-Type": "application/json" },
|
|
94
94
|
validateStatus: () => true,
|
|
95
95
|
httpsAgent: new https.Agent({
|
|
96
|
-
rejectUnauthorized: config.isProduction(),
|
|
96
|
+
rejectUnauthorized: (this.config.isProduction()),
|
|
97
97
|
}),
|
|
98
98
|
});
|
|
99
99
|
}
|
|
@@ -170,7 +170,7 @@ class KeycloakClientService extends core_1.ClientBasedService {
|
|
|
170
170
|
: {}),
|
|
171
171
|
},
|
|
172
172
|
httpsAgent: new https.Agent({
|
|
173
|
-
rejectUnauthorized: this.config.isProduction(),
|
|
173
|
+
rejectUnauthorized: (this.config.isProduction()),
|
|
174
174
|
}),
|
|
175
175
|
validateStatus: () => true,
|
|
176
176
|
});
|
|
@@ -238,5 +238,5 @@ class KeycloakClientService extends core_1.ClientBasedService {
|
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
240
|
exports.KeycloakClientService = KeycloakClientService;
|
|
241
|
-
//# sourceMappingURL=KeycloakClientService.js.map
|
|
242
|
-
//# sourceMappingURL=KeycloakClientService.cjs.map
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtDbGllbnRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2tleWNsb2FrL3NlcnZpY2VzL0tleWNsb2FrQ2xpZW50U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixhQUFhLEVBQ2IsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPcEQsT0FBTyxLQUF3QixNQUFNLE9BQU8sQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQztBQUVwQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsa0JBRzFDO0lBQ0MsS0FBSyxDQUFDLFVBQVUsQ0FDZCxHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FDNUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQXdCLENBQUM7UUFDakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQ2hCLG1CQUF3QyxFQUN4QyxTQUFvRCxFQUNwRCxHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFN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QUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTyxpQkFBaUIsQ0FBSSxJQUFhO1FBQ3hDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDO2dCQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQU0sQ0FBQztZQUMvQixDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFkUmVxdWVzdEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBJbnRlcm5hbEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvbnRleHR1YWxBcmdzLCBNYXliZUNvbnRleHR1YWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHR5cGUge1xuICBLZXljbG9ha0NsaWVudENvbmZpZyxcbiAgS2V5Y2xvYWtDbGllbnRSb2xlQ29uZmlnLFxuICBLZXljbG9ha1NldHVwQ29uZmlnLFxuICBLZXljbG9ha1VzZXIsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IEF4aW9zLCB7IEF4aW9zSW5zdGFuY2UgfSBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5cbmV4cG9ydCBjbGFzcyBLZXljbG9ha0NsaWVudFNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2U8XG4gIEF4aW9zSW5zdGFuY2UsXG4gIEtleWNsb2FrU2V0dXBDb25maWdcbj4ge1xuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IEtleWNsb2FrU2V0dXBDb25maWc7IGNsaWVudDogQXhpb3NJbnN0YW5jZSB9PiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF0gYXMgS2V5Y2xvYWtTZXR1cENvbmZpZztcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gIH1cblxuICBhc3luYyBjcmVhdGVDbGllbnQoXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICBvdmVycmlkZXM6IFBhcnRpYWw8S2V5Y2xvYWtDbGllbnRDb25maWc+IHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZUNsaWVudFwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlQ2xpZW50KTtcbiAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMubm9ybWFsaXplQ2xpZW50Q29uZmlnKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZy5jbGllbnQsXG4gICAgICBvdmVycmlkZXMgPz8ge31cbiAgICApO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke2tleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyPy5yZWFsbX0vY2xpZW50c2AsXG4gICAgICByZWFsbUFjY2Vzc1Rva2VuLFxuICAgICAgdGhpcy5idWlsZENsaWVudFBheWxvYWQoY2xpZW50KSxcbiAgICAgIDIwMSxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuZXh0cmFjdFVVSURmcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlQ2xpZW50KFxuICAgIGtleWNsb2FrU2V0dXBDb25maWc6IEtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPEtleWNsb2FrQ2xpZW50Q29uZmlnPiB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlQ2xpZW50XCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy51cGRhdGVDbGllbnQpO1xuICAgIGNvbnN0IHJlYWxtQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4oXG4gICAgICBrZXljbG9ha1NldHVwQ29uZmlnLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5ub3JtYWxpemVDbGllbnRDb25maWcoXG4gICAgICBrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudCxcbiAgICAgIG92ZXJyaWRlcyA/PyB7fVxuICAgICk7XG4gICAgY29uc3QgY2xpZW50VVVJRCA9XG4gICAgICBjbGllbnQuY2xpZW50VVVJRCA/P1xuICAgICAgKGF3YWl0IHRoaXMuZ2V0Q2xpZW50VVVJRChcbiAgICAgICAgcmVhbG1BY2Nlc3NUb2tlbixcbiAgICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXIhLnJlYWxtLFxuICAgICAgICBjbGllbnQuY2xpZW50SWQsXG4gICAgICAgIC4uLmN0eEFyZ3NcbiAgICAgICkpO1xuICAgIGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUFVUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke2tleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyPy5yZWFsbX0vY2xpZW50cy8ke2VuY29kZVVSSUNvbXBvbmVudChjbGllbnRVVUlEKX1gLFxuICAgICAgcmVhbG1BY2Nlc3NUb2tlbixcbiAgICAgIHRoaXMuYnVpbGRDbGllbnRQYXlsb2FkKGNsaWVudCksXG4gICAgICAyMDQsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q2xpZW50VVVJRChcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nLFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIGNsaWVudElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZ2V0Q2xpZW50VVVJRFwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZ2V0Q2xpZW50VVVJRCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L2NsaWVudHM/Y2xpZW50SWQ9JHtlbmNvZGVVUklDb21wb25lbnQoY2xpZW50SWQpfWAsXG4gICAgICBhY2Nlc3NUb2tlbixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIwMCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8QXJyYXk8eyBpZD86IHN0cmluZyB9Pj4ocmVzcG9uc2UuZGF0YSk7XG4gICAgY29uc3QgY2xpZW50VVVJRCA9IGRhdGE/LlswXT8uaWQ7XG4gICAgaWYgKGNsaWVudFVVSUQpIHJldHVybiBjbGllbnRVVUlEO1xuICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBVbmFibGUgdG8gZ2V0IEtleWNsb2FrIENsaWVudCBVVUlEOiAke2NsaWVudElkfWApO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQ2xpZW50Um9sZXMoXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICByb2xlQ29uZmlnczogS2V5Y2xvYWtDbGllbnRSb2xlQ29uZmlnW10gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZUNsaWVudFJvbGVzXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVDbGllbnRSb2xlcyk7XG4gICAgY29uc3Qgcm9sZXMgPSByb2xlQ29uZmlncyA/PyBrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5yb2xlcyA/PyBbXTtcbiAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGZvciAoY29uc3Qgcm9sZSBvZiByb2xlcykge1xuICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgICBcIlBPU1RcIixcbiAgICAgICAgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2NsaWVudHMvJHtrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5jbGllbnRVVUlEfS9yb2xlc2AsXG4gICAgICAgIHJlYWxtQWNjZXNzVG9rZW4sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiByb2xlLnJvbGVOYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uID8/IGBBdXRvLWNyZWF0ZWQgcm9sZSAke3JvbGUucm9sZU5hbWV9YCxcbiAgICAgICAgICBjb21wb3NpdGU6IGZhbHNlLFxuICAgICAgICAgIGNsaWVudFJvbGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIDIwMSxcbiAgICAgICAge30sXG4gICAgICAgIC4uLmN0eEFyZ3NcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyk6IEF4aW9zSW5zdGFuY2Uge1xuICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAoKHRoaXMuY29uZmlnIGFzIGFueSkuaXNQcm9kdWN0aW9uKCkpLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFJlYWxtQWNjZXNzVG9rZW4oXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyISwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEFjY2Vzc1Rva2VuKFxuICAgIGtleWNsb2FrVXNlcjogS2V5Y2xvYWtVc2VyLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZ2V0QWNjZXNzVG9rZW4pO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBgL3JlYWxtcy8ke2tleWNsb2FrVXNlci5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgIGNsaWVudF9pZDoga2V5Y2xvYWtVc2VyLmFwaUNsaWVudElkLFxuICAgICAgICB1c2VybmFtZToga2V5Y2xvYWtVc2VyLnVzZXJuYW1lLFxuICAgICAgICBwYXNzd29yZDoga2V5Y2xvYWtVc2VyLnBhc3N3b3JkLFxuICAgICAgICBncmFudF90eXBlOiBcInBhc3N3b3JkXCIsXG4gICAgICB9KS50b1N0cmluZygpLFxuICAgICAgMjAwLFxuICAgICAgeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5wYXJzZUpzb25SZXNwb25zZTx7IGFjY2Vzc190b2tlbj86IHN0cmluZyB9PihcbiAgICAgIHJlc3BvbnNlLmRhdGFcbiAgICApO1xuICAgIGlmIChkYXRhPy5hY2Nlc3NfdG9rZW4pIHJldHVybiBkYXRhLmFjY2Vzc190b2tlbjtcbiAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKFxuICAgICAgYFVuYWJsZSB0byBnZXQgS2V5Y2xvYWsgYWNjZXNzIHRva2VuIGZvciB1c2VyICR7a2V5Y2xvYWtVc2VyLnVzZXJuYW1lfWBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVDbGllbnRDb25maWcoXG4gICAgYmFzZTogS2V5Y2xvYWtDbGllbnRDb25maWcsXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPEtleWNsb2FrQ2xpZW50Q29uZmlnPlxuICApOiBLZXljbG9ha0NsaWVudENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmJhc2UsXG4gICAgICAuLi5vdmVycmlkZXMsXG4gICAgICByZWRpcmVjdFVyaXM6IG92ZXJyaWRlcy5yZWRpcmVjdFVyaXMgPz8gYmFzZS5yZWRpcmVjdFVyaXMsXG4gICAgICB3ZWJPcmlnaW5zOiBvdmVycmlkZXMud2ViT3JpZ2lucyA/PyBiYXNlLndlYk9yaWdpbnMsXG4gICAgICByb2xlczogb3ZlcnJpZGVzLnJvbGVzID8/IGJhc2Uucm9sZXMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDbGllbnRQYXlsb2FkKFxuICAgIGNsaWVudDogS2V5Y2xvYWtDbGllbnRDb25maWdcbiAgKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB7XG4gICAgICBjbGllbnRJZDogY2xpZW50LmNsaWVudElkLFxuICAgICAgbmFtZTogY2xpZW50LmNsaWVudE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogY2xpZW50LmRlc2NyaXB0aW9uLFxuICAgICAgcm9vdFVybDogY2xpZW50LnJvb3RVcmwsXG4gICAgICBhZG1pblVybDogY2xpZW50LmFkbWluVXJsLFxuICAgICAgYmFzZVVybDogY2xpZW50LmJhc2VVcmwsXG4gICAgICBzdXJyb2dhdGVBdXRoUmVxdWlyZWQ6IGNsaWVudC5zdXJyb2dhdGVBdXRoUmVxdWlyZWQgPz8gZmFsc2UsXG4gICAgICBlbmFibGVkOiBjbGllbnQuZW5hYmxlZCA/PyB0cnVlLFxuICAgICAgYWx3YXlzRGlzcGxheUluQ29uc29sZTogY2xpZW50LmFsd2F5c0Rpc3BsYXlJbkNvbnNvbGUgPz8gZmFsc2UsXG4gICAgICBjbGllbnRBdXRoZW50aWNhdG9yVHlwZTogXCJjbGllbnQtc2VjcmV0XCIsXG4gICAgICBzZWNyZXQ6IGNsaWVudC5zZWNyZXQsXG4gICAgICByZWRpcmVjdFVyaXM6IGNsaWVudC5yZWRpcmVjdFVyaXMsXG4gICAgICB3ZWJPcmlnaW5zOiBjbGllbnQud2ViT3JpZ2lucyxcbiAgICAgIG5vdEJlZm9yZTogY2xpZW50Lm5vdEJlZm9yZSA/PyAwLFxuICAgICAgYmVhcmVyT25seTogY2xpZW50LmJlYXJlck9ubHkgPz8gZmFsc2UsXG4gICAgICBjb25zZW50UmVxdWlyZWQ6IGNsaWVudC5jb25zZW50UmVxdWlyZWQgPz8gZmFsc2UsXG4gICAgICBzdGFuZGFyZEZsb3dFbmFibGVkOiBjbGllbnQuc3RhbmRhcmRGbG93RW5hYmxlZCA/PyB0cnVlLFxuICAgICAgaW1wbGljaXRGbG93RW5hYmxlZDogY2xpZW50LmltcGxpY2l0Rmxvd0VuYWJsZWQgPz8gZmFsc2UsXG4gICAgICBkaXJlY3RBY2Nlc3NHcmFudHNFbmFibGVkOiBjbGllbnQuZGlyZWN0QWNjZXNzR3JhbnRzRW5hYmxlZCA/PyB0cnVlLFxuICAgICAgc2VydmljZUFjY291bnRzRW5hYmxlZDogY2xpZW50LnNlcnZpY2VBY2NvdW50c0VuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgIGF1dGhvcml6YXRpb25TZXJ2aWNlc0VuYWJsZWQ6IGNsaWVudC5hdXRob3JpemF0aW9uU2VydmljZXNFbmFibGVkID8/IHRydWUsXG4gICAgICBwdWJsaWNDbGllbnQ6IGNsaWVudC5wdWJsaWNDbGllbnQgPz8gZmFsc2UsXG4gICAgICBmcm9udGNoYW5uZWxMb2dvdXQ6IGNsaWVudC5mcm9udGNoYW5uZWxMb2dvdXQgPz8gdHJ1ZSxcbiAgICAgIHByb3RvY29sOiBjbGllbnQucHJvdG9jb2wgPz8gXCJvcGVuaWQtY29ubmVjdFwiLFxuICAgICAgYXR0cmlidXRlczogY2xpZW50LmF0dHJpYnV0ZXMgPz8geyBcImFjY2Vzcy50b2tlbi5saWZlc3BhblwiOiBcIjMwMFwiIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVxdWVzdChcbiAgICBtZXRob2Q6IFwiR0VUXCIgfCBcIlBPU1RcIiB8IFwiUFVUXCIgfCBcIkRFTEVURVwiLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHBheWxvYWQ6IHVua25vd24sXG4gICAgc3VjY2Vzc0NvZGU6IG51bWJlcixcbiAgICBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPGFueT5cbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlcXVlc3QpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucmVxdWVzdCh7XG4gICAgICBtZXRob2QsXG4gICAgICB1cmw6IGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0ke3BhdGh9YCxcbiAgICAgIGRhdGE6XG4gICAgICAgIHBheWxvYWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiB0eXBlb2YgcGF5bG9hZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyBwYXlsb2FkXG4gICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAuLi4oYWNjZXNzVG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHBheWxvYWQgIT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKCh0aGlzLmNvbmZpZyBhcyBhbnkpLmlzUHJvZHVjdGlvbigpKSxcbiAgICAgIH0pLFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgfSk7XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gc3VjY2Vzc0NvZGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlSHR0cFJlc3BvbnNlKHJlc3BvbnNlLCBzdWNjZXNzQ29kZSk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSHR0cFJlc3BvbnNlKFxuICAgIHJlc3BvbnNlOiBhbnksXG4gICAgc3VjY2Vzc0NvZGU6IG51bWJlcixcbiAgICBlcnJvck1zZz86IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3JNc2dcbiAgICAgID8gYCR7ZXJyb3JNc2d9OiBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9LmBcbiAgICAgIDogYEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cyBhcyBudW1iZXI7XG4gICAgaWYgKHN0YXR1cyA9PT0gNDA0IHx8IG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSkge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09IDQwOSB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJjb25mbGljdFwiKSkge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09IDQwMCkge1xuICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gNDAxIHx8IHN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VFcnJvcihlcnJvcjogRXJyb3IpOiBFcnJvciB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RVVUlEZnJvbVJlc3BvbnNlKHJlc3BvbnNlOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxvY2F0aW9uID0gcmVzcG9uc2UuaGVhZGVycy5sb2NhdGlvbiBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCFsb2NhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiS2V5Y2xvYWsgcmVzcG9uc2UgZGlkIG5vdCBpbmNsdWRlIGEgbG9jYXRpb24gaGVhZGVyXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBsb2NhdGlvbi5zcGxpdChcIi9cIikucG9wKCkgPz8gXCJcIjtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VKc29uUmVzcG9uc2U8VD4oZGF0YTogdW5rbm93bik6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSkgYXMgVDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YSBhcyBUO1xuICB9XG59XG4iXX0=
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtDbGllbnRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiS2V5Y2xvYWtDbGllbnRTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUF3RztBQUN4Ryx5Q0FBb0Q7QUFDcEQsa0RBQTBCO0FBQzFCLGtEQUFvQztBQUNwQyxNQUFhLHFCQUFzQixTQUFRLHlCQUFrQjtJQUN6RCxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTtRQUNwQixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkYsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxLQUFLLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUk7UUFDdEQsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNGLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLEVBQUUs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QUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0o7QUFuTUQsc0RBbU1DO0FBQ0Qsa3kyQkFBa3kyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhZFJlcXVlc3RFcnJvciwgQ29uZmxpY3RFcnJvciwgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciwgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IEF4aW9zIGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmV4cG9ydCBjbGFzcyBLZXljbG9ha0NsaWVudFNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2Uge1xuICAgIGFzeW5jIGluaXRpYWxpemUoLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSkpLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgICAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdO1xuICAgICAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChjb25maWcpO1xuICAgICAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZUNsaWVudChrZXljbG9ha1NldHVwQ29uZmlnLCBvdmVycmlkZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVDbGllbnRcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZUNsaWVudCk7XG4gICAgICAgIGNvbnN0IHJlYWxtQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4oa2V5Y2xvYWtTZXR1cENvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMubm9ybWFsaXplQ2xpZW50Q29uZmlnKGtleWNsb2FrU2V0dXBDb25maWcuY2xpZW50LCBvdmVycmlkZXMgPz8ge30pO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2NsaWVudHNgLCByZWFsbUFjY2Vzc1Rva2VuLCB0aGlzLmJ1aWxkQ2xpZW50UGF5bG9hZChjbGllbnQpLCAyMDEsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdFVVSURmcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGVDbGllbnQoa2V5Y2xvYWtTZXR1cENvbmZpZywgb3ZlcnJpZGVzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlQ2xpZW50XCIsIHRydWUpKS5mb3IodGhpcy51cGRhdGVDbGllbnQpO1xuICAgICAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBjbGllbnQgPSB0aGlzLm5vcm1hbGl6ZUNsaWVudENvbmZpZyhrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudCwgb3ZlcnJpZGVzID8/IHt9KTtcbiAgICAgICAgY29uc3QgY2xpZW50VVVJRCA9IGNsaWVudC5jbGllbnRVVUlEID8/XG4gICAgICAgICAgICAoYXdhaXQgdGhpcy5nZXRDbGllbnRVVUlEKHJlYWxtQWNjZXNzVG9rZW4sIGtleWNsb2FrU2V0dXBDb25maWcucmVhbG1BcGlVc2VyLnJlYWxtLCBjbGllbnQuY2xpZW50SWQsIC4uLmN0eEFyZ3MpKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUFVUXCIsIGAvYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtTZXR1cENvbmZpZy5yZWFsbUFwaVVzZXI/LnJlYWxtfS9jbGllbnRzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGNsaWVudFVVSUQpfWAsIHJlYWxtQWNjZXNzVG9rZW4sIHRoaXMuYnVpbGRDbGllbnRQYXlsb2FkKGNsaWVudCksIDIwNCwge30sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBnZXRDbGllbnRVVUlEKGFjY2Vzc1Rva2VuLCByZWFsbU5hbWUsIGNsaWVudElkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZ2V0Q2xpZW50VVVJRFwiLCB0cnVlKSkuZm9yKHRoaXMuZ2V0Q2xpZW50VVVJRCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiR0VUXCIsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS9jbGllbnRzP2NsaWVudElkPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGNsaWVudElkKX1gLCBhY2Nlc3NUb2tlbiwgdW5kZWZpbmVkLCAyMDAsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgIGNvbnN0IGNsaWVudFVVSUQgPSBkYXRhPy5bMF0/LmlkO1xuICAgICAgICBpZiAoY2xpZW50VVVJRClcbiAgICAgICAgICAgIHJldHVybiBjbGllbnRVVUlEO1xuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgVW5hYmxlIHRvIGdldCBLZXljbG9hayBDbGllbnQgVVVJRDogJHtjbGllbnRJZH1gKTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlQ2xpZW50Um9sZXMoa2V5Y2xvYWtTZXR1cENvbmZpZywgcm9sZUNvbmZpZ3MsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVDbGllbnRSb2xlc1wiLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlQ2xpZW50Um9sZXMpO1xuICAgICAgICBjb25zdCByb2xlcyA9IHJvbGVDb25maWdzID8/IGtleWNsb2FrU2V0dXBDb25maWcuY2xpZW50LnJvbGVzID8/IFtdO1xuICAgICAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBmb3IgKGNvbnN0IHJvbGUgb2Ygcm9sZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2NsaWVudHMvJHtrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5jbGllbnRVVUlEfS9yb2xlc2AsIHJlYWxtQWNjZXNzVG9rZW4sIHtcbiAgICAgICAgICAgICAgICBuYW1lOiByb2xlLnJvbGVOYW1lLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uID8/IGBBdXRvLWNyZWF0ZWQgcm9sZSAke3JvbGUucm9sZU5hbWV9YCxcbiAgICAgICAgICAgICAgICBjb21wb3NpdGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNsaWVudFJvbGU6IHRydWUsXG4gICAgICAgICAgICB9LCAyMDEsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZykge1xuICAgICAgICByZXR1cm4gQXhpb3MuY3JlYXRlKHtcbiAgICAgICAgICAgIGJhc2VVUkw6IGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fWAsXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAodGhpcy5jb25maWcuaXNQcm9kdWN0aW9uKCkpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBnZXRSZWFsbUFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4pO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBY2Nlc3NUb2tlbihrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlciwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGdldEFjY2Vzc1Rva2VuKGtleWNsb2FrVXNlciwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZ2V0QWNjZXNzVG9rZW4pO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYCwgdW5kZWZpbmVkLCBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgICAgIGNsaWVudF9pZDoga2V5Y2xvYWtVc2VyLmFwaUNsaWVudElkLFxuICAgICAgICAgICAgdXNlcm5hbWU6IGtleWNsb2FrVXNlci51c2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBrZXljbG9ha1VzZXIucGFzc3dvcmQsXG4gICAgICAgICAgICBncmFudF90eXBlOiBcInBhc3N3b3JkXCIsXG4gICAgICAgIH0pLnRvU3RyaW5nKCksIDIwMCwgeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5wYXJzZUpzb25SZXNwb25zZShyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgaWYgKGRhdGE/LmFjY2Vzc190b2tlbilcbiAgICAgICAgICAgIHJldHVybiBkYXRhLmFjY2Vzc190b2tlbjtcbiAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihgVW5hYmxlIHRvIGdldCBLZXljbG9hayBhY2Nlc3MgdG9rZW4gZm9yIHVzZXIgJHtrZXljbG9ha1VzZXIudXNlcm5hbWV9YCk7XG4gICAgfVxuICAgIG5vcm1hbGl6ZUNsaWVudENvbmZpZyhiYXNlLCBvdmVycmlkZXMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmJhc2UsXG4gICAgICAgICAgICAuLi5vdmVycmlkZXMsXG4gICAgICAgICAgICByZWRpcmVjdFVyaXM6IG92ZXJyaWRlcy5yZWRpcmVjdFVyaXMgPz8gYmFzZS5yZWRpcmVjdFVyaXMsXG4gICAgICAgICAgICB3ZWJPcmlnaW5zOiBvdmVycmlkZXMud2ViT3JpZ2lucyA/PyBiYXNlLndlYk9yaWdpbnMsXG4gICAgICAgICAgICByb2xlczogb3ZlcnJpZGVzLnJvbGVzID8/IGJhc2Uucm9sZXMsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGJ1aWxkQ2xpZW50UGF5bG9hZChjbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNsaWVudElkOiBjbGllbnQuY2xpZW50SWQsXG4gICAgICAgICAgICBuYW1lOiBjbGllbnQuY2xpZW50TmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjbGllbnQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICByb290VXJsOiBjbGllbnQucm9vdFVybCxcbiAgICAgICAgICAgIGFkbWluVXJsOiBjbGllbnQuYWRtaW5VcmwsXG4gICAgICAgICAgICBiYXNlVXJsOiBjbGllbnQuYmFzZVVybCxcbiAgICAgICAgICAgIHN1cnJvZ2F0ZUF1dGhSZXF1aXJlZDogY2xpZW50LnN1cnJvZ2F0ZUF1dGhSZXF1aXJlZCA/PyBmYWxzZSxcbiAgICAgICAgICAgIGVuYWJsZWQ6IGNsaWVudC5lbmFibGVkID8/IHRydWUsXG4gICAgICAgICAgICBhbHdheXNEaXNwbGF5SW5Db25zb2xlOiBjbGllbnQuYWx3YXlzRGlzcGxheUluQ29uc29sZSA/PyBmYWxzZSxcbiAgICAgICAgICAgIGNsaWVudEF1dGhlbnRpY2F0b3JUeXBlOiBcImNsaWVudC1zZWNyZXRcIixcbiAgICAgICAgICAgIHNlY3JldDogY2xpZW50LnNlY3JldCxcbiAgICAgICAgICAgIHJlZGlyZWN0VXJpczogY2xpZW50LnJlZGlyZWN0VXJpcyxcbiAgICAgICAgICAgIHdlYk9yaWdpbnM6IGNsaWVudC53ZWJPcmlnaW5zLFxuICAgICAgICAgICAgbm90QmVmb3JlOiBjbGllbnQubm90QmVmb3JlID8/IDAsXG4gICAgICAgICAgICBiZWFyZXJPbmx5OiBjbGllbnQuYmVhcmVyT25seSA/PyBmYWxzZSxcbiAgICAgICAgICAgIGNvbnNlbnRSZXF1aXJlZDogY2xpZW50LmNvbnNlbnRSZXF1aXJlZCA/PyBmYWxzZSxcbiAgICAgICAgICAgIHN0YW5kYXJkRmxvd0VuYWJsZWQ6IGNsaWVudC5zdGFuZGFyZEZsb3dFbmFibGVkID8/IHRydWUsXG4gICAgICAgICAgICBpbXBsaWNpdEZsb3dFbmFibGVkOiBjbGllbnQuaW1wbGljaXRGbG93RW5hYmxlZCA/PyBmYWxzZSxcbiAgICAgICAgICAgIGRpcmVjdEFjY2Vzc0dyYW50c0VuYWJsZWQ6IGNsaWVudC5kaXJlY3RBY2Nlc3NHcmFudHNFbmFibGVkID8/IHRydWUsXG4gICAgICAgICAgICBzZXJ2aWNlQWNjb3VudHNFbmFibGVkOiBjbGllbnQuc2VydmljZUFjY291bnRzRW5hYmxlZCA/PyB0cnVlLFxuICAgICAgICAgICAgYXV0aG9yaXphdGlvblNlcnZpY2VzRW5hYmxlZDogY2xpZW50LmF1dGhvcml6YXRpb25TZXJ2aWNlc0VuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgICAgICAgIHB1YmxpY0NsaWVudDogY2xpZW50LnB1YmxpY0NsaWVudCA/PyBmYWxzZSxcbiAgICAgICAgICAgIGZyb250Y2hhbm5lbExvZ291dDogY2xpZW50LmZyb250Y2hhbm5lbExvZ291dCA/PyB0cnVlLFxuICAgICAgICAgICAgcHJvdG9jb2w6IGNsaWVudC5wcm90b2NvbCA/PyBcIm9wZW5pZC1jb25uZWN0XCIsXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiBjbGllbnQuYXR0cmlidXRlcyA/PyB7IFwiYWNjZXNzLnRva2VuLmxpZmVzcGFuXCI6IFwiMzAwXCIgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYXN5bmMgcmVxdWVzdChtZXRob2QsIHBhdGgsIGFjY2Vzc1Rva2VuLCBwYXlsb2FkLCBzdWNjZXNzQ29kZSwgaGVhZGVycywgLi4uYXJncykge1xuICAgICAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlcXVlc3QpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgdXJsOiBgJHt0aGlzLmNvbmZpZy5wcm90b2NvbH06Ly8ke3RoaXMuY29uZmlnLmhvc3R9JHtwYXRofWAsXG4gICAgICAgICAgICBkYXRhOiBwYXlsb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgPyBwYXlsb2FkXG4gICAgICAgICAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgICAgICAgICAuLi4oYWNjZXNzVG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgLi4uKHBheWxvYWQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgcGF5bG9hZCAhPT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICA/IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfVxuICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHRoaXMuY29uZmlnLmlzUHJvZHVjdGlvbigpKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSBzdWNjZXNzQ29kZSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVIdHRwUmVzcG9uc2UocmVzcG9uc2UsIHN1Y2Nlc3NDb2RlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuICAgIGhhbmRsZUh0dHBSZXNwb25zZShyZXNwb25zZSwgc3VjY2Vzc0NvZGUsIGVycm9yTXNnKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvck1zZ1xuICAgICAgICAgICAgPyBgJHtlcnJvck1zZ306IEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH0uYFxuICAgICAgICAgICAgOiBgRXhwZWN0ZWQgJHtzdWNjZXNzQ29kZX0sIHJlY2VpdmVkICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cztcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gNDA0IHx8IG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gNDA5IHx8IG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gNDAxIHx8IHN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgcGFyc2VFcnJvcihlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IubWVzc2FnZSB8fCBlcnJvci5uYW1lIHx8IFwiVW5rbm93biBlcnJvclwiO1xuICAgICAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJub3QgZm91bmRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA0XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImFscmVhZHkgZXhpc3RzXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwOVwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJpbnZhbGlkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImJhZCByZXF1ZXN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcInVuYXV0aG9yaXplZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDFcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiZm9yYmlkZGVuXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwM1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgZXh0cmFjdFVVSURmcm9tUmVzcG9uc2UocmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgbG9jYXRpb24gPSByZXNwb25zZS5oZWFkZXJzLmxvY2F0aW9uO1xuICAgICAgICBpZiAoIWxvY2F0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIktleWNsb2FrIHJlc3BvbnNlIGRpZCBub3QgaW5jbHVkZSBhIGxvY2F0aW9uIGhlYWRlclwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbG9jYXRpb24uc3BsaXQoXCIvXCIpLnBvcCgpID8/IFwiXCI7XG4gICAgfVxuICAgIHBhcnNlSnNvblJlc3BvbnNlKGRhdGEpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUzJWNVkyeHZZV3REYkdsbGJuUlRaWEoyYVdObExtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZMaTR2TGk0dmMzSmpMMnRsZVdOc2IyRnJMM05sY25acFkyVnpMMHRsZVdOc2IyRnJRMnhwWlc1MFUyVnlkbWxqWlM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hQUVVGUExFVkJRMHdzWlVGQlpTeEZRVU5tTEdGQlFXRXNSVUZEWWl4aFFVRmhMRVZCUTJJc1lVRkJZU3hIUVVOa0xFMUJRVTBzZVVKQlFYbENMRU5CUVVNN1FVRkZha01zVDBGQlR5eEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRlBjRVFzVDBGQlR5eExRVUYzUWl4TlFVRk5MRTlCUVU4c1EwRkJRenRCUVVNM1F5eFBRVUZQTEV0QlFVc3NTMEZCU3l4TlFVRk5MRmxCUVZrc1EwRkJRenRCUVVWd1F5eE5RVUZOTEU5QlFVOHNjVUpCUVhOQ0xGTkJRVkVzYTBKQlJ6RkRPMGxCUTBNc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGRFpDeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRmxCUVZrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE5VTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFGQlEzWkNMRTFCUVUwc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFYZENMRU5CUVVNN1VVRkRha1FzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNN1VVRkRkRUlzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpkRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRPMUZCUTNSQ0xFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNN1NVRkROVUlzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4WlFVRlpMRU5CUTJoQ0xHMUNRVUYzUXl4RlFVTjRReXhUUVVGdlJDeEZRVU53UkN4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOc1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxHTkJRV01zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZET1VNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUTNwQ0xFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUTNKRUxHMUNRVUZ0UWl4RlFVTnVRaXhIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFGQlEwWXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVTjJReXh0UWtGQmJVSXNRMEZCUXl4TlFVRk5MRVZCUXpGQ0xGTkJRVk1zU1VGQlNTeEZRVUZGTEVOQlEyaENMRU5CUVVNN1VVRkRSaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJwRExFMUJRVTBzUlVGRFRpeHBRa0ZCYVVJc2JVSkJRVzFDTEVOQlFVTXNXVUZCV1N4RlFVRkZMRXRCUVVzc1ZVRkJWU3hGUVVOc1JTeG5Ra0ZCWjBJc1JVRkRhRUlzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVU12UWl4SFFVRkhMRVZCUTBnc1JVRkJSU3hGUVVOR0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEUml4UFFVRlBMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRKUVVOb1JDeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRmxCUVZrc1EwRkRhRUlzYlVKQlFYZERMRVZCUTNoRExGTkJRVzlFTEVWQlEzQkVMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzWTBGQll5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTVReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRla0lzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkRja1FzYlVKQlFXMUNMRVZCUTI1Q0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEUml4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUTNaRExHMUNRVUZ0UWl4RFFVRkRMRTFCUVUwc1JVRkRNVUlzVTBGQlV5eEpRVUZKTEVWQlFVVXNRMEZEYUVJc1EwRkJRenRSUVVOR0xFMUJRVTBzVlVGQlZTeEhRVU5rTEUxQlFVMHNRMEZCUXl4VlFVRlZPMWxCUTJwQ0xFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVTjJRaXhuUWtGQlowSXNSVUZEYUVJc2JVSkJRVzFDTEVOQlFVTXNXVUZCWVN4RFFVRkRMRXRCUVVzc1JVRkRka01zVFVGQlRTeERRVUZETEZGQlFWRXNSVUZEWml4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVGRExFTkJRVU03VVVGRFRDeE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJoQ0xFdEJRVXNzUlVGRFRDeHBRa0ZCYVVJc2JVSkJRVzFDTEVOQlFVTXNXVUZCV1N4RlFVRkZMRXRCUVVzc1dVRkJXU3hyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1JVRkJSU3hGUVVOd1J5eG5Ra0ZCWjBJc1JVRkRhRUlzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVU12UWl4SFFVRkhMRVZCUTBnc1JVRkJSU3hGUVVOR0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGRGFrSXNWMEZCYlVJc1JVRkRia0lzVTBGQmFVSXNSVUZEYWtJc1VVRkJaMElzUlVGRGFFSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hsUVVGbExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF5OURMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0UlFVTXhRaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJwRExFdEJRVXNzUlVGRFRDeHBRa0ZCYVVJc1UwRkJVeXh4UWtGQmNVSXNhMEpCUVd0Q0xFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNSVUZETjBVc1YwRkJWeXhGUVVOWUxGTkJRVk1zUlVGRFZDeEhRVUZITEVWQlEwZ3NSVUZCUlN4RlFVTkdMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFJpeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFYbENMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU16UlN4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNN1VVRkRha01zU1VGQlNTeFZRVUZWTzFsQlFVVXNUMEZCVHl4VlFVRlZMRU5CUVVNN1VVRkRiRU1zVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl4MVEwRkJkVU1zVVVGQlVTeEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVTTNSU3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEdsQ1FVRnBRaXhEUVVOeVFpeHRRa0ZCZDBNc1JVRkRlRU1zVjBGQmJVUXNSVUZEYmtRc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGJrUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1VVRkRPVUlzVFVGQlRTeExRVUZMTEVkQlFVY3NWMEZCVnl4SlFVRkpMRzFDUVVGdFFpeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJRM0JGTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRM0pFTEcxQ1FVRnRRaXhGUVVOdVFpeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMUZCUTBZc1MwRkJTeXhOUVVGTkxFbEJRVWtzU1VGQlNTeExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTjZRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlEyaENMRTFCUVUwc1JVRkRUaXhwUWtGQmFVSXNiVUpCUVcxQ0xFTkJRVU1zV1VGQldTeEZRVUZGTEV0QlFVc3NXVUZCV1N4dFFrRkJiVUlzUTBGQlF5eE5RVUZOTEVOQlFVTXNWVUZCVlN4UlFVRlJMRVZCUTJwSUxHZENRVUZuUWl4RlFVTm9RanRuUWtGRFJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFN1owSkJRMjVDTEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1YwRkJWeXhKUVVGSkxIRkNRVUZ4UWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRk8yZENRVU55UlN4VFFVRlRMRVZCUVVVc1MwRkJTenRuUWtGRGFFSXNWVUZCVlN4RlFVRkZMRWxCUVVrN1lVRkRha0lzUlVGRFJDeEhRVUZITEVWQlEwZ3NSVUZCUlN4RlFVTkdMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFNpeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVlBMR2RDUVVGblFpeERRVUZETEUxQlFUSkNPMUZCUTJ4RUxFOUJRVThzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0WlFVTnNRaXhQUVVGUExFVkJRVVVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNVVUZCVVN4TlFVRk5MRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVU3V1VGRE9VTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1kwRkJZeXhGUVVGRkxHdENRVUZyUWl4RlFVRkZPMWxCUXk5RExHTkJRV01zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMWxCUXpGQ0xGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJRekZDTEd0Q1FVRnJRaXhGUVVGRkxFTkJRVVVzU1VGQlNTeERRVUZETEUxQlFXTXNRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRoUVVNeFJDeERRVUZETzFOQlEwZ3NRMEZCUXl4RFFVRkRPMGxCUTB3c1EwRkJRenRKUVVWUExFdEJRVXNzUTBGQlF5eHRRa0ZCYlVJc1EwRkRMMElzYlVKQlFYZERMRVZCUTNoRExFZEJRVWNzU1VGQmVVSTdVVUZGTlVJc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRE8xRkJRMmhGTEU5QlFVOHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4WlFVRmhMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU0xUlN4RFFVRkRPMGxCUlU4c1MwRkJTeXhEUVVGRExHTkJRV01zUTBGRE1VSXNXVUZCTUVJc1JVRkRNVUlzUjBGQlJ5eEpRVUY1UWp0UlFVVTFRaXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRPMUZCUXpORUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkRha01zVFVGQlRTeEZRVU5PTEZkQlFWY3NXVUZCV1N4RFFVRkRMRXRCUVVzc1owTkJRV2RETEVWQlF6ZEVMRk5CUVZNc1JVRkRWQ3hKUVVGSkxHVkJRV1VzUTBGQlF6dFpRVU5zUWl4VFFVRlRMRVZCUVVVc1dVRkJXU3hEUVVGRExGZEJRVmM3V1VGRGJrTXNVVUZCVVN4RlFVRkZMRmxCUVZrc1EwRkJReXhSUVVGUk8xbEJReTlDTEZGQlFWRXNSVUZCUlN4WlFVRlpMRU5CUVVNc1VVRkJVVHRaUVVNdlFpeFZRVUZWTEVWQlFVVXNWVUZCVlR0VFFVTjJRaXhEUVVGRExFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlEySXNSMEZCUnl4RlFVTklMRVZCUVVVc1kwRkJZeXhGUVVGRkxHMURRVUZ0UXl4RlFVRkZMRVZCUTNaRUxFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEUml4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUTJwRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlEyUXNRMEZCUXp0UlFVTkdMRWxCUVVrc1NVRkJTU3hGUVVGRkxGbEJRVms3V1VGQlJTeFBRVUZQTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNN1VVRkRha1FzVFVGQlRTeEpRVUZKTEdWQlFXVXNRMEZEZGtJc1owUkJRV2RFTEZsQlFWa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkRlRVVzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGVHl4eFFrRkJjVUlzUTBGRE0wSXNTVUZCTUVJc1JVRkRNVUlzVTBGQmQwTTdVVUZGZUVNc1QwRkJUenRaUVVOTUxFZEJRVWNzU1VGQlNUdFpRVU5RTEVkQlFVY3NVMEZCVXp0WlFVTmFMRmxCUVZrc1JVRkJSU3hUUVVGVExFTkJRVU1zV1VGQldTeEpRVUZKTEVsQlFVa3NRMEZCUXl4WlFVRlpPMWxCUTNwRUxGVkJRVlVzUlVGQlJTeFRRVUZUTEVOQlFVTXNWVUZCVlN4SlFVRkpMRWxCUVVrc1EwRkJReXhWUVVGVk8xbEJRMjVFTEV0QlFVc3NSVUZCUlN4VFFVRlRMRU5CUVVNc1MwRkJTeXhKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTzFOQlEzSkRMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVThzYTBKQlFXdENMRU5CUTNoQ0xFMUJRVFJDTzFGQlJUVkNMRTlCUVU4N1dVRkRUQ3hSUVVGUkxFVkJRVVVzVFVGQlRTeERRVUZETEZGQlFWRTdXVUZEZWtJc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eFZRVUZWTzFsQlEzWkNMRmRCUVZjc1JVRkJSU3hOUVVGTkxFTkJRVU1zVjBGQlZ6dFpRVU12UWl4UFFVRlBMRVZCUVVVc1RVRkJUU3hEUVVGRExFOUJRVTg3V1VGRGRrSXNVVUZCVVN4RlFVRkZMRTFCUVUwc1EwRkJReXhSUVVGUk8xbEJRM3BDTEU5QlFVOHNSVUZCUlN4TlFVRk5MRU5CUVVNc1QwRkJUenRaUVVOMlFpeHhRa0ZCY1VJc1JVRkJSU3hOUVVGTkxFTkJRVU1zY1VKQlFYRkNMRWxCUVVrc1MwRkJTenRaUVVNMVJDeFBRVUZQTEVWQlFVVXNUVUZCVFN4RFFVRkRMRTlCUVU4c1NVRkJTU3hKUVVGSk8xbEJReTlDTEhOQ1FVRnpRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eHpRa0ZCYzBJc1NVRkJTU3hMUVVGTE8xbEJRemxFTEhWQ1FVRjFRaXhGUVVGRkxHVkJRV1U3V1VGRGVFTXNUVUZCVFN4RlFVRkZMRTFCUVUwc1EwRkJReXhOUVVGTk8xbEJRM0pDTEZsQlFWa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1dVRkJXVHRaUVVOcVF5eFZRVUZWTEVWQlFVVXNUVUZCVFN4RFFVRkRMRlZCUVZVN1dVRkROMElzVTBGQlV5eEZRVUZGTEUxQlFVMHNRMEZCUXl4VFFVRlRMRWxCUVVrc1EwRkJRenRaUVVOb1F5eFZRVUZWTEVWQlFVVXNUVUZCVFN4RFFVRkRMRlZCUVZVc1NVRkJTU3hMUVVGTE8xbEJRM1JETEdWQlFXVXNSVUZCUlN4TlFVRk5MRU5CUVVNc1pVRkJaU3hKUVVGSkxFdEJRVXM3V1VGRGFFUXNiVUpCUVcxQ0xFVkJRVVVzVFVGQlRTeERRVUZETEcxQ1FVRnRRaXhKUVVGSkxFbEJRVWs3V1VGRGRrUXNiVUpCUVcxQ0xFVkJRVVVzVFVGQlRTeERRVUZETEcxQ1FVRnRRaXhKUVVGSkxFdEJRVXM3V1VGRGVFUXNlVUpCUVhsQ0xFVkJRVVVzVFVGQlRTeERRVUZETEhsQ1FVRjVRaXhKUVVGSkxFbEJRVWs3V1VGRGJrVXNjMEpCUVhOQ0xFVkJRVVVzVFVGQlRTeERRVUZETEhOQ1FVRnpRaXhKUVVGSkxFbEJRVWs3V1VGRE4wUXNORUpCUVRSQ0xFVkJRVVVzVFVGQlRTeERRVUZETERSQ1FVRTBRaXhKUVVGSkxFbEJRVWs3V1VGRGVrVXNXVUZCV1N4RlFVRkZMRTFCUVUwc1EwRkJReXhaUVVGWkxFbEJRVWtzUzBGQlN6dFpRVU14UXl4clFrRkJhMElzUlVGQlJTeE5RVUZOTEVOQlFVTXNhMEpCUVd0Q0xFbEJRVWtzU1VGQlNUdFpRVU55UkN4UlFVRlJMRVZCUVVVc1RVRkJUU3hEUVVGRExGRkJRVkVzU1VGQlNTeG5Ra0ZCWjBJN1dVRkROME1zVlVGQlZTeEZRVUZGTEUxQlFVMHNRMEZCUXl4VlFVRlZMRWxCUVVrc1JVRkJSU3gxUWtGQmRVSXNSVUZCUlN4TFFVRkxMRVZCUVVVN1UwRkRjRVVzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGVHl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVOdVFpeE5RVUY1UXl4RlFVTjZReXhKUVVGWkxFVkJRMW9zVjBGQkswSXNSVUZETDBJc1QwRkJaMElzUlVGRGFFSXNWMEZCYlVJc1JVRkRia0lzVDBGQkswSXNSVUZETDBJc1IwRkJSeXhKUVVGNVFqdFJRVVUxUWl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRhRU1zVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF6dFpRVU42UXl4TlFVRk5PMWxCUTA0c1IwRkJSeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RlFVRkZPMWxCUXpORUxFbEJRVWtzUlVGRFJpeFBRVUZQTEV0QlFVc3NVMEZCVXp0blFrRkRia0lzUTBGQlF5eERRVUZETEZOQlFWTTdaMEpCUTFnc1EwRkJReXhEUVVGRExFOUJRVThzVDBGQlR5eExRVUZMTEZGQlFWRTdiMEpCUXpOQ0xFTkJRVU1zUTBGQlF5eFBRVUZQTzI5Q1FVTlVMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXp0WlFVTXZRaXhQUVVGUExFVkJRVVU3WjBKQlExQXNSMEZCUnl4UFFVRlBPMmRDUVVOV0xFZEJRVWNzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1lVRkJZU3hGUVVGRkxGVkJRVlVzVjBGQlZ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8yZENRVU5zUlN4SFFVRkhMRU5CUVVNc1QwRkJUeXhMUVVGTExGTkJRVk1zU1VGQlNTeFBRVUZQTEU5QlFVOHNTMEZCU3l4UlFVRlJPMjlDUVVOMFJDeERRVUZETEVOQlFVTXNSVUZCUlN4alFVRmpMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVTdiMEpCUTNoRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdZVUZEVWp0WlFVTkVMRlZCUVZVc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTTdaMEpCUXpGQ0xHdENRVUZyUWl4RlFVRkZMRU5CUVVVc1NVRkJTU3hEUVVGRExFMUJRV01zUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXp0aFFVTXhSQ3hEUVVGRE8xbEJRMFlzWTBGQll5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrN1UwRkRNMElzUTBGQlF5eERRVUZETzFGQlEwZ3NTVUZCU1N4UlFVRlJMRU5CUVVNc1RVRkJUU3hMUVVGTExGZEJRVmNzUlVGQlJTeERRVUZETzFsQlEzQkRMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRGFrUXNRMEZCUXp0UlFVTkVMRTlCUVU4c1VVRkJVU3hEUVVGRE8wbEJRMnhDTEVOQlFVTTdTVUZGVHl4clFrRkJhMElzUTBGRGVFSXNVVUZCWVN4RlFVTmlMRmRCUVcxQ0xFVkJRMjVDTEZGQlFXbENPMUZCUldwQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEZGQlFWRTdXVUZEZEVJc1EwRkJReXhEUVVGRExFZEJRVWNzVVVGQlVTeGpRVUZqTEZkQlFWY3NZMEZCWXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hMUVVGTExGRkJRVkVzUTBGQlF5eFZRVUZWTEVkQlFVYzdXVUZET1VZc1EwRkJReXhEUVVGRExGbEJRVmtzVjBGQlZ5eGpRVUZqTEZGQlFWRXNRMEZCUXl4TlFVRk5MRXRCUVVzc1VVRkJVU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFGQlEyNUdMRTFCUVUwc1RVRkJUU3hIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZuUWl4RFFVRkRPMUZCUTNwRExFbEJRVWtzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4UFFVRlBMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEZkQlFWY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRiRVVzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOdVF5eERRVUZETzFGQlEwUXNTVUZCU1N4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFOUJRVThzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU5xUlN4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEyNURMRU5CUVVNN1VVRkRSQ3hKUVVGSkxFMUJRVTBzUzBGQlN5eEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTnVRaXhOUVVGTkxFbEJRVWtzWlVGQlpTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNKRExFTkJRVU03VVVGRFJDeEpRVUZKTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1RVRkJUU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzFsQlEzSkRMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEYmtNc1EwRkJRenRSUVVORUxFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRia01zUTBGQlF6dEpRVVZUTEZWQlFWVXNRMEZCUXl4TFFVRlpPMUZCUXk5Q0xFMUJRVTBzVDBGQlR5eEhRVUZITEV0QlFVc3NRMEZCUXl4UFFVRlBMRWxCUVVrc1MwRkJTeXhEUVVGRExFbEJRVWtzU1VGQlNTeGxRVUZsTEVOQlFVTTdVVUZETDBRc1RVRkJUU3haUVVGWkxFZEJRVWNzVDBGQlR5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMUZCUlRORExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRka1VzVDBGQlR5eEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOd1F5eERRVUZETzFGQlJVUXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEYWtnc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndReXhEUVVGRE8xRkJSVVFzU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUXpkSExFOUJRVThzU1VGQlNTeGxRVUZsTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRkRU1zUTBGQlF6dFJRVVZFTEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRE1VVXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU53UXl4RFFVRkRPMUZCUlVRc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTjJSU3hQUVVGUExFbEJRVWtzWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCRExFTkJRVU03VVVGRlJDeFBRVUZQTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM0JETEVOQlFVTTdTVUZGVHl4MVFrRkJkVUlzUTBGQlF5eFJRVUZoTzFGQlF6TkRMRTFCUVUwc1VVRkJVU3hIUVVGSExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNVVUZCT0VJc1EwRkJRenRSUVVOcVJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNN1dVRkRaQ3hOUVVGTkxFbEJRVWtzWVVGQllTeERRVU55UWl4eFJFRkJjVVFzUTBGRGRFUXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkRSQ3hQUVVGUExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETzBsQlEzcERMRU5CUVVNN1NVRkZUeXhwUWtGQmFVSXNRMEZCU1N4SlFVRmhPMUZCUTNoRExFbEJRVWtzVDBGQlR5eEpRVUZKTEV0QlFVc3NVVUZCVVN4RlFVRkZMRU5CUVVNN1dVRkROMElzU1VGQlNTeERRVUZETzJkQ1FVTklMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVMHNRMEZCUXp0WlFVTXZRaXhEUVVGRE8xbEJRVU1zVFVGQlRTeERRVUZETzJkQ1FVTlFMRTlCUVU4c1UwRkJVeXhEUVVGRE8xbEJRMjVDTEVOQlFVTTdVVUZEU0N4RFFVRkRPMUZCUTBRc1QwRkJUeXhKUVVGVExFTkJRVU03U1VGRGJrSXNRMEZCUXp0RFFVTkdJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRjYmlBZ1FtRmtVbVZ4ZFdWemRFVnljbTl5TEZ4dUlDQkRiMjVtYkdsamRFVnljbTl5TEZ4dUlDQkpiblJsY201aGJFVnljbTl5TEZ4dUlDQk9iM1JHYjNWdVpFVnljbTl5TEZ4dWZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmlMV1JsWTI5eVlYUnZjbk5jSWp0Y2JtbHRjRzl5ZENCN0lFTnZiblJsZUhSMVlXeEJjbWR6TENCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCN0lFTnNhV1Z1ZEVKaGMyVmtVMlZ5ZG1salpTQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIUjVjR1VnZTF4dUlDQkxaWGxqYkc5aGEwTnNhV1Z1ZEVOdmJtWnBaeXhjYmlBZ1MyVjVZMnh2WVd0RGJHbGxiblJTYjJ4bFEyOXVabWxuTEZ4dUlDQkxaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5MRnh1SUNCTFpYbGpiRzloYTFWelpYSXNYRzU5SUdaeWIyMGdYQ0l1TGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUVGNGFXOXpMQ0I3SUVGNGFXOXpTVzV6ZEdGdVkyVWdmU0JtY205dElGd2lZWGhwYjNOY0lqdGNibWx0Y0c5eWRDQXFJR0Z6SUdoMGRIQnpJR1p5YjIwZ1hDSnViMlJsT21oMGRIQnpYQ0k3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJMWlhsamJHOWhhME5zYVdWdWRGTmxjblpwWTJVZ1pYaDBaVzVrY3lCRGJHbGxiblJDWVhObFpGTmxjblpwWTJVOFhHNGdJRUY0YVc5elNXNXpkR0Z1WTJVc1hHNGdJRXRsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2RjYmo0Z2UxeHVJQ0JoYzNsdVl5QnBibWwwYVdGc2FYcGxLRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThleUJqYjI1bWFXYzZJRXRsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2M3SUdOc2FXVnVkRG9nUVhocGIzTkpibk4wWVc1alpTQjlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbWx1YVhScFlXeHBlbVZjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbWx1YVhScFlXeHBlbVVwTzF4dUlDQWdJR052Ym5OMElHTnZibVpwWnlBOUlHTjBlRUZ5WjNOYk1GMGdZWE1nUzJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnp0Y2JpQWdJQ0IwYUdsekxsOWpiMjVtYVdjZ1BTQmpiMjVtYVdjN1hHNGdJQ0FnWTI5dWMzUWdZMnhwWlc1MElEMGdkR2hwY3k1amNtVmhkR1ZJZEhSd1EyeHBaVzUwS0dOdmJtWnBaeWs3WEc0Z0lDQWdkR2hwY3k1ZlkyeHBaVzUwSUQwZ1kyeHBaVzUwTzF4dUlDQWdJSEpsZEhWeWJpQjdJR052Ym1acFp5d2dZMnhwWlc1MElIMDdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmpjbVZoZEdWRGJHbGxiblFvWEc0Z0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaem9nUzJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnl4Y2JpQWdJQ0J2ZG1WeWNtbGtaWE02SUZCaGNuUnBZV3c4UzJWNVkyeHZZV3REYkdsbGJuUkRiMjVtYVdjK0lId2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThjM1J5YVc1blBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltTnlaV0YwWlVOc2FXVnVkRndpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVZM0psWVhSbFEyeHBaVzUwS1R0Y2JpQWdJQ0JqYjI1emRDQnlaV0ZzYlVGalkyVnpjMVJ2YTJWdUlEMGdZWGRoYVhRZ2RHaHBjeTVuWlhSU1pXRnNiVUZqWTJWemMxUnZhMlZ1S0Z4dUlDQWdJQ0FnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnl4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElHTnNhV1Z1ZENBOUlIUm9hWE11Ym05eWJXRnNhWHBsUTJ4cFpXNTBRMjl1Wm1sbktGeHVJQ0FnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5NWpiR2xsYm5Rc1hHNGdJQ0FnSUNCdmRtVnljbWxrWlhNZ1B6OGdlMzFjYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUhKbGMzQnZibk5sSUQwZ1lYZGhhWFFnZEdocGN5NXlaWEYxWlhOMEtGeHVJQ0FnSUNBZ1hDSlFUMU5VWENJc1hHNGdJQ0FnSUNCZ0wyRmtiV2x1TDNKbFlXeHRjeThrZTJ0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdWNtVmhiRzFCY0dsVmMyVnlQeTV5WldGc2JYMHZZMnhwWlc1MGMyQXNYRzRnSUNBZ0lDQnlaV0ZzYlVGalkyVnpjMVJ2YTJWdUxGeHVJQ0FnSUNBZ2RHaHBjeTVpZFdsc1pFTnNhV1Z1ZEZCaGVXeHZZV1FvWTJ4cFpXNTBLU3hjYmlBZ0lDQWdJREl3TVN4Y2JpQWdJQ0FnSUh0OUxGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVpYaDBjbUZqZEZWVlNVUm1jbTl0VW1WemNHOXVjMlVvY21WemNHOXVjMlVwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nZFhCa1lYUmxRMnhwWlc1MEtGeHVJQ0FnSUd0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjNklFdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3NYRzRnSUNBZ2IzWmxjbkpwWkdWek9pQlFZWEowYVdGc1BFdGxlV05zYjJGclEyeHBaVzUwUTI5dVptbG5QaUI4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lkWEJrWVhSbFEyeHBaVzUwWENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTUxY0dSaGRHVkRiR2xsYm5RcE8xeHVJQ0FnSUdOdmJuTjBJSEpsWVd4dFFXTmpaWE56Vkc5clpXNGdQU0JoZDJGcGRDQjBhR2x6TG1kbGRGSmxZV3h0UVdOalpYTnpWRzlyWlc0b1hHNGdJQ0FnSUNCclpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdZMnhwWlc1MElEMGdkR2hwY3k1dWIzSnRZV3hwZW1WRGJHbGxiblJEYjI1bWFXY29YRzRnSUNBZ0lDQnJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5MbU5zYVdWdWRDeGNiaUFnSUNBZ0lHOTJaWEp5YVdSbGN5QS9QeUI3ZlZ4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1kyeHBaVzUwVlZWSlJDQTlYRzRnSUNBZ0lDQmpiR2xsYm5RdVkyeHBaVzUwVlZWSlJDQS9QMXh1SUNBZ0lDQWdLR0YzWVdsMElIUm9hWE11WjJWMFEyeHBaVzUwVlZWSlJDaGNiaUFnSUNBZ0lDQWdjbVZoYkcxQlkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeTV5WldGc2JVRndhVlZ6WlhJaExuSmxZV3h0TEZ4dUlDQWdJQ0FnSUNCamJHbGxiblF1WTJ4cFpXNTBTV1FzWEc0Z0lDQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FnSUNrcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWNtVnhkV1Z6ZENoY2JpQWdJQ0FnSUZ3aVVGVlVYQ0lzWEc0Z0lDQWdJQ0JnTDJGa2JXbHVMM0psWVd4dGN5OGtlMnRsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2N1Y21WaGJHMUJjR2xWYzJWeVB5NXlaV0ZzYlgwdlkyeHBaVzUwY3k4a2UyVnVZMjlrWlZWU1NVTnZiWEJ2Ym1WdWRDaGpiR2xsYm5SVlZVbEVLWDFnTEZ4dUlDQWdJQ0FnY21WaGJHMUJZMk5sYzNOVWIydGxiaXhjYmlBZ0lDQWdJSFJvYVhNdVluVnBiR1JEYkdsbGJuUlFZWGxzYjJGa0tHTnNhV1Z1ZENrc1hHNGdJQ0FnSUNBeU1EUXNYRzRnSUNBZ0lDQjdmU3hjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdaMlYwUTJ4cFpXNTBWVlZKUkNoY2JpQWdJQ0JoWTJObGMzTlViMnRsYmpvZ2MzUnlhVzVuTEZ4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lHTnNhV1Z1ZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4emRISnBibWMrSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpWjJWMFEyeHBaVzUwVlZWSlJGd2lMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVoyVjBRMnhwWlc1MFZWVkpSQ2s3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJa2RGVkZ3aUxGeHVJQ0FnSUNBZ1lDOWhaRzFwYmk5eVpXRnNiWE12Skh0eVpXRnNiVTVoYldWOUwyTnNhV1Z1ZEhNL1kyeHBaVzUwU1dROUpIdGxibU52WkdWVlVrbERiMjF3YjI1bGJuUW9ZMnhwWlc1MFNXUXBmV0FzWEc0Z0lDQWdJQ0JoWTJObGMzTlViMnRsYml4Y2JpQWdJQ0FnSUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSURJd01DeGNiaUFnSUNBZ0lIdDlMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnWkdGMFlTQTlJSFJvYVhNdWNHRnljMlZLYzI5dVVtVnpjRzl1YzJVOFFYSnlZWGs4ZXlCcFpEODZJSE4wY21sdVp5QjlQajRvY21WemNHOXVjMlV1WkdGMFlTazdYRzRnSUNBZ1kyOXVjM1FnWTJ4cFpXNTBWVlZKUkNBOUlHUmhkR0UvTGxzd1hUOHVhV1E3WEc0Z0lDQWdhV1lnS0dOc2FXVnVkRlZWU1VRcElISmxkSFZ5YmlCamJHbGxiblJWVlVsRU8xeHVJQ0FnSUhSb2NtOTNJRzVsZHlCT2IzUkdiM1Z1WkVWeWNtOXlLR0JWYm1GaWJHVWdkRzhnWjJWMElFdGxlV05zYjJGcklFTnNhV1Z1ZENCVlZVbEVPaUFrZTJOc2FXVnVkRWxrZldBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ1kzSmxZWFJsUTJ4cFpXNTBVbTlzWlhNb1hHNGdJQ0FnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnpvZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5eGNiaUFnSUNCeWIyeGxRMjl1Wm1sbmN6b2dTMlY1WTJ4dllXdERiR2xsYm5SU2IyeGxRMjl1Wm1sblcxMGdmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltTnlaV0YwWlVOc2FXVnVkRkp2YkdWelhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1amNtVmhkR1ZEYkdsbGJuUlNiMnhsY3lrN1hHNGdJQ0FnWTI5dWMzUWdjbTlzWlhNZ1BTQnliMnhsUTI5dVptbG5jeUEvUHlCclpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxtTnNhV1Z1ZEM1eWIyeGxjeUEvUHlCYlhUdGNiaUFnSUNCamIyNXpkQ0J5WldGc2JVRmpZMlZ6YzFSdmEyVnVJRDBnWVhkaGFYUWdkR2hwY3k1blpYUlNaV0ZzYlVGalkyVnpjMVJ2YTJWdUtGeHVJQ0FnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5eGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2NtOXNaU0J2WmlCeWIyeGxjeWtnZTF4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1eVpYRjFaWE4wS0Z4dUlDQWdJQ0FnSUNCY0lsQlBVMVJjSWl4Y2JpQWdJQ0FnSUNBZ1lDOWhaRzFwYmk5eVpXRnNiWE12Skh0clpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxuSmxZV3h0UVhCcFZYTmxjajh1Y21WaGJHMTlMMk5zYVdWdWRITXZKSHRyWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTG1Oc2FXVnVkQzVqYkdsbGJuUlZWVWxFZlM5eWIyeGxjMkFzWEc0Z0lDQWdJQ0FnSUhKbFlXeHRRV05qWlhOelZHOXJaVzRzWEc0Z0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQnVZVzFsT2lCeWIyeGxMbkp2YkdWT1lXMWxMRnh1SUNBZ0lDQWdJQ0FnSUdSbGMyTnlhWEIwYVc5dU9pQnliMnhsTG1SbGMyTnlhWEIwYVc5dUlEOC9JR0JCZFhSdkxXTnlaV0YwWldRZ2NtOXNaU0FrZTNKdmJHVXVjbTlzWlU1aGJXVjlZQ3hjYmlBZ0lDQWdJQ0FnSUNCamIyMXdiM05wZEdVNklHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNBZ0lHTnNhV1Z1ZEZKdmJHVTZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJREl3TVN4Y2JpQWdJQ0FnSUNBZ2UzMHNYRzRnSUNBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JqY21WaGRHVklkSFJ3UTJ4cFpXNTBLR052Ym1acFp6b2dTMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeWs2SUVGNGFXOXpTVzV6ZEdGdVkyVWdlMXh1SUNBZ0lISmxkSFZ5YmlCQmVHbHZjeTVqY21WaGRHVW9lMXh1SUNBZ0lDQWdZbUZ6WlZWU1REb2dZQ1I3WTI5dVptbG5MbkJ5YjNSdlkyOXNmVG92THlSN1kyOXVabWxuTG1odmMzUjlZQ3hjYmlBZ0lDQWdJR2hsWVdSbGNuTTZJSHNnWENKRGIyNTBaVzUwTFZSNWNHVmNJam9nWENKaGNIQnNhV05oZEdsdmJpOXFjMjl1WENJZ2ZTeGNiaUFnSUNBZ0lIWmhiR2xrWVhSbFUzUmhkSFZ6T2lBb0tTQTlQaUIwY25WbExGeHVJQ0FnSUNBZ2FIUjBjSE5CWjJWdWREb2dibVYzSUdoMGRIQnpMa0ZuWlc1MEtIdGNiaUFnSUNBZ0lDQWdjbVZxWldOMFZXNWhkWFJvYjNKcGVtVmtPaUFvS0hSb2FYTXVZMjl1Wm1sbklHRnpJR0Z1ZVNrdWFYTlFjbTlrZFdOMGFXOXVLQ2twTEZ4dUlDQWdJQ0FnZlNrc1hHNGdJQ0FnZlNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHRnplVzVqSUdkbGRGSmxZV3h0UVdOalpYTnpWRzlyWlc0b1hHNGdJQ0FnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnpvZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5eGNiaUFnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4YzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0IwYUdsekxtZGxkRkpsWVd4dFFXTmpaWE56Vkc5clpXNHBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWRsZEVGalkyVnpjMVJ2YTJWdUtHdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3VjbVZoYkcxQmNHbFZjMlZ5SVN3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR0Z6ZVc1aklHZGxkRUZqWTJWemMxUnZhMlZ1S0Z4dUlDQWdJR3RsZVdOc2IyRnJWWE5sY2pvZ1MyVjVZMnh2WVd0VmMyVnlMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFTnZiblJsZUhSMVlXeEJjbWR6UEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4emRISnBibWMrSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVaMlYwUVdOalpYTnpWRzlyWlc0cE8xeHVJQ0FnSUdOdmJuTjBJSEpsYzNCdmJuTmxJRDBnWVhkaGFYUWdkR2hwY3k1eVpYRjFaWE4wS0Z4dUlDQWdJQ0FnWENKUVQxTlVYQ0lzWEc0Z0lDQWdJQ0JnTDNKbFlXeHRjeThrZTJ0bGVXTnNiMkZyVlhObGNpNXlaV0ZzYlgwdmNISnZkRzlqYjJ3dmIzQmxibWxrTFdOdmJtNWxZM1F2ZEc5clpXNWdMRnh1SUNBZ0lDQWdkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdibVYzSUZWU1RGTmxZWEpqYUZCaGNtRnRjeWg3WEc0Z0lDQWdJQ0FnSUdOc2FXVnVkRjlwWkRvZ2EyVjVZMnh2WVd0VmMyVnlMbUZ3YVVOc2FXVnVkRWxrTEZ4dUlDQWdJQ0FnSUNCMWMyVnlibUZ0WlRvZ2EyVjVZMnh2WVd0VmMyVnlMblZ6WlhKdVlXMWxMRnh1SUNBZ0lDQWdJQ0J3WVhOemQyOXlaRG9nYTJWNVkyeHZZV3RWYzJWeUxuQmhjM04zYjNKa0xGeHVJQ0FnSUNBZ0lDQm5jbUZ1ZEY5MGVYQmxPaUJjSW5CaGMzTjNiM0prWENJc1hHNGdJQ0FnSUNCOUtTNTBiMU4wY21sdVp5Z3BMRnh1SUNBZ0lDQWdNakF3TEZ4dUlDQWdJQ0FnZXlCY0ltTnZiblJsYm5RdGRIbHdaVndpT2lCY0ltRndjR3hwWTJGMGFXOXVMM2d0ZDNkM0xXWnZjbTB0ZFhKc1pXNWpiMlJsWkZ3aUlIMHNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0JrWVhSaElEMGdkR2hwY3k1d1lYSnpaVXB6YjI1U1pYTndiMjV6WlR4N0lHRmpZMlZ6YzE5MGIydGxiajg2SUhOMGNtbHVaeUI5UGloY2JpQWdJQ0FnSUhKbGMzQnZibk5sTG1SaGRHRmNiaUFnSUNBcE8xeHVJQ0FnSUdsbUlDaGtZWFJoUHk1aFkyTmxjM05mZEc5clpXNHBJSEpsZEhWeWJpQmtZWFJoTG1GalkyVnpjMTkwYjJ0bGJqdGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1FtRmtVbVZ4ZFdWemRFVnljbTl5S0Z4dUlDQWdJQ0FnWUZWdVlXSnNaU0IwYnlCblpYUWdTMlY1WTJ4dllXc2dZV05qWlhOeklIUnZhMlZ1SUdadmNpQjFjMlZ5SUNSN2EyVjVZMnh2WVd0VmMyVnlMblZ6WlhKdVlXMWxmV0JjYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J1YjNKdFlXeHBlbVZEYkdsbGJuUkRiMjVtYVdjb1hHNGdJQ0FnWW1GelpUb2dTMlY1WTJ4dllXdERiR2xsYm5SRGIyNW1hV2NzWEc0Z0lDQWdiM1psY25KcFpHVnpPaUJRWVhKMGFXRnNQRXRsZVdOc2IyRnJRMnhwWlc1MFEyOXVabWxuUGx4dUlDQXBPaUJMWlhsamJHOWhhME5zYVdWdWRFTnZibVpwWnlCN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQzR1TG1KaGMyVXNYRzRnSUNBZ0lDQXVMaTV2ZG1WeWNtbGtaWE1zWEc0Z0lDQWdJQ0J5WldScGNtVmpkRlZ5YVhNNklHOTJaWEp5YVdSbGN5NXlaV1JwY21WamRGVnlhWE1nUHo4Z1ltRnpaUzV5WldScGNtVmpkRlZ5YVhNc1hHNGdJQ0FnSUNCM1pXSlBjbWxuYVc1ek9pQnZkbVZ5Y21sa1pYTXVkMlZpVDNKcFoybHVjeUEvUHlCaVlYTmxMbmRsWWs5eWFXZHBibk1zWEc0Z0lDQWdJQ0J5YjJ4bGN6b2diM1psY25KcFpHVnpMbkp2YkdWeklEOC9JR0poYzJVdWNtOXNaWE1zWEc0Z0lDQWdmVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWW5WcGJHUkRiR2xsYm5SUVlYbHNiMkZrS0Z4dUlDQWdJR05zYVdWdWREb2dTMlY1WTJ4dllXdERiR2xsYm5SRGIyNW1hV2RjYmlBZ0tUb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2RXNXJibTkzYmo0Z2UxeHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0JqYkdsbGJuUkpaRG9nWTJ4cFpXNTBMbU5zYVdWdWRFbGtMRnh1SUNBZ0lDQWdibUZ0WlRvZ1kyeHBaVzUwTG1Oc2FXVnVkRTVoYldVc1hHNGdJQ0FnSUNCa1pYTmpjbWx3ZEdsdmJqb2dZMnhwWlc1MExtUmxjMk55YVhCMGFXOXVMRnh1SUNBZ0lDQWdjbTl2ZEZWeWJEb2dZMnhwWlc1MExuSnZiM1JWY213c1hHNGdJQ0FnSUNCaFpHMXBibFZ5YkRvZ1kyeHBaVzUwTG1Ga2JXbHVWWEpzTEZ4dUlDQWdJQ0FnWW1GelpWVnliRG9nWTJ4cFpXNTBMbUpoYzJWVmNtd3NYRzRnSUNBZ0lDQnpkWEp5YjJkaGRHVkJkWFJvVW1WeGRXbHlaV1E2SUdOc2FXVnVkQzV6ZFhKeWIyZGhkR1ZCZFhSb1VtVnhkV2x5WldRZ1B6OGdabUZzYzJVc1hHNGdJQ0FnSUNCbGJtRmliR1ZrT2lCamJHbGxiblF1Wlc1aFlteGxaQ0EvUHlCMGNuVmxMRnh1SUNBZ0lDQWdZV3gzWVhselJHbHpjR3hoZVVsdVEyOXVjMjlzWlRvZ1kyeHBaVzUwTG1Gc2QyRjVjMFJwYzNCc1lYbEpia052Ym5OdmJHVWdQejhnWm1Gc2MyVXNYRzRnSUNBZ0lDQmpiR2xsYm5SQmRYUm9aVzUwYVdOaGRHOXlWSGx3WlRvZ1hDSmpiR2xsYm5RdGMyVmpjbVYwWENJc1hHNGdJQ0FnSUNCelpXTnlaWFE2SUdOc2FXVnVkQzV6WldOeVpYUXNYRzRnSUNBZ0lDQnlaV1JwY21WamRGVnlhWE02SUdOc2FXVnVkQzV5WldScGNtVmpkRlZ5YVhNc1hHNGdJQ0FnSUNCM1pXSlBjbWxuYVc1ek9pQmpiR2xsYm5RdWQyVmlUM0pwWjJsdWN5eGNiaUFnSUNBZ0lHNXZkRUpsWm05eVpUb2dZMnhwWlc1MExtNXZkRUpsWm05eVpTQS9QeUF3TEZ4dUlDQWdJQ0FnWW1WaGNtVnlUMjVzZVRvZ1kyeHBaVzUwTG1KbFlYSmxjazl1YkhrZ1B6OGdabUZzYzJVc1hHNGdJQ0FnSUNCamIyNXpaVzUwVW1WeGRXbHlaV1E2SUdOc2FXVnVkQzVqYjI1elpXNTBVbVZ4ZFdseVpXUWdQejhnWm1Gc2MyVXNYRzRnSUNBZ0lDQnpkR0Z1WkdGeVpFWnNiM2RGYm1GaWJHVmtPaUJqYkdsbGJuUXVjM1JoYm1SaGNtUkdiRzkzUlc1aFlteGxaQ0EvUHlCMGNuVmxMRnh1SUNBZ0lDQWdhVzF3YkdsamFYUkdiRzkzUlc1aFlteGxaRG9nWTJ4cFpXNTBMbWx0Y0d4cFkybDBSbXh2ZDBWdVlXSnNaV1FnUHo4Z1ptRnNjMlVzWEc0Z0lDQWdJQ0JrYVhKbFkzUkJZMk5sYzNOSGNtRnVkSE5GYm1GaWJHVmtPaUJqYkdsbGJuUXVaR2x5WldOMFFXTmpaWE56UjNKaGJuUnpSVzVoWW14bFpDQS9QeUIwY25WbExGeHVJQ0FnSUNBZ2MyVnlkbWxqWlVGalkyOTFiblJ6Ulc1aFlteGxaRG9nWTJ4cFpXNTBMbk5sY25acFkyVkJZMk52ZFc1MGMwVnVZV0pzWldRZ1B6OGdkSEoxWlN4Y2JpQWdJQ0FnSUdGMWRHaHZjbWw2WVhScGIyNVRaWEoyYVdObGMwVnVZV0pzWldRNklHTnNhV1Z1ZEM1aGRYUm9iM0pwZW1GMGFXOXVVMlZ5ZG1salpYTkZibUZpYkdWa0lEOC9JSFJ5ZFdVc1hHNGdJQ0FnSUNCd2RXSnNhV05EYkdsbGJuUTZJR05zYVdWdWRDNXdkV0pzYVdORGJHbGxiblFnUHo4Z1ptRnNjMlVzWEc0Z0lDQWdJQ0JtY205dWRHTm9ZVzV1Wld4TWIyZHZkWFE2SUdOc2FXVnVkQzVtY205dWRHTm9ZVzV1Wld4TWIyZHZkWFFnUHo4Z2RISjFaU3hjYmlBZ0lDQWdJSEJ5YjNSdlkyOXNPaUJqYkdsbGJuUXVjSEp2ZEc5amIyd2dQejhnWENKdmNHVnVhV1F0WTI5dWJtVmpkRndpTEZ4dUlDQWdJQ0FnWVhSMGNtbGlkWFJsY3pvZ1kyeHBaVzUwTG1GMGRISnBZblYwWlhNZ1B6OGdleUJjSW1GalkyVnpjeTUwYjJ0bGJpNXNhV1psYzNCaGJsd2lPaUJjSWpNd01Gd2lJSDBzWEc0Z0lDQWdmVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdjbVZ4ZFdWemRDaGNiaUFnSUNCdFpYUm9iMlE2SUZ3aVIwVlVYQ0lnZkNCY0lsQlBVMVJjSWlCOElGd2lVRlZVWENJZ2ZDQmNJa1JGVEVWVVJWd2lMRnh1SUNBZ0lIQmhkR2c2SUhOMGNtbHVaeXhjYmlBZ0lDQmhZMk5sYzNOVWIydGxiam9nYzNSeWFXNW5JSHdnZFc1a1pXWnBibVZrTEZ4dUlDQWdJSEJoZVd4dllXUTZJSFZ1YTI1dmQyNHNYRzRnSUNBZ2MzVmpZMlZ6YzBOdlpHVTZJRzUxYldKbGNpeGNiaUFnSUNCb1pXRmtaWEp6T2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0J6ZEhKcGJtYytMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFTnZiblJsZUhSMVlXeEJjbWR6UEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4aGJuaytJSHRjYmlBZ0lDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQjBhR2x6TG5KbGNYVmxjM1FwTzF4dUlDQWdJR052Ym5OMElISmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTVqYkdsbGJuUXVjbVZ4ZFdWemRDaDdYRzRnSUNBZ0lDQnRaWFJvYjJRc1hHNGdJQ0FnSUNCMWNtdzZJR0FrZTNSb2FYTXVZMjl1Wm1sbkxuQnliM1J2WTI5c2ZUb3ZMeVI3ZEdocGN5NWpiMjVtYVdjdWFHOXpkSDBrZTNCaGRHaDlZQ3hjYmlBZ0lDQWdJR1JoZEdFNlhHNGdJQ0FnSUNBZ0lIQmhlV3h2WVdRZ1BUMDlJSFZ1WkdWbWFXNWxaRnh1SUNBZ0lDQWdJQ0FnSUQ4Z2RXNWtaV1pwYm1Wa1hHNGdJQ0FnSUNBZ0lDQWdPaUIwZVhCbGIyWWdjR0Y1Ykc5aFpDQTlQVDBnWENKemRISnBibWRjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdQeUJ3WVhsc2IyRmtYRzRnSUNBZ0lDQWdJQ0FnSUNBNklFcFRUMDR1YzNSeWFXNW5hV1o1S0hCaGVXeHZZV1FwTEZ4dUlDQWdJQ0FnYUdWaFpHVnljem9nZTF4dUlDQWdJQ0FnSUNBdUxpNW9aV0ZrWlhKekxGeHVJQ0FnSUNBZ0lDQXVMaTRvWVdOalpYTnpWRzlyWlc0Z1B5QjdJRUYxZEdodmNtbDZZWFJwYjI0NklHQkNaV0Z5WlhJZ0pIdGhZMk5sYzNOVWIydGxibjFnSUgwZ09pQjdmU2tzWEc0Z0lDQWdJQ0FnSUM0dUxpaHdZWGxzYjJGa0lDRTlQU0IxYm1SbFptbHVaV1FnSmlZZ2RIbHdaVzltSUhCaGVXeHZZV1FnSVQwOUlGd2ljM1J5YVc1blhDSmNiaUFnSUNBZ0lDQWdJQ0EvSUhzZ1hDSkRiMjUwWlc1MExWUjVjR1ZjSWpvZ1hDSmhjSEJzYVdOaGRHbHZiaTlxYzI5dVhDSWdmVnh1SUNBZ0lDQWdJQ0FnSURvZ2UzMHBMRnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJR2gwZEhCelFXZGxiblE2SUc1bGR5Qm9kSFJ3Y3k1QloyVnVkQ2g3WEc0Z0lDQWdJQ0FnSUhKbGFtVmpkRlZ1WVhWMGFHOXlhWHBsWkRvZ0tDaDBhR2x6TG1OdmJtWnBaeUJoY3lCaGJua3BMbWx6VUhKdlpIVmpkR2x2YmlncEtTeGNiaUFnSUNBZ0lIMHBMRnh1SUNBZ0lDQWdkbUZzYVdSaGRHVlRkR0YwZFhNNklDZ3BJRDArSUhSeWRXVXNYRzRnSUNBZ2ZTazdYRzRnSUNBZ2FXWWdLSEpsYzNCdmJuTmxMbk4wWVhSMWN5QWhQVDBnYzNWalkyVnpjME52WkdVcElIdGNiaUFnSUNBZ0lIUm9hWE11YUdGdVpHeGxTSFIwY0ZKbGMzQnZibk5sS0hKbGMzQnZibk5sTENCemRXTmpaWE56UTI5a1pTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ5WlhOd2IyNXpaVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYUdGdVpHeGxTSFIwY0ZKbGMzQnZibk5sS0Z4dUlDQWdJSEpsYzNCdmJuTmxPaUJoYm5rc1hHNGdJQ0FnYzNWalkyVnpjME52WkdVNklHNTFiV0psY2l4Y2JpQWdJQ0JsY25KdmNrMXpaejg2SUhOMGNtbHVaMXh1SUNBcE9pQjJiMmxrSUh0Y2JpQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdaWEp5YjNKTmMyZGNiaUFnSUNBZ0lEOGdZQ1I3WlhKeWIzSk5jMmQ5T2lCRmVIQmxZM1JsWkNBa2UzTjFZMk5sYzNORGIyUmxmU3dnY21WalpXbDJaV1FnSkh0eVpYTndiMjV6WlM1emRHRjBkWE45T2lBa2UzSmxjM0J2Ym5ObExuTjBZWFIxYzFSbGVIUjlMbUJjYmlBZ0lDQWdJRG9nWUVWNGNHVmpkR1ZrSUNSN2MzVmpZMlZ6YzBOdlpHVjlMQ0J5WldObGFYWmxaQ0FrZTNKbGMzQnZibk5sTG5OMFlYUjFjMzA2SUNSN2NtVnpjRzl1YzJVdWMzUmhkSFZ6VkdWNGRIMWdPMXh1SUNBZ0lHTnZibk4wSUhOMFlYUjFjeUE5SUhKbGMzQnZibk5sTG5OMFlYUjFjeUJoY3lCdWRXMWlaWEk3WEc0Z0lDQWdhV1lnS0hOMFlYUjFjeUE5UFQwZ05EQTBJSHg4SUcxbGMzTmhaMlV1ZEc5TWIzZGxja05oYzJVb0tTNXBibU5zZFdSbGN5aGNJbTV2ZENCbWIzVnVaRndpS1NrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2h6ZEdGMGRYTWdQVDA5SURRd09TQjhmQ0J0WlhOellXZGxMblJ2VEc5M1pYSkRZWE5sS0NrdWFXNWpiSFZrWlhNb1hDSmpiMjVtYkdsamRGd2lLU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVOdmJtWnNhV04wUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHpkR0YwZFhNZ1BUMDlJRFF3TUNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0hOMFlYUjFjeUE5UFQwZ05EQXhJSHg4SUhOMFlYUjFjeUE5UFQwZ05EQXpLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNGdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnY0dGeWMyVkZjbkp2Y2lobGNuSnZjam9nUlhKeWIzSXBPaUJGY25KdmNpQjdYRzRnSUNBZ1kyOXVjM1FnYldWemMyRm5aU0E5SUdWeWNtOXlMbTFsYzNOaFoyVWdmSHdnWlhKeWIzSXVibUZ0WlNCOGZDQmNJbFZ1YTI1dmQyNGdaWEp5YjNKY0lqdGNiaUFnSUNCamIyNXpkQ0JzYjNkbGNrMWxjM05oWjJVZ1BTQnRaWE56WVdkbExuUnZURzkzWlhKRFlYTmxLQ2s3WEc1Y2JpQWdJQ0JwWmlBb2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpYm05MElHWnZkVzVrWENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0lqUXdORndpS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0poYkhKbFlXUjVJR1Y0YVhOMGMxd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0pqYjI1bWJHbGpkRndpS1NCOGZDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENJME1EbGNJaWtwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1EyOXVabXhwWTNSRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lhVzUyWVd4cFpGd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0ppWVdRZ2NtVnhkV1Z6ZEZ3aUtTQjhmQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSTBNREJjSWlrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dRbUZrVW1WeGRXVnpkRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKMWJtRjFkR2h2Y21sNlpXUmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpTkRBeFhDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUU1dmRFWnZkVzVrUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltWnZjbUpwWkdSbGJsd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0kwTUROY0lpa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdWNGRISmhZM1JWVlVsRVpuSnZiVkpsYzNCdmJuTmxLSEpsYzNCdmJuTmxPaUJoYm5rcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdOdmJuTjBJR3h2WTJGMGFXOXVJRDBnY21WemNHOXVjMlV1YUdWaFpHVnljeTVzYjJOaGRHbHZiaUJoY3lCemRISnBibWNnZkNCMWJtUmxabWx1WldRN1hHNGdJQ0FnYVdZZ0tDRnNiMk5oZEdsdmJpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lGd2lTMlY1WTJ4dllXc2djbVZ6Y0c5dWMyVWdaR2xrSUc1dmRDQnBibU5zZFdSbElHRWdiRzlqWVhScGIyNGdhR1ZoWkdWeVhDSmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJzYjJOaGRHbHZiaTV6Y0d4cGRDaGNJaTljSWlrdWNHOXdLQ2tnUHo4Z1hDSmNJanRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnY0dGeWMyVktjMjl1VW1WemNHOXVjMlU4VkQ0b1pHRjBZVG9nZFc1cmJtOTNiaWs2SUZRZ2ZDQjFibVJsWm1sdVpXUWdlMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdaR0YwWVNBOVBUMGdYQ0p6ZEhKcGJtZGNJaWtnZTF4dUlDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlFcFRUMDR1Y0dGeWMyVW9aR0YwWVNrZ1lYTWdWRHRjYmlBZ0lDQWdJSDBnWTJGMFkyZ2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWkdGMFlTQmhjeUJVTzF4dUlDQjlYRzU5WEc0aVhYMD0iXX0=
|