@decaf-ts/integrations 0.14.2 → 0.14.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -1
- package/dist/integrations.cjs +3317 -2
- package/dist/integrations.js +3665 -2
- package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/core/BlobEnvironment.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/GcsBlobEnvironment.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/local/LocalBlobEnvironment.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/MemoryBlobEnvironment.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/MinioBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/calendar/CalendarService.cjs +2 -2
- package/lib/cjs/calendar/environment.cjs +2 -2
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +2 -2
- package/lib/cjs/calendar/google-calendar/index.cjs +2 -2
- package/lib/cjs/calendar/index.cjs +2 -2
- package/lib/cjs/calendar/types.cjs +2 -2
- package/lib/cjs/calendar/validators/cron.cjs +2 -2
- package/lib/cjs/calendar/writers/CalendarFsWriter.cjs +2 -2
- package/lib/cjs/calendar/writers/CalenderDownloader.cjs +2 -2
- package/lib/cjs/calendar/writers/ICalendarWriter.cjs +2 -2
- package/lib/cjs/comms/discord/DiscordService.cjs +2 -2
- package/lib/cjs/comms/discord/index.cjs +2 -2
- package/lib/cjs/comms/email/EmailService.cjs +2 -2
- package/lib/cjs/comms/email/index.cjs +2 -2
- package/lib/cjs/comms/email/mime.cjs +2 -2
- package/lib/cjs/comms/email/smtp.cjs +2 -2
- package/lib/cjs/comms/environment.cjs +2 -2
- package/lib/cjs/comms/gmail/GmailService.cjs +2 -2
- package/lib/cjs/comms/gmail/index.cjs +2 -2
- package/lib/cjs/comms/index.cjs +2 -2
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +2 -2
- package/lib/cjs/comms/outlook/index.cjs +2 -2
- package/lib/cjs/comms/slack/SlackService.cjs +2 -2
- package/lib/cjs/comms/slack/index.cjs +2 -2
- package/lib/cjs/comms/teams/TeamsService.cjs +2 -2
- package/lib/cjs/comms/teams/index.cjs +2 -2
- package/lib/cjs/comms/telegram/TelegramService.cjs +2 -2
- package/lib/cjs/comms/telegram/index.cjs +2 -2
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +2 -2
- package/lib/cjs/comms/whatsapp/index.cjs +2 -2
- package/lib/cjs/devops/environment.cjs +2 -2
- package/lib/cjs/devops/github/GithubService.cjs +2 -2
- package/lib/cjs/devops/github/index.cjs +2 -2
- package/lib/cjs/devops/gitlab/GitlabService.cjs +2 -2
- package/lib/cjs/devops/gitlab/index.cjs +2 -2
- package/lib/cjs/devops/index.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs +2 -2
- package/lib/cjs/feature-flags/constants.cjs +2 -2
- package/lib/cjs/feature-flags/decorators.cjs +2 -2
- package/lib/cjs/feature-flags/environment.cjs +2 -2
- package/lib/cjs/feature-flags/index.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
- package/lib/cjs/feature-flags/readers/index.cjs +2 -2
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +2 -2
- package/lib/cjs/feature-flags/types.cjs +2 -2
- package/lib/cjs/feature-flags/utils.cjs +2 -2
- package/lib/cjs/index.cjs +5 -5
- package/lib/cjs/io/airtable/AirtableService.cjs +2 -2
- package/lib/cjs/io/airtable/index.cjs +2 -2
- package/lib/cjs/io/confluence/ConfluenceService.cjs +2 -2
- package/lib/cjs/io/confluence/index.cjs +2 -2
- package/lib/cjs/io/environment.cjs +2 -2
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs +2 -2
- package/lib/cjs/io/google-docs/index.cjs +2 -2
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +2 -2
- package/lib/cjs/io/google-sheets/index.cjs +2 -2
- package/lib/cjs/io/graphql/GraphqlService.cjs +2 -2
- package/lib/cjs/io/graphql/index.cjs +2 -2
- package/lib/cjs/io/index.cjs +2 -2
- package/lib/cjs/io/jira/JiraService.cjs +2 -2
- package/lib/cjs/io/jira/index.cjs +2 -2
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +2 -2
- package/lib/cjs/io/microsoft-excel/index.cjs +2 -2
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +2 -2
- package/lib/cjs/io/microsoft-sharepoint/index.cjs +2 -2
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +2 -2
- package/lib/cjs/io/spreadsheet/index.cjs +2 -2
- package/lib/cjs/keycloak/broker.cjs +2 -2
- package/lib/cjs/keycloak/index.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
- package/lib/cjs/kibana/builders/index.cjs +2 -2
- package/lib/cjs/kibana/helpers.cjs +2 -2
- package/lib/cjs/kibana/index.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs +2 -2
- package/lib/cjs/kibana/types.cjs +2 -2
- package/lib/cjs/loader/ObjectLoader.cjs +2 -2
- package/lib/cjs/loader/assets.cjs +2 -2
- package/lib/cjs/loader/config.cjs +2 -2
- package/lib/cjs/loader/families.cjs +2 -2
- package/lib/cjs/loader/index.cjs +2 -2
- package/lib/cjs/loader/nest.cjs +2 -2
- package/lib/cjs/loader/types.cjs +2 -2
- package/lib/cjs/namespaces/index.cjs +2 -2
- package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
- package/lib/cjs/namespaces/models/credential.model.cjs +2 -2
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group.model.cjs +2 -2
- package/lib/cjs/namespaces/models/index.cjs +2 -2
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role.model.cjs +2 -2
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/user.model.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
- package/lib/cjs/namespaces/rls/index.cjs +2 -2
- package/lib/cjs/namespaces/rls/principal-resolver.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.constants.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.template.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.types.cjs +2 -2
- package/lib/cjs/namespaces/rls/session-binding.cjs +2 -2
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/services/credential.service.cjs +2 -2
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group.service.cjs +2 -2
- package/lib/cjs/namespaces/services/index.cjs +2 -2
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
- package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role.service.cjs +2 -2
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
- package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/user.service.cjs +2 -2
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/nest/decorators.cjs +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/plugins/contract.cjs +2 -2
- package/lib/cjs/plugins/index.cjs +2 -2
- package/lib/cjs/plugins/kibana/host.cjs +2 -2
- package/lib/cjs/plugins/kibana/index.cjs +2 -2
- package/lib/cjs/plugins/kibana/installer.cjs +2 -2
- package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
- package/lib/cjs/plugins/kibana/templates.cjs +2 -2
- package/lib/cjs/plugins/kibana/types.cjs +2 -2
- package/lib/cjs/plugins/superset/host.cjs +2 -2
- package/lib/cjs/plugins/superset/index.cjs +2 -2
- package/lib/cjs/plugins/superset/installer.cjs +2 -2
- package/lib/cjs/plugins/superset/manifest.cjs +2 -2
- package/lib/cjs/plugins/superset/templates.cjs +2 -2
- package/lib/cjs/plugins/superset/types.cjs +2 -2
- package/lib/cjs/redis/RedisContextLock.cjs +2 -2
- package/lib/cjs/redis/RedisDispatch.cjs +2 -2
- package/lib/cjs/redis/RedisPaginator.cjs +2 -2
- package/lib/cjs/redis/RedisStatement.cjs +2 -2
- package/lib/cjs/redis/adapter.cjs +2 -2
- package/lib/cjs/redis/constants.cjs +2 -2
- package/lib/cjs/redis/handlers.cjs +2 -2
- package/lib/cjs/redis/index.cjs +2 -2
- package/lib/cjs/redis/serialization.cjs +2 -2
- package/lib/cjs/redis/types.cjs +2 -2
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretEnvironment.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/AzureSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/core/ClientBasedSecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretEnvironment.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 +3 -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/fs/FsSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretService.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/fs/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretEnvironment.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/kubernetes/KubernetesSecretEnvironment.cjs +34 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs +479 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs +4 -0
- package/lib/cjs/secrets/kubernetes/index.cjs +27 -0
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretEnvironment.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/OnePasswordSecretEnvironment.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/VaultSecretEnvironment.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/sftp/aws/AwsSftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/aws/AwsSftpService.cjs +2 -2
- package/lib/cjs/sftp/aws/index.cjs +2 -2
- package/lib/cjs/sftp/core/SftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/core/SftpSource.cjs +2 -2
- package/lib/cjs/sftp/core/index.cjs +2 -2
- package/lib/cjs/sftp/index.cjs +2 -2
- package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs +2 -2
- package/lib/cjs/sftp/ssh2/index.cjs +2 -2
- package/lib/cjs/shared/environmentValue.cjs +2 -2
- package/lib/cjs/shared/http/HttpApiService.cjs +2 -2
- package/lib/cjs/shared/http/hermeticBoot.cjs +2 -2
- package/lib/cjs/shared/http/index.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/user-requests/index.cjs +2 -2
- package/lib/cjs/utils.cjs +2 -2
- package/lib/esm/blob/azure/AzureBlobEnvironment.js +1 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/core/BlobEnvironment.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/GcsBlobEnvironment.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/local/LocalBlobEnvironment.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/MemoryBlobEnvironment.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/MinioBlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/calendar/CalendarService.js +1 -1
- package/lib/esm/calendar/environment.js +1 -1
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +1 -1
- package/lib/esm/calendar/google-calendar/index.js +1 -1
- package/lib/esm/calendar/index.js +1 -1
- package/lib/esm/calendar/types.js +1 -1
- package/lib/esm/calendar/validators/cron.js +1 -1
- package/lib/esm/calendar/writers/CalendarFsWriter.js +1 -1
- package/lib/esm/calendar/writers/CalenderDownloader.js +1 -1
- package/lib/esm/calendar/writers/ICalendarWriter.js +1 -1
- package/lib/esm/comms/discord/DiscordService.js +1 -1
- package/lib/esm/comms/discord/index.js +1 -1
- package/lib/esm/comms/email/EmailService.js +1 -1
- package/lib/esm/comms/email/index.js +1 -1
- package/lib/esm/comms/email/mime.js +1 -1
- package/lib/esm/comms/email/smtp.js +1 -1
- package/lib/esm/comms/environment.js +1 -1
- package/lib/esm/comms/gmail/GmailService.js +1 -1
- package/lib/esm/comms/gmail/index.js +1 -1
- package/lib/esm/comms/index.js +1 -1
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js +1 -1
- package/lib/esm/comms/outlook/index.js +1 -1
- package/lib/esm/comms/slack/SlackService.js +1 -1
- package/lib/esm/comms/slack/index.js +1 -1
- package/lib/esm/comms/teams/TeamsService.js +1 -1
- package/lib/esm/comms/teams/index.js +1 -1
- package/lib/esm/comms/telegram/TelegramService.js +1 -1
- package/lib/esm/comms/telegram/index.js +1 -1
- package/lib/esm/comms/whatsapp/WhatsAppService.js +1 -1
- package/lib/esm/comms/whatsapp/index.js +1 -1
- package/lib/esm/devops/environment.js +1 -1
- package/lib/esm/devops/github/GithubService.js +1 -1
- package/lib/esm/devops/github/index.js +1 -1
- package/lib/esm/devops/gitlab/GitlabService.js +1 -1
- package/lib/esm/devops/gitlab/index.js +1 -1
- package/lib/esm/devops/index.js +1 -1
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js +1 -1
- package/lib/esm/feature-flags/constants.js +1 -1
- package/lib/esm/feature-flags/decorators.js +1 -1
- package/lib/esm/feature-flags/environment.js +1 -1
- package/lib/esm/feature-flags/index.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
- package/lib/esm/feature-flags/readers/index.js +1 -1
- package/lib/esm/feature-flags/services/FeatureFlag.service.js +1 -1
- package/lib/esm/feature-flags/types.js +1 -1
- package/lib/esm/feature-flags/utils.js +1 -1
- package/lib/esm/index.js +4 -4
- package/lib/esm/io/airtable/AirtableService.js +1 -1
- package/lib/esm/io/airtable/index.js +1 -1
- package/lib/esm/io/confluence/ConfluenceService.js +1 -1
- package/lib/esm/io/confluence/index.js +1 -1
- package/lib/esm/io/environment.js +1 -1
- package/lib/esm/io/google-docs/GoogleDocsService.js +1 -1
- package/lib/esm/io/google-docs/index.js +1 -1
- package/lib/esm/io/google-sheets/GoogleSheetsService.js +1 -1
- package/lib/esm/io/google-sheets/index.js +1 -1
- package/lib/esm/io/graphql/GraphqlService.js +1 -1
- package/lib/esm/io/graphql/index.js +1 -1
- package/lib/esm/io/index.js +1 -1
- package/lib/esm/io/jira/JiraService.js +1 -1
- package/lib/esm/io/jira/index.js +1 -1
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +1 -1
- package/lib/esm/io/microsoft-excel/index.js +1 -1
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +1 -1
- package/lib/esm/io/microsoft-sharepoint/index.js +1 -1
- package/lib/esm/io/spreadsheet/SpreadsheetService.js +1 -1
- package/lib/esm/io/spreadsheet/index.js +1 -1
- package/lib/esm/keycloak/broker.js +1 -1
- package/lib/esm/keycloak/index.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/runtime.js +1 -1
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
- package/lib/esm/kibana/builders/index.js +1 -1
- package/lib/esm/kibana/helpers.js +1 -1
- package/lib/esm/kibana/index.js +1 -1
- package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
- package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
- package/lib/esm/kibana/services/KibanaService.js +1 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
- package/lib/esm/kibana/services/KibanaUserService.js +1 -1
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/runtime.js +1 -1
- package/lib/esm/kibana/types.js +1 -1
- package/lib/esm/loader/ObjectLoader.js +1 -1
- package/lib/esm/loader/assets.js +1 -1
- package/lib/esm/loader/config.js +1 -1
- package/lib/esm/loader/families.js +1 -1
- package/lib/esm/loader/index.js +1 -1
- package/lib/esm/loader/nest.js +1 -1
- package/lib/esm/loader/types.js +1 -1
- package/lib/esm/namespaces/index.js +1 -1
- package/lib/esm/namespaces/models/authorization-model.js +1 -1
- package/lib/esm/namespaces/models/credential.model.js +1 -1
- package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js +1 -1
- package/lib/esm/namespaces/models/group.model.js +1 -1
- package/lib/esm/namespaces/models/index.js +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js +1 -1
- package/lib/esm/namespaces/models/permission.model.js +1 -1
- package/lib/esm/namespaces/models/principal.model.js +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js +1 -1
- package/lib/esm/namespaces/models/role.model.js +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
- package/lib/esm/namespaces/models/tenant.model.js +1 -1
- package/lib/esm/namespaces/models/user.model.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
- package/lib/esm/namespaces/rls/index.js +1 -1
- package/lib/esm/namespaces/rls/principal-resolver.js +1 -1
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js +1 -1
- package/lib/esm/namespaces/rls/rls.constants.js +1 -1
- package/lib/esm/namespaces/rls/rls.template.js +1 -1
- package/lib/esm/namespaces/rls/rls.types.js +1 -1
- package/lib/esm/namespaces/rls/session-binding.js +1 -1
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
- package/lib/esm/namespaces/services/credential.service.js +1 -1
- package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
- package/lib/esm/namespaces/services/group-membership.service.js +1 -1
- package/lib/esm/namespaces/services/group.service.js +1 -1
- package/lib/esm/namespaces/services/index.js +1 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit.service.js +1 -1
- package/lib/esm/namespaces/services/permission.service.js +1 -1
- package/lib/esm/namespaces/services/principal.service.js +1 -1
- package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
- package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
- package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
- package/lib/esm/namespaces/services/role-permission.service.js +1 -1
- package/lib/esm/namespaces/services/role.service.js +1 -1
- package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
- package/lib/esm/namespaces/services/system-management.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
- package/lib/esm/namespaces/services/tenant.service.js +1 -1
- package/lib/esm/namespaces/services/user.service.js +1 -1
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/nest/decorators.js +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/plugins/contract.js +1 -1
- package/lib/esm/plugins/index.js +1 -1
- package/lib/esm/plugins/kibana/host.js +1 -1
- package/lib/esm/plugins/kibana/index.js +1 -1
- package/lib/esm/plugins/kibana/installer.js +1 -1
- package/lib/esm/plugins/kibana/manifest.js +1 -1
- package/lib/esm/plugins/kibana/templates.js +1 -1
- package/lib/esm/plugins/kibana/types.js +1 -1
- package/lib/esm/plugins/superset/host.js +1 -1
- package/lib/esm/plugins/superset/index.js +1 -1
- package/lib/esm/plugins/superset/installer.js +1 -1
- package/lib/esm/plugins/superset/manifest.js +1 -1
- package/lib/esm/plugins/superset/templates.js +1 -1
- package/lib/esm/plugins/superset/types.js +1 -1
- package/lib/esm/redis/RedisContextLock.js +1 -1
- package/lib/esm/redis/RedisDispatch.js +1 -1
- package/lib/esm/redis/RedisPaginator.js +1 -1
- package/lib/esm/redis/RedisStatement.js +1 -1
- package/lib/esm/redis/adapter.js +1 -1
- package/lib/esm/redis/constants.js +1 -1
- package/lib/esm/redis/handlers.js +1 -1
- package/lib/esm/redis/index.js +1 -1
- package/lib/esm/redis/serialization.js +1 -1
- package/lib/esm/redis/types.js +1 -1
- package/lib/esm/secrets/InfraCredentialBootstrap.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretEnvironment.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/AzureSecretEnvironment.js +1 -1
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/core/ClientBasedSecretService.js +1 -1
- package/lib/esm/secrets/core/SecretEnvironment.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 +2 -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/fs/FsSecretEnvironment.js +1 -1
- package/lib/esm/secrets/fs/FsSecretService.js +1 -1
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/fs/index.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretEnvironment.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/kubernetes/KubernetesSecretEnvironment.js +30 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretService.js +474 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js +9 -0
- package/lib/esm/secrets/kubernetes/index.js +10 -0
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretEnvironment.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/OnePasswordSecretEnvironment.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/VaultSecretEnvironment.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/sftp/aws/AwsSftpEnvironment.js +1 -1
- package/lib/esm/sftp/aws/AwsSftpService.js +1 -1
- package/lib/esm/sftp/aws/index.js +1 -1
- package/lib/esm/sftp/core/SftpEnvironment.js +1 -1
- package/lib/esm/sftp/core/SftpSource.js +1 -1
- package/lib/esm/sftp/core/index.js +1 -1
- package/lib/esm/sftp/index.js +1 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js +1 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpService.js +1 -1
- package/lib/esm/sftp/ssh2/index.js +1 -1
- package/lib/esm/shared/environmentValue.js +1 -1
- package/lib/esm/shared/http/HttpApiService.js +1 -1
- package/lib/esm/shared/http/hermeticBoot.js +1 -1
- package/lib/esm/shared/http/index.js +1 -1
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/user-requests/index.js +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/secrets/core/SecretTypes.d.cts +13 -1
- package/lib/types/secrets/core/SecretTypes.d.mts +13 -1
- package/lib/types/secrets/kubernetes/KubernetesSecretEnvironment.d.cts +34 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretEnvironment.d.mts +34 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretService.d.cts +45 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretService.d.mts +45 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretServiceConfig.d.cts +49 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretServiceConfig.d.mts +49 -0
- package/lib/types/secrets/kubernetes/index.d.cts +9 -0
- package/lib/types/secrets/kubernetes/index.d.mts +9 -0
- package/package.json +18 -1
- package/dist/integrations.cjs.map +0 -1
- package/dist/integrations.js.map +0 -1
- package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs.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/BlobEnvironment.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/GcsBlobEnvironment.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/local/LocalBlobEnvironment.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/MemoryBlobEnvironment.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/MinioBlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/R2BlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3BlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/index.cjs.map +0 -1
- package/lib/cjs/calendar/CalendarService.cjs.map +0 -1
- package/lib/cjs/calendar/environment.cjs.map +0 -1
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +0 -1
- package/lib/cjs/calendar/google-calendar/index.cjs.map +0 -1
- package/lib/cjs/calendar/index.cjs.map +0 -1
- package/lib/cjs/calendar/types.cjs.map +0 -1
- package/lib/cjs/calendar/validators/cron.cjs.map +0 -1
- package/lib/cjs/calendar/writers/CalendarFsWriter.cjs.map +0 -1
- package/lib/cjs/calendar/writers/CalenderDownloader.cjs.map +0 -1
- package/lib/cjs/calendar/writers/ICalendarWriter.cjs.map +0 -1
- package/lib/cjs/comms/discord/DiscordService.cjs.map +0 -1
- package/lib/cjs/comms/discord/index.cjs.map +0 -1
- package/lib/cjs/comms/email/EmailService.cjs.map +0 -1
- package/lib/cjs/comms/email/index.cjs.map +0 -1
- package/lib/cjs/comms/email/mime.cjs.map +0 -1
- package/lib/cjs/comms/email/smtp.cjs.map +0 -1
- package/lib/cjs/comms/environment.cjs.map +0 -1
- package/lib/cjs/comms/gmail/GmailService.cjs.map +0 -1
- package/lib/cjs/comms/gmail/index.cjs.map +0 -1
- package/lib/cjs/comms/index.cjs.map +0 -1
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +0 -1
- package/lib/cjs/comms/outlook/index.cjs.map +0 -1
- package/lib/cjs/comms/slack/SlackService.cjs.map +0 -1
- package/lib/cjs/comms/slack/index.cjs.map +0 -1
- package/lib/cjs/comms/teams/TeamsService.cjs.map +0 -1
- package/lib/cjs/comms/teams/index.cjs.map +0 -1
- package/lib/cjs/comms/telegram/TelegramService.cjs.map +0 -1
- package/lib/cjs/comms/telegram/index.cjs.map +0 -1
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +0 -1
- package/lib/cjs/comms/whatsapp/index.cjs.map +0 -1
- package/lib/cjs/devops/environment.cjs.map +0 -1
- package/lib/cjs/devops/github/GithubService.cjs.map +0 -1
- package/lib/cjs/devops/github/index.cjs.map +0 -1
- package/lib/cjs/devops/gitlab/GitlabService.cjs.map +0 -1
- package/lib/cjs/devops/gitlab/index.cjs.map +0 -1
- package/lib/cjs/devops/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/feature-flags/EngineCapabilityFeatureFlag.service.cjs.map +0 -1
- package/lib/cjs/feature-flags/constants.cjs.map +0 -1
- package/lib/cjs/feature-flags/decorators.cjs.map +0 -1
- package/lib/cjs/feature-flags/environment.cjs.map +0 -1
- package/lib/cjs/feature-flags/index.cjs.map +0 -1
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +0 -1
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +0 -1
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +0 -1
- package/lib/cjs/feature-flags/readers/index.cjs.map +0 -1
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +0 -1
- package/lib/cjs/feature-flags/types.cjs.map +0 -1
- package/lib/cjs/feature-flags/utils.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/io/airtable/AirtableService.cjs.map +0 -1
- package/lib/cjs/io/airtable/index.cjs.map +0 -1
- package/lib/cjs/io/confluence/ConfluenceService.cjs.map +0 -1
- package/lib/cjs/io/confluence/index.cjs.map +0 -1
- package/lib/cjs/io/environment.cjs.map +0 -1
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +0 -1
- package/lib/cjs/io/google-docs/index.cjs.map +0 -1
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +0 -1
- package/lib/cjs/io/google-sheets/index.cjs.map +0 -1
- package/lib/cjs/io/graphql/GraphqlService.cjs.map +0 -1
- package/lib/cjs/io/graphql/index.cjs.map +0 -1
- package/lib/cjs/io/index.cjs.map +0 -1
- package/lib/cjs/io/jira/JiraService.cjs.map +0 -1
- package/lib/cjs/io/jira/index.cjs.map +0 -1
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +0 -1
- package/lib/cjs/io/microsoft-excel/index.cjs.map +0 -1
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +0 -1
- package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +0 -1
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +0 -1
- package/lib/cjs/io/spreadsheet/index.cjs.map +0 -1
- package/lib/cjs/keycloak/broker.cjs.map +0 -1
- package/lib/cjs/keycloak/index.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/index.cjs.map +0 -1
- package/lib/cjs/keycloak/services/runtime.cjs.map +0 -1
- package/lib/cjs/keycloak/types.cjs.map +0 -1
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +0 -1
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +0 -1
- package/lib/cjs/kibana/builders/index.cjs.map +0 -1
- package/lib/cjs/kibana/helpers.cjs.map +0 -1
- package/lib/cjs/kibana/index.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
- package/lib/cjs/kibana/services/index.cjs.map +0 -1
- package/lib/cjs/kibana/services/runtime.cjs.map +0 -1
- package/lib/cjs/kibana/types.cjs.map +0 -1
- package/lib/cjs/loader/ObjectLoader.cjs.map +0 -1
- package/lib/cjs/loader/assets.cjs.map +0 -1
- package/lib/cjs/loader/config.cjs.map +0 -1
- package/lib/cjs/loader/families.cjs.map +0 -1
- package/lib/cjs/loader/index.cjs.map +0 -1
- package/lib/cjs/loader/nest.cjs.map +0 -1
- package/lib/cjs/loader/types.cjs.map +0 -1
- package/lib/cjs/namespaces/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/authorization-model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/credential.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/principal.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/user.model.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/index.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/rls.constants.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/rls.template.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/rls.types.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/session-binding.cjs.map +0 -1
- package/lib/cjs/namespaces/services/authz.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/credential.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/index.cjs.map +0 -1
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/principal.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/system-management.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/user.service.cjs.map +0 -1
- package/lib/cjs/namespaces/types.cjs.map +0 -1
- package/lib/cjs/namespaces/utils.cjs.map +0 -1
- package/lib/cjs/nest/decorators.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/plugins/contract.cjs.map +0 -1
- package/lib/cjs/plugins/index.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/host.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/index.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/installer.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/manifest.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/templates.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/types.cjs.map +0 -1
- package/lib/cjs/plugins/superset/host.cjs.map +0 -1
- package/lib/cjs/plugins/superset/index.cjs.map +0 -1
- package/lib/cjs/plugins/superset/installer.cjs.map +0 -1
- package/lib/cjs/plugins/superset/manifest.cjs.map +0 -1
- package/lib/cjs/plugins/superset/templates.cjs.map +0 -1
- package/lib/cjs/plugins/superset/types.cjs.map +0 -1
- package/lib/cjs/redis/RedisContextLock.cjs.map +0 -1
- package/lib/cjs/redis/RedisDispatch.cjs.map +0 -1
- package/lib/cjs/redis/RedisPaginator.cjs.map +0 -1
- package/lib/cjs/redis/RedisStatement.cjs.map +0 -1
- package/lib/cjs/redis/adapter.cjs.map +0 -1
- package/lib/cjs/redis/constants.cjs.map +0 -1
- package/lib/cjs/redis/handlers.cjs.map +0 -1
- package/lib/cjs/redis/index.cjs.map +0 -1
- package/lib/cjs/redis/serialization.cjs.map +0 -1
- package/lib/cjs/redis/types.cjs.map +0 -1
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretEnvironment.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/AzureSecretEnvironment.cjs.map +0 -1
- package/lib/cjs/secrets/azure/index.cjs.map +0 -1
- package/lib/cjs/secrets/core/ClientBasedSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretEnvironment.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/fs/FsSecretEnvironment.cjs.map +0 -1
- package/lib/cjs/secrets/fs/FsSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/fs/index.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretEnvironment.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/ModelSecretEnvironment.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/OnePasswordSecretEnvironment.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/VaultSecretEnvironment.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/sftp/aws/AwsSftpEnvironment.cjs.map +0 -1
- package/lib/cjs/sftp/aws/AwsSftpService.cjs.map +0 -1
- package/lib/cjs/sftp/aws/index.cjs.map +0 -1
- package/lib/cjs/sftp/core/SftpEnvironment.cjs.map +0 -1
- package/lib/cjs/sftp/core/SftpSource.cjs.map +0 -1
- package/lib/cjs/sftp/core/index.cjs.map +0 -1
- package/lib/cjs/sftp/index.cjs.map +0 -1
- package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs.map +0 -1
- package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs.map +0 -1
- package/lib/cjs/sftp/ssh2/index.cjs.map +0 -1
- package/lib/cjs/shared/environmentValue.cjs.map +0 -1
- package/lib/cjs/shared/http/HttpApiService.cjs.map +0 -1
- package/lib/cjs/shared/http/hermeticBoot.cjs.map +0 -1
- package/lib/cjs/shared/http/index.cjs.map +0 -1
- package/lib/cjs/shared/runtime.cjs.map +0 -1
- package/lib/cjs/user-requests/index.cjs.map +0 -1
- package/lib/cjs/utils.cjs.map +0 -1
- package/lib/esm/blob/azure/AzureBlobEnvironment.js.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/BlobEnvironment.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/GcsBlobEnvironment.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/local/LocalBlobEnvironment.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/MemoryBlobEnvironment.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/MinioBlobEnvironment.js.map +0 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/R2BlobEnvironment.js.map +0 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/S3BlobEnvironment.js.map +0 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/index.js.map +0 -1
- package/lib/esm/calendar/CalendarService.js.map +0 -1
- package/lib/esm/calendar/environment.js.map +0 -1
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +0 -1
- package/lib/esm/calendar/google-calendar/index.js.map +0 -1
- package/lib/esm/calendar/index.js.map +0 -1
- package/lib/esm/calendar/types.js.map +0 -1
- package/lib/esm/calendar/validators/cron.js.map +0 -1
- package/lib/esm/calendar/writers/CalendarFsWriter.js.map +0 -1
- package/lib/esm/calendar/writers/CalenderDownloader.js.map +0 -1
- package/lib/esm/calendar/writers/ICalendarWriter.js.map +0 -1
- package/lib/esm/comms/discord/DiscordService.js.map +0 -1
- package/lib/esm/comms/discord/index.js.map +0 -1
- package/lib/esm/comms/email/EmailService.js.map +0 -1
- package/lib/esm/comms/email/index.js.map +0 -1
- package/lib/esm/comms/email/mime.js.map +0 -1
- package/lib/esm/comms/email/smtp.js.map +0 -1
- package/lib/esm/comms/environment.js.map +0 -1
- package/lib/esm/comms/gmail/GmailService.js.map +0 -1
- package/lib/esm/comms/gmail/index.js.map +0 -1
- package/lib/esm/comms/index.js.map +0 -1
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +0 -1
- package/lib/esm/comms/outlook/index.js.map +0 -1
- package/lib/esm/comms/slack/SlackService.js.map +0 -1
- package/lib/esm/comms/slack/index.js.map +0 -1
- package/lib/esm/comms/teams/TeamsService.js.map +0 -1
- package/lib/esm/comms/teams/index.js.map +0 -1
- package/lib/esm/comms/telegram/TelegramService.js.map +0 -1
- package/lib/esm/comms/telegram/index.js.map +0 -1
- package/lib/esm/comms/whatsapp/WhatsAppService.js.map +0 -1
- package/lib/esm/comms/whatsapp/index.js.map +0 -1
- package/lib/esm/devops/environment.js.map +0 -1
- package/lib/esm/devops/github/GithubService.js.map +0 -1
- package/lib/esm/devops/github/index.js.map +0 -1
- package/lib/esm/devops/gitlab/GitlabService.js.map +0 -1
- package/lib/esm/devops/gitlab/index.js.map +0 -1
- package/lib/esm/devops/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/feature-flags/EngineCapabilityFeatureFlag.service.js.map +0 -1
- package/lib/esm/feature-flags/constants.js.map +0 -1
- package/lib/esm/feature-flags/decorators.js.map +0 -1
- package/lib/esm/feature-flags/environment.js.map +0 -1
- package/lib/esm/feature-flags/index.js.map +0 -1
- package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +0 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +0 -1
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +0 -1
- package/lib/esm/feature-flags/readers/index.js.map +0 -1
- package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +0 -1
- package/lib/esm/feature-flags/types.js.map +0 -1
- package/lib/esm/feature-flags/utils.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/io/airtable/AirtableService.js.map +0 -1
- package/lib/esm/io/airtable/index.js.map +0 -1
- package/lib/esm/io/confluence/ConfluenceService.js.map +0 -1
- package/lib/esm/io/confluence/index.js.map +0 -1
- package/lib/esm/io/environment.js.map +0 -1
- package/lib/esm/io/google-docs/GoogleDocsService.js.map +0 -1
- package/lib/esm/io/google-docs/index.js.map +0 -1
- package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +0 -1
- package/lib/esm/io/google-sheets/index.js.map +0 -1
- package/lib/esm/io/graphql/GraphqlService.js.map +0 -1
- package/lib/esm/io/graphql/index.js.map +0 -1
- package/lib/esm/io/index.js.map +0 -1
- package/lib/esm/io/jira/JiraService.js.map +0 -1
- package/lib/esm/io/jira/index.js.map +0 -1
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +0 -1
- package/lib/esm/io/microsoft-excel/index.js.map +0 -1
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +0 -1
- package/lib/esm/io/microsoft-sharepoint/index.js.map +0 -1
- package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +0 -1
- package/lib/esm/io/spreadsheet/index.js.map +0 -1
- package/lib/esm/keycloak/broker.js.map +0 -1
- package/lib/esm/keycloak/index.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
- package/lib/esm/keycloak/services/index.js.map +0 -1
- package/lib/esm/keycloak/services/runtime.js.map +0 -1
- package/lib/esm/keycloak/types.js.map +0 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +0 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +0 -1
- package/lib/esm/kibana/builders/index.js.map +0 -1
- package/lib/esm/kibana/helpers.js.map +0 -1
- package/lib/esm/kibana/index.js.map +0 -1
- package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
- package/lib/esm/kibana/services/index.js.map +0 -1
- package/lib/esm/kibana/services/runtime.js.map +0 -1
- package/lib/esm/kibana/types.js.map +0 -1
- package/lib/esm/loader/ObjectLoader.js.map +0 -1
- package/lib/esm/loader/assets.js.map +0 -1
- package/lib/esm/loader/config.js.map +0 -1
- package/lib/esm/loader/families.js.map +0 -1
- package/lib/esm/loader/index.js.map +0 -1
- package/lib/esm/loader/nest.js.map +0 -1
- package/lib/esm/loader/types.js.map +0 -1
- package/lib/esm/namespaces/index.js.map +0 -1
- package/lib/esm/namespaces/models/authorization-model.js.map +0 -1
- package/lib/esm/namespaces/models/credential.model.js.map +0 -1
- package/lib/esm/namespaces/models/effective-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/group-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/group.model.js.map +0 -1
- package/lib/esm/namespaces/models/index.js.map +0 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit.model.js.map +0 -1
- package/lib/esm/namespaces/models/permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/principal.model.js.map +0 -1
- package/lib/esm/namespaces/models/protected-resource.model.js.map +0 -1
- package/lib/esm/namespaces/models/resource-grant.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-assignment.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/role.model.js.map +0 -1
- package/lib/esm/namespaces/models/storage-binding.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant.model.js.map +0 -1
- package/lib/esm/namespaces/models/user.model.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js.map +0 -1
- package/lib/esm/namespaces/rls/index.js.map +0 -1
- package/lib/esm/namespaces/rls/principal-resolver.js.map +0 -1
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +0 -1
- package/lib/esm/namespaces/rls/rls.constants.js.map +0 -1
- package/lib/esm/namespaces/rls/rls.template.js.map +0 -1
- package/lib/esm/namespaces/rls/rls.types.js.map +0 -1
- package/lib/esm/namespaces/rls/session-binding.js.map +0 -1
- package/lib/esm/namespaces/services/authz.service.js.map +0 -1
- package/lib/esm/namespaces/services/bootstrap.service.js.map +0 -1
- package/lib/esm/namespaces/services/credential.service.js.map +0 -1
- package/lib/esm/namespaces/services/effective-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/group-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/group.service.js.map +0 -1
- package/lib/esm/namespaces/services/index.js.map +0 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit.service.js.map +0 -1
- package/lib/esm/namespaces/services/permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/principal.service.js.map +0 -1
- package/lib/esm/namespaces/services/protected-resource.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-grant.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-assignment.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/role.service.js.map +0 -1
- package/lib/esm/namespaces/services/storage-binding.service.js.map +0 -1
- package/lib/esm/namespaces/services/system-management.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant.service.js.map +0 -1
- package/lib/esm/namespaces/services/user.service.js.map +0 -1
- package/lib/esm/namespaces/types.js.map +0 -1
- package/lib/esm/namespaces/utils.js.map +0 -1
- package/lib/esm/nest/decorators.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/plugins/contract.js.map +0 -1
- package/lib/esm/plugins/index.js.map +0 -1
- package/lib/esm/plugins/kibana/host.js.map +0 -1
- package/lib/esm/plugins/kibana/index.js.map +0 -1
- package/lib/esm/plugins/kibana/installer.js.map +0 -1
- package/lib/esm/plugins/kibana/manifest.js.map +0 -1
- package/lib/esm/plugins/kibana/templates.js.map +0 -1
- package/lib/esm/plugins/kibana/types.js.map +0 -1
- package/lib/esm/plugins/superset/host.js.map +0 -1
- package/lib/esm/plugins/superset/index.js.map +0 -1
- package/lib/esm/plugins/superset/installer.js.map +0 -1
- package/lib/esm/plugins/superset/manifest.js.map +0 -1
- package/lib/esm/plugins/superset/templates.js.map +0 -1
- package/lib/esm/plugins/superset/types.js.map +0 -1
- package/lib/esm/redis/RedisContextLock.js.map +0 -1
- package/lib/esm/redis/RedisDispatch.js.map +0 -1
- package/lib/esm/redis/RedisPaginator.js.map +0 -1
- package/lib/esm/redis/RedisStatement.js.map +0 -1
- package/lib/esm/redis/adapter.js.map +0 -1
- package/lib/esm/redis/constants.js.map +0 -1
- package/lib/esm/redis/handlers.js.map +0 -1
- package/lib/esm/redis/index.js.map +0 -1
- package/lib/esm/redis/serialization.js.map +0 -1
- package/lib/esm/redis/types.js.map +0 -1
- package/lib/esm/secrets/InfraCredentialBootstrap.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretEnvironment.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/AzureSecretEnvironment.js.map +0 -1
- package/lib/esm/secrets/azure/index.js.map +0 -1
- package/lib/esm/secrets/core/ClientBasedSecretService.js.map +0 -1
- package/lib/esm/secrets/core/SecretEnvironment.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/fs/FsSecretEnvironment.js.map +0 -1
- package/lib/esm/secrets/fs/FsSecretService.js.map +0 -1
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/fs/index.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretEnvironment.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/ModelSecretEnvironment.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/OnePasswordSecretEnvironment.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/VaultSecretEnvironment.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/sftp/aws/AwsSftpEnvironment.js.map +0 -1
- package/lib/esm/sftp/aws/AwsSftpService.js.map +0 -1
- package/lib/esm/sftp/aws/index.js.map +0 -1
- package/lib/esm/sftp/core/SftpEnvironment.js.map +0 -1
- package/lib/esm/sftp/core/SftpSource.js.map +0 -1
- package/lib/esm/sftp/core/index.js.map +0 -1
- package/lib/esm/sftp/index.js.map +0 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js.map +0 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpService.js.map +0 -1
- package/lib/esm/sftp/ssh2/index.js.map +0 -1
- package/lib/esm/shared/environmentValue.js.map +0 -1
- package/lib/esm/shared/http/HttpApiService.js.map +0 -1
- package/lib/esm/shared/http/hermeticBoot.js.map +0 -1
- package/lib/esm/shared/http/index.js.map +0 -1
- package/lib/esm/shared/runtime.js.map +0 -1
- package/lib/esm/user-requests/index.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
|
@@ -350,5 +350,5 @@ class JiraService extends index_js_1.HttpApiService {
|
|
|
350
350
|
}
|
|
351
351
|
}
|
|
352
352
|
exports.JiraService = JiraService;
|
|
353
|
-
//# sourceMappingURL=JiraService.js.map
|
|
354
|
-
//# sourceMappingURL=JiraService.cjs.map
|
|
353
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSmlyYVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW8vamlyYS9KaXJhU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsNEJBQXVCO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLDJDQUFzQztBQUNyRSxPQUFPLEVBQ0wsY0FBYyxFQUVkLFNBQVMsR0FDVixxQ0FBMEI7QUErSDNCLGdGQUFnRjtBQUNoRixNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQztBQUVsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDRztBQUNILE1BQU0sT0FBTyxXQUFZLFNBQVEsY0FBaUM7SUFBbEU7O1FBQ0U7O1dBRUc7UUFDZ0IsZ0JBQVcsR0FBRyxNQUFNLENBQUM7SUFxUzFDLENBQUM7SUFuU0M7Ozs7O09BS0c7SUFDTyxjQUFjO1FBQ3RCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTyxXQUFXLENBQUMsTUFBeUI7UUFDN0MsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUN6QixHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUNwQyxNQUFNLENBQ1AsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckIsT0FBTztnQkFDTCxhQUFhLEVBQUUsU0FBUyxPQUFPLEVBQUU7Z0JBQ2pDLE1BQU0sRUFBRSxrQkFBa0I7YUFDM0IsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxLQUFLO1lBQ2pCLENB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LENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxhQUFhLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDNUQsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO2dCQUNkLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLEVBQUU7Z0JBQ2xDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNsRCxDQUFDLENBQUM7WUFDSCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLFNBQVMsQ0FBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2lvL2ppcmEvc2VydmljZVxuICogQHN1bW1hcnkgSmlyYSBSRVNUIEFQSSBpbnRlZ3JhdGlvbiBzZXJ2aWNlIGZvciBpc3N1ZXMsIGNvbW1lbnRzLCBhbmQgd29ya2Zsb3dzLlxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgSmlyYSBpc3N1ZSBvcGVyYXRpb25zIChjcmVhdGUsIHJlYWQsIHVwZGF0ZSwgZGVsZXRlLFxuICogY29tbWVudCwgdHJhbnNpdGlvbiwgYW5kIEpRTCBzZWFyY2gpIHRocm91Z2ggdGhlIEppcmEgUkVTVCBgYXBpLzJgIHN1cmZhY2UgYXNcbiAqIGFuIHVuZGVjb3JhdGVkIGNsaWVudC1iYXNlZCBzZXJ2aWNlIGJ1aWx0IG9uIHtAbGluayBIdHRwQXBpU2VydmljZX0uXG4gKiBDb25maWd1cmF0aW9uIGNvbWVzIGZyb20gYW4gZXhwbGljaXQgYEppcmFTZXJ2aWNlQ29uZmlnYCBvciB0aGUgYGlvLmppcmFgXG4gKiBlbnZpcm9ubWVudCBzbGljZS4gV2hlbiBib3RoIGB1c2VybmFtZWAgYW5kIGB0b2tlbmAgYXJlIGNvbmZpZ3VyZWQgdGhlXG4gKiBzZXJ2aWNlIHNlbmRzIEhUVFAgQmFzaWMgYXV0aGVudGljYXRpb24gKEFQSSB0b2tlbiBhcyB0aGUgcGFzc3dvcmQpO1xuICogb3RoZXJ3aXNlIHRoZSB0b2tlbiBpcyBzZW50IGFzIGEgYmVhcmVyIHRva2VuLiBUaGUgc2l0ZSBgYmFzZVVybGAgaXNcbiAqIHJlcXVpcmVkLiBDcmVkZW50aWFscyBhcmUgcmVmZXJlbmNlZCBmcm9tIGNvbmZpZ3VyYXRpb24gKGFuZCwgZnJvbSBhcy1ncmFwaFxuICogbm9kZXMsIGZyb20gdGhlIHJlc29sdmVkIGBqaXJhYCBjcmVkZW50aWFsIHNlY3JldCkgYW5kIGFyZSBuZXZlciBlbWJlZGRlZCBpblxuICogc291cmNlLiBGYWlsdXJlcyBhcmUgbWFwcGVkIHRvIGRlY2FmIGVycm9ycyB2aWEge0BsaW5rIGh0dHBFcnJvcn0uXG4gKi9cbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IElvRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vZW52aXJvbm1lbnRcIjtcbmltcG9ydCB7IGVudk51bWJlciwgZW52U3RyaW5nIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9lbnZpcm9ubWVudFZhbHVlXCI7XG5pbXBvcnQge1xuICBIdHRwQXBpU2VydmljZSxcbiAgdHlwZSBIdHRwQXBpU2VydmljZUNvbmZpZyxcbiAgaHR0cEVycm9yLFxufSBmcm9tIFwiLi4vLi4vc2hhcmVkL2h0dHBcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBmb3IgdGhlIEppcmEgc2VydmljZVxuICogQHN1bW1hcnkgRXh0ZW5kcyB7QGxpbmsgSHR0cEFwaVNlcnZpY2VDb25maWd9IHdpdGggdGhlIEFQSSBgdG9rZW5gLCB0aGVcbiAqIG9wdGlvbmFsIGB1c2VybmFtZWAgdGhhdCBlbmFibGVzIEJhc2ljIGF1dGhlbnRpY2F0aW9uLCBhbmQgdGhlIHJlcXVpcmVkIHNpdGVcbiAqIGBiYXNlVXJsYC4gV2hlbiBvbWl0dGVkLCB0aGUgYGlvLmppcmFgIGVudmlyb25tZW50IHNsaWNlIHN1cHBsaWVzIHRoZSBzYW1lXG4gKiB2YWx1ZXMgKHBsdXMgb3B0aW9uYWwgYHRpbWVvdXRgKS5cbiAqIEBjYXRlZ29yeSBJT1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vamlyYS9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSmlyYVNlcnZpY2VDb25maWcgZXh0ZW5kcyBIdHRwQXBpU2VydmljZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSmlyYSBBUEkgdG9rZW5cbiAgICogQHN1bW1hcnkgVXNlZCBhcyB0aGUgQmFzaWMtYXV0aCBwYXNzd29yZCB3aGVuIGB1c2VybmFtZWAgaXMgc2V0LCBvdGhlcndpc2UgYXMgYSBiZWFyZXIgdG9rZW4uXG4gICAqL1xuICB0b2tlbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBKaXJhIGFjY291bnQgdXNlcm5hbWUgZm9yIEJhc2ljIGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICB1c2VybmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW5wdXQgZm9yIGNyZWF0aW5nIGEgSmlyYSBpc3N1ZVxuICogQHN1bW1hcnkgQ2FycmllcyB0aGUgdGFyZ2V0IGBwcm9qZWN0S2V5YCwgaXNzdWUgYHN1bW1hcnlgLCBvcHRpb25hbFxuICogYGlzc3VlVHlwZWAgKGRlZmF1bHQgYFRhc2tgKSwgYGRlc2NyaXB0aW9uYCwgYW5kIGFkZGl0aW9uYWwgcmF3IGBmaWVsZHNgXG4gKiBtZXJnZWQgaW50byB0aGUgY3JlYXRlIHBheWxvYWQuXG4gKiBAY2F0ZWdvcnkgSU9cbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2lvL2ppcmEvc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEppcmFJc3N1ZUlucHV0IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcm9qZWN0IGtleSB0aGF0IG93bnMgdGhlIG5ldyBpc3N1ZVxuICAgKi9cbiAgcHJvamVjdEtleTogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIElzc3VlIHN1bW1hcnlcbiAgICovXG4gIHN1bW1hcnk6IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJc3N1ZSB0eXBlIG5hbWUgKGRlZmF1bHQgYFRhc2tgKVxuICAgKi9cbiAgaXNzdWVUeXBlPzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIElzc3VlIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBZGRpdGlvbmFsIEppcmEgZmllbGRzIG1lcmdlZCBpbnRvIHRoZSBjcmVhdGUgcGF5bG9hZFxuICAgKi9cbiAgZmllbGRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIElucHV0IGZvciB1cGRhdGluZyBhIEppcmEgaXNzdWVcbiAqIEBzdW1tYXJ5IENhcnJpZXMgdGhlIHRhcmdldCBgaXNzdWVLZXlgIGFuZCB0aGUgYGZpZWxkc2AgbWFwIHRvIHVwZGF0ZS5cbiAqIEBjYXRlZ29yeSBJT1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vamlyYS9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSmlyYUlzc3VlVXBkYXRlIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJc3N1ZSBrZXkgdG8gdXBkYXRlIChlLmcuIGBcIlNBQS0xMjNcImApXG4gICAqL1xuICBpc3N1ZUtleTogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpZWxkcyB0byB1cGRhdGVcbiAgICovXG4gIGZpZWxkczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIElucHV0IGZvciBjb21tZW50aW5nIG9uIGEgSmlyYSBpc3N1ZVxuICogQHN1bW1hcnkgQ2FycmllcyB0aGUgdGFyZ2V0IGBpc3N1ZUtleWAgYW5kIHRoZSBjb21tZW50IGBib2R5YC5cbiAqIEBjYXRlZ29yeSBJT1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vamlyYS9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSmlyYUNvbW1lbnRJbnB1dCB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSXNzdWUga2V5IHRvIGNvbW1lbnQgb25cbiAgICovXG4gIGlzc3VlS2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29tbWVudCBib2R5XG4gICAqL1xuICBib2R5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIElucHV0IGZvciB0cmFuc2l0aW9uaW5nIGEgSmlyYSBpc3N1ZVxuICogQHN1bW1hcnkgQ2FycmllcyB0aGUgdGFyZ2V0IGBpc3N1ZUtleWAgYW5kIHRoZSB3b3JrZmxvdyBgdHJhbnNpdGlvbklkYC5cbiAqIEBjYXRlZ29yeSBJT1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vamlyYS9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSmlyYVRyYW5zaXRpb25JbnB1dCB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSXNzdWUga2V5IHRvIHRyYW5zaXRpb25cbiAgICovXG4gIGlzc3VlS2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV29ya2Zsb3cgdHJhbnNpdGlvbiBJRFxuICAgKi9cbiAgdHJhbnNpdGlvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIElucHV0IGZvciBhIEppcmEgSlFMIHNlYXJjaFxuICogQHN1bW1hcnkgQ2FycmllcyB0aGUgYGpxbGAgcXVlcnksIGFuIG9wdGlvbmFsIHJlc3VsdCBjYXAgKGRlZmF1bHQgYDUwYCksIGFuZFxuICogYW4gb3B0aW9uYWwgbGlzdCBvZiBgZmllbGRzYCB0byBwcm9qZWN0LlxuICogQGNhdGVnb3J5IElPXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9pby9qaXJhL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKaXJhU2VhcmNoSW5wdXQge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEpRTCBxdWVyeSBleHByZXNzaW9uXG4gICAqL1xuICBqcWw6IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzIChkZWZhdWx0IGA1MGApXG4gICAqL1xuICBtYXhSZXN1bHRzPzogbnVtYmVyO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpZWxkIG5hbWVzIHRvIGluY2x1ZGUgaW4gdGhlIHJlc3VsdHNcbiAgICovXG4gIGZpZWxkcz86IHN0cmluZ1tdO1xufVxuXG4vKiogRGVmYXVsdCBpc3N1ZSB0eXBlIHdyaXR0ZW4gd2hlbiBhIGNyZWF0ZSBkb2VzIG5vdCBzcGVjaWZ5IG9uZSAoYFwiVGFza1wiYCkuICovXG5jb25zdCBERUZBVUxUX0lTU1VFX1RZUEUgPSBcIlRhc2tcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSmlyYSBSRVNUIEFQSSBpbnRlZ3JhdGlvbiBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBBbiB1bmRlY29yYXRlZCBIVFRQIHNlcnZpY2UgZm9yIGlzc3VlIENSVUQsIGNvbW1lbnRzLCB3b3JrZmxvd1xuICogdHJhbnNpdGlvbnMsIGFuZCBKUUwgc2VhcmNoLiBUaGUgc2l0ZSBiYXNlIFVSTCBhbmQgQVBJIHRva2VuIGFyZSByZXF1aXJlZDtcbiAqIHN1cHBseWluZyBhIGB1c2VybmFtZWAgc3dpdGNoZXMgYXV0aGVudGljYXRpb24gdG8gQmFzaWMsIGFuZCB0cmFuc3BvcnRcbiAqIGZhaWx1cmVzIGFyZSBtYXBwZWQgdG8gZGVjYWYgZXJyb3JzIHZpYSB7QGxpbmsgaHR0cEVycm9yfS5cbiAqIEBjbGFzcyBKaXJhU2VydmljZVxuICogQGV4dGVuZHMgSHR0cEFwaVNlcnZpY2VcbiAqIEBjYXRlZ29yeSBJT1xuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBKaXJhU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvaW50ZWdyYXRpb25zL2lvL2ppcmFcIjtcbiAqXG4gKiBjb25zdCBqaXJhID0gbmV3IEppcmFTZXJ2aWNlKCk7XG4gKiBhd2FpdCBqaXJhLmluaXRpYWxpemUoe1xuICogICBiYXNlVXJsOiBcImh0dHBzOi8vZXhhbXBsZS5hdGxhc3NpYW4ubmV0XCIsXG4gKiAgIHVzZXJuYW1lOiBwcm9jZXNzLmVudi5KSVJBX1VTRVJOQU1FLFxuICogICB0b2tlbjogcHJvY2Vzcy5lbnYuR1JBUEhfQ1JFREVOVElBTF9KSVJBX1RPS0VOLFxuICogfSk7XG4gKiBjb25zdCBpc3N1ZSA9IGF3YWl0IGppcmEuY3JlYXRlSXNzdWUoe1xuICogICBwcm9qZWN0S2V5OiBcIk9QU1wiLFxuICogICBzdW1tYXJ5OiBcIkRlcGxveW1lbnQgZmFpbGVkXCIsXG4gKiB9KTtcbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBhdXRvbnVtYmVyXG4gKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICogICBwYXJ0aWNpcGFudCBTZXJ2aWNlIGFzIEppcmFTZXJ2aWNlXG4gKiAgIHBhcnRpY2lwYW50IEFQSSBhcyBKaXJhIFJFU1QgQVBJXG4gKiAgIENhbGxlci0+PlNlcnZpY2U6IGNyZWF0ZUlzc3VlKGlucHV0KVxuICogICBhY3RpdmF0ZSBTZXJ2aWNlXG4gKiAgIFNlcnZpY2UtPj5TZXJ2aWNlOiByZXF1aXJlQ3JlZGVudGlhbHMoKVxuICogICBTZXJ2aWNlLT4+QVBJOiBQT1NUIC9yZXN0L2FwaS8yL2lzc3VlXG4gKiAgIGFjdGl2YXRlIEFQSVxuICogICBBUEktLT4+U2VydmljZTogeyBpZCwga2V5IH1cbiAqICAgZGVhY3RpdmF0ZSBBUElcbiAqICAgU2VydmljZS0tPj5DYWxsZXI6IGNyZWF0ZWQgaXNzdWVcbiAqICAgZGVhY3RpdmF0ZSBTZXJ2aWNlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9pby9qaXJhL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIEppcmFTZXJ2aWNlIGV4dGVuZHMgSHR0cEFwaVNlcnZpY2U8SmlyYVNlcnZpY2VDb25maWc+IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgcHJvdmlkZXIgbmFtZSB1c2VkIGluIGVycm9yIG1lc3NhZ2VzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZU5hbWUgPSBcIkppcmFcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBkZWZhdWx0IGJhc2UgVVJMIGZvciBKaXJhXG4gICAqIEBzdW1tYXJ5IFJldHVybnMgYW4gZW1wdHkgc3RyaW5nOyBKaXJhIGlzIHNpdGUtaG9zdGVkLCBzbyB0aGUgcmVzb2x2ZWRcbiAgICogYGJhc2VVcmxgIChmcm9tIGNvbmZpZyBvciBgaW8uamlyYS5iYXNlVXJsYCkgaXMgcmVxdWlyZWQuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IEFuIGVtcHR5IHN0cmluZy5cbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0QmFzZVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIlwiO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgdGhlIEppcmEgYXV0aGVudGljYXRpb24gaGVhZGVyc1xuICAgKiBAc3VtbWFyeSBVc2VzIEhUVFAgQmFzaWMgKGB1c2VybmFtZTp0b2tlbmApIHdoZW4gYm90aCB2YWx1ZXMgYXJlIHByZXNlbnQsXG4gICAqIG90aGVyd2lzZSBhIGJlYXJlciB0b2tlbiB3aGVuIG9ubHkgYHRva2VuYCBpcyBwcmVzZW50LiBBbHdheXMgcmVxdWVzdHNcbiAgICogSlNPTiByZXNwb25zZXMuXG4gICAqIEBwYXJhbSB7SmlyYVNlcnZpY2VDb25maWd9IGNvbmZpZyAtIFRoZSByZXNvbHZlZCBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBUaGUgYXV0aG9yaXphdGlvbiBhbmQgYWNjZXB0IGhlYWRlcnMuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXV0aEhlYWRlcnMoY29uZmlnOiBKaXJhU2VydmljZUNvbmZpZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGlmIChjb25maWcudXNlcm5hbWUgJiYgY29uZmlnLnRva2VuKSB7XG4gICAgICBjb25zdCBlbmNvZGVkID0gQnVmZmVyLmZyb20oXG4gICAgICAgIGAke2NvbmZpZy51c2VybmFtZX06JHtjb25maWcudG9rZW59YCxcbiAgICAgICAgXCJ1dGY4XCJcbiAgICAgICkudG9TdHJpbmcoXCJiYXNlNjRcIik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmFzaWMgJHtlbmNvZGVkfWAsXG4gICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gY29uZmlnLnRva2VuXG4gICAgICA/IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2NvbmZpZy50b2tlbn1gLCBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiIH1cbiAgICAgIDogeyBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlYWRzIHRoZSBKaXJhIGNyZWRlbnRpYWxzIGFuZCBkZWZhdWx0cyBmcm9tIHRoZSBlbnZpcm9ubWVudFxuICAgKiBAc3VtbWFyeSBSZWFkcyB0aGUgYGlvLmppcmFgIHNsaWNlIGFuZCByZXR1cm5zIGEgcGFydGlhbCBjb25maWcgd2hlbiBhblxuICAgKiBBUEkgdG9rZW4gaXMgY29uZmlndXJlZCwgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLiBWYWx1ZXMgcGFzcyB0aHJvdWdoXG4gICAqIGBlbnZTdHJpbmdgL2BlbnZOdW1iZXJgIHRvIHJlamVjdCB1bnNldC1sZWFmIHByb3hpZXMuXG4gICAqIEByZXR1cm5zIHtQYXJ0aWFsPEppcmFTZXJ2aWNlQ29uZmlnPiB8IHVuZGVmaW5lZH0gQSBwYXJ0aWFsIGNvbmZpZywgb3IgYHVuZGVmaW5lZGAgd2hlbiBubyBKaXJhIHRva2VuIGlzIGNvbmZpZ3VyZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgY29uZmlnRnJvbUVudmlyb25tZW50KCk6IFBhcnRpYWw8SmlyYVNlcnZpY2VDb25maWc+IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBlbnYgPSBJb0Vudmlyb25tZW50LmlvLmppcmE7XG4gICAgY29uc3QgdG9rZW4gPSBlbnZTdHJpbmcoZW52Py50b2tlbik7XG4gICAgaWYgKCF0b2tlbikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgdG9rZW4sXG4gICAgICB1c2VybmFtZTogZW52U3RyaW5nKGVudi51c2VybmFtZSksXG4gICAgICBiYXNlVXJsOiBlbnZTdHJpbmcoZW52LmJhc2VVcmwpLFxuICAgICAgdGltZW91dDogZW52TnVtYmVyKGVudi50aW1lb3V0KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBc3NlcnRzIHRoYXQgdGhlIEppcmEgdG9rZW4gYW5kIHNpdGUgYmFzZSBVUkwgYXJlIGNvbmZpZ3VyZWRcbiAgICogQHN1bW1hcnkgQ2FsbGVkIGJ5IGV2ZXJ5IG9wZXJhdGlvbiBiZWZvcmUgaXQgdG91Y2hlcyB0aGUgbmV0d29yay5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gQVBJIHRva2VuIG9yIGJhc2UgVVJMIGlzIGNvbmZpZ3VyZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVxdWlyZUNyZWRlbnRpYWxzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb25maWcudG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSmlyYSByZXF1aXJlcyBhbiBBUEkgdG9rZW5cIik7XG4gICAgfVxuICAgIGlmICghdGhpcy5jb25maWcuYmFzZVVybCkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJKaXJhIHJlcXVpcmVzIGEgYmFzZSBVUkxcIik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgdGhlIGVuY29kZWQgaXNzdWUgcGF0aFxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgdGhlIGlzc3VlIGtleSBhbmQgVVJMLWVuY29kZXMgaXQgaW50b1xuICAgKiBgL3Jlc3QvYXBpLzIvaXNzdWUvPGtleT5gLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaXNzdWVLZXkgLSBUaGUgSmlyYSBpc3N1ZSBrZXkuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBpc3N1ZSBBUEkgcGF0aC5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBgaXNzdWVLZXlgIGlzIGVtcHR5LlxuICAgKi9cbiAgcHJpdmF0ZSBpc3N1ZVBhdGgoaXNzdWVLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFpc3N1ZUtleSkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJKaXJhIHJlcXVpcmVzIGFuIGlzc3VlIGtleVwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGAvcmVzdC9hcGkvMi9pc3N1ZS8ke2VuY29kZVVSSUNvbXBvbmVudChpc3N1ZUtleSl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIEppcmEgaXNzdWVcbiAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgcHJvamVjdCwgc3VtbWFyeSwgaXNzdWUgdHlwZSAoZGVmYXVsdCBgVGFza2ApLFxuICAgKiBvcHRpb25hbCBkZXNjcmlwdGlvbiwgYW5kIGV4dHJhIGZpZWxkcyB0byBgL3Jlc3QvYXBpLzIvaXNzdWVgLlxuICAgKiBAcGFyYW0ge0ppcmFJc3N1ZUlucHV0fSBpbnB1dCAtIFRoZSBpc3N1ZSBkZWZpbml0aW9uLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIGNyZWF0ZWQgaXNzdWUgcGF5bG9hZCAoaW5jbHVkaW5nIGBpZGAgYW5kIGBrZXlgKS5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBjcmVkZW50aWFscyBhcmUgbWlzc2luZywgb3IgdGhlIHByb2plY3Qga2V5IG9yIHN1bW1hcnkgaXMgZW1wdHkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBKaXJhIHJlamVjdHMgdGhlIGlzc3VlLlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlSXNzdWUoaW5wdXQ6IEppcmFJc3N1ZUlucHV0KTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgdGhpcy5yZXF1aXJlQ3JlZGVudGlhbHMoKTtcbiAgICBpZiAoIWlucHV0LnByb2plY3RLZXkgfHwgIWlucHV0LnN1bW1hcnkpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIkppcmEgY3JlYXRlSXNzdWUgcmVxdWlyZXMgYSBwcm9qZWN0IGtleSBhbmQgc3VtbWFyeVwiXG4gICAgICApO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0KFwiL3Jlc3QvYXBpLzIvaXNzdWVcIiwge1xuICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICBwcm9qZWN0OiB7IGtleTogaW5wdXQucHJvamVjdEtleSB9LFxuICAgICAgICAgIHN1bW1hcnk6IGlucHV0LnN1bW1hcnksXG4gICAgICAgICAgaXNzdWV0eXBlOiB7IG5hbWU6IGlucHV0Lmlzc3VlVHlwZSA/PyBERUZBVUxUX0lTU1VFX1RZUEUgfSxcbiAgICAgICAgICAuLi4oaW5wdXQuZGVzY3JpcHRpb24gPyB7IGRlc2NyaXB0aW9uOiBpbnB1dC5kZXNjcmlwdGlvbiB9IDoge30pLFxuICAgICAgICAgIC4uLihpbnB1dC5maWVsZHMgPz8ge30pLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiSmlyYVwiLCBcImNyZWF0ZSBpc3N1ZVwiLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBGZXRjaGVzIGEgSmlyYSBpc3N1ZVxuICAgKiBAc3VtbWFyeSBgR0VUYHMgdGhlIGlzc3VlIGJ5IGtleSwgb3B0aW9uYWxseSBwcm9qZWN0aW5nIHRoZSBnaXZlbiBmaWVsZFxuICAgKiBuYW1lcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlzc3VlS2V5IC0gVGhlIGlzc3VlIGtleSB0byBmZXRjaC5cbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gW2ZpZWxkc10gLSBGaWVsZCBuYW1lcyB0byBpbmNsdWRlIGluIHRoZSByZXNwb25zZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IFRoZSBpc3N1ZSBwYXlsb2FkLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIGNyZWRlbnRpYWxzIGFyZSBtaXNzaW5nIG9yIHRoZSBpc3N1ZSBrZXkgaXMgZW1wdHkuXG4gICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGlzc3VlIGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBKaXJhIHJlamVjdHMgdGhlIHJlcXVlc3QuXG4gICAqL1xuICBhc3luYyBnZXRJc3N1ZShpc3N1ZUtleTogc3RyaW5nLCBmaWVsZHM/OiBzdHJpbmdbXSk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHRoaXMucmVxdWlyZUNyZWRlbnRpYWxzKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0KHRoaXMuaXNzdWVQYXRoKGlzc3VlS2V5KSwge1xuICAgICAgICBwYXJhbXM6IGZpZWxkcz8ubGVuZ3RoID8geyBmaWVsZHM6IGZpZWxkcy5qb2luKFwiLFwiKSB9IDoge30sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBodHRwRXJyb3IoXCJKaXJhXCIsIFwiZ2V0IGlzc3VlXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgZmllbGRzIG9uIGEgSmlyYSBpc3N1ZVxuICAgKiBAc3VtbWFyeSBgUFVUYHMgdGhlIGBmaWVsZHNgIG1hcCB0byB0aGUgaXNzdWUgYW5kIHJldHVybnNcbiAgICogYHsgdXBkYXRlZDogdHJ1ZSwgaXNzdWVLZXkgfWAuXG4gICAqIEBwYXJhbSB7SmlyYUlzc3VlVXBkYXRlfSBpbnB1dCAtIFRoZSBpc3N1ZSBrZXkgYW5kIGZpZWxkcyB0byB1cGRhdGUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBgeyB1cGRhdGVkOiB0cnVlLCBpc3N1ZUtleSB9YCBvbiBzdWNjZXNzLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIGNyZWRlbnRpYWxzIGFyZSBtaXNzaW5nLCBvciB0aGUgaXNzdWUga2V5IG9yIGZpZWxkcyBhcmUgZW1wdHkuXG4gICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGlzc3VlIGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBKaXJhIHJlamVjdHMgdGhlIHVwZGF0ZS5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZUlzc3VlKGlucHV0OiBKaXJhSXNzdWVVcGRhdGUpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0aGlzLnJlcXVpcmVDcmVkZW50aWFscygpO1xuICAgIGlmICghaW5wdXQuZmllbGRzKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkppcmEgdXBkYXRlSXNzdWUgcmVxdWlyZXMgZmllbGRzXCIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jbGllbnQucHV0KHRoaXMuaXNzdWVQYXRoKGlucHV0Lmlzc3VlS2V5KSwge1xuICAgICAgICBmaWVsZHM6IGlucHV0LmZpZWxkcyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHsgdXBkYXRlZDogdHJ1ZSwgaXNzdWVLZXk6IGlucHV0Lmlzc3VlS2V5IH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIkppcmFcIiwgXCJ1cGRhdGUgaXNzdWVcIiwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBhIEppcmEgaXNzdWVcbiAgICogQHN1bW1hcnkgYERFTEVURWBzIHRoZSBpc3N1ZSBhbmQgcmV0dXJucyBgeyBkZWxldGVkOiB0cnVlLCBpc3N1ZUtleSB9YC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlzc3VlS2V5IC0gVGhlIGlzc3VlIGtleSB0byBkZWxldGUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBgeyBkZWxldGVkOiB0cnVlLCBpc3N1ZUtleSB9YCBvbiBzdWNjZXNzLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIGNyZWRlbnRpYWxzIGFyZSBtaXNzaW5nIG9yIHRoZSBpc3N1ZSBrZXkgaXMgZW1wdHkuXG4gICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGlzc3VlIGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBKaXJhIHJlamVjdHMgdGhlIGRlbGV0aW9uLlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlSXNzdWUoaXNzdWVLZXk6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHRoaXMucmVxdWlyZUNyZWRlbnRpYWxzKCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmRlbGV0ZSh0aGlzLmlzc3VlUGF0aChpc3N1ZUtleSkpO1xuICAgICAgcmV0dXJuIHsgZGVsZXRlZDogdHJ1ZSwgaXNzdWVLZXkgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiSmlyYVwiLCBcImRlbGV0ZSBpc3N1ZVwiLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBZGRzIGEgY29tbWVudCB0byBhIEppcmEgaXNzdWVcbiAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgY29tbWVudCBib2R5IHRvIHRoZSBpc3N1ZSdzIGAvY29tbWVudGAgZW5kcG9pbnQuXG4gICAqIEBwYXJhbSB7SmlyYUNvbW1lbnRJbnB1dH0gaW5wdXQgLSBUaGUgaXNzdWUga2V5IGFuZCBjb21tZW50IGJvZHkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgY3JlYXRlZCBjb21tZW50IHBheWxvYWQuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gY3JlZGVudGlhbHMgYXJlIG1pc3NpbmcsIG9yIHRoZSBpc3N1ZSBrZXkgb3IgYm9keSBpcyBlbXB0eS5cbiAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgaXNzdWUgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEppcmEgcmVqZWN0cyB0aGUgY29tbWVudC5cbiAgICovXG4gIGFzeW5jIGFkZENvbW1lbnQoaW5wdXQ6IEppcmFDb21tZW50SW5wdXQpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0aGlzLnJlcXVpcmVDcmVkZW50aWFscygpO1xuICAgIGlmICghaW5wdXQuYm9keSkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJKaXJhIGFkZENvbW1lbnQgcmVxdWlyZXMgYSBib2R5XCIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0KFxuICAgICAgICBgJHt0aGlzLmlzc3VlUGF0aChpbnB1dC5pc3N1ZUtleSl9L2NvbW1lbnRgLFxuICAgICAgICB7IGJvZHk6IGlucHV0LmJvZHkgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBodHRwRXJyb3IoXCJKaXJhXCIsIFwiYWRkIGNvbW1lbnRcIiwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTGlzdHMgdGhlIGF2YWlsYWJsZSB3b3JrZmxvdyB0cmFuc2l0aW9ucyBmb3IgYSBKaXJhIGlzc3VlXG4gICAqIEBzdW1tYXJ5IGBHRVRgcyB0aGUgaXNzdWUncyBgL3RyYW5zaXRpb25zYCBjb2xsZWN0aW9uLCB3aG9zZSBJRHMgZmVlZFxuICAgKiB7QGxpbmsgSmlyYVNlcnZpY2UudHJhbnNpdGlvbklzc3VlfS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlzc3VlS2V5IC0gVGhlIGlzc3VlIGtleS5cbiAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IFRoZSBhdmFpbGFibGUgdHJhbnNpdGlvbnMgcGF5bG9hZC5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBjcmVkZW50aWFscyBhcmUgbWlzc2luZyBvciB0aGUgaXNzdWUga2V5IGlzIGVtcHR5LlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBpc3N1ZSBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gSmlyYSByZWplY3RzIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgYXN5bmMgZ2V0VHJhbnNpdGlvbnMoaXNzdWVLZXk6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHRoaXMucmVxdWlyZUNyZWRlbnRpYWxzKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0KFxuICAgICAgICBgJHt0aGlzLmlzc3VlUGF0aChpc3N1ZUtleSl9L3RyYW5zaXRpb25zYFxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBodHRwRXJyb3IoXCJKaXJhXCIsIFwiZ2V0IHRyYW5zaXRpb25zXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRyYW5zaXRpb25zIGEgSmlyYSBpc3N1ZSB0aHJvdWdoIGl0cyB3b3JrZmxvd1xuICAgKiBAc3VtbWFyeSBgUE9TVGBzIHRoZSB0cmFuc2l0aW9uIElEIHRvIHRoZSBpc3N1ZSdzIGAvdHJhbnNpdGlvbnNgIGVuZHBvaW50XG4gICAqIGFuZCByZXR1cm5zIHRoZSBhcHBsaWVkIHRyYW5zaXRpb24gaWRlbnRpZmllcnMuXG4gICAqIEBwYXJhbSB7SmlyYVRyYW5zaXRpb25JbnB1dH0gaW5wdXQgLSBUaGUgaXNzdWUga2V5IGFuZCB0cmFuc2l0aW9uIElELlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gYHsgdHJhbnNpdGlvbmVkOiB0cnVlLCBpc3N1ZUtleSwgdHJhbnNpdGlvbklkIH1gIG9uIHN1Y2Nlc3MuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gY3JlZGVudGlhbHMgYXJlIG1pc3NpbmcsIG9yIHRoZSBpc3N1ZSBrZXkgb3IgdHJhbnNpdGlvbiBJRCBpcyBlbXB0eS5cbiAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgaXNzdWUgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEppcmEgcmVqZWN0cyB0aGUgdHJhbnNpdGlvbi5cbiAgICovXG4gIGFzeW5jIHRyYW5zaXRpb25Jc3N1ZShpbnB1dDogSmlyYVRyYW5zaXRpb25JbnB1dCk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHRoaXMucmVxdWlyZUNyZWRlbnRpYWxzKCk7XG4gICAgaWYgKCFpbnB1dC50cmFuc2l0aW9uSWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSmlyYSB0cmFuc2l0aW9uSXNzdWUgcmVxdWlyZXMgYSB0cmFuc2l0aW9uIGlkXCIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jbGllbnQucG9zdChgJHt0aGlzLmlzc3VlUGF0aChpbnB1dC5pc3N1ZUtleSl9L3RyYW5zaXRpb25zYCwge1xuICAgICAgICB0cmFuc2l0aW9uOiB7IGlkOiBpbnB1dC50cmFuc2l0aW9uSWQgfSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNpdGlvbmVkOiB0cnVlLFxuICAgICAgICBpc3N1ZUtleTogaW5wdXQuaXNzdWVLZXksXG4gICAgICAgIHRyYW5zaXRpb25JZDogaW5wdXQudHJhbnNpdGlvbklkLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiSmlyYVwiLCBcInRyYW5zaXRpb24gaXNzdWVcIiwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU2VhcmNoZXMgSmlyYSBpc3N1ZXMgd2l0aCBKUUxcbiAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgSlFMIHF1ZXJ5IHRvIGAvcmVzdC9hcGkvMi9zZWFyY2hgIHdpdGggYSByZXN1bHQgY2FwXG4gICAqIChkZWZhdWx0IGA1MGApIGFuZCBvcHRpb25hbCBmaWVsZCBwcm9qZWN0aW9uLlxuICAgKiBAcGFyYW0ge0ppcmFTZWFyY2hJbnB1dH0gaW5wdXQgLSBUaGUgSlFMIHF1ZXJ5IGFuZCBzZWFyY2ggb3B0aW9ucy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IFRoZSBzZWFyY2ggcmVzdWx0IHBheWxvYWQuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gY3JlZGVudGlhbHMgYXJlIG1pc3Npbmcgb3IgdGhlIEpRTCBxdWVyeSBpcyBlbXB0eS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIHRoZSBKUUwgcXVlcnkgaXMgaW52YWxpZC5cbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogY29uc3QgcmVzdWx0cyA9IGF3YWl0IGppcmEuc2VhcmNoKHtcbiAgICogICBqcWw6ICdwcm9qZWN0ID0gXCJPUFNcIiBBTkQgc3RhdHVzID0gXCJPcGVuXCInLFxuICAgKiAgIG1heFJlc3VsdHM6IDEwMCxcbiAgICogICBmaWVsZHM6IFtcInN1bW1hcnlcIiwgXCJzdGF0dXNcIl0sXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHNlYXJjaChpbnB1dDogSmlyYVNlYXJjaElucHV0KTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgdGhpcy5yZXF1aXJlQ3JlZGVudGlhbHMoKTtcbiAgICBpZiAoIWlucHV0LmpxbCkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJKaXJhIHNlYXJjaCByZXF1aXJlcyBhIEpRTCBxdWVyeVwiKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdChcIi9yZXN0L2FwaS8yL3NlYXJjaFwiLCB7XG4gICAgICAgIGpxbDogaW5wdXQuanFsLFxuICAgICAgICBtYXhSZXN1bHRzOiBpbnB1dC5tYXhSZXN1bHRzID8/IDUwLFxuICAgICAgICAuLi4oaW5wdXQuZmllbGRzID8geyBmaWVsZHM6IGlucHV0LmZpZWxkcyB9IDoge30pLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiSmlyYVwiLCBcInNlYXJjaCBpc3N1ZXNcIiwgZXJyb3IpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
354
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSmlyYVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJKaXJhU2VydmljZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsMkRBQXdEO0FBQ3hELHdEQUFvRDtBQUNwRCw0RUFBMEU7QUFDMUUsMkRBQTBFO0FBQzFFLGdGQUFnRjtBQUNoRixNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQztBQUNsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDRztBQUNILE1BQWEsV0FBWSxTQUFRLHlCQUFjO0lBQzNDO1FBQ0ksS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDcEI7O1dBRUc7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztJQUM5QixDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCxjQUFjO1FBQ1YsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0Q7Ozs7Ozs7T0FPRztJQUNILFdBQVcsQ0FBQyxNQUFNO1FBQ2QsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdGLE9BQU87Z0JBQ0gsYUFBYSxFQUFFLFNBQVMsT0FBTyxFQUFFO2dCQUNqQyxNQUFNLEVBQUUsa0JBQWtCO2FBQzdCLENBQUM7UUFDTixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsS0FBSztZQUNmLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxVQUFVLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUU7WUFDekUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxF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O1lBQ2IsTUFBTSxJQUFJLDZCQUFhLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDMUQsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO2dCQUNkLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLEVBQUU7Z0JBQ2xDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNwRCxDQUFDLENBQUM7WUFDSCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDekIsQ0FBQztRQUNELE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUEsb0JBQVMsRUFBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDTCxDQUFDO0NBQ0o7QUE5UkQsa0NBOFJDO0FBQ0Qsc3Y5QkFBc3Y5QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvaW8vamlyYS9zZXJ2aWNlXG4gKiBAc3VtbWFyeSBKaXJhIFJFU1QgQVBJIGludGVncmF0aW9uIHNlcnZpY2UgZm9yIGlzc3VlcywgY29tbWVudHMsIGFuZCB3b3JrZmxvd3MuXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyBKaXJhIGlzc3VlIG9wZXJhdGlvbnMgKGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBkZWxldGUsXG4gKiBjb21tZW50LCB0cmFuc2l0aW9uLCBhbmQgSlFMIHNlYXJjaCkgdGhyb3VnaCB0aGUgSmlyYSBSRVNUIGBhcGkvMmAgc3VyZmFjZSBhc1xuICogYW4gdW5kZWNvcmF0ZWQgY2xpZW50LWJhc2VkIHNlcnZpY2UgYnVpbHQgb24ge0BsaW5rIEh0dHBBcGlTZXJ2aWNlfS5cbiAqIENvbmZpZ3VyYXRpb24gY29tZXMgZnJvbSBhbiBleHBsaWNpdCBgSmlyYVNlcnZpY2VDb25maWdgIG9yIHRoZSBgaW8uamlyYWBcbiAqIGVudmlyb25tZW50IHNsaWNlLiBXaGVuIGJvdGggYHVzZXJuYW1lYCBhbmQgYHRva2VuYCBhcmUgY29uZmlndXJlZCB0aGVcbiAqIHNlcnZpY2Ugc2VuZHMgSFRUUCBCYXNpYyBhdXRoZW50aWNhdGlvbiAoQVBJIHRva2VuIGFzIHRoZSBwYXNzd29yZCk7XG4gKiBvdGhlcndpc2UgdGhlIHRva2VuIGlzIHNlbnQgYXMgYSBiZWFyZXIgdG9rZW4uIFRoZSBzaXRlIGBiYXNlVXJsYCBpc1xuICogcmVxdWlyZWQuIENyZWRlbnRpYWxzIGFyZSByZWZlcmVuY2VkIGZyb20gY29uZmlndXJhdGlvbiAoYW5kLCBmcm9tIGFzLWdyYXBoXG4gKiBub2RlcywgZnJvbSB0aGUgcmVzb2x2ZWQgYGppcmFgIGNyZWRlbnRpYWwgc2VjcmV0KSBhbmQgYXJlIG5ldmVyIGVtYmVkZGVkIGluXG4gKiBzb3VyY2UuIEZhaWx1cmVzIGFyZSBtYXBwZWQgdG8gZGVjYWYgZXJyb3JzIHZpYSB7QGxpbmsgaHR0cEVycm9yfS5cbiAqL1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgSW9FbnZpcm9ubWVudCB9IGZyb20gXCIuLy4uL2Vudmlyb25tZW50LmpzXCI7XG5pbXBvcnQgeyBlbnZOdW1iZXIsIGVudlN0cmluZyB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9lbnZpcm9ubWVudFZhbHVlLmpzXCI7XG5pbXBvcnQgeyBIdHRwQXBpU2VydmljZSwgaHR0cEVycm9yLCB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9odHRwL2luZGV4LmpzXCI7XG4vKiogRGVmYXVsdCBpc3N1ZSB0eXBlIHdyaXR0ZW4gd2hlbiBhIGNyZWF0ZSBkb2VzIG5vdCBzcGVjaWZ5IG9uZSAoYFwiVGFza1wiYCkuICovXG5jb25zdCBERUZBVUxUX0lTU1VFX1RZUEUgPSBcIlRhc2tcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEppcmEgUkVTVCBBUEkgaW50ZWdyYXRpb24gc2VydmljZVxuICogQHN1bW1hcnkgQW4gdW5kZWNvcmF0ZWQgSFRUUCBzZXJ2aWNlIGZvciBpc3N1ZSBDUlVELCBjb21tZW50cywgd29ya2Zsb3dcbiAqIHRyYW5zaXRpb25zLCBhbmQgSlFMIHNlYXJjaC4gVGhlIHNpdGUgYmFzZSBVUkwgYW5kIEFQSSB0b2tlbiBhcmUgcmVxdWlyZWQ7XG4gKiBzdXBwbHlpbmcgYSBgdXNlcm5hbWVgIHN3aXRjaGVzIGF1dGhlbnRpY2F0aW9uIHRvIEJhc2ljLCBhbmQgdHJhbnNwb3J0XG4gKiBmYWlsdXJlcyBhcmUgbWFwcGVkIHRvIGRlY2FmIGVycm9ycyB2aWEge0BsaW5rIGh0dHBFcnJvcn0uXG4gKiBAY2xhc3MgSmlyYVNlcnZpY2VcbiAqIEBleHRlbmRzIEh0dHBBcGlTZXJ2aWNlXG4gKiBAY2F0ZWdvcnkgSU9cbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgSmlyYVNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2ludGVncmF0aW9ucy9pby9qaXJhXCI7XG4gKlxuICogY29uc3QgamlyYSA9IG5ldyBKaXJhU2VydmljZSgpO1xuICogYXdhaXQgamlyYS5pbml0aWFsaXplKHtcbiAqICAgYmFzZVVybDogXCJodHRwczovL2V4YW1wbGUuYXRsYXNzaWFuLm5ldFwiLFxuICogICB1c2VybmFtZTogcHJvY2Vzcy5lbnYuSklSQV9VU0VSTkFNRSxcbiAqICAgdG9rZW46IHByb2Nlc3MuZW52LkdSQVBIX0NSRURFTlRJQUxfSklSQV9UT0tFTixcbiAqIH0pO1xuICogY29uc3QgaXNzdWUgPSBhd2FpdCBqaXJhLmNyZWF0ZUlzc3VlKHtcbiAqICAgcHJvamVjdEtleTogXCJPUFNcIixcbiAqICAgc3VtbWFyeTogXCJEZXBsb3ltZW50IGZhaWxlZFwiLFxuICogfSk7XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgYXV0b251bWJlclxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgU2VydmljZSBhcyBKaXJhU2VydmljZVxuICogICBwYXJ0aWNpcGFudCBBUEkgYXMgSmlyYSBSRVNUIEFQSVxuICogICBDYWxsZXItPj5TZXJ2aWNlOiBjcmVhdGVJc3N1ZShpbnB1dClcbiAqICAgYWN0aXZhdGUgU2VydmljZVxuICogICBTZXJ2aWNlLT4+U2VydmljZTogcmVxdWlyZUNyZWRlbnRpYWxzKClcbiAqICAgU2VydmljZS0+PkFQSTogUE9TVCAvcmVzdC9hcGkvMi9pc3N1ZVxuICogICBhY3RpdmF0ZSBBUElcbiAqICAgQVBJLS0+PlNlcnZpY2U6IHsgaWQsIGtleSB9XG4gKiAgIGRlYWN0aXZhdGUgQVBJXG4gKiAgIFNlcnZpY2UtLT4+Q2FsbGVyOiBjcmVhdGVkIGlzc3VlXG4gKiAgIGRlYWN0aXZhdGUgU2VydmljZVxuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vamlyYS9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBjbGFzcyBKaXJhU2VydmljZSBleHRlbmRzIEh0dHBBcGlTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcHJvdmlkZXIgbmFtZSB1c2VkIGluIGVycm9yIG1lc3NhZ2VzXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNlcnZpY2VOYW1lID0gXCJKaXJhXCI7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZGVmYXVsdCBiYXNlIFVSTCBmb3IgSmlyYVxuICAgICAqIEBzdW1tYXJ5IFJldHVybnMgYW4gZW1wdHkgc3RyaW5nOyBKaXJhIGlzIHNpdGUtaG9zdGVkLCBzbyB0aGUgcmVzb2x2ZWRcbiAgICAgKiBgYmFzZVVybGAgKGZyb20gY29uZmlnIG9yIGBpby5qaXJhLmJhc2VVcmxgKSBpcyByZXF1aXJlZC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBBbiBlbXB0eSBzdHJpbmcuXG4gICAgICovXG4gICAgZGVmYXVsdEJhc2VVcmwoKSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQnVpbGRzIHRoZSBKaXJhIGF1dGhlbnRpY2F0aW9uIGhlYWRlcnNcbiAgICAgKiBAc3VtbWFyeSBVc2VzIEhUVFAgQmFzaWMgKGB1c2VybmFtZTp0b2tlbmApIHdoZW4gYm90aCB2YWx1ZXMgYXJlIHByZXNlbnQsXG4gICAgICogb3RoZXJ3aXNlIGEgYmVhcmVyIHRva2VuIHdoZW4gb25seSBgdG9rZW5gIGlzIHByZXNlbnQuIEFsd2F5cyByZXF1ZXN0c1xuICAgICAqIEpTT04gcmVzcG9uc2VzLlxuICAgICAqIEBwYXJhbSB7SmlyYVNlcnZpY2VDb25maWd9IGNvbmZpZyAtIFRoZSByZXNvbHZlZCBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uXG4gICAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFRoZSBhdXRob3JpemF0aW9uIGFuZCBhY2NlcHQgaGVhZGVycy5cbiAgICAgKi9cbiAgICBhdXRoSGVhZGVycyhjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZy51c2VybmFtZSAmJiBjb25maWcudG9rZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGVuY29kZWQgPSBCdWZmZXIuZnJvbShgJHtjb25maWcudXNlcm5hbWV9OiR7Y29uZmlnLnRva2VufWAsIFwidXRmOFwiKS50b1N0cmluZyhcImJhc2U2NFwiKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJhc2ljICR7ZW5jb2RlZH1gLFxuICAgICAgICAgICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb25maWcudG9rZW5cbiAgICAgICAgICAgID8geyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Y29uZmlnLnRva2VufWAsIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIgfVxuICAgICAgICAgICAgOiB7IEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlYWRzIHRoZSBKaXJhIGNyZWRlbnRpYWxzIGFuZCBkZWZhdWx0cyBmcm9tIHRoZSBlbnZpcm9ubWVudFxuICAgICAqIEBzdW1tYXJ5IFJlYWRzIHRoZSBgaW8uamlyYWAgc2xpY2UgYW5kIHJldHVybnMgYSBwYXJ0aWFsIGNvbmZpZyB3aGVuIGFuXG4gICAgICogQVBJIHRva2VuIGlzIGNvbmZpZ3VyZWQsIGB1bmRlZmluZWRgIG90aGVyd2lzZS4gVmFsdWVzIHBhc3MgdGhyb3VnaFxuICAgICAqIGBlbnZTdHJpbmdgL2BlbnZOdW1iZXJgIHRvIHJlamVjdCB1bnNldC1sZWFmIHByb3hpZXMuXG4gICAgICogQHJldHVybnMge1BhcnRpYWw8SmlyYVNlcnZpY2VDb25maWc+IHwgdW5kZWZpbmVkfSBBIHBhcnRpYWwgY29uZmlnLCBvciBgdW5kZWZpbmVkYCB3aGVuIG5vIEppcmEgdG9rZW4gaXMgY29uZmlndXJlZC5cbiAgICAgKi9cbiAgICBjb25maWdGcm9tRW52aXJvbm1lbnQoKSB7XG4gICAgICAgIGNvbnN0IGVudiA9IElvRW52aXJvbm1lbnQuaW8uamlyYTtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBlbnZTdHJpbmcoZW52Py50b2tlbik7XG4gICAgICAgIGlmICghdG9rZW4pXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICB1c2VybmFtZTogZW52U3RyaW5nKGVudi51c2VybmFtZSksXG4gICAgICAgICAgICBiYXNlVXJsOiBlbnZTdHJpbmcoZW52LmJhc2VVcmwpLFxuICAgICAgICAgICAgdGltZW91dDogZW52TnVtYmVyKGVudi50aW1lb3V0KSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFzc2VydHMgdGhhdCB0aGUgSmlyYSB0b2tlbiBhbmQgc2l0ZSBiYXNlIFVSTCBhcmUgY29uZmlndXJlZFxuICAgICAqIEBzdW1tYXJ5IENhbGxlZCBieSBldmVyeSBvcGVyYXRpb24gYmVmb3JlIGl0IHRvdWNoZXMgdGhlIG5ldHdvcmsuXG4gICAgICogQHJldHVybnMge3ZvaWR9XG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBubyBBUEkgdG9rZW4gb3IgYmFzZSBVUkwgaXMgY29uZmlndXJlZC5cbiAgICAgKi9cbiAgICByZXF1aXJlQ3JlZGVudGlhbHMoKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWcudG9rZW4pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSmlyYSByZXF1aXJlcyBhbiBBUEkgdG9rZW5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZy5iYXNlVXJsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkppcmEgcmVxdWlyZXMgYSBiYXNlIFVSTFwiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQnVpbGRzIHRoZSBlbmNvZGVkIGlzc3VlIHBhdGhcbiAgICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgdGhlIGlzc3VlIGtleSBhbmQgVVJMLWVuY29kZXMgaXQgaW50b1xuICAgICAqIGAvcmVzdC9hcGkvMi9pc3N1ZS88a2V5PmAuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGlzc3VlS2V5IC0gVGhlIEppcmEgaXNzdWUga2V5LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBpc3N1ZSBBUEkgcGF0aC5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIGBpc3N1ZUtleWAgaXMgZW1wdHkuXG4gICAgICovXG4gICAgaXNzdWVQYXRoKGlzc3VlS2V5KSB7XG4gICAgICAgIGlmICghaXNzdWVLZXkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSmlyYSByZXF1aXJlcyBhbiBpc3N1ZSBrZXlcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAvcmVzdC9hcGkvMi9pc3N1ZS8ke2VuY29kZVVSSUNvbXBvbmVudChpc3N1ZUtleSl9YDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBKaXJhIGlzc3VlXG4gICAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgcHJvamVjdCwgc3VtbWFyeSwgaXNzdWUgdHlwZSAoZGVmYXVsdCBgVGFza2ApLFxuICAgICAqIG9wdGlvbmFsIGRlc2NyaXB0aW9uLCBhbmQgZXh0cmEgZmllbGRzIHRvIGAvcmVzdC9hcGkvMi9pc3N1ZWAuXG4gICAgICogQHBhcmFtIHtKaXJhSXNzdWVJbnB1dH0gaW5wdXQgLSBUaGUgaXNzdWUgZGVmaW5pdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIGNyZWF0ZWQgaXNzdWUgcGF5bG9hZCAoaW5jbHVkaW5nIGBpZGAgYW5kIGBrZXlgKS5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIGNyZWRlbnRpYWxzIGFyZSBtaXNzaW5nLCBvciB0aGUgcHJvamVjdCBrZXkgb3Igc3VtbWFyeSBpcyBlbXB0eS5cbiAgICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gSmlyYSByZWplY3RzIHRoZSBpc3N1ZS5cbiAgICAgKi9cbiAgICBhc3luYyBjcmVhdGVJc3N1ZShpbnB1dCkge1xuICAgICAgICB0aGlzLnJlcXVpcmVDcmVkZW50aWFscygpO1xuICAgICAgICBpZiAoIWlucHV0LnByb2plY3RLZXkgfHwgIWlucHV0LnN1bW1hcnkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSmlyYSBjcmVhdGVJc3N1ZSByZXF1aXJlcyBhIHByb2plY3Qga2V5IGFuZCBzdW1tYXJ5XCIpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoXCIvcmVzdC9hcGkvMi9pc3N1ZVwiLCB7XG4gICAgICAgICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICAgICAgICAgIHByb2plY3Q6IHsga2V5OiBpbnB1dC5wcm9qZWN0S2V5IH0sXG4gICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IGlucHV0LnN1bW1hcnksXG4gICAgICAgICAgICAgICAgICAgIGlzc3VldHlwZTogeyBuYW1lOiBpbnB1dC5pc3N1ZVR5cGUgPz8gREVGQVVMVF9JU1NVRV9UWVBFIH0sXG4gICAgICAgICAgICAgICAgICAgIC4uLihpbnB1dC5kZXNjcmlwdGlvbiA/IHsgZGVzY3JpcHRpb246IGlucHV0LmRlc2NyaXB0aW9uIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgICAgIC4uLihpbnB1dC5maWVsZHMgPz8ge30pLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgaHR0cEVycm9yKFwiSmlyYVwiLCBcImNyZWF0ZSBpc3N1ZVwiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEZldGNoZXMgYSBKaXJhIGlzc3VlXG4gICAgICogQHN1bW1hcnkgYEdFVGBzIHRoZSBpc3N1ZSBieSBrZXksIG9wdGlvbmFsbHkgcHJvamVjdGluZyB0aGUgZ2l2ZW4gZmllbGRcbiAgICAgKiBuYW1lcy5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gaXNzdWVLZXkgLSBUaGUgaXNzdWUga2V5IHRvIGZldGNoLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nW119IFtmaWVsZHNdIC0gRmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgcmVzcG9uc2UuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IFRoZSBpc3N1ZSBwYXlsb2FkLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gY3JlZGVudGlhbHMgYXJlIG1pc3Npbmcgb3IgdGhlIGlzc3VlIGtleSBpcyBlbXB0eS5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBpc3N1ZSBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBKaXJhIHJlamVjdHMgdGhlIHJlcXVlc3QuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0SXNzdWUoaXNzdWVLZXksIGZpZWxkcykge1xuICAgICAgICB0aGlzLnJlcXVpcmVDcmVkZW50aWFscygpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQodGhpcy5pc3N1ZVBhdGgoaXNzdWVLZXkpLCB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiBmaWVsZHM/Lmxlbmd0aCA/IHsgZmllbGRzOiBmaWVsZHMuam9pbihcIixcIikgfSA6IHt9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkppcmFcIiwgXCJnZXQgaXNzdWVcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIGZpZWxkcyBvbiBhIEppcmEgaXNzdWVcbiAgICAgKiBAc3VtbWFyeSBgUFVUYHMgdGhlIGBmaWVsZHNgIG1hcCB0byB0aGUgaXNzdWUgYW5kIHJldHVybnNcbiAgICAgKiBgeyB1cGRhdGVkOiB0cnVlLCBpc3N1ZUtleSB9YC5cbiAgICAgKiBAcGFyYW0ge0ppcmFJc3N1ZVVwZGF0ZX0gaW5wdXQgLSBUaGUgaXNzdWUga2V5IGFuZCBmaWVsZHMgdG8gdXBkYXRlLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBgeyB1cGRhdGVkOiB0cnVlLCBpc3N1ZUtleSB9YCBvbiBzdWNjZXNzLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gY3JlZGVudGlhbHMgYXJlIG1pc3NpbmcsIG9yIHRoZSBpc3N1ZSBrZXkgb3IgZmllbGRzIGFyZSBlbXB0eS5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBpc3N1ZSBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBKaXJhIHJlamVjdHMgdGhlIHVwZGF0ZS5cbiAgICAgKi9cbiAgICBhc3luYyB1cGRhdGVJc3N1ZShpbnB1dCkge1xuICAgICAgICB0aGlzLnJlcXVpcmVDcmVkZW50aWFscygpO1xuICAgICAgICBpZiAoIWlucHV0LmZpZWxkcykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJKaXJhIHVwZGF0ZUlzc3VlIHJlcXVpcmVzIGZpZWxkc1wiKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jbGllbnQucHV0KHRoaXMuaXNzdWVQYXRoKGlucHV0Lmlzc3VlS2V5KSwge1xuICAgICAgICAgICAgICAgIGZpZWxkczogaW5wdXQuZmllbGRzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4geyB1cGRhdGVkOiB0cnVlLCBpc3N1ZUtleTogaW5wdXQuaXNzdWVLZXkgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkppcmFcIiwgXCJ1cGRhdGUgaXNzdWVcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGVzIGEgSmlyYSBpc3N1ZVxuICAgICAqIEBzdW1tYXJ5IGBERUxFVEVgcyB0aGUgaXNzdWUgYW5kIHJldHVybnMgYHsgZGVsZXRlZDogdHJ1ZSwgaXNzdWVLZXkgfWAuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGlzc3VlS2V5IC0gVGhlIGlzc3VlIGtleSB0byBkZWxldGUuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IGB7IGRlbGV0ZWQ6IHRydWUsIGlzc3VlS2V5IH1gIG9uIHN1Y2Nlc3MuXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBjcmVkZW50aWFscyBhcmUgbWlzc2luZyBvciB0aGUgaXNzdWUga2V5IGlzIGVtcHR5LlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGlzc3VlIGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEppcmEgcmVqZWN0cyB0aGUgZGVsZXRpb24uXG4gICAgICovXG4gICAgYXN5bmMgZGVsZXRlSXNzdWUoaXNzdWVLZXkpIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlQ3JlZGVudGlhbHMoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmRlbGV0ZSh0aGlzLmlzc3VlUGF0aChpc3N1ZUtleSkpO1xuICAgICAgICAgICAgcmV0dXJuIHsgZGVsZXRlZDogdHJ1ZSwgaXNzdWVLZXkgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkppcmFcIiwgXCJkZWxldGUgaXNzdWVcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBZGRzIGEgY29tbWVudCB0byBhIEppcmEgaXNzdWVcbiAgICAgKiBAc3VtbWFyeSBgUE9TVGBzIHRoZSBjb21tZW50IGJvZHkgdG8gdGhlIGlzc3VlJ3MgYC9jb21tZW50YCBlbmRwb2ludC5cbiAgICAgKiBAcGFyYW0ge0ppcmFDb21tZW50SW5wdXR9IGlucHV0IC0gVGhlIGlzc3VlIGtleSBhbmQgY29tbWVudCBib2R5LlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgY3JlYXRlZCBjb21tZW50IHBheWxvYWQuXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBjcmVkZW50aWFscyBhcmUgbWlzc2luZywgb3IgdGhlIGlzc3VlIGtleSBvciBib2R5IGlzIGVtcHR5LlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGlzc3VlIGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEppcmEgcmVqZWN0cyB0aGUgY29tbWVudC5cbiAgICAgKi9cbiAgICBhc3luYyBhZGRDb21tZW50KGlucHV0KSB7XG4gICAgICAgIHRoaXMucmVxdWlyZUNyZWRlbnRpYWxzKCk7XG4gICAgICAgIGlmICghaW5wdXQuYm9keSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJKaXJhIGFkZENvbW1lbnQgcmVxdWlyZXMgYSBib2R5XCIpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoYCR7dGhpcy5pc3N1ZVBhdGgoaW5wdXQuaXNzdWVLZXkpfS9jb21tZW50YCwgeyBib2R5OiBpbnB1dC5ib2R5IH0pO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBodHRwRXJyb3IoXCJKaXJhXCIsIFwiYWRkIGNvbW1lbnRcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0cyB0aGUgYXZhaWxhYmxlIHdvcmtmbG93IHRyYW5zaXRpb25zIGZvciBhIEppcmEgaXNzdWVcbiAgICAgKiBAc3VtbWFyeSBgR0VUYHMgdGhlIGlzc3VlJ3MgYC90cmFuc2l0aW9uc2AgY29sbGVjdGlvbiwgd2hvc2UgSURzIGZlZWRcbiAgICAgKiB7QGxpbmsgSmlyYVNlcnZpY2UudHJhbnNpdGlvbklzc3VlfS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gaXNzdWVLZXkgLSBUaGUgaXNzdWUga2V5LlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgYXZhaWxhYmxlIHRyYW5zaXRpb25zIHBheWxvYWQuXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBjcmVkZW50aWFscyBhcmUgbWlzc2luZyBvciB0aGUgaXNzdWUga2V5IGlzIGVtcHR5LlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGlzc3VlIGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEppcmEgcmVqZWN0cyB0aGUgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRUcmFuc2l0aW9ucyhpc3N1ZUtleSkge1xuICAgICAgICB0aGlzLnJlcXVpcmVDcmVkZW50aWFscygpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQoYCR7dGhpcy5pc3N1ZVBhdGgoaXNzdWVLZXkpfS90cmFuc2l0aW9uc2ApO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBodHRwRXJyb3IoXCJKaXJhXCIsIFwiZ2V0IHRyYW5zaXRpb25zXCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNpdGlvbnMgYSBKaXJhIGlzc3VlIHRocm91Z2ggaXRzIHdvcmtmbG93XG4gICAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgdHJhbnNpdGlvbiBJRCB0byB0aGUgaXNzdWUncyBgL3RyYW5zaXRpb25zYCBlbmRwb2ludFxuICAgICAqIGFuZCByZXR1cm5zIHRoZSBhcHBsaWVkIHRyYW5zaXRpb24gaWRlbnRpZmllcnMuXG4gICAgICogQHBhcmFtIHtKaXJhVHJhbnNpdGlvbklucHV0fSBpbnB1dCAtIFRoZSBpc3N1ZSBrZXkgYW5kIHRyYW5zaXRpb24gSUQuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IGB7IHRyYW5zaXRpb25lZDogdHJ1ZSwgaXNzdWVLZXksIHRyYW5zaXRpb25JZCB9YCBvbiBzdWNjZXNzLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gY3JlZGVudGlhbHMgYXJlIG1pc3NpbmcsIG9yIHRoZSBpc3N1ZSBrZXkgb3IgdHJhbnNpdGlvbiBJRCBpcyBlbXB0eS5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBpc3N1ZSBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBKaXJhIHJlamVjdHMgdGhlIHRyYW5zaXRpb24uXG4gICAgICovXG4gICAgYXN5bmMgdHJhbnNpdGlvbklzc3VlKGlucHV0KSB7XG4gICAgICAgIHRoaXMucmVxdWlyZUNyZWRlbnRpYWxzKCk7XG4gICAgICAgIGlmICghaW5wdXQudHJhbnNpdGlvbklkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkppcmEgdHJhbnNpdGlvbklzc3VlIHJlcXVpcmVzIGEgdHJhbnNpdGlvbiBpZFwiKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jbGllbnQucG9zdChgJHt0aGlzLmlzc3VlUGF0aChpbnB1dC5pc3N1ZUtleSl9L3RyYW5zaXRpb25zYCwge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHsgaWQ6IGlucHV0LnRyYW5zaXRpb25JZCB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25lZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpc3N1ZUtleTogaW5wdXQuaXNzdWVLZXksXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbklkOiBpbnB1dC50cmFuc2l0aW9uSWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgaHR0cEVycm9yKFwiSmlyYVwiLCBcInRyYW5zaXRpb24gaXNzdWVcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZWFyY2hlcyBKaXJhIGlzc3VlcyB3aXRoIEpRTFxuICAgICAqIEBzdW1tYXJ5IGBQT1NUYHMgdGhlIEpRTCBxdWVyeSB0byBgL3Jlc3QvYXBpLzIvc2VhcmNoYCB3aXRoIGEgcmVzdWx0IGNhcFxuICAgICAqIChkZWZhdWx0IGA1MGApIGFuZCBvcHRpb25hbCBmaWVsZCBwcm9qZWN0aW9uLlxuICAgICAqIEBwYXJhbSB7SmlyYVNlYXJjaElucHV0fSBpbnB1dCAtIFRoZSBKUUwgcXVlcnkgYW5kIHNlYXJjaCBvcHRpb25zLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgc2VhcmNoIHJlc3VsdCBwYXlsb2FkLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gY3JlZGVudGlhbHMgYXJlIG1pc3Npbmcgb3IgdGhlIEpRTCBxdWVyeSBpcyBlbXB0eS5cbiAgICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gdGhlIEpRTCBxdWVyeSBpcyBpbnZhbGlkLlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHNcbiAgICAgKiBjb25zdCByZXN1bHRzID0gYXdhaXQgamlyYS5zZWFyY2goe1xuICAgICAqICAganFsOiAncHJvamVjdCA9IFwiT1BTXCIgQU5EIHN0YXR1cyA9IFwiT3BlblwiJyxcbiAgICAgKiAgIG1heFJlc3VsdHM6IDEwMCxcbiAgICAgKiAgIGZpZWxkczogW1wic3VtbWFyeVwiLCBcInN0YXR1c1wiXSxcbiAgICAgKiB9KTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBhc3luYyBzZWFyY2goaW5wdXQpIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlQ3JlZGVudGlhbHMoKTtcbiAgICAgICAgaWYgKCFpbnB1dC5qcWwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSmlyYSBzZWFyY2ggcmVxdWlyZXMgYSBKUUwgcXVlcnlcIik7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdChcIi9yZXN0L2FwaS8yL3NlYXJjaFwiLCB7XG4gICAgICAgICAgICAgICAganFsOiBpbnB1dC5qcWwsXG4gICAgICAgICAgICAgICAgbWF4UmVzdWx0czogaW5wdXQubWF4UmVzdWx0cyA/PyA1MCxcbiAgICAgICAgICAgICAgICAuLi4oaW5wdXQuZmllbGRzID8geyBmaWVsZHM6IGlucHV0LmZpZWxkcyB9IDoge30pLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkppcmFcIiwgXCJzZWFyY2ggaXNzdWVzXCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVNtbHlZVk5sY25acFkyVXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12YVc4dmFtbHlZUzlLYVhKaFUyVnlkbWxqWlM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRVHM3T3pzN096czdPenM3T3p0SFFXRkhPMEZCUTBnc1QwRkJUeXhGUVVGRkxHRkJRV0VzUlVGQlJTeE5RVUZOTEhsQ1FVRjVRaXhEUVVGRE8wRkJRM2hFTEU5QlFVOHNSVUZCUlN4aFFVRmhMRVZCUVVVc05FSkJRWFZDTzBGQlF5OURMRTlCUVU4c1JVRkJSU3hUUVVGVExFVkJRVVVzVTBGQlV5eEZRVUZGTERKRFFVRnpRenRCUVVOeVJTeFBRVUZQTEVWQlEwd3NZMEZCWXl4RlFVVmtMRk5CUVZNc1IwRkRWaXh4UTBGQk1FSTdRVUVyU0ROQ0xHZEdRVUZuUmp0QlFVTm9SaXhOUVVGTkxHdENRVUZyUWl4SFFVRkhMRTFCUVUwc1EwRkJRenRCUVVWc1F6czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRIUVhkRFJ6dEJRVU5JTEUxQlFVMHNUMEZCVHl4WFFVRlpMRk5CUVZFc1kwRkJhVU03U1VGQmJFVTdPMUZCUTBVN08xZEJSVWM3VVVGRFowSXNaMEpCUVZjc1IwRkJSeXhOUVVGTkxFTkJRVU03U1VGeFV6RkRMRU5CUVVNN1NVRnVVME03T3pzN08wOUJTMGM3U1VGRFR5eGpRVUZqTzFGQlEzUkNMRTlCUVU4c1JVRkJSU3hEUVVGRE8wbEJRMW9zUTBGQlF6dEpRVVZFT3pzN096czdPMDlCVDBjN1NVRkRUeXhYUVVGWExFTkJRVU1zVFVGQmVVSTdVVUZETjBNc1NVRkJTU3hOUVVGTkxFTkJRVU1zVVVGQlVTeEpRVUZKTEUxQlFVMHNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJRenRaUVVOd1F5eE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVONlFpeEhRVUZITEUxQlFVMHNRMEZCUXl4UlFVRlJMRWxCUVVrc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVU53UXl4TlFVRk5MRU5CUTFBc1EwRkJReXhSUVVGUkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdXVUZEY2tJc1QwRkJUenRuUWtGRFRDeGhRVUZoTEVWQlFVVXNVMEZCVXl4UFFVRlBMRVZCUVVVN1owSkJRMnBETEUxQlFVMHNSVUZCUlN4clFrRkJhMEk3WVVGRE0wSXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkRSQ3hQUVVGUExFMUJRVTBzUTBGQlF5eExRVUZMTzFsQlEycENMRU5CUVVNc1EwRkJReXhGUVVGRkxHRkJRV0VzUlVGQlJTeFZRVUZWTEUxQlFVMHNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hOUVVGTkxFVkJRVVVzYTBKQlFXdENMRVZCUVVVN1dVRkRla1VzUTBGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEVOQlFVTTdTVUZEY2tNc1EwRkJRenRKUVVWRU96czdPenM3VDBGTlJ6dEpRVU5QTEhGQ1FVRnhRanRSUVVNM1FpeE5RVUZOTEVkQlFVY3NSMEZCUnl4aFFVRmhMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF6dFJRVU5zUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zUjBGQlJ5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNCRExFbEJRVWtzUTBGQlF5eExRVUZMTzFsQlFVVXNUMEZCVHl4VFFVRlRMRU5CUVVNN1VVRkROMElzVDBGQlR6dFpRVU5NTEV0QlFVczdXVUZEVEN4UlFVRlJMRVZCUVVVc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTTdXVUZEYWtNc1QwRkJUeXhGUVVGRkxGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRPMWxCUXk5Q0xFOUJRVThzUlVGQlJTeFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJRenRUUVVOb1F5eERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVPenM3T3p0UFFVdEhPMGxCUTA4c2EwSkJRV3RDTzFGQlF6RkNMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMWxCUTNaQ0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNORUpCUVRSQ0xFTkJRVU1zUTBGQlF6dFJRVU40UkN4RFFVRkRPMUZCUTBRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1dVRkRla0lzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl3d1FrRkJNRUlzUTBGQlF5eERRVUZETzFGQlEzUkVMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wbEJSVVE3T3pzN096czdUMEZQUnp0SlFVTkxMRk5CUVZNc1EwRkJReXhSUVVGblFqdFJRVU5vUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU03V1VGRFpDeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMRFJDUVVFMFFpeERRVUZETEVOQlFVTTdVVUZEZUVRc1EwRkJRenRSUVVORUxFOUJRVThzY1VKQlFYRkNMR3RDUVVGclFpeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMRU5CUVVNN1NVRkROMFFzUTBGQlF6dEpRVVZFT3pzN096czdPenRQUVZGSE8wbEJRMGdzUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRnhRanRSUVVOeVF5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF6dFJRVU14UWl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGVkJRVlVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRaUVVONFF5eE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVTnlRaXh4UkVGQmNVUXNRMEZEZEVRc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRFJDeEpRVUZKTEVOQlFVTTdXVUZEU0N4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTzJkQ1FVTXpSQ3hOUVVGTkxFVkJRVVU3YjBKQlEwNHNUMEZCVHl4RlFVRkZMRVZCUVVVc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFZRVUZWTEVWQlFVVTdiMEpCUTJ4RExFOUJRVThzUlVGQlJTeExRVUZMTEVOQlFVTXNUMEZCVHp0dlFrRkRkRUlzVTBGQlV5eEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhUUVVGVExFbEJRVWtzYTBKQlFXdENMRVZCUVVVN2IwSkJRekZFTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEZkQlFWY3NSVUZCUlN4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXp0dlFrRkRhRVVzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRWxCUVVrc1JVRkJSU3hEUVVGRE8ybENRVU40UWp0aFFVTkdMRU5CUVVNc1EwRkJRenRaUVVOSUxFOUJRVThzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXp0UlFVTjJRaXhEUVVGRE8xRkJRVU1zVDBGQlR5eExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTm1MRTFCUVUwc1UwRkJVeXhEUVVGRExFMUJRVTBzUlVGQlJTeGpRVUZqTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRha1FzUTBGQlF6dEpRVU5JTEVOQlFVTTdTVUZGUkRzN096czdPenM3T3p0UFFWVkhPMGxCUTBnc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZuUWl4RlFVRkZMRTFCUVdsQ08xRkJRMmhFTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUlVGQlJTeERRVUZETzFGQlF6RkNMRWxCUVVrc1EwRkJRenRaUVVOSUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSVHRuUWtGREwwUXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVHRoUVVNelJDeERRVUZETEVOQlFVTTdXVUZEU0N4UFFVRlBMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU03VVVGRGRrSXNRMEZCUXp0UlFVRkRMRTlCUVU4c1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRFppeE5RVUZOTEZOQlFWTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1YwRkJWeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlF6bERMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wbEJSVVE3T3pzN096czdPenRQUVZOSE8wbEJRMGdzUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRnpRanRSUVVOMFF5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF6dFJRVU14UWl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzFsQlEyeENMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zYTBOQlFXdERMRU5CUVVNc1EwRkJRenRSUVVNNVJDeERRVUZETzFGQlEwUXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlR0blFrRkRjRVFzVFVGQlRTeEZRVUZGTEV0QlFVc3NRMEZCUXl4TlFVRk5PMkZCUTNKQ0xFTkJRVU1zUTBGQlF6dFpRVU5JTEU5QlFVOHNSVUZCUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxGRkJRVkVzUlVGQlJTeExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNN1VVRkRja1FzUTBGQlF6dFJRVUZETEU5QlFVOHNTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRaaXhOUVVGTkxGTkJRVk1zUTBGQlF5eE5RVUZOTEVWQlFVVXNZMEZCWXl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMnBFTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlVRN096czdPenM3TzA5QlVVYzdTVUZEU0N4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExGRkJRV2RDTzFGQlEyaERMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRPMUZCUXpGQ0xFbEJRVWtzUTBGQlF6dFpRVU5JTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMjVFTEU5QlFVOHNSVUZCUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxGRkJRVkVzUlVGQlJTeERRVUZETzFGQlEzSkRMRU5CUVVNN1VVRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETzFsQlEyWXNUVUZCVFN4VFFVRlRMRU5CUVVNc1RVRkJUU3hGUVVGRkxHTkJRV01zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTnFSQ3hEUVVGRE8wbEJRMGdzUTBGQlF6dEpRVVZFT3pzN096czdPenRQUVZGSE8wbEJRMGdzUzBGQlN5eERRVUZETEZWQlFWVXNRMEZCUXl4TFFVRjFRanRSUVVOMFF5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF6dFJRVU14UWl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFsQlEyaENMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zYVVOQlFXbERMRU5CUVVNc1EwRkJRenRSUVVNM1JDeERRVUZETzFGQlEwUXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkRja01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeEZRVU16UXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlEzSkNMRU5CUVVNN1dVRkRSaXhQUVVGUExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTTdVVUZEZGtJc1EwRkJRenRSUVVGRExFOUJRVThzUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEWml4TlFVRk5MRk5CUVZNc1EwRkJReXhOUVVGTkxFVkJRVVVzWVVGQllTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTJoRUxFTkJRVU03U1VGRFNDeERRVUZETzBsQlJVUTdPenM3T3pzN096dFBRVk5ITzBsQlEwZ3NTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkJReXhSUVVGblFqdFJRVU51UXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXp0UlFVTXhRaXhKUVVGSkxFTkJRVU03V1VGRFNDeE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVU53UXl4SFFVRkhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEdOQlFXTXNRMEZETVVNc1EwRkJRenRaUVVOR0xFOUJRVThzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXp0UlFVTjJRaXhEUVVGRE8xRkJRVU1zVDBGQlR5eExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTm1MRTFCUVUwc1UwRkJVeXhEUVVGRExFMUJRVTBzUlVGQlJTeHBRa0ZCYVVJc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU53UkN4RFFVRkRPMGxCUTBnc1EwRkJRenRKUVVWRU96czdPenM3T3pzN1QwRlRSenRKUVVOSUxFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTXNTMEZCTUVJN1VVRkRPVU1zU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhGUVVGRkxFTkJRVU03VVVGRE1VSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF6dFpRVU40UWl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExDdERRVUVyUXl4RFFVRkRMRU5CUVVNN1VVRkRNMFVzUTBGQlF6dFJRVU5FTEVsQlFVa3NRMEZCUXp0WlFVTklMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNZMEZCWXl4RlFVRkZPMmRDUVVOMFJTeFZRVUZWTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1MwRkJTeXhEUVVGRExGbEJRVmtzUlVGQlJUdGhRVU4yUXl4RFFVRkRMRU5CUVVNN1dVRkRTQ3hQUVVGUE8yZENRVU5NTEZsQlFWa3NSVUZCUlN4SlFVRkpPMmRDUVVOc1FpeFJRVUZSTEVWQlFVVXNTMEZCU3l4RFFVRkRMRkZCUVZFN1owSkJRM2hDTEZsQlFWa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1dVRkJXVHRoUVVOcVF5eERRVUZETzFGQlEwb3NRMEZCUXp0UlFVRkRMRTlCUVU4c1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRFppeE5RVUZOTEZOQlFWTXNRMEZCUXl4TlFVRk5MRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRja1FzUTBGQlF6dEpRVU5JTEVOQlFVTTdTVUZGUkRzN096czdPenM3T3pzN096czdPenRQUVdkQ1J6dEpRVU5JTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJjMEk3VVVGRGFrTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEVOQlFVTTdVVUZETVVJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTm1MRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zYTBOQlFXdERMRU5CUVVNc1EwRkJRenRSUVVNNVJDeERRVUZETzFGQlEwUXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXh2UWtGQmIwSXNSVUZCUlR0blFrRkROVVFzUjBGQlJ5eEZRVUZGTEV0QlFVc3NRMEZCUXl4SFFVRkhPMmRDUVVOa0xGVkJRVlVzUlVGQlJTeExRVUZMTEVOQlFVTXNWVUZCVlN4SlFVRkpMRVZCUVVVN1owSkJRMnhETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXp0aFFVTnNSQ3hEUVVGRExFTkJRVU03V1VGRFNDeFBRVUZQTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNN1VVRkRka0lzUTBGQlF6dFJRVUZETEU5QlFVOHNTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRaaXhOUVVGTkxGTkJRVk1zUTBGQlF5eE5RVUZOTEVWQlFVVXNaVUZCWlN4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMnhFTEVOQlFVTTdTVUZEU0N4RFFVRkRPME5CUTBZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaXBjYmlBcUlFQnRiMlIxYkdVZ2FXNTBaV2R5WVhScGIyNXpMMmx2TDJwcGNtRXZjMlZ5ZG1salpWeHVJQ29nUUhOMWJXMWhjbmtnU21seVlTQlNSVk5VSUVGUVNTQnBiblJsWjNKaGRHbHZiaUJ6WlhKMmFXTmxJR1p2Y2lCcGMzTjFaWE1zSUdOdmJXMWxiblJ6TENCaGJtUWdkMjl5YTJac2IzZHpMbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRVY0Y0c5elpYTWdTbWx5WVNCcGMzTjFaU0J2Y0dWeVlYUnBiMjV6SUNoamNtVmhkR1VzSUhKbFlXUXNJSFZ3WkdGMFpTd2daR1ZzWlhSbExGeHVJQ29nWTI5dGJXVnVkQ3dnZEhKaGJuTnBkR2x2Yml3Z1lXNWtJRXBSVENCelpXRnlZMmdwSUhSb2NtOTFaMmdnZEdobElFcHBjbUVnVWtWVFZDQmdZWEJwTHpKZ0lITjFjbVpoWTJVZ1lYTmNiaUFxSUdGdUlIVnVaR1ZqYjNKaGRHVmtJR05zYVdWdWRDMWlZWE5sWkNCelpYSjJhV05sSUdKMWFXeDBJRzl1SUh0QWJHbHVheUJJZEhSd1FYQnBVMlZ5ZG1salpYMHVYRzRnS2lCRGIyNW1hV2QxY21GMGFXOXVJR052YldWeklHWnliMjBnWVc0Z1pYaHdiR2xqYVhRZ1lFcHBjbUZUWlhKMmFXTmxRMjl1Wm1sbllDQnZjaUIwYUdVZ1lHbHZMbXBwY21GZ1hHNGdLaUJsYm5acGNtOXViV1Z1ZENCemJHbGpaUzRnVjJobGJpQmliM1JvSUdCMWMyVnlibUZ0WldBZ1lXNWtJR0IwYjJ0bGJtQWdZWEpsSUdOdmJtWnBaM1Z5WldRZ2RHaGxYRzRnS2lCelpYSjJhV05sSUhObGJtUnpJRWhVVkZBZ1FtRnphV01nWVhWMGFHVnVkR2xqWVhScGIyNGdLRUZRU1NCMGIydGxiaUJoY3lCMGFHVWdjR0Z6YzNkdmNtUXBPMXh1SUNvZ2IzUm9aWEozYVhObElIUm9aU0IwYjJ0bGJpQnBjeUJ6Wlc1MElHRnpJR0VnWW1WaGNtVnlJSFJ2YTJWdUxpQlVhR1VnYzJsMFpTQmdZbUZ6WlZWeWJHQWdhWE5jYmlBcUlISmxjWFZwY21Wa0xpQkRjbVZrWlc1MGFXRnNjeUJoY21VZ2NtVm1aWEpsYm1ObFpDQm1jbTl0SUdOdmJtWnBaM1Z5WVhScGIyNGdLR0Z1WkN3Z1puSnZiU0JoY3kxbmNtRndhRnh1SUNvZ2JtOWtaWE1zSUdaeWIyMGdkR2hsSUhKbGMyOXNkbVZrSUdCcWFYSmhZQ0JqY21Wa1pXNTBhV0ZzSUhObFkzSmxkQ2tnWVc1a0lHRnlaU0J1WlhabGNpQmxiV0psWkdSbFpDQnBibHh1SUNvZ2MyOTFjbU5sTGlCR1lXbHNkWEpsY3lCaGNtVWdiV0Z3Y0dWa0lIUnZJR1JsWTJGbUlHVnljbTl5Y3lCMmFXRWdlMEJzYVc1cklHaDBkSEJGY25KdmNuMHVYRzRnS2k5Y2JtbHRjRzl5ZENCN0lFbHVkR1Z5Ym1Gc1JYSnliM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSaUxXUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0I3SUVsdlJXNTJhWEp2Ym0xbGJuUWdmU0JtY205dElGd2lMaTR2Wlc1MmFYSnZibTFsYm5SY0lqdGNibWx0Y0c5eWRDQjdJR1Z1ZGs1MWJXSmxjaXdnWlc1MlUzUnlhVzVuSUgwZ1puSnZiU0JjSWk0dUx5NHVMM05vWVhKbFpDOWxiblpwY205dWJXVnVkRlpoYkhWbFhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCSWRIUndRWEJwVTJWeWRtbGpaU3hjYmlBZ2RIbHdaU0JJZEhSd1FYQnBVMlZ5ZG1salpVTnZibVpwWnl4Y2JpQWdhSFIwY0VWeWNtOXlMRnh1ZlNCbWNtOXRJRndpTGk0dkxpNHZjMmhoY21Wa0wyaDBkSEJjSWp0Y2JseHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTI5dVptbG5kWEpoZEdsdmJpQm1iM0lnZEdobElFcHBjbUVnYzJWeWRtbGpaVnh1SUNvZ1FITjFiVzFoY25rZ1JYaDBaVzVrY3lCN1FHeHBibXNnU0hSMGNFRndhVk5sY25acFkyVkRiMjVtYVdkOUlIZHBkR2dnZEdobElFRlFTU0JnZEc5clpXNWdMQ0IwYUdWY2JpQXFJRzl3ZEdsdmJtRnNJR0IxYzJWeWJtRnRaV0FnZEdoaGRDQmxibUZpYkdWeklFSmhjMmxqSUdGMWRHaGxiblJwWTJGMGFXOXVMQ0JoYm1RZ2RHaGxJSEpsY1hWcGNtVmtJSE5wZEdWY2JpQXFJR0JpWVhObFZYSnNZQzRnVjJobGJpQnZiV2wwZEdWa0xDQjBhR1VnWUdsdkxtcHBjbUZnSUdWdWRtbHliMjV0Wlc1MElITnNhV05sSUhOMWNIQnNhV1Z6SUhSb1pTQnpZVzFsWEc0Z0tpQjJZV3gxWlhNZ0tIQnNkWE1nYjNCMGFXOXVZV3dnWUhScGJXVnZkWFJnS1M1Y2JpQXFJRUJqWVhSbFoyOXllU0JKVDF4dUlDb2dRRzFsYldKbGNrOW1JRzF2WkhWc1pUcHBiblJsWjNKaGRHbHZibk12YVc4dmFtbHlZUzl6WlhKMmFXTmxYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1NtbHlZVk5sY25acFkyVkRiMjVtYVdjZ1pYaDBaVzVrY3lCSWRIUndRWEJwVTJWeWRtbGpaVU52Ym1acFp5QjdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdTbWx5WVNCQlVFa2dkRzlyWlc1Y2JpQWdJQ29nUUhOMWJXMWhjbmtnVlhObFpDQmhjeUIwYUdVZ1FtRnphV010WVhWMGFDQndZWE56ZDI5eVpDQjNhR1Z1SUdCMWMyVnlibUZ0WldBZ2FYTWdjMlYwTENCdmRHaGxjbmRwYzJVZ1lYTWdZU0JpWldGeVpYSWdkRzlyWlc0dVhHNGdJQ0FxTDF4dUlDQjBiMnRsYmo4NklITjBjbWx1Wnp0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCS2FYSmhJR0ZqWTI5MWJuUWdkWE5sY201aGJXVWdabTl5SUVKaGMybGpJR0YxZEdobGJuUnBZMkYwYVc5dVhHNGdJQ0FxTDF4dUlDQjFjMlZ5Ym1GdFpUODZJSE4wY21sdVp6dGNibjFjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdTVzV3ZFhRZ1ptOXlJR055WldGMGFXNW5JR0VnU21seVlTQnBjM04xWlZ4dUlDb2dRSE4xYlcxaGNua2dRMkZ5Y21sbGN5QjBhR1VnZEdGeVoyVjBJR0J3Y205cVpXTjBTMlY1WUN3Z2FYTnpkV1VnWUhOMWJXMWhjbmxnTENCdmNIUnBiMjVoYkZ4dUlDb2dZR2x6YzNWbFZIbHdaV0FnS0dSbFptRjFiSFFnWUZSaGMydGdLU3dnWUdSbGMyTnlhWEIwYVc5dVlDd2dZVzVrSUdGa1pHbDBhVzl1WVd3Z2NtRjNJR0JtYVdWc1pITmdYRzRnS2lCdFpYSm5aV1FnYVc1MGJ5QjBhR1VnWTNKbFlYUmxJSEJoZVd4dllXUXVYRzRnS2lCQVkyRjBaV2R2Y25rZ1NVOWNiaUFxSUVCdFpXMWlaWEpQWmlCdGIyUjFiR1U2YVc1MFpXZHlZWFJwYjI1ekwybHZMMnBwY21FdmMyVnlkbWxqWlZ4dUlDb3ZYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRXBwY21GSmMzTjFaVWx1Y0hWMElIdGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlFjbTlxWldOMElHdGxlU0IwYUdGMElHOTNibk1nZEdobElHNWxkeUJwYzNOMVpWeHVJQ0FnS2k5Y2JpQWdjSEp2YW1WamRFdGxlVG9nYzNSeWFXNW5PMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRWx6YzNWbElITjFiVzFoY25sY2JpQWdJQ292WEc0Z0lITjFiVzFoY25rNklITjBjbWx1Wnp0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCSmMzTjFaU0IwZVhCbElHNWhiV1VnS0dSbFptRjFiSFFnWUZSaGMydGdLVnh1SUNBZ0tpOWNiaUFnYVhOemRXVlVlWEJsUHpvZ2MzUnlhVzVuTzF4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVsemMzVmxJR1JsYzJOeWFYQjBhVzl1WEc0Z0lDQXFMMXh1SUNCa1pYTmpjbWx3ZEdsdmJqODZJSE4wY21sdVp6dGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkJaR1JwZEdsdmJtRnNJRXBwY21FZ1ptbGxiR1J6SUcxbGNtZGxaQ0JwYm5SdklIUm9aU0JqY21WaGRHVWdjR0Y1Ykc5aFpGeHVJQ0FnS2k5Y2JpQWdabWxsYkdSelB6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2RXNXJibTkzYmo0N1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFbHVjSFYwSUdadmNpQjFjR1JoZEdsdVp5QmhJRXBwY21FZ2FYTnpkV1ZjYmlBcUlFQnpkVzF0WVhKNUlFTmhjbkpwWlhNZ2RHaGxJSFJoY21kbGRDQmdhWE56ZFdWTFpYbGdJR0Z1WkNCMGFHVWdZR1pwWld4a2MyQWdiV0Z3SUhSdklIVndaR0YwWlM1Y2JpQXFJRUJqWVhSbFoyOXllU0JKVDF4dUlDb2dRRzFsYldKbGNrOW1JRzF2WkhWc1pUcHBiblJsWjNKaGRHbHZibk12YVc4dmFtbHlZUzl6WlhKMmFXTmxYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1NtbHlZVWx6YzNWbFZYQmtZWFJsSUh0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCSmMzTjFaU0JyWlhrZ2RHOGdkWEJrWVhSbElDaGxMbWN1SUdCY0lsTkJRUzB4TWpOY0ltQXBYRzRnSUNBcUwxeHVJQ0JwYzNOMVpVdGxlVG9nYzNSeWFXNW5PMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRVpwWld4a2N5QjBieUIxY0dSaGRHVmNiaUFnSUNvdlhHNGdJR1pwWld4a2N6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2RXNXJibTkzYmo0N1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFbHVjSFYwSUdadmNpQmpiMjF0Wlc1MGFXNW5JRzl1SUdFZ1NtbHlZU0JwYzNOMVpWeHVJQ29nUUhOMWJXMWhjbmtnUTJGeWNtbGxjeUIwYUdVZ2RHRnlaMlYwSUdCcGMzTjFaVXRsZVdBZ1lXNWtJSFJvWlNCamIyMXRaVzUwSUdCaWIyUjVZQzVjYmlBcUlFQmpZWFJsWjI5eWVTQkpUMXh1SUNvZ1FHMWxiV0psY2s5bUlHMXZaSFZzWlRwcGJuUmxaM0poZEdsdmJuTXZhVzh2YW1seVlTOXpaWEoyYVdObFhHNGdLaTljYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnU21seVlVTnZiVzFsYm5SSmJuQjFkQ0I3WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnU1hOemRXVWdhMlY1SUhSdklHTnZiVzFsYm5RZ2IyNWNiaUFnSUNvdlhHNGdJR2x6YzNWbFMyVjVPaUJ6ZEhKcGJtYzdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdRMjl0YldWdWRDQmliMlI1WEc0Z0lDQXFMMXh1SUNCaWIyUjVPaUJ6ZEhKcGJtYzdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRWx1Y0hWMElHWnZjaUIwY21GdWMybDBhVzl1YVc1bklHRWdTbWx5WVNCcGMzTjFaVnh1SUNvZ1FITjFiVzFoY25rZ1EyRnljbWxsY3lCMGFHVWdkR0Z5WjJWMElHQnBjM04xWlV0bGVXQWdZVzVrSUhSb1pTQjNiM0pyWm14dmR5QmdkSEpoYm5OcGRHbHZia2xrWUM1Y2JpQXFJRUJqWVhSbFoyOXllU0JKVDF4dUlDb2dRRzFsYldKbGNrOW1JRzF2WkhWc1pUcHBiblJsWjNKaGRHbHZibk12YVc4dmFtbHlZUzl6WlhKMmFXTmxYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1NtbHlZVlJ5WVc1emFYUnBiMjVKYm5CMWRDQjdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdTWE56ZFdVZ2EyVjVJSFJ2SUhSeVlXNXphWFJwYjI1Y2JpQWdJQ292WEc0Z0lHbHpjM1ZsUzJWNU9pQnpkSEpwYm1jN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1YyOXlhMlpzYjNjZ2RISmhibk5wZEdsdmJpQkpSRnh1SUNBZ0tpOWNiaUFnZEhKaGJuTnBkR2x2Ymtsa09pQnpkSEpwYm1jN1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFbHVjSFYwSUdadmNpQmhJRXBwY21FZ1NsRk1JSE5sWVhKamFGeHVJQ29nUUhOMWJXMWhjbmtnUTJGeWNtbGxjeUIwYUdVZ1lHcHhiR0FnY1hWbGNua3NJR0Z1SUc5d2RHbHZibUZzSUhKbGMzVnNkQ0JqWVhBZ0tHUmxabUYxYkhRZ1lEVXdZQ2tzSUdGdVpGeHVJQ29nWVc0Z2IzQjBhVzl1WVd3Z2JHbHpkQ0J2WmlCZ1ptbGxiR1J6WUNCMGJ5QndjbTlxWldOMExseHVJQ29nUUdOaGRHVm5iM0o1SUVsUFhHNGdLaUJBYldWdFltVnlUMllnYlc5a2RXeGxPbWx1ZEdWbmNtRjBhVzl1Y3k5cGJ5OXFhWEpoTDNObGNuWnBZMlZjYmlBcUwxeHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkthWEpoVTJWaGNtTm9TVzV3ZFhRZ2UxeHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFcFJUQ0J4ZFdWeWVTQmxlSEJ5WlhOemFXOXVYRzRnSUNBcUwxeHVJQ0JxY1d3NklITjBjbWx1Wnp0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCTllYaHBiWFZ0SUc1MWJXSmxjaUJ2WmlCeVpYTjFiSFJ6SUNoa1pXWmhkV3gwSUdBMU1HQXBYRzRnSUNBcUwxeHVJQ0J0WVhoU1pYTjFiSFJ6UHpvZ2JuVnRZbVZ5TzF4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVacFpXeGtJRzVoYldWeklIUnZJR2x1WTJ4MVpHVWdhVzRnZEdobElISmxjM1ZzZEhOY2JpQWdJQ292WEc0Z0lHWnBaV3hrY3o4NklITjBjbWx1WjF0ZE8xeHVmVnh1WEc0dktpb2dSR1ZtWVhWc2RDQnBjM04xWlNCMGVYQmxJSGR5YVhSMFpXNGdkMmhsYmlCaElHTnlaV0YwWlNCa2IyVnpJRzV2ZENCemNHVmphV1o1SUc5dVpTQW9ZRndpVkdGemExd2lZQ2t1SUNvdlhHNWpiMjV6ZENCRVJVWkJWVXhVWDBsVFUxVkZYMVJaVUVVZ1BTQmNJbFJoYzJ0Y0lqdGNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1NtbHlZU0JTUlZOVUlFRlFTU0JwYm5SbFozSmhkR2x2YmlCelpYSjJhV05sWEc0Z0tpQkFjM1Z0YldGeWVTQkJiaUIxYm1SbFkyOXlZWFJsWkNCSVZGUlFJSE5sY25acFkyVWdabTl5SUdsemMzVmxJRU5TVlVRc0lHTnZiVzFsYm5SekxDQjNiM0pyWm14dmQxeHVJQ29nZEhKaGJuTnBkR2x2Ym5Nc0lHRnVaQ0JLVVV3Z2MyVmhjbU5vTGlCVWFHVWdjMmwwWlNCaVlYTmxJRlZTVENCaGJtUWdRVkJKSUhSdmEyVnVJR0Z5WlNCeVpYRjFhWEpsWkR0Y2JpQXFJSE4xY0hCc2VXbHVaeUJoSUdCMWMyVnlibUZ0WldBZ2MzZHBkR05vWlhNZ1lYVjBhR1Z1ZEdsallYUnBiMjRnZEc4Z1FtRnphV01zSUdGdVpDQjBjbUZ1YzNCdmNuUmNiaUFxSUdaaGFXeDFjbVZ6SUdGeVpTQnRZWEJ3WldRZ2RHOGdaR1ZqWVdZZ1pYSnliM0p6SUhacFlTQjdRR3hwYm1zZ2FIUjBjRVZ5Y205eWZTNWNiaUFxSUVCamJHRnpjeUJLYVhKaFUyVnlkbWxqWlZ4dUlDb2dRR1Y0ZEdWdVpITWdTSFIwY0VGd2FWTmxjblpwWTJWY2JpQXFJRUJqWVhSbFoyOXllU0JKVDF4dUlDb2dRR1Y0WVcxd2JHVmNiaUFxSUdCZ1lIUnpYRzRnS2lCcGJYQnZjblFnZXlCS2FYSmhVMlZ5ZG1salpTQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZhVzUwWldkeVlYUnBiMjV6TDJsdkwycHBjbUZjSWp0Y2JpQXFYRzRnS2lCamIyNXpkQ0JxYVhKaElEMGdibVYzSUVwcGNtRlRaWEoyYVdObEtDazdYRzRnS2lCaGQyRnBkQ0JxYVhKaExtbHVhWFJwWVd4cGVtVW9lMXh1SUNvZ0lDQmlZWE5sVlhKc09pQmNJbWgwZEhCek9pOHZaWGhoYlhCc1pTNWhkR3hoYzNOcFlXNHVibVYwWENJc1hHNGdLaUFnSUhWelpYSnVZVzFsT2lCd2NtOWpaWE56TG1WdWRpNUtTVkpCWDFWVFJWSk9RVTFGTEZ4dUlDb2dJQ0IwYjJ0bGJqb2djSEp2WTJWemN5NWxibll1UjFKQlVFaGZRMUpGUkVWT1ZFbEJURjlLU1ZKQlgxUlBTMFZPTEZ4dUlDb2dmU2s3WEc0Z0tpQmpiMjV6ZENCcGMzTjFaU0E5SUdGM1lXbDBJR3BwY21FdVkzSmxZWFJsU1hOemRXVW9lMXh1SUNvZ0lDQndjbTlxWldOMFMyVjVPaUJjSWs5UVUxd2lMRnh1SUNvZ0lDQnpkVzF0WVhKNU9pQmNJa1JsY0d4dmVXMWxiblFnWm1GcGJHVmtYQ0lzWEc0Z0tpQjlLVHRjYmlBcUlHQmdZRnh1SUNvZ1FHMWxjbTFoYVdSY2JpQXFJSE5sY1hWbGJtTmxSR2xoWjNKaGJWeHVJQ29nSUNCaGRYUnZiblZ0WW1WeVhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElFTmhiR3hsY2x4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCVFpYSjJhV05sSUdGeklFcHBjbUZUWlhKMmFXTmxYRzRnS2lBZ0lIQmhjblJwWTJsd1lXNTBJRUZRU1NCaGN5QkthWEpoSUZKRlUxUWdRVkJKWEc0Z0tpQWdJRU5oYkd4bGNpMCtQbE5sY25acFkyVTZJR055WldGMFpVbHpjM1ZsS0dsdWNIVjBLVnh1SUNvZ0lDQmhZM1JwZG1GMFpTQlRaWEoyYVdObFhHNGdLaUFnSUZObGNuWnBZMlV0UGo1VFpYSjJhV05sT2lCeVpYRjFhWEpsUTNKbFpHVnVkR2xoYkhNb0tWeHVJQ29nSUNCVFpYSjJhV05sTFQ0K1FWQkpPaUJRVDFOVUlDOXlaWE4wTDJGd2FTOHlMMmx6YzNWbFhHNGdLaUFnSUdGamRHbDJZWFJsSUVGUVNWeHVJQ29nSUNCQlVFa3RMVDQrVTJWeWRtbGpaVG9nZXlCcFpDd2dhMlY1SUgxY2JpQXFJQ0FnWkdWaFkzUnBkbUYwWlNCQlVFbGNiaUFxSUNBZ1UyVnlkbWxqWlMwdFBqNURZV3hzWlhJNklHTnlaV0YwWldRZ2FYTnpkV1ZjYmlBcUlDQWdaR1ZoWTNScGRtRjBaU0JUWlhKMmFXTmxYRzRnS2lCQWJXVnRZbVZ5VDJZZ2JXOWtkV3hsT21sdWRHVm5jbUYwYVc5dWN5OXBieTlxYVhKaEwzTmxjblpwWTJWY2JpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklFcHBjbUZUWlhKMmFXTmxJR1Y0ZEdWdVpITWdTSFIwY0VGd2FWTmxjblpwWTJVOFNtbHlZVk5sY25acFkyVkRiMjVtYVdjK0lIdGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlVhR1VnY0hKdmRtbGtaWElnYm1GdFpTQjFjMlZrSUdsdUlHVnljbTl5SUcxbGMzTmhaMlZ6WEc0Z0lDQXFMMXh1SUNCd2NtOTBaV04wWldRZ2NtVmhaRzl1YkhrZ2MyVnlkbWxqWlU1aGJXVWdQU0JjSWtwcGNtRmNJanRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUZSb1pTQmtaV1poZFd4MElHSmhjMlVnVlZKTUlHWnZjaUJLYVhKaFhHNGdJQ0FxSUVCemRXMXRZWEo1SUZKbGRIVnlibk1nWVc0Z1pXMXdkSGtnYzNSeWFXNW5PeUJLYVhKaElHbHpJSE5wZEdVdGFHOXpkR1ZrTENCemJ5QjBhR1VnY21WemIyeDJaV1JjYmlBZ0lDb2dZR0poYzJWVmNteGdJQ2htY205dElHTnZibVpwWnlCdmNpQmdhVzh1YW1seVlTNWlZWE5sVlhKc1lDa2dhWE1nY21WeGRXbHlaV1F1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHR6ZEhKcGJtZDlJRUZ1SUdWdGNIUjVJSE4wY21sdVp5NWNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0JrWldaaGRXeDBRbUZ6WlZWeWJDZ3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lISmxkSFZ5YmlCY0lsd2lPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkNkV2xzWkhNZ2RHaGxJRXBwY21FZ1lYVjBhR1Z1ZEdsallYUnBiMjRnYUdWaFpHVnljMXh1SUNBZ0tpQkFjM1Z0YldGeWVTQlZjMlZ6SUVoVVZGQWdRbUZ6YVdNZ0tHQjFjMlZ5Ym1GdFpUcDBiMnRsYm1BcElIZG9aVzRnWW05MGFDQjJZV3gxWlhNZ1lYSmxJSEJ5WlhObGJuUXNYRzRnSUNBcUlHOTBhR1Z5ZDJselpTQmhJR0psWVhKbGNpQjBiMnRsYmlCM2FHVnVJRzl1YkhrZ1lIUnZhMlZ1WUNCcGN5QndjbVZ6Wlc1MExpQkJiSGRoZVhNZ2NtVnhkV1Z6ZEhOY2JpQWdJQ29nU2xOUFRpQnlaWE53YjI1elpYTXVYRzRnSUNBcUlFQndZWEpoYlNCN1NtbHlZVk5sY25acFkyVkRiMjVtYVdkOUlHTnZibVpwWnlBdElGUm9aU0J5WlhOdmJIWmxaQ0J6WlhKMmFXTmxJR052Ym1acFozVnlZWFJwYjI0dVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0U1pXTnZjbVE4YzNSeWFXNW5MQ0J6ZEhKcGJtYytmU0JVYUdVZ1lYVjBhRzl5YVhwaGRHbHZiaUJoYm1RZ1lXTmpaWEIwSUdobFlXUmxjbk11WEc0Z0lDQXFMMXh1SUNCd2NtOTBaV04wWldRZ1lYVjBhRWhsWVdSbGNuTW9ZMjl1Wm1sbk9pQkthWEpoVTJWeWRtbGpaVU52Ym1acFp5azZJRkpsWTI5eVpEeHpkSEpwYm1jc0lITjBjbWx1Wno0Z2UxeHVJQ0FnSUdsbUlDaGpiMjVtYVdjdWRYTmxjbTVoYldVZ0ppWWdZMjl1Wm1sbkxuUnZhMlZ1S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JsYm1OdlpHVmtJRDBnUW5WbVptVnlMbVp5YjIwb1hHNGdJQ0FnSUNBZ0lHQWtlMk52Ym1acFp5NTFjMlZ5Ym1GdFpYMDZKSHRqYjI1bWFXY3VkRzlyWlc1OVlDeGNiaUFnSUNBZ0lDQWdYQ0oxZEdZNFhDSmNiaUFnSUNBZ0lDa3VkRzlUZEhKcGJtY29YQ0ppWVhObE5qUmNJaWs3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0JCZFhSb2IzSnBlbUYwYVc5dU9pQmdRbUZ6YVdNZ0pIdGxibU52WkdWa2ZXQXNYRzRnSUNBZ0lDQWdJRUZqWTJWd2REb2dYQ0poY0hCc2FXTmhkR2x2Ymk5cWMyOXVYQ0lzWEc0Z0lDQWdJQ0I5TzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1kyOXVabWxuTG5SdmEyVnVYRzRnSUNBZ0lDQS9JSHNnUVhWMGFHOXlhWHBoZEdsdmJqb2dZRUpsWVhKbGNpQWtlMk52Ym1acFp5NTBiMnRsYm4xZ0xDQkJZMk5sY0hRNklGd2lZWEJ3YkdsallYUnBiMjR2YW5OdmJsd2lJSDFjYmlBZ0lDQWdJRG9nZXlCQlkyTmxjSFE2SUZ3aVlYQndiR2xqWVhScGIyNHZhbk52Ymx3aUlIMDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGSmxZV1J6SUhSb1pTQkthWEpoSUdOeVpXUmxiblJwWVd4eklHRnVaQ0JrWldaaGRXeDBjeUJtY205dElIUm9aU0JsYm5acGNtOXViV1Z1ZEZ4dUlDQWdLaUJBYzNWdGJXRnllU0JTWldGa2N5QjBhR1VnWUdsdkxtcHBjbUZnSUhOc2FXTmxJR0Z1WkNCeVpYUjFjbTV6SUdFZ2NHRnlkR2xoYkNCamIyNW1hV2NnZDJobGJpQmhibHh1SUNBZ0tpQkJVRWtnZEc5clpXNGdhWE1nWTI5dVptbG5kWEpsWkN3Z1lIVnVaR1ZtYVc1bFpHQWdiM1JvWlhKM2FYTmxMaUJXWVd4MVpYTWdjR0Z6Y3lCMGFISnZkV2RvWEc0Z0lDQXFJR0JsYm5aVGRISnBibWRnTDJCbGJuWk9kVzFpWlhKZ0lIUnZJSEpsYW1WamRDQjFibk5sZEMxc1pXRm1JSEJ5YjNocFpYTXVYRzRnSUNBcUlFQnlaWFIxY201eklIdFFZWEowYVdGc1BFcHBjbUZUWlhKMmFXTmxRMjl1Wm1sblBpQjhJSFZ1WkdWbWFXNWxaSDBnUVNCd1lYSjBhV0ZzSUdOdmJtWnBaeXdnYjNJZ1lIVnVaR1ZtYVc1bFpHQWdkMmhsYmlCdWJ5QkthWEpoSUhSdmEyVnVJR2x6SUdOdmJtWnBaM1Z5WldRdVhHNGdJQ0FxTDF4dUlDQndjbTkwWldOMFpXUWdZMjl1Wm1sblJuSnZiVVZ1ZG1seWIyNXRaVzUwS0NrNklGQmhjblJwWVd3OFNtbHlZVk5sY25acFkyVkRiMjVtYVdjK0lId2dkVzVrWldacGJtVmtJSHRjYmlBZ0lDQmpiMjV6ZENCbGJuWWdQU0JKYjBWdWRtbHliMjV0Wlc1MExtbHZMbXBwY21FN1hHNGdJQ0FnWTI5dWMzUWdkRzlyWlc0Z1BTQmxiblpUZEhKcGJtY29aVzUyUHk1MGIydGxiaWs3WEc0Z0lDQWdhV1lnS0NGMGIydGxiaWtnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ2RHOXJaVzRzWEc0Z0lDQWdJQ0IxYzJWeWJtRnRaVG9nWlc1MlUzUnlhVzVuS0dWdWRpNTFjMlZ5Ym1GdFpTa3NYRzRnSUNBZ0lDQmlZWE5sVlhKc09pQmxiblpUZEhKcGJtY29aVzUyTG1KaGMyVlZjbXdwTEZ4dUlDQWdJQ0FnZEdsdFpXOTFkRG9nWlc1MlRuVnRZbVZ5S0dWdWRpNTBhVzFsYjNWMEtTeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCQmMzTmxjblJ6SUhSb1lYUWdkR2hsSUVwcGNtRWdkRzlyWlc0Z1lXNWtJSE5wZEdVZ1ltRnpaU0JWVWt3Z1lYSmxJR052Ym1acFozVnlaV1JjYmlBZ0lDb2dRSE4xYlcxaGNua2dRMkZzYkdWa0lHSjVJR1YyWlhKNUlHOXdaWEpoZEdsdmJpQmlaV1p2Y21VZ2FYUWdkRzkxWTJobGN5QjBhR1VnYm1WMGQyOXlheTVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlM1p2YVdSOVhHNGdJQ0FxSUVCMGFISnZkM01nZTBsdWRHVnlibUZzUlhKeWIzSjlJRmRvWlc0Z2JtOGdRVkJKSUhSdmEyVnVJRzl5SUdKaGMyVWdWVkpNSUdseklHTnZibVpwWjNWeVpXUXVYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnY21WeGRXbHlaVU55WldSbGJuUnBZV3h6S0NrNklIWnZhV1FnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTVqYjI1bWFXY3VkRzlyWlc0cElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0Z3aVNtbHlZU0J5WlhGMWFYSmxjeUJoYmlCQlVFa2dkRzlyWlc1Y0lpazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1amIyNW1hV2N1WW1GelpWVnliQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YQ0pLYVhKaElISmxjWFZwY21WeklHRWdZbUZ6WlNCVlVreGNJaWs3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkNkV2xzWkhNZ2RHaGxJR1Z1WTI5a1pXUWdhWE56ZFdVZ2NHRjBhRnh1SUNBZ0tpQkFjM1Z0YldGeWVTQldZV3hwWkdGMFpYTWdkR2hsSUdsemMzVmxJR3RsZVNCaGJtUWdWVkpNTFdWdVkyOWtaWE1nYVhRZ2FXNTBiMXh1SUNBZ0tpQmdMM0psYzNRdllYQnBMekl2YVhOemRXVXZQR3RsZVQ1Z0xseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYVhOemRXVkxaWGtnTFNCVWFHVWdTbWx5WVNCcGMzTjFaU0JyWlhrdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0emRISnBibWQ5SUZSb1pTQnBjM04xWlNCQlVFa2djR0YwYUM1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3U1c1MFpYSnVZV3hGY25KdmNuMGdWMmhsYmlCZ2FYTnpkV1ZMWlhsZ0lHbHpJR1Z0Y0hSNUxseHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQnBjM04xWlZCaGRHZ29hWE56ZFdWTFpYazZJSE4wY21sdVp5azZJSE4wY21sdVp5QjdYRzRnSUNBZ2FXWWdLQ0ZwYzNOMVpVdGxlU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YQ0pLYVhKaElISmxjWFZwY21WeklHRnVJR2x6YzNWbElHdGxlVndpS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHQXZjbVZ6ZEM5aGNHa3ZNaTlwYzNOMVpTOGtlMlZ1WTI5a1pWVlNTVU52YlhCdmJtVnVkQ2hwYzNOMVpVdGxlU2w5WUR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTNKbFlYUmxjeUJoSUVwcGNtRWdhWE56ZFdWY2JpQWdJQ29nUUhOMWJXMWhjbmtnWUZCUFUxUmdjeUIwYUdVZ2NISnZhbVZqZEN3Z2MzVnRiV0Z5ZVN3Z2FYTnpkV1VnZEhsd1pTQW9aR1ZtWVhWc2RDQmdWR0Z6YTJBcExGeHVJQ0FnS2lCdmNIUnBiMjVoYkNCa1pYTmpjbWx3ZEdsdmJpd2dZVzVrSUdWNGRISmhJR1pwWld4a2N5QjBieUJnTDNKbGMzUXZZWEJwTHpJdmFYTnpkV1ZnTGx4dUlDQWdLaUJBY0dGeVlXMGdlMHBwY21GSmMzTjFaVWx1Y0hWMGZTQnBibkIxZENBdElGUm9aU0JwYzNOMVpTQmtaV1pwYm1sMGFXOXVMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdVSEp2YldselpUeDFibXR1YjNkdVBuMGdWR2hsSUdOeVpXRjBaV1FnYVhOemRXVWdjR0Y1Ykc5aFpDQW9hVzVqYkhWa2FXNW5JR0JwWkdBZ1lXNWtJR0JyWlhsZ0tTNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1NXNTBaWEp1WVd4RmNuSnZjbjBnVjJobGJpQmpjbVZrWlc1MGFXRnNjeUJoY21VZ2JXbHpjMmx1Wnl3Z2IzSWdkR2hsSUhCeWIycGxZM1FnYTJWNUlHOXlJSE4xYlcxaGNua2dhWE1nWlcxd2RIa3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwSmhaRkpsY1hWbGMzUkZjbkp2Y24wZ1YyaGxiaUJLYVhKaElISmxhbVZqZEhNZ2RHaGxJR2x6YzNWbExseHVJQ0FnS2k5Y2JpQWdZWE41Ym1NZ1kzSmxZWFJsU1hOemRXVW9hVzV3ZFhRNklFcHBjbUZKYzNOMVpVbHVjSFYwS1RvZ1VISnZiV2x6WlR4MWJtdHViM2R1UGlCN1hHNGdJQ0FnZEdocGN5NXlaWEYxYVhKbFEzSmxaR1Z1ZEdsaGJITW9LVHRjYmlBZ0lDQnBaaUFvSVdsdWNIVjBMbkJ5YjJwbFkzUkxaWGtnZkh3Z0lXbHVjSFYwTG5OMWJXMWhjbmtwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JjSWtwcGNtRWdZM0psWVhSbFNYTnpkV1VnY21WeGRXbHlaWE1nWVNCd2NtOXFaV04wSUd0bGVTQmhibVFnYzNWdGJXRnllVndpWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjbVZ6Y0c5dWMyVWdQU0JoZDJGcGRDQjBhR2x6TG1Oc2FXVnVkQzV3YjNOMEtGd2lMM0psYzNRdllYQnBMekl2YVhOemRXVmNJaXdnZTF4dUlDQWdJQ0FnSUNCbWFXVnNaSE02SUh0Y2JpQWdJQ0FnSUNBZ0lDQndjbTlxWldOME9pQjdJR3RsZVRvZ2FXNXdkWFF1Y0hKdmFtVmpkRXRsZVNCOUxGeHVJQ0FnSUNBZ0lDQWdJSE4xYlcxaGNuazZJR2x1Y0hWMExuTjFiVzFoY25rc1hHNGdJQ0FnSUNBZ0lDQWdhWE56ZFdWMGVYQmxPaUI3SUc1aGJXVTZJR2x1Y0hWMExtbHpjM1ZsVkhsd1pTQS9QeUJFUlVaQlZVeFVYMGxUVTFWRlgxUlpVRVVnZlN4Y2JpQWdJQ0FnSUNBZ0lDQXVMaTRvYVc1d2RYUXVaR1Z6WTNKcGNIUnBiMjRnUHlCN0lHUmxjMk55YVhCMGFXOXVPaUJwYm5CMWRDNWtaWE5qY21sd2RHbHZiaUI5SURvZ2UzMHBMRnh1SUNBZ0lDQWdJQ0FnSUM0dUxpaHBibkIxZEM1bWFXVnNaSE1nUHo4Z2UzMHBMRnh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY21WemNHOXVjMlV1WkdGMFlUdGNiaUFnSUNCOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dUlDQWdJQ0FnZEdoeWIzY2dhSFIwY0VWeWNtOXlLRndpU21seVlWd2lMQ0JjSW1OeVpXRjBaU0JwYzNOMVpWd2lMQ0JsY25KdmNpazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCR1pYUmphR1Z6SUdFZ1NtbHlZU0JwYzNOMVpWeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCZ1IwVlVZSE1nZEdobElHbHpjM1ZsSUdKNUlHdGxlU3dnYjNCMGFXOXVZV3hzZVNCd2NtOXFaV04wYVc1bklIUm9aU0JuYVhabGJpQm1hV1ZzWkZ4dUlDQWdLaUJ1WVcxbGN5NWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUdsemMzVmxTMlY1SUMwZ1ZHaGxJR2x6YzNWbElHdGxlU0IwYnlCbVpYUmphQzVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kYlhYMGdXMlpwWld4a2MxMGdMU0JHYVdWc1pDQnVZVzFsY3lCMGJ5QnBibU5zZFdSbElHbHVJSFJvWlNCeVpYTndiMjV6WlM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTFCeWIyMXBjMlU4ZFc1cmJtOTNiajU5SUZSb1pTQnBjM04xWlNCd1lYbHNiMkZrTGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRKYm5SbGNtNWhiRVZ5Y205eWZTQlhhR1Z1SUdOeVpXUmxiblJwWVd4eklHRnlaU0J0YVhOemFXNW5JRzl5SUhSb1pTQnBjM04xWlNCclpYa2dhWE1nWlcxd2RIa3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwNXZkRVp2ZFc1a1JYSnliM0o5SUZkb1pXNGdkR2hsSUdsemMzVmxJR1J2WlhNZ2JtOTBJR1Y0YVhOMElDaElWRlJRSURRd05Da3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwSmhaRkpsY1hWbGMzUkZjbkp2Y24wZ1YyaGxiaUJLYVhKaElISmxhbVZqZEhNZ2RHaGxJSEpsY1hWbGMzUXVYRzRnSUNBcUwxeHVJQ0JoYzNsdVl5Qm5aWFJKYzNOMVpTaHBjM04xWlV0bGVUb2djM1J5YVc1bkxDQm1hV1ZzWkhNL09pQnpkSEpwYm1kYlhTazZJRkJ5YjIxcGMyVThkVzVyYm05M2JqNGdlMXh1SUNBZ0lIUm9hWE11Y21WeGRXbHlaVU55WldSbGJuUnBZV3h6S0NrN1hHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lHTnZibk4wSUhKbGMzQnZibk5sSUQwZ1lYZGhhWFFnZEdocGN5NWpiR2xsYm5RdVoyVjBLSFJvYVhNdWFYTnpkV1ZRWVhSb0tHbHpjM1ZsUzJWNUtTd2dlMXh1SUNBZ0lDQWdJQ0J3WVhKaGJYTTZJR1pwWld4a2N6OHViR1Z1WjNSb0lEOGdleUJtYVdWc1pITTZJR1pwWld4a2N5NXFiMmx1S0Z3aUxGd2lLU0I5SURvZ2UzMHNYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWE53YjI1elpTNWtZWFJoTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eUtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCb2RIUndSWEp5YjNJb1hDSkthWEpoWENJc0lGd2laMlYwSUdsemMzVmxYQ0lzSUdWeWNtOXlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGVndaR0YwWlhNZ1ptbGxiR1J6SUc5dUlHRWdTbWx5WVNCcGMzTjFaVnh1SUNBZ0tpQkFjM1Z0YldGeWVTQmdVRlZVWUhNZ2RHaGxJR0JtYVdWc1pITmdJRzFoY0NCMGJ5QjBhR1VnYVhOemRXVWdZVzVrSUhKbGRIVnlibk5jYmlBZ0lDb2dZSHNnZFhCa1lYUmxaRG9nZEhKMVpTd2dhWE56ZFdWTFpYa2dmV0F1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdTbWx5WVVsemMzVmxWWEJrWVhSbGZTQnBibkIxZENBdElGUm9aU0JwYzNOMVpTQnJaWGtnWVc1a0lHWnBaV3hrY3lCMGJ5QjFjR1JoZEdVdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0UWNtOXRhWE5sUEhWdWEyNXZkMjQrZlNCZ2V5QjFjR1JoZEdWa09pQjBjblZsTENCcGMzTjFaVXRsZVNCOVlDQnZiaUJ6ZFdOalpYTnpMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdEpiblJsY201aGJFVnljbTl5ZlNCWGFHVnVJR055WldSbGJuUnBZV3h6SUdGeVpTQnRhWE56YVc1bkxDQnZjaUIwYUdVZ2FYTnpkV1VnYTJWNUlHOXlJR1pwWld4a2N5QmhjbVVnWlcxd2RIa3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwNXZkRVp2ZFc1a1JYSnliM0o5SUZkb1pXNGdkR2hsSUdsemMzVmxJR1J2WlhNZ2JtOTBJR1Y0YVhOMElDaElWRlJRSURRd05Da3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwSmhaRkpsY1hWbGMzUkZjbkp2Y24wZ1YyaGxiaUJLYVhKaElISmxhbVZqZEhNZ2RHaGxJSFZ3WkdGMFpTNWNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklIVndaR0YwWlVsemMzVmxLR2x1Y0hWME9pQkthWEpoU1hOemRXVlZjR1JoZEdVcE9pQlFjbTl0YVhObFBIVnVhMjV2ZDI0K0lIdGNiaUFnSUNCMGFHbHpMbkpsY1hWcGNtVkRjbVZrWlc1MGFXRnNjeWdwTzF4dUlDQWdJR2xtSUNnaGFXNXdkWFF1Wm1sbGJHUnpLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNJa3BwY21FZ2RYQmtZWFJsU1hOemRXVWdjbVZ4ZFdseVpYTWdabWxsYkdSelhDSXBPMXh1SUNBZ0lIMWNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVqYkdsbGJuUXVjSFYwS0hSb2FYTXVhWE56ZFdWUVlYUm9LR2x1Y0hWMExtbHpjM1ZsUzJWNUtTd2dlMXh1SUNBZ0lDQWdJQ0JtYVdWc1pITTZJR2x1Y0hWMExtWnBaV3hrY3l4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2RYQmtZWFJsWkRvZ2RISjFaU3dnYVhOemRXVkxaWGs2SUdsdWNIVjBMbWx6YzNWbFMyVjVJSDA3WEc0Z0lDQWdmU0JqWVhSamFDQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUdoMGRIQkZjbkp2Y2loY0lrcHBjbUZjSWl3Z1hDSjFjR1JoZEdVZ2FYTnpkV1ZjSWl3Z1pYSnliM0lwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSR1ZzWlhSbGN5QmhJRXBwY21FZ2FYTnpkV1ZjYmlBZ0lDb2dRSE4xYlcxaGNua2dZRVJGVEVWVVJXQnpJSFJvWlNCcGMzTjFaU0JoYm1RZ2NtVjBkWEp1Y3lCZ2V5QmtaV3hsZEdWa09pQjBjblZsTENCcGMzTjFaVXRsZVNCOVlDNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUdsemMzVmxTMlY1SUMwZ1ZHaGxJR2x6YzNWbElHdGxlU0IwYnlCa1pXeGxkR1V1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxQSFZ1YTI1dmQyNCtmU0JnZXlCa1pXeGxkR1ZrT2lCMGNuVmxMQ0JwYzNOMVpVdGxlU0I5WUNCdmJpQnpkV05qWlhOekxseHVJQ0FnS2lCQWRHaHliM2R6SUh0SmJuUmxjbTVoYkVWeWNtOXlmU0JYYUdWdUlHTnlaV1JsYm5ScFlXeHpJR0Z5WlNCdGFYTnphVzVuSUc5eUlIUm9aU0JwYzNOMVpTQnJaWGtnYVhNZ1pXMXdkSGt1WEc0Z0lDQXFJRUIwYUhKdmQzTWdlMDV2ZEVadmRXNWtSWEp5YjNKOUlGZG9aVzRnZEdobElHbHpjM1ZsSUdSdlpYTWdibTkwSUdWNGFYTjBJQ2hJVkZSUUlEUXdOQ2t1WEc0Z0lDQXFJRUIwYUhKdmQzTWdlMEpoWkZKbGNYVmxjM1JGY25KdmNuMGdWMmhsYmlCS2FYSmhJSEpsYW1WamRITWdkR2hsSUdSbGJHVjBhVzl1TGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWkdWc1pYUmxTWE56ZFdVb2FYTnpkV1ZMWlhrNklITjBjbWx1WnlrNklGQnliMjFwYzJVOGRXNXJibTkzYmo0Z2UxeHVJQ0FnSUhSb2FYTXVjbVZ4ZFdseVpVTnlaV1JsYm5ScFlXeHpLQ2s3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdVkyeHBaVzUwTG1SbGJHVjBaU2gwYUdsekxtbHpjM1ZsVUdGMGFDaHBjM04xWlV0bGVTa3BPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIc2daR1ZzWlhSbFpEb2dkSEoxWlN3Z2FYTnpkV1ZMWlhrZ2ZUdGNiaUFnSUNCOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dUlDQWdJQ0FnZEdoeWIzY2dhSFIwY0VWeWNtOXlLRndpU21seVlWd2lMQ0JjSW1SbGJHVjBaU0JwYzNOMVpWd2lMQ0JsY25KdmNpazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCQlpHUnpJR0VnWTI5dGJXVnVkQ0IwYnlCaElFcHBjbUVnYVhOemRXVmNiaUFnSUNvZ1FITjFiVzFoY25rZ1lGQlBVMVJnY3lCMGFHVWdZMjl0YldWdWRDQmliMlI1SUhSdklIUm9aU0JwYzNOMVpTZHpJR0F2WTI5dGJXVnVkR0FnWlc1a2NHOXBiblF1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdTbWx5WVVOdmJXMWxiblJKYm5CMWRIMGdhVzV3ZFhRZ0xTQlVhR1VnYVhOemRXVWdhMlY1SUdGdVpDQmpiMjF0Wlc1MElHSnZaSGt1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxQSFZ1YTI1dmQyNCtmU0JVYUdVZ1kzSmxZWFJsWkNCamIyMXRaVzUwSUhCaGVXeHZZV1F1WEc0Z0lDQXFJRUIwYUhKdmQzTWdlMGx1ZEdWeWJtRnNSWEp5YjNKOUlGZG9aVzRnWTNKbFpHVnVkR2xoYkhNZ1lYSmxJRzFwYzNOcGJtY3NJRzl5SUhSb1pTQnBjM04xWlNCclpYa2diM0lnWW05a2VTQnBjeUJsYlhCMGVTNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1RtOTBSbTkxYm1SRmNuSnZjbjBnVjJobGJpQjBhR1VnYVhOemRXVWdaRzlsY3lCdWIzUWdaWGhwYzNRZ0tFaFVWRkFnTkRBMEtTNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1FtRmtVbVZ4ZFdWemRFVnljbTl5ZlNCWGFHVnVJRXBwY21FZ2NtVnFaV04wY3lCMGFHVWdZMjl0YldWdWRDNWNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklHRmtaRU52YlcxbGJuUW9hVzV3ZFhRNklFcHBjbUZEYjIxdFpXNTBTVzV3ZFhRcE9pQlFjbTl0YVhObFBIVnVhMjV2ZDI0K0lIdGNiaUFnSUNCMGFHbHpMbkpsY1hWcGNtVkRjbVZrWlc1MGFXRnNjeWdwTzF4dUlDQWdJR2xtSUNnaGFXNXdkWFF1WW05a2VTa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hDSkthWEpoSUdGa1pFTnZiVzFsYm5RZ2NtVnhkV2x5WlhNZ1lTQmliMlI1WENJcE8xeHVJQ0FnSUgxY2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxtTnNhV1Z1ZEM1d2IzTjBLRnh1SUNBZ0lDQWdJQ0JnSkh0MGFHbHpMbWx6YzNWbFVHRjBhQ2hwYm5CMWRDNXBjM04xWlV0bGVTbDlMMk52YlcxbGJuUmdMRnh1SUNBZ0lDQWdJQ0I3SUdKdlpIazZJR2x1Y0hWMExtSnZaSGtnZlZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ5WlhOd2IyNXpaUzVrWVhSaE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNtOXlLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5Qm9kSFJ3UlhKeWIzSW9YQ0pLYVhKaFhDSXNJRndpWVdSa0lHTnZiVzFsYm5SY0lpd2daWEp5YjNJcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVEdsemRITWdkR2hsSUdGMllXbHNZV0pzWlNCM2IzSnJabXh2ZHlCMGNtRnVjMmwwYVc5dWN5Qm1iM0lnWVNCS2FYSmhJR2x6YzNWbFhHNGdJQ0FxSUVCemRXMXRZWEo1SUdCSFJWUmdjeUIwYUdVZ2FYTnpkV1VuY3lCZ0wzUnlZVzV6YVhScGIyNXpZQ0JqYjJ4c1pXTjBhVzl1TENCM2FHOXpaU0JKUkhNZ1ptVmxaRnh1SUNBZ0tpQjdRR3hwYm1zZ1NtbHlZVk5sY25acFkyVXVkSEpoYm5OcGRHbHZia2x6YzNWbGZTNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUdsemMzVmxTMlY1SUMwZ1ZHaGxJR2x6YzNWbElHdGxlUzVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMUJ5YjIxcGMyVThkVzVyYm05M2JqNTlJRlJvWlNCaGRtRnBiR0ZpYkdVZ2RISmhibk5wZEdsdmJuTWdjR0Y1Ykc5aFpDNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1NXNTBaWEp1WVd4RmNuSnZjbjBnVjJobGJpQmpjbVZrWlc1MGFXRnNjeUJoY21VZ2JXbHpjMmx1WnlCdmNpQjBhR1VnYVhOemRXVWdhMlY1SUdseklHVnRjSFI1TGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRPYjNSR2IzVnVaRVZ5Y205eWZTQlhhR1Z1SUhSb1pTQnBjM04xWlNCa2IyVnpJRzV2ZENCbGVHbHpkQ0FvU0ZSVVVDQTBNRFFwTGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRDWVdSU1pYRjFaWE4wUlhKeWIzSjlJRmRvWlc0Z1NtbHlZU0J5WldwbFkzUnpJSFJvWlNCeVpYRjFaWE4wTGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWjJWMFZISmhibk5wZEdsdmJuTW9hWE56ZFdWTFpYazZJSE4wY21sdVp5azZJRkJ5YjIxcGMyVThkVzVyYm05M2JqNGdlMXh1SUNBZ0lIUm9hWE11Y21WeGRXbHlaVU55WldSbGJuUnBZV3h6S0NrN1hHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lHTnZibk4wSUhKbGMzQnZibk5sSUQwZ1lYZGhhWFFnZEdocGN5NWpiR2xsYm5RdVoyVjBLRnh1SUNBZ0lDQWdJQ0JnSkh0MGFHbHpMbWx6YzNWbFVHRjBhQ2hwYzNOMVpVdGxlU2w5TDNSeVlXNXphWFJwYjI1ellGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYTndiMjV6WlM1a1lYUmhPMXh1SUNBZ0lIMGdZMkYwWTJnZ0tHVnljbTl5S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJvZEhSd1JYSnliM0lvWENKS2FYSmhYQ0lzSUZ3aVoyVjBJSFJ5WVc1emFYUnBiMjV6WENJc0lHVnljbTl5S1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRlJ5WVc1emFYUnBiMjV6SUdFZ1NtbHlZU0JwYzNOMVpTQjBhSEp2ZFdkb0lHbDBjeUIzYjNKclpteHZkMXh1SUNBZ0tpQkFjM1Z0YldGeWVTQmdVRTlUVkdCeklIUm9aU0IwY21GdWMybDBhVzl1SUVsRUlIUnZJSFJvWlNCcGMzTjFaU2R6SUdBdmRISmhibk5wZEdsdmJuTmdJR1Z1WkhCdmFXNTBYRzRnSUNBcUlHRnVaQ0J5WlhSMWNtNXpJSFJvWlNCaGNIQnNhV1ZrSUhSeVlXNXphWFJwYjI0Z2FXUmxiblJwWm1sbGNuTXVYRzRnSUNBcUlFQndZWEpoYlNCN1NtbHlZVlJ5WVc1emFYUnBiMjVKYm5CMWRIMGdhVzV3ZFhRZ0xTQlVhR1VnYVhOemRXVWdhMlY1SUdGdVpDQjBjbUZ1YzJsMGFXOXVJRWxFTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3VUhKdmJXbHpaVHgxYm10dWIzZHVQbjBnWUhzZ2RISmhibk5wZEdsdmJtVmtPaUIwY25WbExDQnBjM04xWlV0bGVTd2dkSEpoYm5OcGRHbHZia2xrSUgxZ0lHOXVJSE4xWTJObGMzTXVYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwbHVkR1Z5Ym1Gc1JYSnliM0o5SUZkb1pXNGdZM0psWkdWdWRHbGhiSE1nWVhKbElHMXBjM05wYm1jc0lHOXlJSFJvWlNCcGMzTjFaU0JyWlhrZ2IzSWdkSEpoYm5OcGRHbHZiaUJKUkNCcGN5QmxiWEIwZVM1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3VG05MFJtOTFibVJGY25KdmNuMGdWMmhsYmlCMGFHVWdhWE56ZFdVZ1pHOWxjeUJ1YjNRZ1pYaHBjM1FnS0VoVVZGQWdOREEwS1M1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3UW1Ga1VtVnhkV1Z6ZEVWeWNtOXlmU0JYYUdWdUlFcHBjbUVnY21WcVpXTjBjeUIwYUdVZ2RISmhibk5wZEdsdmJpNWNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklIUnlZVzV6YVhScGIyNUpjM04xWlNocGJuQjFkRG9nU21seVlWUnlZVzV6YVhScGIyNUpibkIxZENrNklGQnliMjFwYzJVOGRXNXJibTkzYmo0Z2UxeHVJQ0FnSUhSb2FYTXVjbVZ4ZFdseVpVTnlaV1JsYm5ScFlXeHpLQ2s3WEc0Z0lDQWdhV1lnS0NGcGJuQjFkQzUwY21GdWMybDBhVzl1U1dRcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0Z3aVNtbHlZU0IwY21GdWMybDBhVzl1U1hOemRXVWdjbVZ4ZFdseVpYTWdZU0IwY21GdWMybDBhVzl1SUdsa1hDSXBPMXh1SUNBZ0lIMWNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVqYkdsbGJuUXVjRzl6ZENoZ0pIdDBhR2x6TG1semMzVmxVR0YwYUNocGJuQjFkQzVwYzNOMVpVdGxlU2w5TDNSeVlXNXphWFJwYjI1ellDd2dlMXh1SUNBZ0lDQWdJQ0IwY21GdWMybDBhVzl1T2lCN0lHbGtPaUJwYm5CMWRDNTBjbUZ1YzJsMGFXOXVTV1FnZlN4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUNBZ2RISmhibk5wZEdsdmJtVmtPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQnBjM04xWlV0bGVUb2dhVzV3ZFhRdWFYTnpkV1ZMWlhrc1hHNGdJQ0FnSUNBZ0lIUnlZVzV6YVhScGIyNUpaRG9nYVc1d2RYUXVkSEpoYm5OcGRHbHZia2xrTEZ4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2FIUjBjRVZ5Y205eUtGd2lTbWx5WVZ3aUxDQmNJblJ5WVc1emFYUnBiMjRnYVhOemRXVmNJaXdnWlhKeWIzSXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1UyVmhjbU5vWlhNZ1NtbHlZU0JwYzNOMVpYTWdkMmwwYUNCS1VVeGNiaUFnSUNvZ1FITjFiVzFoY25rZ1lGQlBVMVJnY3lCMGFHVWdTbEZNSUhGMVpYSjVJSFJ2SUdBdmNtVnpkQzloY0drdk1pOXpaV0Z5WTJoZ0lIZHBkR2dnWVNCeVpYTjFiSFFnWTJGd1hHNGdJQ0FxSUNoa1pXWmhkV3gwSUdBMU1HQXBJR0Z1WkNCdmNIUnBiMjVoYkNCbWFXVnNaQ0J3Y205cVpXTjBhVzl1TGx4dUlDQWdLaUJBY0dGeVlXMGdlMHBwY21GVFpXRnlZMmhKYm5CMWRIMGdhVzV3ZFhRZ0xTQlVhR1VnU2xGTUlIRjFaWEo1SUdGdVpDQnpaV0Z5WTJnZ2IzQjBhVzl1Y3k1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTFCeWIyMXBjMlU4ZFc1cmJtOTNiajU5SUZSb1pTQnpaV0Z5WTJnZ2NtVnpkV3gwSUhCaGVXeHZZV1F1WEc0Z0lDQXFJRUIwYUhKdmQzTWdlMGx1ZEdWeWJtRnNSWEp5YjNKOUlGZG9aVzRnWTNKbFpHVnVkR2xoYkhNZ1lYSmxJRzFwYzNOcGJtY2diM0lnZEdobElFcFJUQ0J4ZFdWeWVTQnBjeUJsYlhCMGVTNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1FtRmtVbVZ4ZFdWemRFVnljbTl5ZlNCWGFHVnVJSFJvWlNCS1VVd2djWFZsY25rZ2FYTWdhVzUyWVd4cFpDNWNiaUFnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ29nWUdCZ2RITmNiaUFnSUNvZ1kyOXVjM1FnY21WemRXeDBjeUE5SUdGM1lXbDBJR3BwY21FdWMyVmhjbU5vS0h0Y2JpQWdJQ29nSUNCcWNXdzZJQ2R3Y205cVpXTjBJRDBnWENKUFVGTmNJaUJCVGtRZ2MzUmhkSFZ6SUQwZ1hDSlBjR1Z1WENJbkxGeHVJQ0FnS2lBZ0lHMWhlRkpsYzNWc2RITTZJREV3TUN4Y2JpQWdJQ29nSUNCbWFXVnNaSE02SUZ0Y0luTjFiVzFoY25sY0lpd2dYQ0p6ZEdGMGRYTmNJbDBzWEc0Z0lDQXFJSDBwTzF4dUlDQWdLaUJnWUdCY2JpQWdJQ292WEc0Z0lHRnplVzVqSUhObFlYSmphQ2hwYm5CMWREb2dTbWx5WVZObFlYSmphRWx1Y0hWMEtUb2dVSEp2YldselpUeDFibXR1YjNkdVBpQjdYRzRnSUNBZ2RHaHBjeTV5WlhGMWFYSmxRM0psWkdWdWRHbGhiSE1vS1R0Y2JpQWdJQ0JwWmlBb0lXbHVjSFYwTG1weGJDa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hDSkthWEpoSUhObFlYSmphQ0J5WlhGMWFYSmxjeUJoSUVwUlRDQnhkV1Z5ZVZ3aUtUdGNiaUFnSUNCOVhHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lHTnZibk4wSUhKbGMzQnZibk5sSUQwZ1lYZGhhWFFnZEdocGN5NWpiR2xsYm5RdWNHOXpkQ2hjSWk5eVpYTjBMMkZ3YVM4eUwzTmxZWEpqYUZ3aUxDQjdYRzRnSUNBZ0lDQWdJR3B4YkRvZ2FXNXdkWFF1YW5Gc0xGeHVJQ0FnSUNBZ0lDQnRZWGhTWlhOMWJIUnpPaUJwYm5CMWRDNXRZWGhTWlhOMWJIUnpJRDgvSURVd0xGeHVJQ0FnSUNBZ0lDQXVMaTRvYVc1d2RYUXVabWxsYkdSeklEOGdleUJtYVdWc1pITTZJR2x1Y0hWMExtWnBaV3hrY3lCOUlEb2dlMzBwTEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY21WemNHOXVjMlV1WkdGMFlUdGNiaUFnSUNCOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dUlDQWdJQ0FnZEdoeWIzY2dhSFIwY0VWeWNtOXlLRndpU21seVlWd2lMQ0JjSW5ObFlYSmphQ0JwYzNOMVpYTmNJaXdnWlhKeWIzSXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dWZWeHVJbDE5Il19
|
|
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./JiraService.cjs"), exports);
|
|
18
|
-
//# sourceMappingURL=
|
|
19
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW8vamlyYS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9KaXJhU2VydmljZVwiO1xuIl19
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLDBTQUEwUyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0ppcmFTZXJ2aWNlLmpzXCI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk5emNtTXZhVzh2YW1seVlTOXBibVJsZUM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hwUTBGQk9FSWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpsZUhCdmNuUWdLaUJtY205dElGd2lMaTlLYVhKaFUyVnlkbWxqWlZ3aU8xeHVJbDE5Il19
|
|
@@ -249,5 +249,5 @@ class MicrosoftExcelService extends index_js_1.HttpApiService {
|
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
exports.MicrosoftExcelService = MicrosoftExcelService;
|
|
252
|
-
//# sourceMappingURL=MicrosoftExcelService.js.map
|
|
253
|
-
//# sourceMappingURL=MicrosoftExcelService.cjs.map
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9zb2Z0RXhjZWxTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2lvL21pY3Jvc29mdC1leGNlbC9NaWNyb3NvZnRFeGNlbFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsNEJBQXVCO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLDJDQUFzQztBQUNyRSxPQUFPLEVBQ0wsY0FBYyxFQUVkLFNBQVMsR0FDVixxQ0FBMEI7QUF3RjNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NHO0FBQ0gsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGNBQTJDO0lBQXRGOztRQUNFOztXQUVHO1FBQ2dCLGdCQUFXLEdBQUcsaUJBQWlCLENBQUM7SUE2TXJELENBQUM7SUEzTUM7Ozs7T0FJRztJQUNPLGNBQWM7UUFDdEIsT0FBTyxrQ0FBa0MsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sV0FBVyxDQUNuQixNQUFtQztRQUVuQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLFVBQVUsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08scUJBQXFCO1FBRzdCLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDO1FBQzVDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUM3QixPQUFPO1lBQ0wsS0FBSztZ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QUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxTQUFTLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2lvL21pY3Jvc29mdC1leGNlbC9zZXJ2aWNlXG4gKiBAc3VtbWFyeSBNaWNyb3NvZnQgRXhjZWwgd29ya2Jvb2sgaW50ZWdyYXRpb24gc2VydmljZSAoTWljcm9zb2Z0IEdyYXBoKS5cbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIEdyYXBoIHdvcmtib29rIG9wZXJhdGlvbnMgKHdvcmtzaGVldHMsIHJhbmdlcywgdGFibGVzLFxuICogYW5kIHRhYmxlIHJvd3MpIGFzIGFuIHVuZGVjb3JhdGVkIGNsaWVudC1iYXNlZCBzZXJ2aWNlIGJ1aWx0IG9uXG4gKiB7QGxpbmsgSHR0cEFwaVNlcnZpY2V9LiBDb25maWd1cmF0aW9uIGNvbWVzIGZyb20gYW4gZXhwbGljaXRcbiAqIGBNaWNyb3NvZnRFeGNlbFNlcnZpY2VDb25maWdgIG9yIHRoZSBgaW8ubWljcm9zb2Z0RXhjZWxgIGVudmlyb25tZW50IHNsaWNlO1xuICogdGhlIGFjY2VzcyB0b2tlbiBpcyBzZW50IGFzIGBBdXRob3JpemF0aW9uOiBCZWFyZXIgPHRva2VuPmAuIFdvcmtib29rcyBhcmVcbiAqIGFkZHJlc3NlZCBieSBPbmVEcml2ZS9TaGFyZVBvaW50IGBpdGVtSWRgLCBvcHRpb25hbGx5IHdpdGhpbiBhIGBkcml2ZUlkYC5cbiAqIENyZWRlbnRpYWxzIGFyZSByZWZlcmVuY2VkIGZyb20gY29uZmlndXJhdGlvbiAoYW5kLCBmcm9tIGFzLWdyYXBoIG5vZGVzLCBmcm9tXG4gKiB0aGUgcmVzb2x2ZWQgYG1pY3Jvc29mdC1leGNlbGAgY3JlZGVudGlhbCBzZWNyZXQpIGFuZCBhcmUgbmV2ZXIgZW1iZWRkZWQgaW5cbiAqIHNvdXJjZS4gRmFpbHVyZXMgYXJlIG1hcHBlZCB0byBkZWNhZiBlcnJvcnMgdmlhIHtAbGluayBodHRwRXJyb3J9LlxuICovXG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBJb0Vudmlyb25tZW50IH0gZnJvbSBcIi4uL2Vudmlyb25tZW50XCI7XG5pbXBvcnQgeyBlbnZOdW1iZXIsIGVudlN0cmluZyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvZW52aXJvbm1lbnRWYWx1ZVwiO1xuaW1wb3J0IHtcbiAgSHR0cEFwaVNlcnZpY2UsXG4gIHR5cGUgSHR0cEFwaVNlcnZpY2VDb25maWcsXG4gIGh0dHBFcnJvcixcbn0gZnJvbSBcIi4uLy4uL3NoYXJlZC9odHRwXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBNaWNyb3NvZnQgRXhjZWwgc2VydmljZVxuICogQHN1bW1hcnkgRXh0ZW5kcyB7QGxpbmsgSHR0cEFwaVNlcnZpY2VDb25maWd9IHdpdGggdGhlIE1pY3Jvc29mdCBHcmFwaFxuICogYWNjZXNzIHRva2VuIHNlbnQgYXMgYSBiZWFyZXIgdG9rZW4uIFdoZW4gb21pdHRlZCwgdGhlXG4gKiBgaW8ubWljcm9zb2Z0RXhjZWxgIGVudmlyb25tZW50IHNsaWNlIHN1cHBsaWVzIHRoZSB0b2tlbiAocGx1cyBvcHRpb25hbFxuICogYGJhc2VVcmxgL2B0aW1lb3V0YCkuXG4gKiBAY2F0ZWdvcnkgSU9cbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2lvL21pY3Jvc29mdC1leGNlbC9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWljcm9zb2Z0RXhjZWxTZXJ2aWNlQ29uZmlnIGV4dGVuZHMgSHR0cEFwaVNlcnZpY2VDb25maWcge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE1pY3Jvc29mdCBHcmFwaCBhY2Nlc3MgdG9rZW5cbiAgICogQHN1bW1hcnkgU2VudCBhcyBgQXV0aG9yaXphdGlvbjogQmVhcmVyIDx0b2tlbj5gIHdpdGggZXZlcnkgQVBJIGNhbGwuXG4gICAqL1xuICB0b2tlbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNlIHRvIGFuIEV4Y2VsIHdvcmtib29rXG4gKiBAc3VtbWFyeSBJZGVudGlmaWVzIGEgd29ya2Jvb2sgYnkgaXRzIGRyaXZlIGl0ZW0gYGl0ZW1JZGAgYW5kLCBvcHRpb25hbGx5LFxuICogdGhlIGBkcml2ZUlkYCB0aGF0IG93bnMgaXQuIFdpdGhvdXQgYGRyaXZlSWRgIHRoZSBzaWduZWQtaW4gdXNlcidzIGRyaXZlIGlzXG4gKiB1c2VkLlxuICogQGNhdGVnb3J5IElPXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9pby9taWNyb3NvZnQtZXhjZWwvc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4Y2VsV29ya2Jvb2tSZWYge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERyaXZlIGl0ZW0gSUQgb2YgdGhlIHdvcmtib29rXG4gICAqL1xuICBpdGVtSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEcml2ZSBJRCBvd25pbmcgdGhlIHdvcmtib29rIChkZWZhdWx0cyB0byB0aGUgdXNlcidzIGRyaXZlKVxuICAgKi9cbiAgZHJpdmVJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNlIHRvIGEgd29ya3NoZWV0IHJhbmdlXG4gKiBAc3VtbWFyeSBDYXJyaWVzIHRoZSB3b3JrYm9vayByZWZlcmVuY2UgcGx1cyB0aGUgYHdvcmtzaGVldGAgbmFtZSBhbmQgdGhlXG4gKiBBMS1zdHlsZSBgcmFuZ2VgIGFkZHJlc3MgKGUuZy4gYFwiQTE6QzEwXCJgKS5cbiAqIEBjYXRlZ29yeSBJT1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vbWljcm9zb2Z0LWV4Y2VsL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGNlbFJhbmdlSW5wdXQgZXh0ZW5kcyBFeGNlbFdvcmtib29rUmVmIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXb3Jrc2hlZXQgbmFtZVxuICAgKi9cbiAgd29ya3NoZWV0OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQTEtc3R5bGUgcmFuZ2UgYWRkcmVzc1xuICAgKi9cbiAgcmFuZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW5wdXQgZm9yIHdyaXRpbmcgdmFsdWVzIHRvIGEgd29ya3NoZWV0IHJhbmdlXG4gKiBAc3VtbWFyeSBDYXJyaWVzIHRoZSByYW5nZSByZWZlcmVuY2UgcGx1cyB0aGUgdHdvLWRpbWVuc2lvbmFsIGB2YWx1ZXNgXG4gKiBtYXRyaXggd3JpdHRlbiB0byBpdC5cbiAqIEBjYXRlZ29yeSBJT1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vbWljcm9zb2Z0LWV4Y2VsL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGNlbFJhbmdlV3JpdGVJbnB1dCBleHRlbmRzIEV4Y2VsUmFuZ2VJbnB1dCB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUm93LW1ham9yIG1hdHJpeCBvZiB2YWx1ZXMgdG8gd3JpdGVcbiAgICovXG4gIHZhbHVlczogdW5rbm93bltdW107XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIElucHV0IGZvciBhcHBlbmRpbmcgYSByb3cgdG8gYW4gRXhjZWwgdGFibGVcbiAqIEBzdW1tYXJ5IENhcnJpZXMgdGhlIHdvcmtib29rIHJlZmVyZW5jZSwgdGhlIGB0YWJsZUlkYCwgYW5kIHRoZSByb3dcbiAqIGB2YWx1ZXNgIGluIHRhYmxlLWNvbHVtbiBvcmRlci5cbiAqIEBjYXRlZ29yeSBJT1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vbWljcm9zb2Z0LWV4Y2VsL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGNlbFRhYmxlUm93SW5wdXQgZXh0ZW5kcyBFeGNlbFdvcmtib29rUmVmIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUYWJsZSBJRCB3aXRoaW4gdGhlIHdvcmtib29rXG4gICAqL1xuICB0YWJsZUlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUm93IHZhbHVlcyBpbiB0YWJsZS1jb2x1bW4gb3JkZXJcbiAgICovXG4gIHZhbHVlczogdW5rbm93bltdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNaWNyb3NvZnQgRXhjZWwgKEdyYXBoKSB3b3JrYm9vayBpbnRlZ3JhdGlvbiBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBBbiB1bmRlY29yYXRlZCBIVFRQIHNlcnZpY2UgZm9yIGxpc3Rpbmcgd29ya3NoZWV0cyBhbmQgdGFibGVzLFxuICogcmVhZGluZyBhbmQgd3JpdGluZyByYW5nZXMsIGFuZCBhcHBlbmRpbmcgdGFibGUgcm93cy4gRXZlcnkgb3BlcmF0aW9uXG4gKiByZXF1aXJlcyBhIEdyYXBoIGFjY2VzcyB0b2tlbiBhbmQgYSB3b3JrYm9vayBgaXRlbUlkYDsgbWlzc2luZyBjcmVkZW50aWFscyBvclxuICogaWRlbnRpZmllcnMgcmFpc2UgYEludGVybmFsRXJyb3JgLCBhbmQgdHJhbnNwb3J0IGZhaWx1cmVzIGFyZSBtYXBwZWQgdG8gZGVjYWZcbiAqIGVycm9ycyB2aWEge0BsaW5rIGh0dHBFcnJvcn0uXG4gKiBAY2xhc3MgTWljcm9zb2Z0RXhjZWxTZXJ2aWNlXG4gKiBAZXh0ZW5kcyBIdHRwQXBpU2VydmljZVxuICogQGNhdGVnb3J5IElPXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IE1pY3Jvc29mdEV4Y2VsU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvaW50ZWdyYXRpb25zL2lvL21pY3Jvc29mdC1leGNlbFwiO1xuICpcbiAqIGNvbnN0IGV4Y2VsID0gbmV3IE1pY3Jvc29mdEV4Y2VsU2VydmljZSgpO1xuICogYXdhaXQgZXhjZWwuaW5pdGlhbGl6ZSh7XG4gKiAgIHRva2VuOiBwcm9jZXNzLmVudi5HUkFQSF9DUkVERU5USUFMX01JQ1JPU09GVF9FWENFTF9UT0tFTixcbiAqIH0pO1xuICogY29uc3QgcmFuZ2UgPSBhd2FpdCBleGNlbC5nZXRSYW5nZSh7XG4gKiAgIGl0ZW1JZDogcHJvY2Vzcy5lbnYuRVhDRUxfSVRFTV9JRCA/PyBcIlwiLFxuICogICB3b3Jrc2hlZXQ6IFwiU2hlZXQxXCIsXG4gKiAgIHJhbmdlOiBcIkExOkMxMFwiLFxuICogfSk7XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgYXV0b251bWJlclxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgU2VydmljZSBhcyBNaWNyb3NvZnRFeGNlbFNlcnZpY2VcbiAqICAgcGFydGljaXBhbnQgR3JhcGggYXMgTWljcm9zb2Z0IEdyYXBoXG4gKiAgIENhbGxlci0+PlNlcnZpY2U6IHVwZGF0ZVJhbmdlKGlucHV0KVxuICogICBhY3RpdmF0ZSBTZXJ2aWNlXG4gKiAgIFNlcnZpY2UtPj5TZXJ2aWNlOiByZXF1aXJlQWNjZXNzVG9rZW4oKVxuICogICBTZXJ2aWNlLT4+R3JhcGg6IFBBVENIIC9tZS9kcml2ZS9pdGVtcy97aWR9L3dvcmtib29rL3dvcmtzaGVldHMve25hbWV9L3JhbmdlKC4uLilcbiAqICAgYWN0aXZhdGUgR3JhcGhcbiAqICAgR3JhcGgtLT4+U2VydmljZTogdXBkYXRlZCByYW5nZSBwYXlsb2FkXG4gKiAgIGRlYWN0aXZhdGUgR3JhcGhcbiAqICAgU2VydmljZS0tPj5DYWxsZXI6IHVwZGF0ZWQgcmFuZ2UgcGF5bG9hZFxuICogICBkZWFjdGl2YXRlIFNlcnZpY2VcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2lvL21pY3Jvc29mdC1leGNlbC9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBjbGFzcyBNaWNyb3NvZnRFeGNlbFNlcnZpY2UgZXh0ZW5kcyBIdHRwQXBpU2VydmljZTxNaWNyb3NvZnRFeGNlbFNlcnZpY2VDb25maWc+IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgcHJvdmlkZXIgbmFtZSB1c2VkIGluIGVycm9yIG1lc3NhZ2VzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZU5hbWUgPSBcIk1pY3Jvc29mdCBFeGNlbFwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIE1pY3Jvc29mdCBHcmFwaCBiYXNlIFVSTFxuICAgKiBAc3VtbWFyeSBVc2VkIHdoZW4gdGhlIHJlc29sdmVkIGNvbmZpZyBjYXJyaWVzIG5vIGBiYXNlVXJsYC5cbiAgICogQHJldHVybnMge3N0cmluZ30gYFwiaHR0cHM6Ly9ncmFwaC5taWNyb3NvZnQuY29tL3YxLjBcImAuXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdEJhc2VVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vdjEuMFwiO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgdGhlIE1pY3Jvc29mdCBHcmFwaCBiZWFyZXIgYXV0aG9yaXphdGlvbiBoZWFkZXJzXG4gICAqIEBzdW1tYXJ5IFJldHVybnMgYEF1dGhvcml6YXRpb246IEJlYXJlciA8dG9rZW4+YCB3aGVuIGNvbmZpZ3VyZWQsIGFuZCBub1xuICAgKiBoZWFkZXJzIG90aGVyd2lzZS5cbiAgICogQHBhcmFtIHtNaWNyb3NvZnRFeGNlbFNlcnZpY2VDb25maWd9IGNvbmZpZyAtIFRoZSByZXNvbHZlZCBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBUaGUgYXV0aG9yaXphdGlvbiBoZWFkZXJzIChlbXB0eSB3aXRob3V0IGEgdG9rZW4pLlxuICAgKi9cbiAgcHJvdGVjdGVkIGF1dGhIZWFkZXJzKFxuICAgIGNvbmZpZzogTWljcm9zb2Z0RXhjZWxTZXJ2aWNlQ29uZmlnXG4gICk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiBjb25maWcudG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtjb25maWcudG9rZW59YCB9IDoge307XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlYWRzIHRoZSBFeGNlbCBjcmVkZW50aWFscyBhbmQgZGVmYXVsdHMgZnJvbSB0aGUgZW52aXJvbm1lbnRcbiAgICogQHN1bW1hcnkgUmVhZHMgdGhlIGBpby5taWNyb3NvZnRFeGNlbGAgc2xpY2UgYW5kIHJldHVybnMgYSBwYXJ0aWFsIGNvbmZpZ1xuICAgKiB3aGVuIGFuIGFjY2VzcyB0b2tlbiBpcyBjb25maWd1cmVkLCBgdW5kZWZpbmVkYCBvdGhlcndpc2UuIFZhbHVlcyBwYXNzXG4gICAqIHRocm91Z2ggYGVudlN0cmluZ2AvYGVudk51bWJlcmAgdG8gcmVqZWN0IHVuc2V0LWxlYWYgcHJveGllcy5cbiAgICogQHJldHVybnMge1BhcnRpYWw8TWljcm9zb2Z0RXhjZWxTZXJ2aWNlQ29uZmlnPiB8IHVuZGVmaW5lZH0gQSBwYXJ0aWFsIGNvbmZpZywgb3IgYHVuZGVmaW5lZGAgd2hlbiBubyBFeGNlbCB0b2tlbiBpcyBjb25maWd1cmVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNvbmZpZ0Zyb21FbnZpcm9ubWVudCgpOlxuICAgIHwgUGFydGlhbDxNaWNyb3NvZnRFeGNlbFNlcnZpY2VDb25maWc+XG4gICAgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGVudiA9IElvRW52aXJvbm1lbnQuaW8ubWljcm9zb2Z0RXhjZWw7XG4gICAgY29uc3QgdG9rZW4gPSBlbnZTdHJpbmcoZW52Py50b2tlbik7XG4gICAgaWYgKCF0b2tlbikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgdG9rZW4sXG4gICAgICBiYXNlVXJsOiBlbnZTdHJpbmcoZW52LmJhc2VVcmwpLFxuICAgICAgdGltZW91dDogZW52TnVtYmVyKGVudi50aW1lb3V0KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBc3NlcnRzIHRoYXQgYSBNaWNyb3NvZnQgR3JhcGggYWNjZXNzIHRva2VuIGlzIGNvbmZpZ3VyZWRcbiAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSBzaGFyZWQgYHJlcXVpcmVUb2tlbigpYCBndWFyZCB1c2VkIGJ5IGV2ZXJ5XG4gICAqIG9wZXJhdGlvbi5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gdGhlIHJlc29sdmVkIGNvbmZpZyBoYXMgbm8gYHRva2VuYC5cbiAgICovXG4gIHByb3RlY3RlZCByZXF1aXJlQWNjZXNzVG9rZW4oKTogdm9pZCB7XG4gICAgdGhpcy5yZXF1aXJlVG9rZW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQnVpbGRzIHRoZSBHcmFwaCB3b3JrYm9vayBwYXRoIGZvciBhIGRyaXZlIGl0ZW1cbiAgICogQHN1bW1hcnkgVXNlcyBgL2RyaXZlcy88ZHJpdmVJZD4vaXRlbXMvPGl0ZW1JZD4vd29ya2Jvb2tgIHdoZW4gYSBgZHJpdmVJZGBcbiAgICogaXMgc2V0LCBvdGhlcndpc2UgdGhlIHNpZ25lZC1pbiB1c2VyJ3MgYC9tZS9kcml2ZS8uLi5gIHBhdGguXG4gICAqIEBwYXJhbSB7RXhjZWxXb3JrYm9va1JlZn0gaW5wdXQgLSBUaGUgd29ya2Jvb2sgcmVmZXJlbmNlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgd29ya2Jvb2sgQVBJIHBhdGguXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gYGl0ZW1JZGAgaXMgZW1wdHkuXG4gICAqL1xuICBwcml2YXRlIHdvcmtib29rUGF0aChpbnB1dDogRXhjZWxXb3JrYm9va1JlZik6IHN0cmluZyB7XG4gICAgaWYgKCFpbnB1dC5pdGVtSWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTWljcm9zb2Z0IEV4Y2VsIHJlcXVpcmVzIGEgd29ya2Jvb2sgaXRlbSBpZFwiKTtcbiAgICB9XG4gICAgY29uc3QgaXRlbSA9IGVuY29kZVVSSUNvbXBvbmVudChpbnB1dC5pdGVtSWQpO1xuICAgIHJldHVybiBpbnB1dC5kcml2ZUlkXG4gICAgICA/IGAvZHJpdmVzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGlucHV0LmRyaXZlSWQpfS9pdGVtcy8ke2l0ZW19L3dvcmtib29rYFxuICAgICAgOiBgL21lL2RyaXZlL2l0ZW1zLyR7aXRlbX0vd29ya2Jvb2tgO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgdGhlIEdyYXBoIHdvcmtzaGVldCByYW5nZSBwYXRoXG4gICAqIEBzdW1tYXJ5IEFwcGVuZHMgdGhlIGVuY29kZWQgd29ya3NoZWV0IGFuZCBBMSBgcmFuZ2UoYWRkcmVzcz0uLi4pYFxuICAgKiBzZWdtZW50cyB0byB0aGUgd29ya2Jvb2sgcGF0aC5cbiAgICogQHBhcmFtIHtFeGNlbFJhbmdlSW5wdXR9IGlucHV0IC0gVGhlIHdvcmtib29rLCB3b3Jrc2hlZXQsIGFuZCByYW5nZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHdvcmtzaGVldCByYW5nZSBBUEkgcGF0aC5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgd29ya3NoZWV0IG9yIHJhbmdlIGlzIGVtcHR5LlxuICAgKi9cbiAgcHJpdmF0ZSByYW5nZVBhdGgoaW5wdXQ6IEV4Y2VsUmFuZ2VJbnB1dCk6IHN0cmluZyB7XG4gICAgaWYgKCFpbnB1dC53b3Jrc2hlZXQgfHwgIWlucHV0LnJhbmdlKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgXCJNaWNyb3NvZnQgRXhjZWwgcmVxdWlyZXMgYSB3b3Jrc2hlZXQgYW5kIHJhbmdlXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLndvcmtib29rUGF0aChpbnB1dCl9L3dvcmtzaGVldHMvJHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICBpbnB1dC53b3Jrc2hlZXRcbiAgICApfS9yYW5nZShhZGRyZXNzPScke2VuY29kZVVSSUNvbXBvbmVudChpbnB1dC5yYW5nZSl9JylgO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0cyB0aGUgd29ya3NoZWV0cyBpbiBhIHdvcmtib29rXG4gICAqIEBzdW1tYXJ5IGBHRVRgcyB0aGUgd29ya2Jvb2sncyBgL3dvcmtzaGVldHNgIGNvbGxlY3Rpb24uXG4gICAqIEBwYXJhbSB7RXhjZWxXb3JrYm9va1JlZn0gaW5wdXQgLSBUaGUgd29ya2Jvb2sgcmVmZXJlbmNlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIEdyYXBoIHdvcmtzaGVldCBjb2xsZWN0aW9uLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIHRva2VuIGlzIGNvbmZpZ3VyZWQgb3IgYGl0ZW1JZGAgaXMgZW1wdHkuXG4gICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIHdvcmtib29rIGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHcmFwaCByZWplY3RzIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgYXN5bmMgbGlzdFdvcmtzaGVldHMoaW5wdXQ6IEV4Y2VsV29ya2Jvb2tSZWYpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0aGlzLnJlcXVpcmVBY2Nlc3NUb2tlbigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldChcbiAgICAgICAgYCR7dGhpcy53b3JrYm9va1BhdGgoaW5wdXQpfS93b3Jrc2hlZXRzYFxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBodHRwRXJyb3IoXCJNaWNyb3NvZnQgRXhjZWxcIiwgXCJsaXN0IHdvcmtzaGVldHNcIiwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgdmFsdWVzIGZyb20gYSB3b3Jrc2hlZXQgcmFuZ2VcbiAgICogQHN1bW1hcnkgYEdFVGBzIHRoZSBhZGRyZXNzZWQgcmFuZ2UgYW5kIHJldHVybnMgaXRzIHZhbHVlcyBhbmQgZm9ybWF0dGluZ1xuICAgKiBwYXlsb2FkLlxuICAgKiBAcGFyYW0ge0V4Y2VsUmFuZ2VJbnB1dH0gaW5wdXQgLSBUaGUgd29ya2Jvb2ssIHdvcmtzaGVldCwgYW5kIHJhbmdlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIHJhbmdlIHBheWxvYWQuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gdG9rZW4gaXMgY29uZmlndXJlZCwgb3IgdGhlIHdvcmtib29rLCB3b3Jrc2hlZXQsIG9yIHJhbmdlIGlzIGVtcHR5LlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSB3b3JrYm9vayBvciByYW5nZSBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR3JhcGggcmVqZWN0cyB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGFzeW5jIGdldFJhbmdlKGlucHV0OiBFeGNlbFJhbmdlSW5wdXQpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0aGlzLnJlcXVpcmVBY2Nlc3NUb2tlbigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldCh0aGlzLnJhbmdlUGF0aChpbnB1dCkpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIk1pY3Jvc29mdCBFeGNlbFwiLCBcImdldCByYW5nZVwiLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXcml0ZXMgdmFsdWVzIGludG8gYSB3b3Jrc2hlZXQgcmFuZ2VcbiAgICogQHN1bW1hcnkgYFBBVENIYGVzIHRoZSBhZGRyZXNzZWQgcmFuZ2Ugd2l0aCB0aGUgc3VwcGxpZWQgYHZhbHVlc2AgbWF0cml4XG4gICAqIGFuZCByZXR1cm5zIHRoZSB1cGRhdGVkIHJhbmdlIHBheWxvYWQuXG4gICAqIEBwYXJhbSB7RXhjZWxSYW5nZVdyaXRlSW5wdXR9IGlucHV0IC0gVGhlIHJhbmdlIHJlZmVyZW5jZSBhbmQgdmFsdWVzIHRvIHdyaXRlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIHVwZGF0ZWQgcmFuZ2UgcGF5bG9hZC5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBubyB0b2tlbiBpcyBjb25maWd1cmVkLCBvciB0aGUgd29ya2Jvb2ssIHdvcmtzaGVldCwgb3IgcmFuZ2UgaXMgZW1wdHkuXG4gICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIHdvcmtib29rIG9yIHJhbmdlIGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHcmFwaCByZWplY3RzIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgYXN5bmMgdXBkYXRlUmFuZ2UoaW5wdXQ6IEV4Y2VsUmFuZ2VXcml0ZUlucHV0KTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgdGhpcy5yZXF1aXJlQWNjZXNzVG9rZW4oKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wYXRjaCh0aGlzLnJhbmdlUGF0aChpbnB1dCksIHtcbiAgICAgICAgdmFsdWVzOiBpbnB1dC52YWx1ZXMsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBodHRwRXJyb3IoXCJNaWNyb3NvZnQgRXhjZWxcIiwgXCJ1cGRhdGUgcmFuZ2VcIiwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTGlzdHMgdGhlIHRhYmxlcyBpbiBhIHdvcmtib29rXG4gICAqIEBzdW1tYXJ5IGBHRVRgcyB0aGUgd29ya2Jvb2sncyBgL3RhYmxlc2AgY29sbGVjdGlvbi5cbiAgICogQHBhcmFtIHtFeGNlbFdvcmtib29rUmVmfSBpbnB1dCAtIFRoZSB3b3JrYm9vayByZWZlcmVuY2UuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgR3JhcGggdGFibGUgY29sbGVjdGlvbi5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBubyB0b2tlbiBpcyBjb25maWd1cmVkIG9yIGBpdGVtSWRgIGlzIGVtcHR5LlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSB3b3JrYm9vayBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR3JhcGggcmVqZWN0cyB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGFzeW5jIGxpc3RUYWJsZXMoaW5wdXQ6IEV4Y2VsV29ya2Jvb2tSZWYpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0aGlzLnJlcXVpcmVBY2Nlc3NUb2tlbigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldChcbiAgICAgICAgYCR7dGhpcy53b3JrYm9va1BhdGgoaW5wdXQpfS90YWJsZXNgXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIk1pY3Jvc29mdCBFeGNlbFwiLCBcImxpc3QgdGFibGVzXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFwcGVuZHMgYSByb3cgdG8gYW4gRXhjZWwgdGFibGVcbiAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgc2luZ2xlIHJvdyB0byB0aGUgdGFibGUncyBgL3Jvd3MvYWRkYCBlbmRwb2ludCBhbmRcbiAgICogcmV0dXJucyB0aGUgR3JhcGggcm93IHBheWxvYWQuXG4gICAqIEBwYXJhbSB7RXhjZWxUYWJsZVJvd0lucHV0fSBpbnB1dCAtIFRoZSB3b3JrYm9vaywgdGFibGUsIGFuZCByb3cgdmFsdWVzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIGNyZWF0ZWQgdGFibGUgcm93IHBheWxvYWQuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gdG9rZW4gaXMgY29uZmlndXJlZCwgb3IgdGhlIHdvcmtib29rLCB0YWJsZSwgb3IgdmFsdWVzIGFyZSBtaXNzaW5nLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSB3b3JrYm9vayBvciB0YWJsZSBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR3JhcGggcmVqZWN0cyB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGFzeW5jIGFkZFRhYmxlUm93KGlucHV0OiBFeGNlbFRhYmxlUm93SW5wdXQpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0aGlzLnJlcXVpcmVBY2Nlc3NUb2tlbigpO1xuICAgIGlmICghaW5wdXQudGFibGVJZCB8fCAhaW5wdXQudmFsdWVzPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIk1pY3Jvc29mdCBFeGNlbCBhZGRUYWJsZVJvdyByZXF1aXJlcyBhIHRhYmxlIGlkIGFuZCB2YWx1ZXNcIlxuICAgICAgKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdChcbiAgICAgICAgYCR7dGhpcy53b3JrYm9va1BhdGgoaW5wdXQpfS90YWJsZXMvJHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICAgICAgaW5wdXQudGFibGVJZFxuICAgICAgICApfS9yb3dzL2FkZGAsXG4gICAgICAgIHsgdmFsdWVzOiBbaW5wdXQudmFsdWVzXSB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIk1pY3Jvc29mdCBFeGNlbFwiLCBcImFkZCB0YWJsZSByb3dcIiwgZXJyb3IpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9zb2Z0RXhjZWxTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTWljcm9zb2Z0RXhjZWxTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILDJEQUF3RDtBQUN4RCx3REFBb0Q7QUFDcEQsNEVBQTBFO0FBQzFFLDJEQUEwRTtBQUMxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDRztBQUNILE1BQWEscUJBQXNCLFNBQVEseUJBQWM7SUFDckQ7UUFDSSxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUNwQjs7V0FFRztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsaUJBQWlCLENBQUM7SUFDekMsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxjQUFjO1FBQ1YsT0FBTyxrQ0FBa0MsQ0FBQztJQUM5QyxDQUFDO0lBQ0Q7Ozs7OztPQU1HO0lBQ0gsV0FBVyxDQUFDLE1BQU07UUFDZCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLFVBQVUsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBQ0Q7Ozs7OztPQU1HO0lBQ0gscUJBQXFCO1FBQ2pCLE1BQU0sR0FBRyxHQUFHLDhCQUFhLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFBLCtCQUFTLEVBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLO1lBQ04sT0FBTyxTQUFTLENBQUM7UUFDckIsT0FBTztZQUNILEtBQUs7WUFDTCxPQUFPLEVBQUUsSUFBQSwrQkFBUyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7WUFDL0IsT0FBTyxFQUFFLElBQUEsK0JBQVMsRUFBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1NB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QUMvRCxDQUFDO0lBQ0wsQ0FBQztDQUNKO0FBNUxELHNEQTRMQztBQUNELGtvdEJBQWtvdEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2lvL21pY3Jvc29mdC1leGNlbC9zZXJ2aWNlXG4gKiBAc3VtbWFyeSBNaWNyb3NvZnQgRXhjZWwgd29ya2Jvb2sgaW50ZWdyYXRpb24gc2VydmljZSAoTWljcm9zb2Z0IEdyYXBoKS5cbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIEdyYXBoIHdvcmtib29rIG9wZXJhdGlvbnMgKHdvcmtzaGVldHMsIHJhbmdlcywgdGFibGVzLFxuICogYW5kIHRhYmxlIHJvd3MpIGFzIGFuIHVuZGVjb3JhdGVkIGNsaWVudC1iYXNlZCBzZXJ2aWNlIGJ1aWx0IG9uXG4gKiB7QGxpbmsgSHR0cEFwaVNlcnZpY2V9LiBDb25maWd1cmF0aW9uIGNvbWVzIGZyb20gYW4gZXhwbGljaXRcbiAqIGBNaWNyb3NvZnRFeGNlbFNlcnZpY2VDb25maWdgIG9yIHRoZSBgaW8ubWljcm9zb2Z0RXhjZWxgIGVudmlyb25tZW50IHNsaWNlO1xuICogdGhlIGFjY2VzcyB0b2tlbiBpcyBzZW50IGFzIGBBdXRob3JpemF0aW9uOiBCZWFyZXIgPHRva2VuPmAuIFdvcmtib29rcyBhcmVcbiAqIGFkZHJlc3NlZCBieSBPbmVEcml2ZS9TaGFyZVBvaW50IGBpdGVtSWRgLCBvcHRpb25hbGx5IHdpdGhpbiBhIGBkcml2ZUlkYC5cbiAqIENyZWRlbnRpYWxzIGFyZSByZWZlcmVuY2VkIGZyb20gY29uZmlndXJhdGlvbiAoYW5kLCBmcm9tIGFzLWdyYXBoIG5vZGVzLCBmcm9tXG4gKiB0aGUgcmVzb2x2ZWQgYG1pY3Jvc29mdC1leGNlbGAgY3JlZGVudGlhbCBzZWNyZXQpIGFuZCBhcmUgbmV2ZXIgZW1iZWRkZWQgaW5cbiAqIHNvdXJjZS4gRmFpbHVyZXMgYXJlIG1hcHBlZCB0byBkZWNhZiBlcnJvcnMgdmlhIHtAbGluayBodHRwRXJyb3J9LlxuICovXG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBJb0Vudmlyb25tZW50IH0gZnJvbSBcIi4vLi4vZW52aXJvbm1lbnQuanNcIjtcbmltcG9ydCB7IGVudk51bWJlciwgZW52U3RyaW5nIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL2Vudmlyb25tZW50VmFsdWUuanNcIjtcbmltcG9ydCB7IEh0dHBBcGlTZXJ2aWNlLCBodHRwRXJyb3IsIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL2h0dHAvaW5kZXguanNcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIE1pY3Jvc29mdCBFeGNlbCAoR3JhcGgpIHdvcmtib29rIGludGVncmF0aW9uIHNlcnZpY2VcbiAqIEBzdW1tYXJ5IEFuIHVuZGVjb3JhdGVkIEhUVFAgc2VydmljZSBmb3IgbGlzdGluZyB3b3Jrc2hlZXRzIGFuZCB0YWJsZXMsXG4gKiByZWFkaW5nIGFuZCB3cml0aW5nIHJhbmdlcywgYW5kIGFwcGVuZGluZyB0YWJsZSByb3dzLiBFdmVyeSBvcGVyYXRpb25cbiAqIHJlcXVpcmVzIGEgR3JhcGggYWNjZXNzIHRva2VuIGFuZCBhIHdvcmtib29rIGBpdGVtSWRgOyBtaXNzaW5nIGNyZWRlbnRpYWxzIG9yXG4gKiBpZGVudGlmaWVycyByYWlzZSBgSW50ZXJuYWxFcnJvcmAsIGFuZCB0cmFuc3BvcnQgZmFpbHVyZXMgYXJlIG1hcHBlZCB0byBkZWNhZlxuICogZXJyb3JzIHZpYSB7QGxpbmsgaHR0cEVycm9yfS5cbiAqIEBjbGFzcyBNaWNyb3NvZnRFeGNlbFNlcnZpY2VcbiAqIEBleHRlbmRzIEh0dHBBcGlTZXJ2aWNlXG4gKiBAY2F0ZWdvcnkgSU9cbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgTWljcm9zb2Z0RXhjZWxTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9pbnRlZ3JhdGlvbnMvaW8vbWljcm9zb2Z0LWV4Y2VsXCI7XG4gKlxuICogY29uc3QgZXhjZWwgPSBuZXcgTWljcm9zb2Z0RXhjZWxTZXJ2aWNlKCk7XG4gKiBhd2FpdCBleGNlbC5pbml0aWFsaXplKHtcbiAqICAgdG9rZW46IHByb2Nlc3MuZW52LkdSQVBIX0NSRURFTlRJQUxfTUlDUk9TT0ZUX0VYQ0VMX1RPS0VOLFxuICogfSk7XG4gKiBjb25zdCByYW5nZSA9IGF3YWl0IGV4Y2VsLmdldFJhbmdlKHtcbiAqICAgaXRlbUlkOiBwcm9jZXNzLmVudi5FWENFTF9JVEVNX0lEID8/IFwiXCIsXG4gKiAgIHdvcmtzaGVldDogXCJTaGVldDFcIixcbiAqICAgcmFuZ2U6IFwiQTE6QzEwXCIsXG4gKiB9KTtcbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBhdXRvbnVtYmVyXG4gKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICogICBwYXJ0aWNpcGFudCBTZXJ2aWNlIGFzIE1pY3Jvc29mdEV4Y2VsU2VydmljZVxuICogICBwYXJ0aWNpcGFudCBHcmFwaCBhcyBNaWNyb3NvZnQgR3JhcGhcbiAqICAgQ2FsbGVyLT4+U2VydmljZTogdXBkYXRlUmFuZ2UoaW5wdXQpXG4gKiAgIGFjdGl2YXRlIFNlcnZpY2VcbiAqICAgU2VydmljZS0+PlNlcnZpY2U6IHJlcXVpcmVBY2Nlc3NUb2tlbigpXG4gKiAgIFNlcnZpY2UtPj5HcmFwaDogUEFUQ0ggL21lL2RyaXZlL2l0ZW1zL3tpZH0vd29ya2Jvb2svd29ya3NoZWV0cy97bmFtZX0vcmFuZ2UoLi4uKVxuICogICBhY3RpdmF0ZSBHcmFwaFxuICogICBHcmFwaC0tPj5TZXJ2aWNlOiB1cGRhdGVkIHJhbmdlIHBheWxvYWRcbiAqICAgZGVhY3RpdmF0ZSBHcmFwaFxuICogICBTZXJ2aWNlLS0+PkNhbGxlcjogdXBkYXRlZCByYW5nZSBwYXlsb2FkXG4gKiAgIGRlYWN0aXZhdGUgU2VydmljZVxuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vbWljcm9zb2Z0LWV4Y2VsL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIE1pY3Jvc29mdEV4Y2VsU2VydmljZSBleHRlbmRzIEh0dHBBcGlTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcHJvdmlkZXIgbmFtZSB1c2VkIGluIGVycm9yIG1lc3NhZ2VzXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNlcnZpY2VOYW1lID0gXCJNaWNyb3NvZnQgRXhjZWxcIjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBNaWNyb3NvZnQgR3JhcGggYmFzZSBVUkxcbiAgICAgKiBAc3VtbWFyeSBVc2VkIHdoZW4gdGhlIHJlc29sdmVkIGNvbmZpZyBjYXJyaWVzIG5vIGBiYXNlVXJsYC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBgXCJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vdjEuMFwiYC5cbiAgICAgKi9cbiAgICBkZWZhdWx0QmFzZVVybCgpIHtcbiAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9ncmFwaC5taWNyb3NvZnQuY29tL3YxLjBcIjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEJ1aWxkcyB0aGUgTWljcm9zb2Z0IEdyYXBoIGJlYXJlciBhdXRob3JpemF0aW9uIGhlYWRlcnNcbiAgICAgKiBAc3VtbWFyeSBSZXR1cm5zIGBBdXRob3JpemF0aW9uOiBCZWFyZXIgPHRva2VuPmAgd2hlbiBjb25maWd1cmVkLCBhbmQgbm9cbiAgICAgKiBoZWFkZXJzIG90aGVyd2lzZS5cbiAgICAgKiBAcGFyYW0ge01pY3Jvc29mdEV4Y2VsU2VydmljZUNvbmZpZ30gY29uZmlnIC0gVGhlIHJlc29sdmVkIHNlcnZpY2UgY29uZmlndXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gVGhlIGF1dGhvcml6YXRpb24gaGVhZGVycyAoZW1wdHkgd2l0aG91dCBhIHRva2VuKS5cbiAgICAgKi9cbiAgICBhdXRoSGVhZGVycyhjb25maWcpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy50b2tlbiA/IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2NvbmZpZy50b2tlbn1gIH0gOiB7fTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlYWRzIHRoZSBFeGNlbCBjcmVkZW50aWFscyBhbmQgZGVmYXVsdHMgZnJvbSB0aGUgZW52aXJvbm1lbnRcbiAgICAgKiBAc3VtbWFyeSBSZWFkcyB0aGUgYGlvLm1pY3Jvc29mdEV4Y2VsYCBzbGljZSBhbmQgcmV0dXJucyBhIHBhcnRpYWwgY29uZmlnXG4gICAgICogd2hlbiBhbiBhY2Nlc3MgdG9rZW4gaXMgY29uZmlndXJlZCwgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLiBWYWx1ZXMgcGFzc1xuICAgICAqIHRocm91Z2ggYGVudlN0cmluZ2AvYGVudk51bWJlcmAgdG8gcmVqZWN0IHVuc2V0LWxlYWYgcHJveGllcy5cbiAgICAgKiBAcmV0dXJucyB7UGFydGlhbDxNaWNyb3NvZnRFeGNlbFNlcnZpY2VDb25maWc+IHwgdW5kZWZpbmVkfSBBIHBhcnRpYWwgY29uZmlnLCBvciBgdW5kZWZpbmVkYCB3aGVuIG5vIEV4Y2VsIHRva2VuIGlzIGNvbmZpZ3VyZWQuXG4gICAgICovXG4gICAgY29uZmlnRnJvbUVudmlyb25tZW50KCkge1xuICAgICAgICBjb25zdCBlbnYgPSBJb0Vudmlyb25tZW50LmlvLm1pY3Jvc29mdEV4Y2VsO1xuICAgICAgICBjb25zdCB0b2tlbiA9IGVudlN0cmluZyhlbnY/LnRva2VuKTtcbiAgICAgICAgaWYgKCF0b2tlbilcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICAgIGJhc2VVcmw6IGVudlN0cmluZyhlbnYuYmFzZVVybCksXG4gICAgICAgICAgICB0aW1lb3V0OiBlbnZOdW1iZXIoZW52LnRpbWVvdXQpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXNzZXJ0cyB0aGF0IGEgTWljcm9zb2Z0IEdyYXBoIGFjY2VzcyB0b2tlbiBpcyBjb25maWd1cmVkXG4gICAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSBzaGFyZWQgYHJlcXVpcmVUb2tlbigpYCBndWFyZCB1c2VkIGJ5IGV2ZXJ5XG4gICAgICogb3BlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gdGhlIHJlc29sdmVkIGNvbmZpZyBoYXMgbm8gYHRva2VuYC5cbiAgICAgKi9cbiAgICByZXF1aXJlQWNjZXNzVG9rZW4oKSB7XG4gICAgICAgIHRoaXMucmVxdWlyZVRva2VuKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgdGhlIEdyYXBoIHdvcmtib29rIHBhdGggZm9yIGEgZHJpdmUgaXRlbVxuICAgICAqIEBzdW1tYXJ5IFVzZXMgYC9kcml2ZXMvPGRyaXZlSWQ+L2l0ZW1zLzxpdGVtSWQ+L3dvcmtib29rYCB3aGVuIGEgYGRyaXZlSWRgXG4gICAgICogaXMgc2V0LCBvdGhlcndpc2UgdGhlIHNpZ25lZC1pbiB1c2VyJ3MgYC9tZS9kcml2ZS8uLi5gIHBhdGguXG4gICAgICogQHBhcmFtIHtFeGNlbFdvcmtib29rUmVmfSBpbnB1dCAtIFRoZSB3b3JrYm9vayByZWZlcmVuY2UuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHdvcmtib29rIEFQSSBwYXRoLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gYGl0ZW1JZGAgaXMgZW1wdHkuXG4gICAgICovXG4gICAgd29ya2Jvb2tQYXRoKGlucHV0KSB7XG4gICAgICAgIGlmICghaW5wdXQuaXRlbUlkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk1pY3Jvc29mdCBFeGNlbCByZXF1aXJlcyBhIHdvcmtib29rIGl0ZW0gaWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbSA9IGVuY29kZVVSSUNvbXBvbmVudChpbnB1dC5pdGVtSWQpO1xuICAgICAgICByZXR1cm4gaW5wdXQuZHJpdmVJZFxuICAgICAgICAgICAgPyBgL2RyaXZlcy8ke2VuY29kZVVSSUNvbXBvbmVudChpbnB1dC5kcml2ZUlkKX0vaXRlbXMvJHtpdGVtfS93b3JrYm9va2BcbiAgICAgICAgICAgIDogYC9tZS9kcml2ZS9pdGVtcy8ke2l0ZW19L3dvcmtib29rYDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEJ1aWxkcyB0aGUgR3JhcGggd29ya3NoZWV0IHJhbmdlIHBhdGhcbiAgICAgKiBAc3VtbWFyeSBBcHBlbmRzIHRoZSBlbmNvZGVkIHdvcmtzaGVldCBhbmQgQTEgYHJhbmdlKGFkZHJlc3M9Li4uKWBcbiAgICAgKiBzZWdtZW50cyB0byB0aGUgd29ya2Jvb2sgcGF0aC5cbiAgICAgKiBAcGFyYW0ge0V4Y2VsUmFuZ2VJbnB1dH0gaW5wdXQgLSBUaGUgd29ya2Jvb2ssIHdvcmtzaGVldCwgYW5kIHJhbmdlLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSB3b3Jrc2hlZXQgcmFuZ2UgQVBJIHBhdGguXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgd29ya3NoZWV0IG9yIHJhbmdlIGlzIGVtcHR5LlxuICAgICAqL1xuICAgIHJhbmdlUGF0aChpbnB1dCkge1xuICAgICAgICBpZiAoIWlucHV0LndvcmtzaGVldCB8fCAhaW5wdXQucmFuZ2UpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTWljcm9zb2Z0IEV4Y2VsIHJlcXVpcmVzIGEgd29ya3NoZWV0IGFuZCByYW5nZVwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7dGhpcy53b3JrYm9va1BhdGgoaW5wdXQpfS93b3Jrc2hlZXRzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGlucHV0LndvcmtzaGVldCl9L3JhbmdlKGFkZHJlc3M9JyR7ZW5jb2RlVVJJQ29tcG9uZW50KGlucHV0LnJhbmdlKX0nKWA7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0cyB0aGUgd29ya3NoZWV0cyBpbiBhIHdvcmtib29rXG4gICAgICogQHN1bW1hcnkgYEdFVGBzIHRoZSB3b3JrYm9vaydzIGAvd29ya3NoZWV0c2AgY29sbGVjdGlvbi5cbiAgICAgKiBAcGFyYW0ge0V4Y2VsV29ya2Jvb2tSZWZ9IGlucHV0IC0gVGhlIHdvcmtib29rIHJlZmVyZW5jZS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIEdyYXBoIHdvcmtzaGVldCBjb2xsZWN0aW9uLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gdG9rZW4gaXMgY29uZmlndXJlZCBvciBgaXRlbUlkYCBpcyBlbXB0eS5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSB3b3JrYm9vayBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHcmFwaCByZWplY3RzIHRoZSByZXF1ZXN0LlxuICAgICAqL1xuICAgIGFzeW5jIGxpc3RXb3Jrc2hlZXRzKGlucHV0KSB7XG4gICAgICAgIHRoaXMucmVxdWlyZUFjY2Vzc1Rva2VuKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldChgJHt0aGlzLndvcmtib29rUGF0aChpbnB1dCl9L3dvcmtzaGVldHNgKTtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgaHR0cEVycm9yKFwiTWljcm9zb2Z0IEV4Y2VsXCIsIFwibGlzdCB3b3Jrc2hlZXRzXCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgdmFsdWVzIGZyb20gYSB3b3Jrc2hlZXQgcmFuZ2VcbiAgICAgKiBAc3VtbWFyeSBgR0VUYHMgdGhlIGFkZHJlc3NlZCByYW5nZSBhbmQgcmV0dXJucyBpdHMgdmFsdWVzIGFuZCBmb3JtYXR0aW5nXG4gICAgICogcGF5bG9hZC5cbiAgICAgKiBAcGFyYW0ge0V4Y2VsUmFuZ2VJbnB1dH0gaW5wdXQgLSBUaGUgd29ya2Jvb2ssIHdvcmtzaGVldCwgYW5kIHJhbmdlLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgcmFuZ2UgcGF5bG9hZC5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIHRva2VuIGlzIGNvbmZpZ3VyZWQsIG9yIHRoZSB3b3JrYm9vaywgd29ya3NoZWV0LCBvciByYW5nZSBpcyBlbXB0eS5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSB3b3JrYm9vayBvciByYW5nZSBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHcmFwaCByZWplY3RzIHRoZSByZXF1ZXN0LlxuICAgICAqL1xuICAgIGFzeW5jIGdldFJhbmdlKGlucHV0KSB7XG4gICAgICAgIHRoaXMucmVxdWlyZUFjY2Vzc1Rva2VuKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldCh0aGlzLnJhbmdlUGF0aChpbnB1dCkpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBodHRwRXJyb3IoXCJNaWNyb3NvZnQgRXhjZWxcIiwgXCJnZXQgcmFuZ2VcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXcml0ZXMgdmFsdWVzIGludG8gYSB3b3Jrc2hlZXQgcmFuZ2VcbiAgICAgKiBAc3VtbWFyeSBgUEFUQ0hgZXMgdGhlIGFkZHJlc3NlZCByYW5nZSB3aXRoIHRoZSBzdXBwbGllZCBgdmFsdWVzYCBtYXRyaXhcbiAgICAgKiBhbmQgcmV0dXJucyB0aGUgdXBkYXRlZCByYW5nZSBwYXlsb2FkLlxuICAgICAqIEBwYXJhbSB7RXhjZWxSYW5nZVdyaXRlSW5wdXR9IGlucHV0IC0gVGhlIHJhbmdlIHJlZmVyZW5jZSBhbmQgdmFsdWVzIHRvIHdyaXRlLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgdXBkYXRlZCByYW5nZSBwYXlsb2FkLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gdG9rZW4gaXMgY29uZmlndXJlZCwgb3IgdGhlIHdvcmtib29rLCB3b3Jrc2hlZXQsIG9yIHJhbmdlIGlzIGVtcHR5LlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIHdvcmtib29rIG9yIHJhbmdlIGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdyYXBoIHJlamVjdHMgdGhlIHJlcXVlc3QuXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlUmFuZ2UoaW5wdXQpIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlQWNjZXNzVG9rZW4oKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucGF0Y2godGhpcy5yYW5nZVBhdGgoaW5wdXQpLCB7XG4gICAgICAgICAgICAgICAgdmFsdWVzOiBpbnB1dC52YWx1ZXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgaHR0cEVycm9yKFwiTWljcm9zb2Z0IEV4Y2VsXCIsIFwidXBkYXRlIHJhbmdlXCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdHMgdGhlIHRhYmxlcyBpbiBhIHdvcmtib29rXG4gICAgICogQHN1bW1hcnkgYEdFVGBzIHRoZSB3b3JrYm9vaydzIGAvdGFibGVzYCBjb2xsZWN0aW9uLlxuICAgICAqIEBwYXJhbSB7RXhjZWxXb3JrYm9va1JlZn0gaW5wdXQgLSBUaGUgd29ya2Jvb2sgcmVmZXJlbmNlLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgR3JhcGggdGFibGUgY29sbGVjdGlvbi5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIHRva2VuIGlzIGNvbmZpZ3VyZWQgb3IgYGl0ZW1JZGAgaXMgZW1wdHkuXG4gICAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgd29ya2Jvb2sgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR3JhcGggcmVqZWN0cyB0aGUgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBhc3luYyBsaXN0VGFibGVzKGlucHV0KSB7XG4gICAgICAgIHRoaXMucmVxdWlyZUFjY2Vzc1Rva2VuKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldChgJHt0aGlzLndvcmtib29rUGF0aChpbnB1dCl9L3RhYmxlc2ApO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBodHRwRXJyb3IoXCJNaWNyb3NvZnQgRXhjZWxcIiwgXCJsaXN0IHRhYmxlc1wiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFwcGVuZHMgYSByb3cgdG8gYW4gRXhjZWwgdGFibGVcbiAgICAgKiBAc3VtbWFyeSBgUE9TVGBzIHRoZSBzaW5nbGUgcm93IHRvIHRoZSB0YWJsZSdzIGAvcm93cy9hZGRgIGVuZHBvaW50IGFuZFxuICAgICAqIHJldHVybnMgdGhlIEdyYXBoIHJvdyBwYXlsb2FkLlxuICAgICAqIEBwYXJhbSB7RXhjZWxUYWJsZVJvd0lucHV0fSBpbnB1dCAtIFRoZSB3b3JrYm9vaywgdGFibGUsIGFuZCByb3cgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgY3JlYXRlZCB0YWJsZSByb3cgcGF5bG9hZC5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIHRva2VuIGlzIGNvbmZpZ3VyZWQsIG9yIHRoZSB3b3JrYm9vaywgdGFibGUsIG9yIHZhbHVlcyBhcmUgbWlzc2luZy5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSB3b3JrYm9vayBvciB0YWJsZSBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHcmFwaCByZWplY3RzIHRoZSByZXF1ZXN0LlxuICAgICAqL1xuICAgIGFzeW5jIGFkZFRhYmxlUm93KGlucHV0KSB7XG4gICAgICAgIHRoaXMucmVxdWlyZUFjY2Vzc1Rva2VuKCk7XG4gICAgICAgIGlmICghaW5wdXQudGFibGVJZCB8fCAhaW5wdXQudmFsdWVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTWljcm9zb2Z0IEV4Y2VsIGFkZFRhYmxlUm93IHJlcXVpcmVzIGEgdGFibGUgaWQgYW5kIHZhbHVlc1wiKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0KGAke3RoaXMud29ya2Jvb2tQYXRoKGlucHV0KX0vdGFibGVzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGlucHV0LnRhYmxlSWQpfS9yb3dzL2FkZGAsIHsgdmFsdWVzOiBbaW5wdXQudmFsdWVzXSB9KTtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgaHR0cEVycm9yKFwiTWljcm9zb2Z0IEV4Y2VsXCIsIFwiYWRkIHRhYmxlIHJvd1wiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lUV2xqY205emIyWjBSWGhqWld4VFpYSjJhV05sTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwybHZMMjFwWTNKdmMyOW1kQzFsZUdObGJDOU5hV055YjNOdlpuUkZlR05sYkZObGNuWnBZMlV1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdPenM3T3pzN096czdPenRIUVZsSE8wRkJRMGdzVDBGQlR5eEZRVUZGTEdGQlFXRXNSVUZCUlN4TlFVRk5MSGxDUVVGNVFpeERRVUZETzBGQlEzaEVMRTlCUVU4c1JVRkJSU3hoUVVGaExFVkJRVVVzTkVKQlFYVkNPMEZCUXk5RExFOUJRVThzUlVGQlJTeFRRVUZUTEVWQlFVVXNVMEZCVXl4RlFVRkZMREpEUVVGelF6dEJRVU55UlN4UFFVRlBMRVZCUTB3c1kwRkJZeXhGUVVWa0xGTkJRVk1zUjBGRFZpeHhRMEZCTUVJN1FVRjNSak5DT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wZEJkME5ITzBGQlEwZ3NUVUZCVFN4UFFVRlBMSEZDUVVGelFpeFRRVUZSTEdOQlFUSkRPMGxCUVhSR096dFJRVU5GT3p0WFFVVkhPMUZCUTJkQ0xHZENRVUZYTEVkQlFVY3NhVUpCUVdsQ0xFTkJRVU03U1VFMlRYSkVMRU5CUVVNN1NVRXpUVU03T3pzN1QwRkpSenRKUVVOUExHTkJRV003VVVGRGRFSXNUMEZCVHl4clEwRkJhME1zUTBGQlF6dEpRVU0xUXl4RFFVRkRPMGxCUlVRN096czdPenRQUVUxSE8wbEJRMDhzVjBGQlZ5eERRVU51UWl4TlFVRnRRenRSUVVWdVF5eFBRVUZQTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzWVVGQllTeEZRVUZGTEZWQlFWVXNUVUZCVFN4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXp0SlFVTjZSU3hEUVVGRE8wbEJSVVE3T3pzN096dFBRVTFITzBsQlEwOHNjVUpCUVhGQ08xRkJSemRDTEUxQlFVMHNSMEZCUnl4SFFVRkhMR0ZCUVdFc1EwRkJReXhGUVVGRkxFTkJRVU1zWTBGQll5eERRVUZETzFGQlF6VkRMRTFCUVUwc1MwRkJTeXhIUVVGSExGTkJRVk1zUTBGQlF5eEhRVUZITEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRjRU1zU1VGQlNTeERRVUZETEV0QlFVczdXVUZCUlN4UFFVRlBMRk5CUVZNc1EwRkJRenRSUVVNM1FpeFBRVUZQTzFsQlEwd3NTMEZCU3p0WlFVTk1MRTlCUVU4c1JVRkJSU3hUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXp0WlFVTXZRaXhQUVVGUExFVkJRVVVzVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNN1UwRkRhRU1zUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkRzN096czdPMDlCVFVjN1NVRkRUeXhyUWtGQmEwSTdVVUZETVVJc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzBsQlEzUkNMRU5CUVVNN1NVRkZSRHM3T3pzN096dFBRVTlITzBsQlEwc3NXVUZCV1N4RFFVRkRMRXRCUVhWQ08xRkJRekZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGRGJFSXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXcyUTBGQk5rTXNRMEZCUXl4RFFVRkRPMUZCUTNwRkxFTkJRVU03VVVGRFJDeE5RVUZOTEVsQlFVa3NSMEZCUnl4clFrRkJhMElzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRPVU1zVDBGQlR5eExRVUZMTEVOQlFVTXNUMEZCVHp0WlFVTnNRaXhEUVVGRExFTkJRVU1zVjBGQlZ5eHJRa0ZCYTBJc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNTVUZCU1N4WFFVRlhPMWxCUTNaRkxFTkJRVU1zUTBGQlF5eHRRa0ZCYlVJc1NVRkJTU3hYUVVGWExFTkJRVU03U1VGRGVrTXNRMEZCUXp0SlFVVkVPenM3T3pzN08wOUJUMGM3U1VGRFN5eFRRVUZUTEVOQlFVTXNTMEZCYzBJN1VVRkRkRU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEY2tNc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNaMFJCUVdkRUxFTkJRMnBFTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUTBRc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc2EwSkJRV3RDTEVOQlEycEZMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRMmhDTEcxQ1FVRnRRaXhyUWtGQmEwSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF6dEpRVU14UkN4RFFVRkRPMGxCUlVRN096czdPenM3TzA5QlVVYzdTVUZEU0N4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVGRExFdEJRWFZDTzFGQlF6RkRMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRPMUZCUXpGQ0xFbEJRVWtzUTBGQlF6dFpRVU5JTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlEzQkRMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVTjZReXhEUVVGRE8xbEJRMFlzVDBGQlR5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUTNaQ0xFTkJRVU03VVVGQlF5eFBRVUZQTEV0QlFVc3NSVUZCUlN4RFFVRkRPMWxCUTJZc1RVRkJUU3hUUVVGVExFTkJRVU1zYVVKQlFXbENMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRMMFFzUTBGQlF6dEpRVU5JTEVOQlFVTTdTVUZGUkRzN096czdPenM3TzA5QlUwYzdTVUZEU0N4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRWE5DTzFGQlEyNURMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRPMUZCUXpGQ0xFbEJRVWtzUTBGQlF6dFpRVU5JTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6bEVMRTlCUVU4c1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF6dFJRVU4yUWl4RFFVRkRPMUZCUVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzUTBGQlF6dFpRVU5tTEUxQlFVMHNVMEZCVXl4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTEZkQlFWY3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVONlJDeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVkVPenM3T3pzN096czdUMEZUUnp0SlFVTklMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zUzBGQk1rSTdVVUZETTBNc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RlFVRkZMRU5CUVVNN1VVRkRNVUlzU1VGQlNTeERRVUZETzFsQlEwZ3NUVUZCVFN4UlFVRlJMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTzJkQ1FVTTVSQ3hOUVVGTkxFVkJRVVVzUzBGQlN5eERRVUZETEUxQlFVMDdZVUZEY2tJc1EwRkJReXhEUVVGRE8xbEJRMGdzVDBGQlR5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUTNaQ0xFTkJRVU03VVVGQlF5eFBRVUZQTEV0QlFVc3NSVUZCUlN4RFFVRkRPMWxCUTJZc1RVRkJUU3hUUVVGVExFTkJRVU1zYVVKQlFXbENMRVZCUVVVc1kwRkJZeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlF6VkVMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wbEJSVVE3T3pzN096czdPMDlCVVVjN1NVRkRTQ3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFYVkNPMUZCUTNSRExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hEUVVGRE8xRkJRekZDTEVsQlFVa3NRMEZCUXp0WlFVTklMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUTNCRExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVOeVF5eERRVUZETzFsQlEwWXNUMEZCVHl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRE8xRkJRM1pDTEVOQlFVTTdVVUZCUXl4UFFVRlBMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRMllzVFVGQlRTeFRRVUZUTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzWVVGQllTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUXpORUxFTkJRVU03U1VGRFNDeERRVUZETzBsQlJVUTdPenM3T3pzN096dFBRVk5ITzBsQlEwZ3NTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGNVFqdFJRVU42UXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXp0UlFVTXhRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTTdXVUZETlVNc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNORVJCUVRSRUxFTkJRemRFTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUTBRc1NVRkJTU3hEUVVGRE8xbEJRMGdzVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGRGNrTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEd0Q1FVRnJRaXhEUVVOMFJDeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVTmtMRmRCUVZjc1JVRkRXaXhGUVVGRkxFMUJRVTBzUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVNelFpeERRVUZETzFsQlEwWXNUMEZCVHl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRE8xRkJRM1pDTEVOQlFVTTdVVUZCUXl4UFFVRlBMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRMllzVFVGQlRTeFRRVUZUTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzWlVGQlpTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUXpkRUxFTkJRVU03U1VGRFNDeERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lwY2JpQXFJRUJ0YjJSMWJHVWdhVzUwWldkeVlYUnBiMjV6TDJsdkwyMXBZM0p2YzI5bWRDMWxlR05sYkM5elpYSjJhV05sWEc0Z0tpQkFjM1Z0YldGeWVTQk5hV055YjNOdlpuUWdSWGhqWld3Z2QyOXlhMkp2YjJzZ2FXNTBaV2R5WVhScGIyNGdjMlZ5ZG1salpTQW9UV2xqY205emIyWjBJRWR5WVhCb0tTNWNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQkZlSEJ2YzJWeklFZHlZWEJvSUhkdmNtdGliMjlySUc5d1pYSmhkR2x2Ym5NZ0tIZHZjbXR6YUdWbGRITXNJSEpoYm1kbGN5d2dkR0ZpYkdWekxGeHVJQ29nWVc1a0lIUmhZbXhsSUhKdmQzTXBJR0Z6SUdGdUlIVnVaR1ZqYjNKaGRHVmtJR05zYVdWdWRDMWlZWE5sWkNCelpYSjJhV05sSUdKMWFXeDBJRzl1WEc0Z0tpQjdRR3hwYm1zZ1NIUjBjRUZ3YVZObGNuWnBZMlY5TGlCRGIyNW1hV2QxY21GMGFXOXVJR052YldWeklHWnliMjBnWVc0Z1pYaHdiR2xqYVhSY2JpQXFJR0JOYVdOeWIzTnZablJGZUdObGJGTmxjblpwWTJWRGIyNW1hV2RnSUc5eUlIUm9aU0JnYVc4dWJXbGpjbTl6YjJaMFJYaGpaV3hnSUdWdWRtbHliMjV0Wlc1MElITnNhV05sTzF4dUlDb2dkR2hsSUdGalkyVnpjeUIwYjJ0bGJpQnBjeUJ6Wlc1MElHRnpJR0JCZFhSb2IzSnBlbUYwYVc5dU9pQkNaV0Z5WlhJZ1BIUnZhMlZ1UG1BdUlGZHZjbXRpYjI5cmN5QmhjbVZjYmlBcUlHRmtaSEpsYzNObFpDQmllU0JQYm1WRWNtbDJaUzlUYUdGeVpWQnZhVzUwSUdCcGRHVnRTV1JnTENCdmNIUnBiMjVoYkd4NUlIZHBkR2hwYmlCaElHQmtjbWwyWlVsa1lDNWNiaUFxSUVOeVpXUmxiblJwWVd4eklHRnlaU0J5WldabGNtVnVZMlZrSUdaeWIyMGdZMjl1Wm1sbmRYSmhkR2x2YmlBb1lXNWtMQ0JtY205dElHRnpMV2R5WVhCb0lHNXZaR1Z6TENCbWNtOXRYRzRnS2lCMGFHVWdjbVZ6YjJ4MlpXUWdZRzFwWTNKdmMyOW1kQzFsZUdObGJHQWdZM0psWkdWdWRHbGhiQ0J6WldOeVpYUXBJR0Z1WkNCaGNtVWdibVYyWlhJZ1pXMWlaV1JrWldRZ2FXNWNiaUFxSUhOdmRYSmpaUzRnUm1GcGJIVnlaWE1nWVhKbElHMWhjSEJsWkNCMGJ5QmtaV05oWmlCbGNuSnZjbk1nZG1saElIdEFiR2x1YXlCb2RIUndSWEp5YjNKOUxseHVJQ292WEc1cGJYQnZjblFnZXlCSmJuUmxjbTVoYkVWeWNtOXlJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWWkxa1pXTnZjbUYwYjNKelhDSTdYRzVwYlhCdmNuUWdleUJKYjBWdWRtbHliMjV0Wlc1MElIMGdabkp2YlNCY0lpNHVMMlZ1ZG1seWIyNXRaVzUwWENJN1hHNXBiWEJ2Y25RZ2V5QmxiblpPZFcxaVpYSXNJR1Z1ZGxOMGNtbHVaeUI5SUdaeWIyMGdYQ0l1TGk4dUxpOXphR0Z5WldRdlpXNTJhWEp2Ym0xbGJuUldZV3gxWlZ3aU8xeHVhVzF3YjNKMElIdGNiaUFnU0hSMGNFRndhVk5sY25acFkyVXNYRzRnSUhSNWNHVWdTSFIwY0VGd2FWTmxjblpwWTJWRGIyNW1hV2NzWEc0Z0lHaDBkSEJGY25KdmNpeGNibjBnWm5KdmJTQmNJaTR1THk0dUwzTm9ZWEpsWkM5b2RIUndYQ0k3WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRU52Ym1acFozVnlZWFJwYjI0Z1ptOXlJSFJvWlNCTmFXTnliM052Wm5RZ1JYaGpaV3dnYzJWeWRtbGpaVnh1SUNvZ1FITjFiVzFoY25rZ1JYaDBaVzVrY3lCN1FHeHBibXNnU0hSMGNFRndhVk5sY25acFkyVkRiMjVtYVdkOUlIZHBkR2dnZEdobElFMXBZM0p2YzI5bWRDQkhjbUZ3YUZ4dUlDb2dZV05qWlhOeklIUnZhMlZ1SUhObGJuUWdZWE1nWVNCaVpXRnlaWElnZEc5clpXNHVJRmRvWlc0Z2IyMXBkSFJsWkN3Z2RHaGxYRzRnS2lCZ2FXOHViV2xqY205emIyWjBSWGhqWld4Z0lHVnVkbWx5YjI1dFpXNTBJSE5zYVdObElITjFjSEJzYVdWeklIUm9aU0IwYjJ0bGJpQW9jR3gxY3lCdmNIUnBiMjVoYkZ4dUlDb2dZR0poYzJWVmNteGdMMkIwYVcxbGIzVjBZQ2t1WEc0Z0tpQkFZMkYwWldkdmNua2dTVTljYmlBcUlFQnRaVzFpWlhKUFppQnRiMlIxYkdVNmFXNTBaV2R5WVhScGIyNXpMMmx2TDIxcFkzSnZjMjltZEMxbGVHTmxiQzl6WlhKMmFXTmxYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1RXbGpjbTl6YjJaMFJYaGpaV3hUWlhKMmFXTmxRMjl1Wm1sbklHVjRkR1Z1WkhNZ1NIUjBjRUZ3YVZObGNuWnBZMlZEYjI1bWFXY2dlMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRTFwWTNKdmMyOW1kQ0JIY21Gd2FDQmhZMk5sYzNNZ2RHOXJaVzVjYmlBZ0lDb2dRSE4xYlcxaGNua2dVMlZ1ZENCaGN5QmdRWFYwYUc5eWFYcGhkR2x2YmpvZ1FtVmhjbVZ5SUR4MGIydGxiajVnSUhkcGRHZ2daWFpsY25rZ1FWQkpJR05oYkd3dVhHNGdJQ0FxTDF4dUlDQjBiMnRsYmo4NklITjBjbWx1Wnp0Y2JuMWNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1VtVm1aWEpsYm1ObElIUnZJR0Z1SUVWNFkyVnNJSGR2Y210aWIyOXJYRzRnS2lCQWMzVnRiV0Z5ZVNCSlpHVnVkR2xtYVdWeklHRWdkMjl5YTJKdmIyc2dZbmtnYVhSeklHUnlhWFpsSUdsMFpXMGdZR2wwWlcxSlpHQWdZVzVrTENCdmNIUnBiMjVoYkd4NUxGeHVJQ29nZEdobElHQmtjbWwyWlVsa1lDQjBhR0YwSUc5M2JuTWdhWFF1SUZkcGRHaHZkWFFnWUdSeWFYWmxTV1JnSUhSb1pTQnphV2R1WldRdGFXNGdkWE5sY2lkeklHUnlhWFpsSUdselhHNGdLaUIxYzJWa0xseHVJQ29nUUdOaGRHVm5iM0o1SUVsUFhHNGdLaUJBYldWdFltVnlUMllnYlc5a2RXeGxPbWx1ZEdWbmNtRjBhVzl1Y3k5cGJ5OXRhV055YjNOdlpuUXRaWGhqWld3dmMyVnlkbWxqWlZ4dUlDb3ZYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRVY0WTJWc1YyOXlhMkp2YjJ0U1pXWWdlMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRVJ5YVhabElHbDBaVzBnU1VRZ2IyWWdkR2hsSUhkdmNtdGliMjlyWEc0Z0lDQXFMMXh1SUNCcGRHVnRTV1E2SUhOMGNtbHVaenRjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJFY21sMlpTQkpSQ0J2ZDI1cGJtY2dkR2hsSUhkdmNtdGliMjlySUNoa1pXWmhkV3gwY3lCMGJ5QjBhR1VnZFhObGNpZHpJR1J5YVhabEtWeHVJQ0FnS2k5Y2JpQWdaSEpwZG1WSlpEODZJSE4wY21sdVp6dGNibjFjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdVbVZtWlhKbGJtTmxJSFJ2SUdFZ2QyOXlhM05vWldWMElISmhibWRsWEc0Z0tpQkFjM1Z0YldGeWVTQkRZWEp5YVdWeklIUm9aU0IzYjNKclltOXZheUJ5WldabGNtVnVZMlVnY0d4MWN5QjBhR1VnWUhkdmNtdHphR1ZsZEdBZ2JtRnRaU0JoYm1RZ2RHaGxYRzRnS2lCQk1TMXpkSGxzWlNCZ2NtRnVaMlZnSUdGa1pISmxjM01nS0dVdVp5NGdZRndpUVRFNlF6RXdYQ0pnS1M1Y2JpQXFJRUJqWVhSbFoyOXllU0JKVDF4dUlDb2dRRzFsYldKbGNrOW1JRzF2WkhWc1pUcHBiblJsWjNKaGRHbHZibk12YVc4dmJXbGpjbTl6YjJaMExXVjRZMlZzTDNObGNuWnBZMlZjYmlBcUwxeHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkZlR05sYkZKaGJtZGxTVzV3ZFhRZ1pYaDBaVzVrY3lCRmVHTmxiRmR2Y210aWIyOXJVbVZtSUh0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCWGIzSnJjMmhsWlhRZ2JtRnRaVnh1SUNBZ0tpOWNiaUFnZDI5eWEzTm9aV1YwT2lCemRISnBibWM3WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUVRFdGMzUjViR1VnY21GdVoyVWdZV1JrY21WemMxeHVJQ0FnS2k5Y2JpQWdjbUZ1WjJVNklITjBjbWx1Wnp0Y2JuMWNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1NXNXdkWFFnWm05eUlIZHlhWFJwYm1jZ2RtRnNkV1Z6SUhSdklHRWdkMjl5YTNOb1pXVjBJSEpoYm1kbFhHNGdLaUJBYzNWdGJXRnllU0JEWVhKeWFXVnpJSFJvWlNCeVlXNW5aU0J5WldabGNtVnVZMlVnY0d4MWN5QjBhR1VnZEhkdkxXUnBiV1Z1YzJsdmJtRnNJR0IyWVd4MVpYTmdYRzRnS2lCdFlYUnlhWGdnZDNKcGRIUmxiaUIwYnlCcGRDNWNiaUFxSUVCallYUmxaMjl5ZVNCSlQxeHVJQ29nUUcxbGJXSmxjazltSUcxdlpIVnNaVHBwYm5SbFozSmhkR2x2Ym5NdmFXOHZiV2xqY205emIyWjBMV1Y0WTJWc0wzTmxjblpwWTJWY2JpQXFMMXh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JGZUdObGJGSmhibWRsVjNKcGRHVkpibkIxZENCbGVIUmxibVJ6SUVWNFkyVnNVbUZ1WjJWSmJuQjFkQ0I3WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVW05M0xXMWhhbTl5SUcxaGRISnBlQ0J2WmlCMllXeDFaWE1nZEc4Z2QzSnBkR1ZjYmlBZ0lDb3ZYRzRnSUhaaGJIVmxjem9nZFc1cmJtOTNibHRkVzEwN1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFbHVjSFYwSUdadmNpQmhjSEJsYm1ScGJtY2dZU0J5YjNjZ2RHOGdZVzRnUlhoalpXd2dkR0ZpYkdWY2JpQXFJRUJ6ZFcxdFlYSjVJRU5oY25KcFpYTWdkR2hsSUhkdmNtdGliMjlySUhKbFptVnlaVzVqWlN3Z2RHaGxJR0IwWVdKc1pVbGtZQ3dnWVc1a0lIUm9aU0J5YjNkY2JpQXFJR0IyWVd4MVpYTmdJR2x1SUhSaFlteGxMV052YkhWdGJpQnZjbVJsY2k1Y2JpQXFJRUJqWVhSbFoyOXllU0JKVDF4dUlDb2dRRzFsYldKbGNrOW1JRzF2WkhWc1pUcHBiblJsWjNKaGRHbHZibk12YVc4dmJXbGpjbTl6YjJaMExXVjRZMlZzTDNObGNuWnBZMlZjYmlBcUwxeHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkZlR05sYkZSaFlteGxVbTkzU1c1d2RYUWdaWGgwWlc1a2N5QkZlR05sYkZkdmNtdGliMjlyVW1WbUlIdGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlVZV0pzWlNCSlJDQjNhWFJvYVc0Z2RHaGxJSGR2Y210aWIyOXJYRzRnSUNBcUwxeHVJQ0IwWVdKc1pVbGtPaUJ6ZEhKcGJtYzdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVbTkzSUhaaGJIVmxjeUJwYmlCMFlXSnNaUzFqYjJ4MWJXNGdiM0prWlhKY2JpQWdJQ292WEc0Z0lIWmhiSFZsY3pvZ2RXNXJibTkzYmx0ZE8xeHVmVnh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQk5hV055YjNOdlpuUWdSWGhqWld3Z0tFZHlZWEJvS1NCM2IzSnJZbTl2YXlCcGJuUmxaM0poZEdsdmJpQnpaWEoyYVdObFhHNGdLaUJBYzNWdGJXRnllU0JCYmlCMWJtUmxZMjl5WVhSbFpDQklWRlJRSUhObGNuWnBZMlVnWm05eUlHeHBjM1JwYm1jZ2QyOXlhM05vWldWMGN5QmhibVFnZEdGaWJHVnpMRnh1SUNvZ2NtVmhaR2x1WnlCaGJtUWdkM0pwZEdsdVp5QnlZVzVuWlhNc0lHRnVaQ0JoY0hCbGJtUnBibWNnZEdGaWJHVWdjbTkzY3k0Z1JYWmxjbmtnYjNCbGNtRjBhVzl1WEc0Z0tpQnlaWEYxYVhKbGN5QmhJRWR5WVhCb0lHRmpZMlZ6Y3lCMGIydGxiaUJoYm1RZ1lTQjNiM0pyWW05dmF5QmdhWFJsYlVsa1lEc2diV2x6YzJsdVp5QmpjbVZrWlc1MGFXRnNjeUJ2Y2x4dUlDb2dhV1JsYm5ScFptbGxjbk1nY21GcGMyVWdZRWx1ZEdWeWJtRnNSWEp5YjNKZ0xDQmhibVFnZEhKaGJuTndiM0owSUdaaGFXeDFjbVZ6SUdGeVpTQnRZWEJ3WldRZ2RHOGdaR1ZqWVdaY2JpQXFJR1Z5Y205eWN5QjJhV0VnZTBCc2FXNXJJR2gwZEhCRmNuSnZjbjB1WEc0Z0tpQkFZMnhoYzNNZ1RXbGpjbTl6YjJaMFJYaGpaV3hUWlhKMmFXTmxYRzRnS2lCQVpYaDBaVzVrY3lCSWRIUndRWEJwVTJWeWRtbGpaVnh1SUNvZ1FHTmhkR1ZuYjNKNUlFbFBYRzRnS2lCQVpYaGhiWEJzWlZ4dUlDb2dZR0JnZEhOY2JpQXFJR2x0Y0c5eWRDQjdJRTFwWTNKdmMyOW1kRVY0WTJWc1UyVnlkbWxqWlNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdmFXNTBaV2R5WVhScGIyNXpMMmx2TDIxcFkzSnZjMjltZEMxbGVHTmxiRndpTzF4dUlDcGNiaUFxSUdOdmJuTjBJR1Y0WTJWc0lEMGdibVYzSUUxcFkzSnZjMjltZEVWNFkyVnNVMlZ5ZG1salpTZ3BPMXh1SUNvZ1lYZGhhWFFnWlhoalpXd3VhVzVwZEdsaGJHbDZaU2g3WEc0Z0tpQWdJSFJ2YTJWdU9pQndjbTlqWlhOekxtVnVkaTVIVWtGUVNGOURVa1ZFUlU1VVNVRk1YMDFKUTFKUFUwOUdWRjlGV0VORlRGOVVUMHRGVGl4Y2JpQXFJSDBwTzF4dUlDb2dZMjl1YzNRZ2NtRnVaMlVnUFNCaGQyRnBkQ0JsZUdObGJDNW5aWFJTWVc1blpTaDdYRzRnS2lBZ0lHbDBaVzFKWkRvZ2NISnZZMlZ6Y3k1bGJuWXVSVmhEUlV4ZlNWUkZUVjlKUkNBL1B5QmNJbHdpTEZ4dUlDb2dJQ0IzYjNKcmMyaGxaWFE2SUZ3aVUyaGxaWFF4WENJc1hHNGdLaUFnSUhKaGJtZGxPaUJjSWtFeE9rTXhNRndpTEZ4dUlDb2dmU2s3WEc0Z0tpQmdZR0JjYmlBcUlFQnRaWEp0WVdsa1hHNGdLaUJ6WlhGMVpXNWpaVVJwWVdkeVlXMWNiaUFxSUNBZ1lYVjBiMjUxYldKbGNseHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkRZV3hzWlhKY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1UyVnlkbWxqWlNCaGN5Qk5hV055YjNOdlpuUkZlR05sYkZObGNuWnBZMlZjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnUjNKaGNHZ2dZWE1nVFdsamNtOXpiMlowSUVkeVlYQm9YRzRnS2lBZ0lFTmhiR3hsY2kwK1BsTmxjblpwWTJVNklIVndaR0YwWlZKaGJtZGxLR2x1Y0hWMEtWeHVJQ29nSUNCaFkzUnBkbUYwWlNCVFpYSjJhV05sWEc0Z0tpQWdJRk5sY25acFkyVXRQajVUWlhKMmFXTmxPaUJ5WlhGMWFYSmxRV05qWlhOelZHOXJaVzRvS1Z4dUlDb2dJQ0JUWlhKMmFXTmxMVDQrUjNKaGNHZzZJRkJCVkVOSUlDOXRaUzlrY21sMlpTOXBkR1Z0Y3k5N2FXUjlMM2R2Y210aWIyOXJMM2R2Y210emFHVmxkSE12ZTI1aGJXVjlMM0poYm1kbEtDNHVMaWxjYmlBcUlDQWdZV04wYVhaaGRHVWdSM0poY0doY2JpQXFJQ0FnUjNKaGNHZ3RMVDQrVTJWeWRtbGpaVG9nZFhCa1lYUmxaQ0J5WVc1blpTQndZWGxzYjJGa1hHNGdLaUFnSUdSbFlXTjBhWFpoZEdVZ1IzSmhjR2hjYmlBcUlDQWdVMlZ5ZG1salpTMHRQajVEWVd4c1pYSTZJSFZ3WkdGMFpXUWdjbUZ1WjJVZ2NHRjViRzloWkZ4dUlDb2dJQ0JrWldGamRHbDJZWFJsSUZObGNuWnBZMlZjYmlBcUlFQnRaVzFpWlhKUFppQnRiMlIxYkdVNmFXNTBaV2R5WVhScGIyNXpMMmx2TDIxcFkzSnZjMjltZEMxbGVHTmxiQzl6WlhKMmFXTmxYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJOYVdOeWIzTnZablJGZUdObGJGTmxjblpwWTJVZ1pYaDBaVzVrY3lCSWRIUndRWEJwVTJWeWRtbGpaVHhOYVdOeWIzTnZablJGZUdObGJGTmxjblpwWTJWRGIyNW1hV2MrSUh0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCVWFHVWdjSEp2ZG1sa1pYSWdibUZ0WlNCMWMyVmtJR2x1SUdWeWNtOXlJRzFsYzNOaFoyVnpYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnY21WaFpHOXViSGtnYzJWeWRtbGpaVTVoYldVZ1BTQmNJazFwWTNKdmMyOW1kQ0JGZUdObGJGd2lPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVkdobElFMXBZM0p2YzI5bWRDQkhjbUZ3YUNCaVlYTmxJRlZTVEZ4dUlDQWdLaUJBYzNWdGJXRnllU0JWYzJWa0lIZG9aVzRnZEdobElISmxjMjlzZG1Wa0lHTnZibVpwWnlCallYSnlhV1Z6SUc1dklHQmlZWE5sVlhKc1lDNWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UzTjBjbWx1WjMwZ1lGd2lhSFIwY0hNNkx5OW5jbUZ3YUM1dGFXTnliM052Wm5RdVkyOXRMM1l4TGpCY0ltQXVYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnWkdWbVlYVnNkRUpoYzJWVmNtd29LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnlaWFIxY200Z1hDSm9kSFJ3Y3pvdkwyZHlZWEJvTG0xcFkzSnZjMjltZEM1amIyMHZkakV1TUZ3aU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCQ2RXbHNaSE1nZEdobElFMXBZM0p2YzI5bWRDQkhjbUZ3YUNCaVpXRnlaWElnWVhWMGFHOXlhWHBoZEdsdmJpQm9aV0ZrWlhKelhHNGdJQ0FxSUVCemRXMXRZWEo1SUZKbGRIVnlibk1nWUVGMWRHaHZjbWw2WVhScGIyNDZJRUpsWVhKbGNpQThkRzlyWlc0K1lDQjNhR1Z1SUdOdmJtWnBaM1Z5WldRc0lHRnVaQ0J1YjF4dUlDQWdLaUJvWldGa1pYSnpJRzkwYUdWeWQybHpaUzVjYmlBZ0lDb2dRSEJoY21GdElIdE5hV055YjNOdlpuUkZlR05sYkZObGNuWnBZMlZEYjI1bWFXZDlJR052Ym1acFp5QXRJRlJvWlNCeVpYTnZiSFpsWkNCelpYSjJhV05sSUdOdmJtWnBaM1Z5WVhScGIyNHVYRzRnSUNBcUlFQnlaWFIxY201eklIdFNaV052Y21ROGMzUnlhVzVuTENCemRISnBibWMrZlNCVWFHVWdZWFYwYUc5eWFYcGhkR2x2YmlCb1pXRmtaWEp6SUNobGJYQjBlU0IzYVhSb2IzVjBJR0VnZEc5clpXNHBMbHh1SUNBZ0tpOWNiaUFnY0hKdmRHVmpkR1ZrSUdGMWRHaElaV0ZrWlhKektGeHVJQ0FnSUdOdmJtWnBaem9nVFdsamNtOXpiMlowUlhoalpXeFRaWEoyYVdObFEyOXVabWxuWEc0Z0lDazZJRkpsWTI5eVpEeHpkSEpwYm1jc0lITjBjbWx1Wno0Z2UxeHVJQ0FnSUhKbGRIVnliaUJqYjI1bWFXY3VkRzlyWlc0Z1B5QjdJRUYxZEdodmNtbDZZWFJwYjI0NklHQkNaV0Z5WlhJZ0pIdGpiMjVtYVdjdWRHOXJaVzU5WUNCOUlEb2dlMzA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRkpsWVdSeklIUm9aU0JGZUdObGJDQmpjbVZrWlc1MGFXRnNjeUJoYm1RZ1pHVm1ZWFZzZEhNZ1puSnZiU0IwYUdVZ1pXNTJhWEp2Ym0xbGJuUmNiaUFnSUNvZ1FITjFiVzFoY25rZ1VtVmhaSE1nZEdobElHQnBieTV0YVdOeWIzTnZablJGZUdObGJHQWdjMnhwWTJVZ1lXNWtJSEpsZEhWeWJuTWdZU0J3WVhKMGFXRnNJR052Ym1acFoxeHVJQ0FnS2lCM2FHVnVJR0Z1SUdGalkyVnpjeUIwYjJ0bGJpQnBjeUJqYjI1bWFXZDFjbVZrTENCZ2RXNWtaV1pwYm1Wa1lDQnZkR2hsY25kcGMyVXVJRlpoYkhWbGN5QndZWE56WEc0Z0lDQXFJSFJvY205MVoyZ2dZR1Z1ZGxOMGNtbHVaMkF2WUdWdWRrNTFiV0psY21BZ2RHOGdjbVZxWldOMElIVnVjMlYwTFd4bFlXWWdjSEp2ZUdsbGN5NWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UxQmhjblJwWVd3OFRXbGpjbTl6YjJaMFJYaGpaV3hUWlhKMmFXTmxRMjl1Wm1sblBpQjhJSFZ1WkdWbWFXNWxaSDBnUVNCd1lYSjBhV0ZzSUdOdmJtWnBaeXdnYjNJZ1lIVnVaR1ZtYVc1bFpHQWdkMmhsYmlCdWJ5QkZlR05sYkNCMGIydGxiaUJwY3lCamIyNW1hV2QxY21Wa0xseHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJR052Ym1acFowWnliMjFGYm5acGNtOXViV1Z1ZENncE9seHVJQ0FnSUh3Z1VHRnlkR2xoYkR4TmFXTnliM052Wm5SRmVHTmxiRk5sY25acFkyVkRiMjVtYVdjK1hHNGdJQ0FnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUdOdmJuTjBJR1Z1ZGlBOUlFbHZSVzUyYVhKdmJtMWxiblF1YVc4dWJXbGpjbTl6YjJaMFJYaGpaV3c3WEc0Z0lDQWdZMjl1YzNRZ2RHOXJaVzRnUFNCbGJuWlRkSEpwYm1jb1pXNTJQeTUwYjJ0bGJpazdYRzRnSUNBZ2FXWWdLQ0YwYjJ0bGJpa2djbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnZEc5clpXNHNYRzRnSUNBZ0lDQmlZWE5sVlhKc09pQmxiblpUZEhKcGJtY29aVzUyTG1KaGMyVlZjbXdwTEZ4dUlDQWdJQ0FnZEdsdFpXOTFkRG9nWlc1MlRuVnRZbVZ5S0dWdWRpNTBhVzFsYjNWMEtTeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCQmMzTmxjblJ6SUhSb1lYUWdZU0JOYVdOeWIzTnZablFnUjNKaGNHZ2dZV05qWlhOeklIUnZhMlZ1SUdseklHTnZibVpwWjNWeVpXUmNiaUFnSUNvZ1FITjFiVzFoY25rZ1JHVnNaV2RoZEdWeklIUnZJSFJvWlNCemFHRnlaV1FnWUhKbGNYVnBjbVZVYjJ0bGJpZ3BZQ0JuZFdGeVpDQjFjMlZrSUdKNUlHVjJaWEo1WEc0Z0lDQXFJRzl3WlhKaGRHbHZiaTVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlM1p2YVdSOVhHNGdJQ0FxSUVCMGFISnZkM01nZTBsdWRHVnlibUZzUlhKeWIzSjlJRmRvWlc0Z2RHaGxJSEpsYzI5c2RtVmtJR052Ym1acFp5Qm9ZWE1nYm04Z1lIUnZhMlZ1WUM1Y2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQnlaWEYxYVhKbFFXTmpaWE56Vkc5clpXNG9LVG9nZG05cFpDQjdYRzRnSUNBZ2RHaHBjeTV5WlhGMWFYSmxWRzlyWlc0b0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1FuVnBiR1J6SUhSb1pTQkhjbUZ3YUNCM2IzSnJZbTl2YXlCd1lYUm9JR1p2Y2lCaElHUnlhWFpsSUdsMFpXMWNiaUFnSUNvZ1FITjFiVzFoY25rZ1ZYTmxjeUJnTDJSeWFYWmxjeTg4WkhKcGRtVkpaRDR2YVhSbGJYTXZQR2wwWlcxSlpENHZkMjl5YTJKdmIydGdJSGRvWlc0Z1lTQmdaSEpwZG1WSlpHQmNiaUFnSUNvZ2FYTWdjMlYwTENCdmRHaGxjbmRwYzJVZ2RHaGxJSE5wWjI1bFpDMXBiaUIxYzJWeUozTWdZQzl0WlM5a2NtbDJaUzh1TGk1Z0lIQmhkR2d1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdSWGhqWld4WGIzSnJZbTl2YTFKbFpuMGdhVzV3ZFhRZ0xTQlVhR1VnZDI5eWEySnZiMnNnY21WbVpYSmxibU5sTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3YzNSeWFXNW5mU0JVYUdVZ2QyOXlhMkp2YjJzZ1FWQkpJSEJoZEdndVhHNGdJQ0FxSUVCMGFISnZkM01nZTBsdWRHVnlibUZzUlhKeWIzSjlJRmRvWlc0Z1lHbDBaVzFKWkdBZ2FYTWdaVzF3ZEhrdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElIZHZjbXRpYjI5clVHRjBhQ2hwYm5CMWREb2dSWGhqWld4WGIzSnJZbTl2YTFKbFppazZJSE4wY21sdVp5QjdYRzRnSUNBZ2FXWWdLQ0ZwYm5CMWRDNXBkR1Z0U1dRcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0Z3aVRXbGpjbTl6YjJaMElFVjRZMlZzSUhKbGNYVnBjbVZ6SUdFZ2QyOXlhMkp2YjJzZ2FYUmxiU0JwWkZ3aUtUdGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUWdhWFJsYlNBOUlHVnVZMjlrWlZWU1NVTnZiWEJ2Ym1WdWRDaHBibkIxZEM1cGRHVnRTV1FwTzF4dUlDQWdJSEpsZEhWeWJpQnBibkIxZEM1a2NtbDJaVWxrWEc0Z0lDQWdJQ0EvSUdBdlpISnBkbVZ6THlSN1pXNWpiMlJsVlZKSlEyOXRjRzl1Wlc1MEtHbHVjSFYwTG1SeWFYWmxTV1FwZlM5cGRHVnRjeThrZTJsMFpXMTlMM2R2Y210aWIyOXJZRnh1SUNBZ0lDQWdPaUJnTDIxbEwyUnlhWFpsTDJsMFpXMXpMeVI3YVhSbGJYMHZkMjl5YTJKdmIydGdPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkNkV2xzWkhNZ2RHaGxJRWR5WVhCb0lIZHZjbXR6YUdWbGRDQnlZVzVuWlNCd1lYUm9YRzRnSUNBcUlFQnpkVzF0WVhKNUlFRndjR1Z1WkhNZ2RHaGxJR1Z1WTI5a1pXUWdkMjl5YTNOb1pXVjBJR0Z1WkNCQk1TQmdjbUZ1WjJVb1lXUmtjbVZ6Y3owdUxpNHBZRnh1SUNBZ0tpQnpaV2R0Wlc1MGN5QjBieUIwYUdVZ2QyOXlhMkp2YjJzZ2NHRjBhQzVjYmlBZ0lDb2dRSEJoY21GdElIdEZlR05sYkZKaGJtZGxTVzV3ZFhSOUlHbHVjSFYwSUMwZ1ZHaGxJSGR2Y210aWIyOXJMQ0IzYjNKcmMyaGxaWFFzSUdGdVpDQnlZVzVuWlM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTNOMGNtbHVaMzBnVkdobElIZHZjbXR6YUdWbGRDQnlZVzVuWlNCQlVFa2djR0YwYUM1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3U1c1MFpYSnVZV3hGY25KdmNuMGdWMmhsYmlCMGFHVWdkMjl5YTNOb1pXVjBJRzl5SUhKaGJtZGxJR2x6SUdWdGNIUjVMbHh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0J5WVc1blpWQmhkR2dvYVc1d2RYUTZJRVY0WTJWc1VtRnVaMlZKYm5CMWRDazZJSE4wY21sdVp5QjdYRzRnSUNBZ2FXWWdLQ0ZwYm5CMWRDNTNiM0pyYzJobFpYUWdmSHdnSVdsdWNIVjBMbkpoYm1kbEtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY2JpQWdJQ0FnSUNBZ1hDSk5hV055YjNOdlpuUWdSWGhqWld3Z2NtVnhkV2x5WlhNZ1lTQjNiM0pyYzJobFpYUWdZVzVrSUhKaGJtZGxYQ0pjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCZ0pIdDBhR2x6TG5kdmNtdGliMjlyVUdGMGFDaHBibkIxZENsOUwzZHZjbXR6YUdWbGRITXZKSHRsYm1OdlpHVlZVa2xEYjIxd2IyNWxiblFvWEc0Z0lDQWdJQ0JwYm5CMWRDNTNiM0pyYzJobFpYUmNiaUFnSUNBcGZTOXlZVzVuWlNoaFpHUnlaWE56UFNja2UyVnVZMjlrWlZWU1NVTnZiWEJ2Ym1WdWRDaHBibkIxZEM1eVlXNW5aU2w5SnlsZ08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCTWFYTjBjeUIwYUdVZ2QyOXlhM05vWldWMGN5QnBiaUJoSUhkdmNtdGliMjlyWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJR0JIUlZSZ2N5QjBhR1VnZDI5eWEySnZiMnNuY3lCZ0wzZHZjbXR6YUdWbGRITmdJR052Ykd4bFkzUnBiMjR1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdSWGhqWld4WGIzSnJZbTl2YTFKbFpuMGdhVzV3ZFhRZ0xTQlVhR1VnZDI5eWEySnZiMnNnY21WbVpYSmxibU5sTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3VUhKdmJXbHpaVHgxYm10dWIzZHVQbjBnVkdobElFZHlZWEJvSUhkdmNtdHphR1ZsZENCamIyeHNaV04wYVc5dUxseHVJQ0FnS2lCQWRHaHliM2R6SUh0SmJuUmxjbTVoYkVWeWNtOXlmU0JYYUdWdUlHNXZJSFJ2YTJWdUlHbHpJR052Ym1acFozVnlaV1FnYjNJZ1lHbDBaVzFKWkdBZ2FYTWdaVzF3ZEhrdVhHNGdJQ0FxSUVCMGFISnZkM01nZTA1dmRFWnZkVzVrUlhKeWIzSjlJRmRvWlc0Z2RHaGxJSGR2Y210aWIyOXJJR1J2WlhNZ2JtOTBJR1Y0YVhOMElDaElWRlJRSURRd05Da3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwSmhaRkpsY1hWbGMzUkZjbkp2Y24wZ1YyaGxiaUJIY21Gd2FDQnlaV3BsWTNSeklIUm9aU0J5WlhGMVpYTjBMbHh1SUNBZ0tpOWNiaUFnWVhONWJtTWdiR2x6ZEZkdmNtdHphR1ZsZEhNb2FXNXdkWFE2SUVWNFkyVnNWMjl5YTJKdmIydFNaV1lwT2lCUWNtOXRhWE5sUEhWdWEyNXZkMjQrSUh0Y2JpQWdJQ0IwYUdsekxuSmxjWFZwY21WQlkyTmxjM05VYjJ0bGJpZ3BPMXh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnlaWE53YjI1elpTQTlJR0YzWVdsMElIUm9hWE11WTJ4cFpXNTBMbWRsZENoY2JpQWdJQ0FnSUNBZ1lDUjdkR2hwY3k1M2IzSnJZbTl2YTFCaGRHZ29hVzV3ZFhRcGZTOTNiM0pyYzJobFpYUnpZRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWE53YjI1elpTNWtZWFJoTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eUtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCb2RIUndSWEp5YjNJb1hDSk5hV055YjNOdlpuUWdSWGhqWld4Y0lpd2dYQ0pzYVhOMElIZHZjbXR6YUdWbGRITmNJaXdnWlhKeWIzSXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1VtVmhaSE1nZG1Gc2RXVnpJR1p5YjIwZ1lTQjNiM0pyYzJobFpYUWdjbUZ1WjJWY2JpQWdJQ29nUUhOMWJXMWhjbmtnWUVkRlZHQnpJSFJvWlNCaFpHUnlaWE56WldRZ2NtRnVaMlVnWVc1a0lISmxkSFZ5Ym5NZ2FYUnpJSFpoYkhWbGN5QmhibVFnWm05eWJXRjBkR2x1WjF4dUlDQWdLaUJ3WVhsc2IyRmtMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwVjRZMlZzVW1GdVoyVkpibkIxZEgwZ2FXNXdkWFFnTFNCVWFHVWdkMjl5YTJKdmIyc3NJSGR2Y210emFHVmxkQ3dnWVc1a0lISmhibWRsTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3VUhKdmJXbHpaVHgxYm10dWIzZHVQbjBnVkdobElISmhibWRsSUhCaGVXeHZZV1F1WEc0Z0lDQXFJRUIwYUhKdmQzTWdlMGx1ZEdWeWJtRnNSWEp5YjNKOUlGZG9aVzRnYm04Z2RHOXJaVzRnYVhNZ1kyOXVabWxuZFhKbFpDd2diM0lnZEdobElIZHZjbXRpYjI5ckxDQjNiM0pyYzJobFpYUXNJRzl5SUhKaGJtZGxJR2x6SUdWdGNIUjVMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdE9iM1JHYjNWdVpFVnljbTl5ZlNCWGFHVnVJSFJvWlNCM2IzSnJZbTl2YXlCdmNpQnlZVzVuWlNCa2IyVnpJRzV2ZENCbGVHbHpkQ0FvU0ZSVVVDQTBNRFFwTGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRDWVdSU1pYRjFaWE4wUlhKeWIzSjlJRmRvWlc0Z1IzSmhjR2dnY21WcVpXTjBjeUIwYUdVZ2NtVnhkV1Z6ZEM1Y2JpQWdJQ292WEc0Z0lHRnplVzVqSUdkbGRGSmhibWRsS0dsdWNIVjBPaUJGZUdObGJGSmhibWRsU1c1d2RYUXBPaUJRY205dGFYTmxQSFZ1YTI1dmQyNCtJSHRjYmlBZ0lDQjBhR2x6TG5KbGNYVnBjbVZCWTJObGMzTlViMnRsYmlncE8xeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTndiMjV6WlNBOUlHRjNZV2wwSUhSb2FYTXVZMnhwWlc1MExtZGxkQ2gwYUdsekxuSmhibWRsVUdGMGFDaHBibkIxZENrcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzQnZibk5sTG1SaGRHRTdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pYSnliM0lwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJR2gwZEhCRmNuSnZjaWhjSWsxcFkzSnZjMjltZENCRmVHTmxiRndpTENCY0ltZGxkQ0J5WVc1blpWd2lMQ0JsY25KdmNpazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCWGNtbDBaWE1nZG1Gc2RXVnpJR2x1ZEc4Z1lTQjNiM0pyYzJobFpYUWdjbUZ1WjJWY2JpQWdJQ29nUUhOMWJXMWhjbmtnWUZCQlZFTklZR1Z6SUhSb1pTQmhaR1J5WlhOelpXUWdjbUZ1WjJVZ2QybDBhQ0IwYUdVZ2MzVndjR3hwWldRZ1lIWmhiSFZsYzJBZ2JXRjBjbWw0WEc0Z0lDQXFJR0Z1WkNCeVpYUjFjbTV6SUhSb1pTQjFjR1JoZEdWa0lISmhibWRsSUhCaGVXeHZZV1F1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdSWGhqWld4U1lXNW5aVmR5YVhSbFNXNXdkWFI5SUdsdWNIVjBJQzBnVkdobElISmhibWRsSUhKbFptVnlaVzVqWlNCaGJtUWdkbUZzZFdWeklIUnZJSGR5YVhSbExseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1VISnZiV2x6WlR4MWJtdHViM2R1UG4wZ1ZHaGxJSFZ3WkdGMFpXUWdjbUZ1WjJVZ2NHRjViRzloWkM1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3U1c1MFpYSnVZV3hGY25KdmNuMGdWMmhsYmlCdWJ5QjBiMnRsYmlCcGN5QmpiMjVtYVdkMWNtVmtMQ0J2Y2lCMGFHVWdkMjl5YTJKdmIyc3NJSGR2Y210emFHVmxkQ3dnYjNJZ2NtRnVaMlVnYVhNZ1pXMXdkSGt1WEc0Z0lDQXFJRUIwYUhKdmQzTWdlMDV2ZEVadmRXNWtSWEp5YjNKOUlGZG9aVzRnZEdobElIZHZjbXRpYjI5cklHOXlJSEpoYm1kbElHUnZaWE1nYm05MElHVjRhWE4wSUNoSVZGUlFJRFF3TkNrdVhHNGdJQ0FxSUVCMGFISnZkM01nZTBKaFpGSmxjWFZsYzNSRmNuSnZjbjBnVjJobGJpQkhjbUZ3YUNCeVpXcGxZM1J6SUhSb1pTQnlaWEYxWlhOMExseHVJQ0FnS2k5Y2JpQWdZWE41Ym1NZ2RYQmtZWFJsVW1GdVoyVW9hVzV3ZFhRNklFVjRZMlZzVW1GdVoyVlhjbWwwWlVsdWNIVjBLVG9nVUhKdmJXbHpaVHgxYm10dWIzZHVQaUI3WEc0Z0lDQWdkR2hwY3k1eVpYRjFhWEpsUVdOalpYTnpWRzlyWlc0b0tUdGNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2NtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbU5zYVdWdWRDNXdZWFJqYUNoMGFHbHpMbkpoYm1kbFVHRjBhQ2hwYm5CMWRDa3NJSHRjYmlBZ0lDQWdJQ0FnZG1Gc2RXVnpPaUJwYm5CMWRDNTJZV3gxWlhNc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYTndiMjV6WlM1a1lYUmhPMXh1SUNBZ0lIMGdZMkYwWTJnZ0tHVnljbTl5S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJvZEhSd1JYSnliM0lvWENKTmFXTnliM052Wm5RZ1JYaGpaV3hjSWl3Z1hDSjFjR1JoZEdVZ2NtRnVaMlZjSWl3Z1pYSnliM0lwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdUR2x6ZEhNZ2RHaGxJSFJoWW14bGN5QnBiaUJoSUhkdmNtdGliMjlyWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJR0JIUlZSZ2N5QjBhR1VnZDI5eWEySnZiMnNuY3lCZ0wzUmhZbXhsYzJBZ1kyOXNiR1ZqZEdsdmJpNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0RmVHTmxiRmR2Y210aWIyOXJVbVZtZlNCcGJuQjFkQ0F0SUZSb1pTQjNiM0pyWW05dmF5QnlaV1psY21WdVkyVXVYRzRnSUNBcUlFQnlaWFIxY201eklIdFFjbTl0YVhObFBIVnVhMjV2ZDI0K2ZTQlVhR1VnUjNKaGNHZ2dkR0ZpYkdVZ1kyOXNiR1ZqZEdsdmJpNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1NXNTBaWEp1WVd4RmNuSnZjbjBnVjJobGJpQnVieUIwYjJ0bGJpQnBjeUJqYjI1bWFXZDFjbVZrSUc5eUlHQnBkR1Z0U1dSZ0lHbHpJR1Z0Y0hSNUxseHVJQ0FnS2lCQWRHaHliM2R6SUh0T2IzUkdiM1Z1WkVWeWNtOXlmU0JYYUdWdUlIUm9aU0IzYjNKclltOXZheUJrYjJWeklHNXZkQ0JsZUdsemRDQW9TRlJVVUNBME1EUXBMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdENZV1JTWlhGMVpYTjBSWEp5YjNKOUlGZG9aVzRnUjNKaGNHZ2djbVZxWldOMGN5QjBhR1VnY21WeGRXVnpkQzVjYmlBZ0lDb3ZYRzRnSUdGemVXNWpJR3hwYzNSVVlXSnNaWE1vYVc1d2RYUTZJRVY0WTJWc1YyOXlhMkp2YjJ0U1pXWXBPaUJRY205dGFYTmxQSFZ1YTI1dmQyNCtJSHRjYmlBZ0lDQjBhR2x6TG5KbGNYVnBjbVZCWTJObGMzTlViMnRsYmlncE8xeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTndiMjV6WlNBOUlHRjNZV2wwSUhSb2FYTXVZMnhwWlc1MExtZGxkQ2hjYmlBZ0lDQWdJQ0FnWUNSN2RHaHBjeTUzYjNKclltOXZhMUJoZEdnb2FXNXdkWFFwZlM5MFlXSnNaWE5nWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSEpsYzNCdmJuTmxMbVJoZEdFN1hHNGdJQ0FnZlNCallYUmphQ0FvWlhKeWIzSXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHaDBkSEJGY25KdmNpaGNJazFwWTNKdmMyOW1kQ0JGZUdObGJGd2lMQ0JjSW14cGMzUWdkR0ZpYkdWelhDSXNJR1Z5Y205eUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVGd2NHVnVaSE1nWVNCeWIzY2dkRzhnWVc0Z1JYaGpaV3dnZEdGaWJHVmNiaUFnSUNvZ1FITjFiVzFoY25rZ1lGQlBVMVJnY3lCMGFHVWdjMmx1WjJ4bElISnZkeUIwYnlCMGFHVWdkR0ZpYkdVbmN5QmdMM0p2ZDNNdllXUmtZQ0JsYm1Sd2IybHVkQ0JoYm1SY2JpQWdJQ29nY21WMGRYSnVjeUIwYUdVZ1IzSmhjR2dnY205M0lIQmhlV3h2WVdRdVhHNGdJQ0FxSUVCd1lYSmhiU0I3UlhoalpXeFVZV0pzWlZKdmQwbHVjSFYwZlNCcGJuQjFkQ0F0SUZSb1pTQjNiM0pyWW05dmF5d2dkR0ZpYkdVc0lHRnVaQ0J5YjNjZ2RtRnNkV1Z6TGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3VUhKdmJXbHpaVHgxYm10dWIzZHVQbjBnVkdobElHTnlaV0YwWldRZ2RHRmliR1VnY205M0lIQmhlV3h2WVdRdVhHNGdJQ0FxSUVCMGFISnZkM01nZTBsdWRHVnlibUZzUlhKeWIzSjlJRmRvWlc0Z2JtOGdkRzlyWlc0Z2FYTWdZMjl1Wm1sbmRYSmxaQ3dnYjNJZ2RHaGxJSGR2Y210aWIyOXJMQ0IwWVdKc1pTd2diM0lnZG1Gc2RXVnpJR0Z5WlNCdGFYTnphVzVuTGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRPYjNSR2IzVnVaRVZ5Y205eWZTQlhhR1Z1SUhSb1pTQjNiM0pyWW05dmF5QnZjaUIwWVdKc1pTQmtiMlZ6SUc1dmRDQmxlR2x6ZENBb1NGUlVVQ0EwTURRcExseHVJQ0FnS2lCQWRHaHliM2R6SUh0Q1lXUlNaWEYxWlhOMFJYSnliM0o5SUZkb1pXNGdSM0poY0dnZ2NtVnFaV04wY3lCMGFHVWdjbVZ4ZFdWemRDNWNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklHRmtaRlJoWW14bFVtOTNLR2x1Y0hWME9pQkZlR05sYkZSaFlteGxVbTkzU1c1d2RYUXBPaUJRY205dGFYTmxQSFZ1YTI1dmQyNCtJSHRjYmlBZ0lDQjBhR2x6TG5KbGNYVnBjbVZCWTJObGMzTlViMnRsYmlncE8xeHVJQ0FnSUdsbUlDZ2hhVzV3ZFhRdWRHRmliR1ZKWkNCOGZDQWhhVzV3ZFhRdWRtRnNkV1Z6UHk1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JjSWsxcFkzSnZjMjltZENCRmVHTmxiQ0JoWkdSVVlXSnNaVkp2ZHlCeVpYRjFhWEpsY3lCaElIUmhZbXhsSUdsa0lHRnVaQ0IyWVd4MVpYTmNJbHh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJR052Ym5OMElISmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTVqYkdsbGJuUXVjRzl6ZENoY2JpQWdJQ0FnSUNBZ1lDUjdkR2hwY3k1M2IzSnJZbTl2YTFCaGRHZ29hVzV3ZFhRcGZTOTBZV0pzWlhNdkpIdGxibU52WkdWVlVrbERiMjF3YjI1bGJuUW9YRzRnSUNBZ0lDQWdJQ0FnYVc1d2RYUXVkR0ZpYkdWSlpGeHVJQ0FnSUNBZ0lDQXBmUzl5YjNkekwyRmtaR0FzWEc0Z0lDQWdJQ0FnSUhzZ2RtRnNkV1Z6T2lCYmFXNXdkWFF1ZG1Gc2RXVnpYU0I5WEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSEpsYzNCdmJuTmxMbVJoZEdFN1hHNGdJQ0FnZlNCallYUmphQ0FvWlhKeWIzSXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHaDBkSEJGY25KdmNpaGNJazFwWTNKdmMyOW1kQ0JGZUdObGJGd2lMQ0JjSW1Ga1pDQjBZV0pzWlNCeWIzZGNJaXdnWlhKeWIzSXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dWZWeHVJbDE5Il19
|
|
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./MicrosoftExcelService.cjs"), exports);
|
|
18
|
-
//# sourceMappingURL=
|
|
19
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW8vbWljcm9zb2Z0LWV4Y2VsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL01pY3Jvc29mdEV4Y2VsU2VydmljZVwiO1xuIl19
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQTJDO0FBQzNDLHNVQUFzVSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL01pY3Jvc29mdEV4Y2VsU2VydmljZS5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12YVc4dmJXbGpjbTl6YjJaMExXVjRZMlZzTDJsdVpHVjRMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxESkRRVUYzUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltVjRjRzl5ZENBcUlHWnliMjBnWENJdUwwMXBZM0p2YzI5bWRFVjRZMlZzVTJWeWRtbGpaVndpTzF4dUlsMTkiXX0=
|